自检索增强生成(RAG)技术成为讨论热点以来,人们一直在思考是否需要在自己的数据上微调人工智能模型。由于这两种方法都是为了用新数据改善大型语言模型(LLM)的知识,因此了解何时使用哪种方法至关重要。
大多数人认为,在尝试检索更多信息和进行关键词搜索时,RAG更有意义,这确实没错。问题在于,与预训练相比,RAG并没有大幅减少对高性能计算的需求,但它仍然是一个更经济的选择。
专家怎么说?
微软在农业领域进行的一项案例研究中发表了一篇研究论文,比较了这两种技术。尽管在检索阶段计算强度较高,但RAG在需要深刻理解上下文的任务中表现出色。
微软的另一篇研究论文指出,在知识注入方面,RAG是一个更可靠的选择,而在使用合成数据时,微调在简洁性和输入风格方面表现更佳。
RAG会浏览庞大的数据集以提取相关的上下文或事实。这个上下文仓库随后会告知序列到序列模型,从而丰富和提高生成输出的相关性。尽管在检索阶段计算强度较高,但RAG在需要深刻理解上下文的任务中表现尤为出色。
微调同样需要大量的计算资源,尤其是在对复杂模型进行微调或从头开始微调时。
速度与延迟:由于RAG是一个两步过程,因此其延迟略高于微调,但在需要深入上下文理解的任务中表现优异。这使得微调成为聊天机器人等实时应用的理想选择。
可扩展性:RAG的生成组件是可扩展的;然而,检索组件可能需要大量的计算资源。
性能指标:RAG在准确性和上下文丰富性方面表现突出,尤其是在需要外部信息的复杂任务中。另一方面,微调在特定任务中通常表现出更好的性能,这在准确率和F1分数等指标中得以体现。
RAG真的比微调更好吗?
Pascal Biese表示,微调仍然是一个选择,但从效率的角度来看,RAG可能是一个更好的选择。“虽然这两种方法都显著提高了问答任务中特定信息处理的能力,但RAG领先,微调紧随其后。”他说。
选择RAG还是微调,取决于应用的具体需求。外部数据的获取、行为修改的需求以及标记训练数据的动态变化等因素在决策过程中起着关键作用。但正如专家们所相信的,随着时间的推移,RAG在各种大型语言模型应用中正逐渐超越微调。
首先,访问广泛的外部知识库可以产生更准确的响应。其次,融入事实性的外部信息可以减少生成响应中的错误,降低幻觉和偏见。第三,RAG能够轻松适应不断变化的信息,使其成为需要最新知识的任务的理想选择。此外,能够追溯到引用知识源的响应提高了可解释性和透明度,有助于质量保证。
RAG系统的用例包括访问当前的医学文档,帮助专业人员进行准确的诊断和治疗建议。此外,RAG模型还加速了法律文书的分析,提高了法律流程中的准确性和效率,这些都是RAG的一些用例。
另一方面,微调可以针对特定任务优化大型语言模型(LLM)的性能,例如:
微调增强了LLM在各种应用中的能力。它提高了情感分析的准确性,通过增强对文本语气和情感的理解,有助于准确分析客户反馈。此外,微调还使LLM能够识别特定领域文本中的专用实体,从而改进数据结构。更重要的是,微调能够根据用户偏好定制内容建议,促进用户参与。
谈到GPT-3.5的定价时,Santiago表示:“99%的用例需要RAG,而不是微调”,因为模型的微调成本更高,而且两者的用途不同。
前进的最佳方式
很多人表示RAG将使微调变得过时。但这些人也是之前宣称推出具有更大上下文窗口的LLM(如Claude-3)将使RAG变得过时的人。然而,这两者仍然并存,作为可行的替代方案。
在选择RAG和微调之间时,需要考虑的因素包括动态与静态性能、架构、训练数据、模型定制、幻觉现象、准确性、透明度、成本和复杂性等。混合模型结合了这两种方法的优势,可能为未来的进步铺平道路。然而,它们的实现需要克服一些挑战,如计算负载和架构复杂性。
虽然微调仍然是特定任务的可行选择,但RAG通常提供更全面的解决方案。通过仔细考虑细微差别和上下文要求,利用RAG并通过提示工程进行增强,已成为一种有前景的范式。