Claude
和GPT-4o
等大型语言模型 (LLM) 功能强大,但也面临两个主要限制:它们包含的知识是时效性的 (更具体地说,是在训练时点固定的),并且决定它们一次可以处理多少信息的上下文窗口 是有限的。
检索增强生成 (Retrieval-AugmentedGeneration, RAG) 和模型上下文协议 (Model Context Protocol, MCP) 是两种可以解决这些限制的方法。在本文中,我们将简短概述这两种方法的工作原理,以及区分它们的一些差异。
检索增强生成 (RAG)
RAG 是一种增强大型语言模型 (LLM) 的技术,它通过整合一个单独的检索系统,在模型生成响应之前从外部来源收集相关信息。RAG 的工作流程简单来说主要包括三个步骤:
- 查询处理 :处理用户的查询,以识别关键信息需求。
- 检索 :从外部数据库或知识库中获取相关的文档或信息片段。
- 增强生成 :将检索到的文档添加到大型语言模型 (LLM) 的上下文窗口中,然后模型基于其预训练知识和收集到的信息生成响应。
这种方法弥合了静态的预训练知识与动态的信息检索系统之间的差距。
RAG 模型图
RAG 的主要优势
- 增强准确性 :提供基于事实的、最新的信息
- 减少幻觉 :利用知识库中的信息
- 可定制的知识 :从特定领域来源获取知识
- 透明度 :通过来源提供引用想象一下一个大学聊天机器人,学生向它提问:
"高数期末考试是什么时候?"
如果使用 RAG 实现,系统将:
a) 处理这个查询
b) 从大学数据库中检索当前学期的考试时间表
c) 将此信息连同查询一起提供给大型语言模型 (LLM)
然后,大型语言模型 (LLM) 将生成包含最新信息的准确回复:
"高数期末考试安排在 12 月 15 日下午 2:00,地点在B教学楼"
RAG 允许系统访问最新的信息和专业知识,而无需重新训练模型。
模型上下文协议 (MCP)
模型上下文协议 (MCP) 使用不同的方法来扩展人工智能 (AI) 的能力。虽然 RAG 侧重于在生成之前 进行检索,但 MCP 为大型语言模型 (LLM) 提供了一个标准化的接口,以便在生成过程中 请求额外信息或执行操作,这里和RAG是区别性比较多的,MCP大致就是大模型变生成变调用外部能力。MCP 的工作原理如下:
- 识别 :模型识别出何时需要额外的信息或工具。
- 协议执行 :按照预定义的协议,模型输出一个结构化的请求。
- 外部处理 :外部系统处理此请求,以获取数据或执行操作。
- 持续生成 :模型整合结果并继续生成响应。
MCP 模型图
MCP 的主要优势
- 上下文优化 :最大限度地利用有限的上下文窗口
- 结构化信息 :使用模型更容易理解的模式和格式
- 信息层级 :优先考虑任务的关键信息
- 一致性 :为可预测的模型行为提供标准化的格式
- 性能提升 :在相同的上下文大小下实现更好的推理
当处理需要多个信息来源,但又必须在模型上下文窗口容量限制内运行的复杂任务时,MCP 尤其有价值。
使用通过 MCP 实现的大学聊天机器人场景,当学生询问 高数 考试时:
a) 模型识别出它需要当前的考试时间表
b) 它生成一个结构化的 MCP 调用:
{action: "fetch\_exam\_schedule", course: "高数", semester: "current"}
c) 外部系统处理此调用并返回考试详情
模型将此信息整合到响应中:"高数期末考试在 12 月 15 日下午 2:00,地点在 B教学楼"
结论
RAG 和 MCP 都是扩展人工智能 (AI) 能力的强大方法,它们都超越了模型最初训练时的局限性。RAG 通常更容易实现,并且非常适合直接的信息检索。MCP 为需要各种工具和数据源的复杂、多步骤任务提供了更大的灵活性。
在实践中,许多先进的AIGC系统开始结合这两种方法的元素——使用 RAG 进行广泛的知识访问,而使用 MCP 进行特定的工具使用和动态信息检索。 当我们开始开发大模型应用程序时,请考虑哪种方法,或两种方法的结合更适合我们的特定用例。
添加微信,备注” LLM “进入大模型技术交流群
如果你觉得这篇文章对你有帮助,别忘了点个赞、送个喜欢
/ 作者:致Great
/ 作者:欢迎转载,标注来源即可