LLM および RAG による QA (検索拡張生成)
このプロジェクトは、pgvector を使用した大規模言語モデル (LLM) と Amazon Aurora Postgresql を備えた質問応答アプリケーションです。 RAG (Retrieval Augmented Generation) アプローチを使用するアプリケーションは、エンタープライズ ナレッジ ベースまたはコンテンツからユーザーのリクエストに最も関連する情報を取得し、それをプロンプトとしてのユーザーのリクエストとともにコンテキストとしてバンドルし、LLM に送信して、 GenAIの応答。
LLM には入力プロンプトの最大単語数に関する制限があるため、企業内の数千または数百万の文書の中から適切な文章を選択することは、LLM の精度に直接影響します。
このプロジェクトでは、Amazon Aurora Postgresql と pgvector がナレッジベースに使用されます。
全体的なアーキテクチャは次のようになります。
全体的なワークフロー
- cdk スタックをデプロイします (詳細については、ここを参照してください)。
- プライベート VPC 内の SageMaker Studio。
- テキスト生成用の SageMaker エンドポイント。
- 埋め込みを生成するための SageMaker エンドポイント。
- 埋め込みを保存するための Amazon Aurora Postgresql クラスター。
- Aurora Postgresql クラスターのアクセス認証情報 (ユーザー名とパスワード) は
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
などの名前で AWS Secrets Mananger に保存されます。
- SageMaker Studio を開き、新しいシステム ターミナルを開きます。
- ターミナルで次のコマンドを実行して、このプロジェクトのコード リポジトリのクローンを作成します。
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
data_ingestion_to_pgvector.ipynb
ノートブックを開いて実行します。 (詳しくはこちらをご覧ください)- Streamlit アプリケーションを実行します。 (詳しくはこちらをご覧ください)
参考文献
- pgvector と Amazon Aurora PostgreSQL を自然言語処理、チャットボット、感情分析に活用する (2023-07-13)
- Amazon Aurora PostgreSQL 互換エディションと Amazon RDS for PostgreSQL の pgvector を使用して HNSW のインデックス作成と検索を高速化する (2023-11-06)
- pgvector インデックスによる生成 AI アプリケーションの最適化: IVFFlat および HNSW 技術の詳細 (2024-03-15)
- 最適化された読み取りと pgvector を使用して Amazon Aurora 上の生成 AI ワークロードのパフォーマンスを向上させる (2024-02-09)
- Amazon SageMaker と pgvector を使用して PostgreSQL で AI を活用した検索を構築する (2023-05-03)
- Amazon SageMaker Studio で Streamlit アプリを構築する (2023-04-11)
- Amazon Kendra、LangChain、および大規模言語モデルを使用して、エンタープライズ データ上で高精度の生成 AI アプリケーションを迅速に構築する (2023-05-03)
- (github) Amazon Kendra Retriver のサンプル
- Amazon SageMaker JumpStart の基盤モデルで取得拡張生成を使用した質問応答 (2023-05-02)
- Amazon SageMaker Studio で Amazon SageMaker JumpStart の独自の基盤モデルを使用する (2023-06-27)
- LangChain - 言語モデルを利用したアプリケーション開発用のフレームワーク。
- Streamlit - データ アプリをより迅速に構築して共有する方法
- rag-with-amazon-kendra-and-sagemaker - 大規模言語モデル (LLM) と Amazon Kendra を使用した質問応答アプリケーション
- rag-with-amazon-opensearch-and-sagemaker - 大規模言語モデル (LLM) と Amazon OpenSearch Service を使用した質問応答アプリケーション
- rag-with-amazon-opensearch-serverless - 大規模言語モデル (LLM) と Amazon OpenSearch サーバーレス サービスを使用した質問応答アプリケーション
- Pgvector 変更ログ
ベクトルの最大次元が 1024 から 16000 に増加しました
インデックスの最大ディメンションが 1024 から 2000 に増加しました