LLM 和 RAG(檢索增強生成)的 QA
該專案是一個問答應用程序,具有大型語言模型 (LLM) 和使用 pgvector 的 Amazon Aurora Postgresql。使用RAG(檢索增強生成)方法的應用程式從企業知識庫或內容中檢索與用戶請求最相關的信息,將其作為上下文與用戶請求作為提示捆綁在一起,然後將其發送到法學碩士以獲取GenAI回應。
法學碩士對輸入提示的最大字數有限制,因此在企業中數千或數百萬文件中選擇正確的段落,對法學碩士的準確性有直接影響。
在此專案中,使用帶有 pgvector 的 Amazon Aurora Postgresql 作為知識庫。
整體架構是這樣的:
整體工作流程
- 部署 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 中建立人工智慧驅動的搜尋 (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 Serverless 服務的問答應用程序
- Pgvector 變更日誌
將向量的最大尺寸從 1024 增加到 16000
將索引的最大尺寸從 1024 增加到 2000