何时使用 RAG vs 微调

充分利用 LLM 的全部潜力需要在检索增强生成 (RAG) 和微调之间选择正确的技术。
让我们研究一下何时对 LLM、较小模型和预训练模型使用 RAG 与微调。我们将涵盖:
- LLM 和 RAG 的简要背景
- RAG 相对于微调 LLM 的优势
- 何时针对不同模型大小进行微调与 RAG
- 对预训练模型使用 RAG 和微调
- RAG 和微调的金融服务示例
- 实际考虑和建议
LLM 和 RAG 的背景
大型语言模型利用一种称为预训练的技术,在互联网、代码、社交媒体和书籍等海量文本数据集上进行训练。这使它们能够生成文本、回答问题、翻译语言等,而无需任何特定于任务的数据。然而,它们的知识仍然有限。
检索增强生成通过在生成文本之前从数据库中检索相关知识作为上下文来增强 LLM。例如,财务顾问 LLM 可以在建议财务建议之前检索客户的投资历史和个人资料。
检索增强结合了 LLM 理解语言的能力和领域特定数据库中的相关知识的优点。这使得 RAG 系统比普通的 LLM 更具知识性、一致性和安全性。
RAG 相对于微调 LLM 的优势
微调通过在特定领域的数据上训练预训练的 LLM,使其适应特定任务。例如,可以在金融文档上对预训练的 LLM 进行微调,以提高其金融知识。
然而,与检索增强相比,微调有几个缺点:
- 遗忘: 微调模型通常会忘记或失去预训练中的能力。例如,经过金融微调的 LLM 可能不再能很好地处理一般的会话任务。
- 训练数据依赖性: 性能完全依赖于可用训练数据的数量和质量。收集高质量的数据是昂贵的。
- 缺乏外部知识: 模型只知道其训练数据中的内容,缺乏现实世界的知识。
- 不可定制: 对微调模型的更改需要重新训练,这很昂贵。
相比之下,RAG 系统:
- 保留预训练中的能力,因为 LLM 本身没有被修改。
- 使用可定制的外部知识源(如数据库)来增强 LLM。
- 允许在不重新训练 LLM 的情况下更改知识源。
- 由于 LLM 未重新训练,因此数据要求较低。
因此,RAG 系统通常比微调获得更好的性能,同时保留了原始 LLM 的更多功能。
何时针对不同模型大小进行微调与 RAG
微调和 RAG 之间的选择取决于模型大小:
大型语言模型
对于像 GPT-4 这样具有数万亿参数的大型模型,RAG 通常比微调更可取:
- 保留预训练能力: 微调有忘记像对话、翻译、分析等需要 GPT-4 规模模型的能力的风险。
- 利用外部知识: GPT-4/Llama-2 缺乏世界知识,而 RAG 用外部数据库对其进行增强。
- 避免灾难性遗忘: 微调可能会损害 LLM 的多功能能力。
- 灵活的知识源: RAG 知识源可以在无需昂贵的重新训练的情况下进行更改。
除非微调任务与预训练非常相似或需要记忆,否则 RAG 更适合 LLM。
中型语言模型
对于像 Llama 2 7B、Falcon 7B、Alpaca 7B 这样具有数亿参数的中型模型,RAG 和微调都是可行的选择:
- 对于严重依赖记忆的目标,如文档问答,微调可能更可取。
- RAG 可以通过检索相关知识,在特定领域的生成或分类任务中发挥优势。
在选择时,评估保留中型 LLM 的全部通用知识对您的用例是否重要。
小型语言模型
对于像 Zephyr、Phi2 和 Orca 这样具有数千到数百万参数的较小自定义模型,微调通常比 RAG 更合适:
- 小型模型已经缺乏较大型模型的通用能力。
- 通过微调在特定领域的数据上训练它们,直接灌输知识。
- 灾难性遗忘的风险很小,因为它们的预训练很少。
- 需要时,用新数据重新训练小型模型很容易。
除非您特别需要保留知识的广度,否则微调小型模型比 RAG 更可取。
对预训练模型使用 RAG 和微调
RAG 和微调都是适用于调整预训练模型的策略——无论是像 BERT、ELMo、RoBERTa 这样的 LLM 还是较小的自定义模型。
对预训练模型使用 RAG
在以下情况下,将 RAG 应用于预训练模型是有效的:
- 利用通用知识 — 模型具有您希望保留的强大基础能力,如对话、分析等。
- 最小化遗忘 — 进一步的训练有损害多功能通用能力的风险。
- 利用外部知识 — 用检索到的特定领域知识进行增强是有价值的。
- 灵活的知识 — 知识需求经常变化,因此可交换的数据库比重新训练更可取。
例如,RAG 适合大型会话模型,以避免在用领域知识增强它们的同时忘记一般的聊天能力。
微调预训练模型
在以下情况下,微调对预训练模型是有利的:
- 专业化重点 — 最终任务严重依赖专业知识而不是通用能力。
- 记忆 — 记忆特定领域的数据,如客户资料,至关重要。
- 静态知识 — 知识要求相对固定,减少了对可交换数据库的需求。
- 模型尺寸小 — 对于较小的模型,微调可以直接注入知识,而不会有太大的灾难性遗忘风险。
例如,微调对于训练具有静态公司政策和响应的客户服务聊天机器人是有效的。
应用 RAG 和微调的示例
让我们考虑金融服务用例,它们在通用知识与特定领域知识需求方面有所不同——这影响了 RAG 与微调的选择。
投资管理与建议
提供定制的投资管理和财务建议需要强大的通用会话能力和特定领域的知识。
RAG 非常适合这些应用,通过:
- 用客户资料和投资数据增强像 GPT-4 这样的会话模型,以提供个性化建议。
- 检索市场数据、过去表现和研究,以生成明智的投资策略。
- 在不重新训练基础模型的情况下,频繁地用新的市场信息更新数据库。
微调有损害与客户有效沟通至关重要的通用会话能力的风险。
保险索赔处理
处理保险索赔主要涉及分析文档、提取关键信息、根据保单验证索赔以及生成索赔报告。
在这种用例中,对像 Llama 2 7B、Falcon 7B 这样的中型模型进行微调是合适的:
- 记忆保险单至关重要——通过微调比外部数据库处理得更好。
- 静态的保单和索赔数据体,而不是快速变化的知识。
- 专注于表单分析的特定领域任务,而不是通用的会话能力。
客户服务聊天机器人
处理金融服务客户服务的聊天机器人通常需要广泛的会话能力和公司特定的常见问题解答、政策和脚本的知识:
- 使用 RAG 进行一般闲聊和微调公司知识的组合方法效果很好。
- 在内部数据集上微调小型聊天机器人模型,以直接嵌入公司知识。
- 需要时,通过 RAG 检索适当的常见问题解答、帐户详细信息和脚本来增强。
这平衡了广泛的会话能力和深入的公司特定知识。
反洗钱文本分析
分析金融文档和客户数据以检测洗钱和金融犯罪,在很大程度上依赖于学习到的模式和领域术语:
- 鉴于专业化的重点,在 AML 数据上微调文本分类模型是有意义的。
- 关于法律、法规、可疑活动模式的静态知识。
- 通用的会话技能不太重要。
通过微调直接训练模型比 RAG 更适合这种专门的文本分析任务。
客户资料关键词提取
从客户文档和信函中提取相关关键词,如资产、财务目标、风险承受能力,需要基本的语言理解,而无需太多领域知识:
- 现成的 LLM 在这里表现良好,无需太多调整。
- 无需记忆领域术语或模式。
- 通用的语言能力提供了足够的信号。
- 对于这种通用任务,RAG 的优势微乎其微。
按原样使用现成的模型通常比广泛的微调或 RAG 效果更好。
RAG 和微调的关键实践考虑
- 访问 LLM — RAG 需要访问大型预训练模型。内部开发较小的自定义模型更容易实现。
- 数据可用性 — 微调需要大量的特定领域数据集。RAG 更依赖于外部知识源。
- 知识灵活性 — RAG 支持在不重新训练的情况下频繁更新知识。微调需要定期重新训练。
- 训练基础设施 — RAG 主要意味着选择和更新数据源。微调需要 GPU 进行高效训练。
- 推理速度 — RAG 检索步骤增加了推理延迟。微调模型是自包含的,因此可以更快。
- 通用能力 — RAG 保留了大型 LLM 的多功能性。微调以专业化换取通用性。
- 混合 — 许多应用程序对某些功能使用 RAG,对其他功能使用微调。为每个任务选择最佳方法。
比较 RAG 和微调的先进观点:
- 混合 RAG-微调方法 — 与其说是二元选择,不如说混合技术旨在结合两种方法的优点。例如,T0 部分微调 LLM 的某些层,同时保持其他层冻结以保留能力。
- 多阶段建模 — 一种有前途的方法是首先使用 RAG 进行检索,然后使用检索到的上下文来调节微调模型。这允许在专门化模型部分的同时灵活地结合外部知识。
- 动态 RAG 与静态微调 — RAG 允许在不重新训练的情况下动态更新知识源,而微调产生静态的专门模型。然而,像动态评估和持续学习这样的技术也旨在在线演进微调模型。
- 扩展定律 — 微调通常在模型大小的性能上达到递减的回报,而扩展 RAG 模型可能随着外部知识的结合而实现更一致的改进。这可能使 RAG 在开发大型模型方面更有效。
- 超个性化 — RAG 通过每个用户的不同知识促进个性化,而无需重新训练模型。微调需要从头开始训练每个用户的模型,限制了个性化。然而,像用于微调的模型无关元学习这样的方法可能会缓解这个问题。
- 灾难性遗忘缓解 — RAG 内在地避免了忘记预训练的能力。但是新的微调技术,如弹性权重固化、突触智能和 dropout 调度,也旨在减轻灾难性遗忘。
- 设备上部署 — 微调模型是完全自包含的,允许低延迟的设备上部署。结合知识检索使得在设备上完全部署 RAG 更具挑战性。然而,像将检索到的知识蒸馏到模型参数中的近似方法可能使得在设备上部署 RAG 系统成为可能。
- 理论与经验 — 理论上,RAG 应该通过结合人类知识来提高样本效率,优于微调。但经验结果好坏参半,通常显示出可比的性能。需要进一步的研究来实现 RAG 的理论收益。
探索它们的结合是最大化每种方法优势的有前途的途径。
关键建议
根据我们的分析,以下是一些最佳实践:
- 对于面向客户的应用程序,如顾问和聊天机器人,优先考虑使用 RAG 保留会话能力,而不是微调。谨慎地对必要的公司特定知识使用微调。
- 对于文档和文本分析任务,专门的微调模型通常优于 RAG。但对于像投资这样快速演变的分析,可以考虑 RAG。
- 即使在构建自定义模型时,也要保持对大型通用 LLM 的访问——RAG 使其能够从其通用能力中受益。
- 定期审计微调模型,以检查与初始训练数据相比的行为偏差。
- 评估结合专门微调模型和通用会话 RAG 模型的集成方法。
- 仔细选择 RAG 的外部知识源——相关性、准确性和道德规范决定了整个系统的性能。
- 对于客户数据和文档,仅检索必要部分而不是全文,以平衡相关性和隐私。
结论
选择像 RAG 或微调这样的正确技术对于最大化 LLM、较小模型和预训练系统在金融服务中的性能至关重要。考虑因素是复杂的——取决于模型大小、用例重点、基础设施限制、不断变化的知识需求等因素。混合 RAG 和微调通常是实现会话能力和领域专业知识的最佳选择。随着 LLM 和增强 AI 的发展,RAG 将变得更加突出——尽管在最适合的地方仍然会得到微调的补充。理解这些技术之间细微差别的公司将获得根据其独特需求定制的 AI 优势。