Claude
和 GPT-4o
等大型语言模型 (LLM) 功能强大,但也面临两个主要限制:它们包含的知识是时效性的(更具体地说,是在训练时点固定的),并且决定它们一次可以处理多少信息的上下文窗口是有限的。
检索增强生成 (Retrieval-AugmentedGeneration, RAG) 和 模型上下文协议 (Model Context Protocol, MCP) 是两种可以解决这些限制的方法。在本文中,我们将简短概述这两种方法的工作原理,以及区分它们的一些差异。
RAG 是一种增强大型语言模型 (LLM) 的技术,它通过整合一个单独的检索系统,在模型生成响应之前从外部来源收集相关信息。RAG 的工作流程简单来说主要包括三个步骤:
这种方法弥合了静态的预训练知识与动态的信息检索系统之间的差距。
RAG 的主要优势
"高数期末考试是什么时候?"
如果使用 RAG 实现,系统将:
a) 处理这个查询
b) 从大学数据库中检索当前学期的考试时间表
c) 将此信息连同查询一起提供给大型语言模型 (LLM)
然后,大型语言模型 (LLM) 将生成包含最新信息的准确回复:
"高数期末考试安排在 12 月 15 日下午 2:00,地点在B教学楼"
RAG 允许系统访问最新的信息和专业知识,而无需重新训练模型。
模型上下文协议 (MCP) 使用不同的方法来扩展人工智能 (AI) 的能力。虽然 RAG 侧重于在生成之前进行检索,但 MCP 为大型语言模型 (LLM) 提供了一个标准化的接口,以便在生成过程中请求额外信息或执行操作,这里和RAG是区别性比较多的,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 进行特定的工具使用和动态信息检索。 当我们开始开发大模型应用程序时,请考虑哪种方法,或两种方法的结合更适合我们的特定用例。