美文网首页
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