美文网首页
RAG 学习笔记(七)

RAG 学习笔记(七)

作者: 啊阿伟啊 | 来源:发表于2024-01-24 08:48 被阅读0次

基于博文 Advanced RAG Techniques: an Illustrated Overview 的学习和练习的记录。

中文内容可以查看博主@宝玉的译文 高级 RAG 技术:图解概览 [译]

系列笔记:
RAG 学习笔记(一)
RAG 学习笔记(二)
RAG 学习笔记(三)
RAG 学习笔记(四)
RAG 学习笔记(五)
RAG 学习笔记(六)

RAG 中的 Agent

Agent 本身就是一个大的话题,本文只讨论 RAG 涉及的相关内容

Agent

Agent 是使用 LLM 进行推理,为其提供一系列工具完成一个任务

工具包括一系列定义好的函数,比如:代码函数、外部API、其他的 Agent。

OpenAI 助理

OpenAI 助理基本上实现了很多工具供 LLM 选择,比如:

函数调用可以将自然语言转换为对外部工具、数据库查询的API调用

LlamaIndex 中的 OpenAIAgent ,将函数调用与 ChatEngine 和 QueryEngine 结合起来,提供了基于知识和上下文感知的对话功能,并能够在单轮对话中进行多次 OpenAI 函数调用,带来了智能 Agent 的能力。

多文档 Agent 架构

多文档 Agent 架构
  1. 多文档 Agent 包括:
    • 对每个文档初始化一个 Agent (OpanAIAgent),可以完成文档总结和问答
    • 一个顶级 Agent,负责将查询路由到文档 Agent 和进行最后回答的合成
  2. 文档 Agent 有两个工具:向量索引和摘要索引,根据查询决定使用哪个工具
  3. 对于顶级 Agent,所有的文档 Agent 都是工具

优点:

  • 可以支持“文档集合对话” 场景中的几乎所有的用例,比如:对比不同文档中描述的方案或实体,传统的单文档总结、问答。

缺点

  • Agent 内部需要进行多次来回迭代,所以执行速度会比较慢。
  • 在 RAG pipeline 中,LLM 调用时最耗时的。

对于大型的多文档存储,作者建议简化架构,使其具有可扩展性。

响应内容合成器

内容响应合成是 RAG pipeline 的最后一步,根据检索到的上下文内容和用户原始的查询,生成最后的响应内容。

  1. 简单方法:将检索到的上下文和查询拼接,一起发送给 LLM
  2. 高级方法:多次调用 LLM,优化检索到的上下文,从而生成更好的回答

主要合成响应内容的高级方法有:

  1. 迭代细化答案:逐个将检索到的上下文文本块发送给 LLM,根据上一个文本块生成的答案会和下一个文本块内容一同发送给 LLM
  2. 总结检索到的上下文
  3. 根据每一个检索到的文本块生成各自的答案,然后将答案拼接或者总结。

详细可以查看 LlamaIndex 文档的介绍:Response Synthesizer

相关文章

网友评论

      本文标题:RAG 学习笔记(七)

      本文链接:https://www.haomeiwen.com/subject/cycpodtx.html