このサンプルリポジトリは、Amazon Bedrock Titan Embeddings Generation 1 (G1) LLM (Large Language Model) を中継する RAG (Retrieval augmented Generation) メソッドを使用して、ベクトルエンジンをサポートする Amazon OpenSearch に保存されるテキスト埋め込みを作成するためのサンプルコードを提供します。 LLM からのより正確な応答を得るために、迅速なエンジニアリング作業を支援します。
埋め込みを OpenSearch に正常にロードしたら、LangChain を使用して LLM のクエリを開始します。質問をして、より正確なプロンプトを得るために同様の埋め込みを取得します。
--bedrock-model-id
パラメータを使用すると、Amazon Bedrock で利用可能な基盤モデルの 1 つをシームレスに選択できます。これはデフォルトで Anthropic Claude v2 になり、他のモデルプロバイダーの他のモデルに置き換えて、最高のパフォーマンスの基盤を選択できます。モデル。
人間的:
python ./ask-bedrock-with-rag.py --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id anthropic.claude-instant-v1 --ask "How will AI will change our every day life?"
AI21 ラボ:
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-ultra-v1 --ask "How will AI will change our every day life?"
python ./ask-bedrock-with-rag.py --bedrock-model-id ai21.j2-mid-v1 --ask "How will AI will change our every day life?"
これは Python 3.11.4 でテストされました
クリーンな環境で作業し、 virtualenv
またはその他の仮想環境マネージャーを使用することをお勧めします。
pip install virtualenv
python -m virtualenv venv
source ./venv/bin/activate
インストール要件pip install -r requirements.txt
terraform をインストールして OpenSearch クラスターを作成する
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
[モデル アクセス] ページに移動し、使用する基盤モデルを有効にします。
最初のステップでは、Terraform を使用して OpenSearch クラスターを起動します。
cd ./terraform
terraform init
terraform apply -auto-approve
このサンプル コードの使用を簡素化するためにエンドポイントがパブリックになっているため、このクラスター構成は提案のテストのみを目的としています。
ベクトル エンジンをサポートする OpenSearch クラスターを実行できるようになったので、迅速なエンジニアリングに役立つデータのアップロードを開始します。このサンプルでは、Hugging Face embedding-training-data gooaq_pairs のデータ ソースを使用し、それをダウンロードし、Titan embedding を呼び出してテキスト エンベディングを取得し、次のステップのために OpenSearch に保存します。
python load-data-to-opensearch.py --recreate 1 --early-stop 1
オプションの引数:
--recreate
OpenSearch でインデックスを再作成します。--early-stop
100 個の埋め込みドキュメントのみを OpenSearch にロードします--index
デフォルトのラグとは異なるインデックスを使用します。--region
(デフォルトのus-east-1を使用していない場合)
OpenSearch クラスターにテキストを埋め込んだので、RAG を使用して Amazon Bedrock 内の LLM モデル Titan テキストのクエリを開始できます。
python ask-bedrock-with-rag.py --ask " your question here "
オプションの引数:
--index
デフォルトのラグとは異なるインデックスを使用します。--region
(デフォルトのus-east-1を使用していない場合)--bedrock-model-id
Anthropic の Claude v2 とは異なるモデルを選択します
cd ./terraform
terraform destroy # When prompt for confirmation, type yes, and press enter.
詳細については、「貢献」を参照してください。
このライブラリは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。