RAG 学习笔记(七)

2024-01-24  本文已影响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 都是工具

优点:

缺点

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

响应内容合成器

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读