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