内容提要
亚马逊在re:Invent 2023发布大会上推出了Bedrock Agent,提供了RAG和Agent两种能力,加速了企业用户对生成式AI的应用程序开发进程。该Agent可以收集开发票所需信息并为用户开具发票,还可以回答用户关于企业票据的问题。此外,文章介绍了如何将企业知识库和QA问答对加入到Bedrock Agent中,并通过自行构建向量库提升准确率。
延伸解读
Bedrock Agent 降低开发门槛的实质
文章指出,构建大模型应用需集成多种组件,如数据库、开发框架和提示词优化,这提升了开发门槛。Bedrock Agent 通过自动构建提示词、内置历史会话管理、与 Lambda 和多种向量库自动集成,让开发者更专注于业务逻辑和知识库构建,从而加速应用上线。
原生知识库在 QA 场景的局限
测试发现,Bedrock KB 原生按指定长度切分文档,会将多个 QA 对合并,导致召回内容多且不准确。即使修改提示词让 Agent 正确选择知识库,回答仍可能出错。这说明对于结构化的 QA 数据,直接使用通用切分方式效果不佳,需要针对性优化。
自行构建向量库的优化策略
为提升 QA 召回率,作者采取了两项措施:将 QA 知识库逐条拆分,每个 item 仅含一个问答对;采用对称召回与非对称召回结合,分别对 Q 和 A 向量化。通过自行构建 OpenSearch Serverless 向量库并集成到 Bedrock KB,最终测试回答准确,召回内容以单条形式呈现。
Q&A
亚马逊 Bedrock Agent 是什么?它有哪些主要能力?
亚马逊 Bedrock Agent 是 re:Invent 2023 发布的新服务,同时提供 RAG(检索增强生成)和 Agent(代理)两种能力。它通过提示词自动构建、内置历史会话管理、与 Lambda 和多种向量库的自动集成,帮助企业快速构建生成式 AI 应用。
如何将企业知识库添加到 Bedrock Agent 中?
添加企业知识库的步骤包括:在 Bedrock 中创建 Knowledge Base(KB),对 KB 进行描述,将包含文档的 S3 存储桶目录作为 DataSource,在高级设置中选择文档切分方式和向量数据库(如自动创建的 OpenSearch Serverless),然后将 S3 数据同步至向量库,最后修改 Agent 的 Instruction 以引用该 KB。
为什么 Bedrock Agent 在使用知识库时准确率低?
准确率低的主要原因是 Bedrock KB 原生功能将文档按指定长度切分,这种切分方式会将多个 QA 对合并到一起,导致召回内容多且不准确,与用户问题不匹配。
如何提升 Bedrock 知识库对 QA 问答对的召回准确率?
可以通过自行构建向量库来优化:将 QA 知识库逐条拆分,每个 item 仅包含一个 QA 问答对;采用对称召回和非对称召回相结合的方式,分别对 Q 和 A 进行向量化,并插入到 OpenSearch Serverless 索引中,从而提升召回率。
Bedrock Agent 在发票助手场景中能实现哪些功能?
该 Agent 可以实现两个功能:一是向客户收集开发票所需的信息,自动调用后端 API 为用户开具发票;二是基于企业票据知识回答用户提问。
自行构建向量库时,如何创建 OpenSearch Serverless 索引?
需要创建类型为“向量搜索”的集合,并在集合中创建索引。索引的 schema 参考 Bedrock KB 原生使用的结构,必要字段包括:AMAZON_BEDROCK_TEXT_CHUNK(文本字段)、bedrock-knowledge-base-default-vector(向量字段,维度1536)、id(文档ID)等。