—1—
大模型的痛点
RAG(检索增强生成) 技术通过信息检索和文本生成,显著提升了大模型的性能。但 RAG 也存在局限性,比如:数据依赖、检索效率等。如何解决这些痛点?如何进一步提升 RAG 性能?是本文剖析的重点。
—2—
RAG 的痛点
—3—
From RAG to Agent
以下是 RAG 向 Agent 转变的描述:
从 RAG 到 Agent 的演进,并非完全摒弃 RAG,而是在其基础上拓展以下几层功能:
多轮对话能力:与用户进行更深层次的交流,准确把握用户需求。
查询/任务规划层:理解和规划复杂的查询与任务流程。
外部工具接口:利用外部工具来完成特定任务。
反思机制:对执行结果进行反思、总结和评估。
记忆功能:记录用户交互历史,以提供更加个性化的服务。
通过这些功能的增强,Agent 不仅能应对复杂任务,还能在多变的环境中灵活应对。与 RAG 相比,Agent更专注于完成特定任务,并更注重与现有系统的融合。它不仅理解语言,还能在现实世界或数字系统中采取行动。Agent 不仅能执行复杂的多步骤任务,比如;信息检索、数据处理,还能无缝接入各种系统和 API 接口,访问用户数据,与数据库互动。
人类之所以独特,很大程度上是因为我们会使用工具。同样,作为智能体的Agent 也能借助外部工具,处理更为复杂的任务。比如:Agent 能够利用图表生成工具制作在线图表,使用天气查询工具获取天气信息。因此,Agent 是真正释放大模型潜能的关键。
因此,我们的大模型应用也将从 RAG 迈向 Agent,可以说,Agent 是 RAG 发展的必然归宿。
—4—
案例剖析
Agent 构建流程如下:
该智能体的构建涉及三个级别,每一级都是基于前一级的构建:
级别一:检索
这一级别关注的是如何识别并提取与关键词最相关的文档片段,主要分为以下三个步骤:
步骤1:区分指令信息与非指令信息
用户输入示例:“请用2000字的篇幅详细说明,我的问题是,自行车是什么时候发明的?请用英文回答。”
信息分解:{“问题内容”: [“自行车是什么时候发明的”], “指令要求”: [“2000字详细说明”, “用英文回答”]}。
步骤2:多语言关键词推导
输入问题:“自行车是什么时候发明的”
信息转换:{“英文关键词”: [“bicycles”, “invention”, “timing”], “中文关键词”: [“自行车”, “发明”, “时间”]}。
步骤3:应用 BM25 关键词检索算法
通过 BM25 算法,对关键词进行高效的检索,以定位相关文档片段。
级别三:递进推理
面对多跳推理问题,比如:用户提问:“与贝多芬的第五交响曲创作于同一世纪的交通工具是什么?”大模型需要将问题分解为多个子问题来逐一解答:“贝多芬的第五交响曲是在哪个世纪创作的?”以及“自行车是在哪个世纪发明的?”
这一挑战可以通过以下步骤,利用工具调用(又称函数调用)智能体或 ReAct智能体来解决:
1. 向三级智能体(Lv3-Agent)提出原始问题。
2. 当三级智能体无法根据其现有记忆回答问题时,执行以下步骤:
a. 三级智能体生成一个新的子问题。
b. 三级智能体将这个子问题提交给二级智能体(Lv2-Agent)。
c. 将二级智能体的回答整合到三级智能体的记忆库中。
3. 重复上述过程,直到三级智能体能够回答原始问题。
4. 最终,三级智能体提供原始问题的解答。
参考:https://mp.weixin.qq.com/s/nwPaNEJzY55GQmhe8Bgakw
—5—
每日一大模型知识
—6—
加我微信
有很多企业级落地实战案例,不方便公开发公众号,我会直接分享在朋友圈,欢迎你扫码加我个人微信来看👇
⬇戳”阅读原文“,立即预约!
END