4
2

[LangChain編] Oracle Cloud Infrastructure Data ScienceとOracle Database 23aiで実装するRAG

Last updated at Posted at 2024-08-21

本記事はOracle Cloud Infrastructure(OCI)上のサービス「Data ScienceとOracle Database 23ai」でのRAGの実装方法を検証して、手順と注意事項を纏めました。

なぜOracle Cloud Infrastructure(OCI) Data Scienceですか?

Oracle Database 23aiリリース以来、いろんな製品組み合わせでRAGを実装した資料をネットから勉強して、今回Oracle Cloud Infrastructure(OCI) Data Scienceで実装してみました。よってData Scienceのメリットも下記で整理して、ご参考のほどよろしくお願いします。

RAGに対するメリット:

  1. VM構造なので、カスタムLLMのトレニングが可能
  2. LangChainアプリケーションをData ScienceモデルとしてデプロイすることでREST APIで利用することが可能
  3. 製品内蔵のAI環境をワンコマンド実行でディプロすることが可能
  4. RAGを行うためのPythonパッケージをインストールすることが可能

その他のメリット:

  1. 統合されたデータサイエンス環境:OCI Data Scienceは、機械学習モデルの構築、トレーニング、デプロイメントを行うための統合された環境を提供します。
  2. スケーラビリティとパフォーマンス:OCIのインフラストラクチャを、大規模なデータセットに対しても高速な処理が可能で、必要に応じて計算リソースを柔軟に増減できます。
  3. 自動化された機械学習:AutoML(自動機械学習)の機能を提供しており、モデルの選定やハイパーパラメータのチューニングなど、複雑な作業を自動化できます。
  4. セキュリティとコンプライアンス:OCIはエンタープライズ向けの高度なセキュリティ機能を提供しており、データの保護とコンプライアンスを確保できます。
  5. チームコラボレーション:OCI Data Scienceは、データサイエンティストやエンジニアが共同でプロジェクトを進めやすくするためのコラボレーション機能を提供しています。共有ノートブックやバージョン管理機能を通じて、チームメンバー間での効率的な協力が可能です。
  6. コスト効率:OCI Data Scienceの課金は、使用したコンピューティングリソース、ストレージ、およびOCI外部へのデータ転送に基づいて行われます。ソフトウェアが無料です。

構成図

image.png

参考資料

いくつの資料を参考して、検証を行ったため、下記で資料をリストしました。詳細の手順と製品の紹介については下記の資料をご参考にしてください。

Oracle Database 23ai がリリースされたので作成してみてみた
Oracle Cloud Infrastructure Data Science Service 初期セットアップ
[LangChain編] 新リリース Oracle Database 23ai で実装するエンタープライズRAG

前提条件

  • Oracle Cloud Infrastructure(OCI) Data Scienceのノートブックセッションを作成します。

image.png

  • Oracle Cloud Infrastructure(OCI) Oracle Base Database Service の23aiを作成します。

image.png

Oracle Cloud Infrastructure(OCI) Data Scienceでの実装

下記の流れで実装します。

  1. Conda環境をインストール
  2. langchain-community、ociとoracledbをインストール
  3. RAGの実装

Conda環境をインストール

Oracle Cloud Infrastructure(OCI) Data Scienceノートブックセッションを開き、AI関連のConda環境をインストールします。
image.png
OCI Data Scienceで簡単にConda環境をインストールできます。
image.png

langchain-community、ociとoracledbをインストール

ノートブックを作成します。
image.png

KernelでインストールしたConda環境を選択します。
image.png

ファイル名を付けて保存します。
image.png

ノートブックのテンプレートに参考可能な内容があるから、ネットワークの確認するコードをコピーし、実行します。
image.png

今回、Oracle Cloud Infrastructure(OCI) Generative AI Serviceのチャットモデルを利用するため、パッケージlangchain-communityociをインストールします。また互換性エラーを解決するため、既存のConda環境のパッケージdatapaneoci-cliをアップグレードします。

image.png

最後にデータベース接続用のパッケージoracledbをインストールし、カーネルを再起動します。
image.png
image.png

RAGの実装

続けて下記のドキュメントを参考してRAGを実装してみました。

まず、Oracle Database 23aiに接続します。
image.png

次には、Oracle Cloud Infrastructure(OCI) Generative AI Serviceの埋め込みモデル「embed-multilingual-v3.0」とテキスト生成モデル「command-r-plus」を利用するため、OCIサービスのアスセス認証を設定する必要となります。下記のドキュメントを参照して、認証用のconfigファイルとKeyファイルをData Scienceのサーバーにアップロードします。

image.png

アクセス認証設定を完了してから、必要なライブラリをimportし、embedingモデルを定義します。
image.png

チャンクしたドキュメントの内容をembedingし、23aiベクトルデータベースにロードします。また索引を作成します。PDFファイルからのデータをチャンクする処理が参考資料にあるため、ここで省略します。
image.png

これからLangChainのChainでRAGを実行します。まずは下記のChainのパーツを準備します。

  1. プロンプトテンプレート
  2. テキスト生成モデル
  3. ベクトル検索のベクトルデータベース

image.png

Chainのパーツが準備できてから、下記のようにChainを定義します。
image.png

最後にRAGの実装結果をテストします。
image.png

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2