在大型语言模型(LLM)新时代到来之前,我们通常通过简单的微调来使用新数据扩展模型的能力。然而,如今模型规模越来越大,训练数据量也随之增加,仅仅依赖微调已经无法满足大部分场景的需求。微调虽然在调整模型的语气和风格方面表现出色,但在向模型添加大量新知识时,其效果就显得乏力了。
以 OpenAI 的 GPT-3.5-turbo 模型为例。如果我们输入'你能告诉我关于寒冷天气的帐篷吗'这样的问题,完成式模型可能会通过扩展提示回复:'以及任何其他寒冷天气的露营设备?'而聊天式模型则会给出一个更加人性化的回答:'当然!它们旨在承受低温、大风和雪…'在这种情况下,OpenAI 的重点不在于更新模型可以访问的知识库,而是改变了模型与用户交互的方式。对于这种调整模型风格和语气的任务,微调确实展现出了卓越的效果。
然而,对于向大型模型添加新知识这一更加常见的业务需求,微调的效果就显得乏善可陈了。此外,对 LLM 进行微调需要大量高质量的数据、可观的计算资源预算,以及漫长的训练时间等,这对于大多数用户来说都是稀缺资源,通常却无法满足。
因此,我们需要一种替代技术来高效地将新知识融入大型语言模型之中。幸运的是,由 Facebook AI Research(FAIR)及其合作者于 2021 年提出的'检索增强生成'(Retrieval Augmented Generation, RAG) 技术恰好能够解决这一难题。
1. 什么是 RAG(Retrieval Augmented Generation)?
RAG(Retrieval Augmented Generation,检索增强生成) 是一种创新技术,旨在通过融合外部知识源来提高生成式人工智能模型的准确性和可靠性。这种方法针对了大型语言模型(LLM)的一个固有缺陷:LLM 虽然擅长捕捉语言的统计模式,但缺乏对具体事实知识的深入理解。
事实上,在 LLM 的引擎盖下,其核心是基于深度神经网络,通常以巨大的参数量来衡量模型的能力。这些参数代表了人类使用语言构建句子的一般模式和规律,是对自然语言处理的参数化理解。正是这种深刻的、隐性的语言理解能力,使得 LLM 能够以惊人的速度流畅响应各种一般性提示。
然而,当用户希望深入了解某一当前主题、具体领域时,单纯依赖 LLM 内置的参数化知识就显得力有未逮了。毕竟,任何静态的模型和训练数据库都是有限的,无法涵盖所有最新、专业、细致入微的知识点。从而导致了 LLM 在处理某些特定查询时会给出不准确、不一致的响应,削弱了其可信赖性。
RAG 技术应运而生,旨在克服 LLM 固有的这一弱点。其核心思路是将 LLM 与外部知识源相结合,让模型不仅依赖内部参数化知识,还能够基于外部的最新权威知识进行响应和生成。
作为一种创新技术,虽然 RAG 在不同系统实现细节上可能有所差异,但在概念层面上,将 RAG 应用于基于 AI 的应用程序通常包括查询输入、检索、提示构建、响应生成以及反馈等核心步骤。通过上述步骤,RAG 技术巧妙地将 LLM 与外部知识源相结合,让模型不仅依赖内部的参数化语言理解能力,还能够基于检索到的最新权威知识进行综合推理和生成,从而显著提高了响应的准确性和信息丰富度。
值得一提的是,RAG 框架为用户提供了充分的定制空间。在实际应用中,开发者可以根据具体需求,选择不同的知识库数据源、检索算法和策略,从而进一步优化系统的检索质量和生成性能。同时,提示的构建形式和方法也可以根据具体场景进行优化,以最大程度地发挥 LLM 的潜力。
2. 大型语言模型中对 RAG 的需求
LLM(大型语言模型) 凭借其强大的表现能力赢得了广泛关注,但同时也暴露出了一些固有的缺陷。其中一个突出问题便是输出响应的一致性和可靠性有待提高。LLM 虽然对某些问题能够给出准确回答,但在面对其他问题时常常会搬空子、重复训练数据中的随机事实。造成这一现象的根本原因在于,LLM 更多是捕捉单词之间的统计关联关系,而无法真正理解语义内涵。
为了解决 LLM 响应中的不一致性,提升其可信赖程度,研究人员们开发了一种名为'检索增强生成'(Retrieval Augmented Generation, RAG) 的创新框架。RAG 的核心思路是通过结合外部知识源,来增强 LLM 生成响应的质量。这种方法不仅确保了 LLM 对最新、最可靠的事实知识拥有访问权限,还使得用户能够根据实际需求,对模型输出的准确性和可信度提出要求并进行验证。
通常情况下,RAG 框架的主要围绕以下两个核心要素进行活动开展:
1. 检索 - Retrieval
在这一步骤中,RAG 会基于用户的输入查询,从预先构建的知识库 (如维基百科、专业文献等) 中检索与之高度相关的文本片段。知识库的构建十分关键,需要包含最新、权威、专业的信息源,以确保检索质量。
2. 生成 - Generation
在获取相关文本后,RAG 将结合用户的原始查询与检索到的文本信息,喂入 LLM 模型进行综合处理和理解,最终生成满足用户需求的高质量响应输出。
通过上述两步的紧密结合,RAG 架构赋予了 LLM 获取外部知识的能力,从根本上解决了仅依赖内部训练数据导致的单一性和局限性问题。同时,RAG 也为用户提供了更多的可控性和定制空间,他们可以根据不同场景的需要,选择合适的知识库和检索策略,进一步优化模型的输出质量。
值得一提的是,RAG 作为一种创新框架,不仅能够提高 LLM 输出的一致性和可靠性,更重要的是为大型语言模型开辟了融入外部知识、不断学习进化的途径。在当前的人工智能发展阶段,如何使 LLM 超越静态知识库的限制,具备持续学习和知识累积的能力,是亟待解决的重大挑战之一。RAG 的出现为这一目标提供了有力支撑,开启了 LLM 向真正通用人工智能系统演进的新方向。
当前,基于 RAG 框架的研究和应用正在多个领域热火朝天地展开,包括智能问答系统、智能写作辅助、知识图谱构建等。越来越多的科技巨头和创业公司正在探索和实践将 RAG 融入其产品和服务的可能性。相信在不久的将来,RAG 及其变体必将成为增强 LLM 能力、推动人工智能发展的关键驱动力量之一。


