何时应用 RAG 与微调

充分发挥 LLM 的潜力需要在检索增强生成(RAG)和微调之间选择正确的技术。

让我们来看看何时对 LLM、较小的模型和预训练模型使用 RAG 与微调。我们将介绍:

  • LLM 和 RAG 的简要背景
  • RAG 相对于微调 LLM 的优势
  • 何时针对不同模型大小对 RAG 进行微调
  • 对预训练模型使用 RAG 和微调
  • RAG 和微调的金融服务示例
  • 实际考虑和建议

 

LLM 和 RAG 背景 

大型语言模型利用一种称为预训练的技术,对互联网、代码、社交媒体和书籍等大量文本数据集进行预训练。这使他们能够生成文本、回答问题、翻译语言等,而无需任何特定于任务的数据。然而,他们的知识仍然有限。

检索增强生成 (RAG) 通过在生成文本之前从数据库中检索相关知识作为上下文来增强 LLMs。例如,财务顾问 LLM 可以在提出财务建议之前检索客户的投资历史和概况。

检索增强结合了 LLMs 理解语言的能力与特定领域数据库中相关知识的优势。与普通的 LLMs 相比,这使得 RAG 系统知识更丰富、更一致、更安全。

RAG 相对于微调 LLM 的优势

微调通过针对特定领域的数据进行训练,使预训练的 LLM 适应特定任务。例如,经过预先培训的 LLM 可以根据财务文件进行微调,以提高其财务知识。

然而,与检索增强相比,微调有几个缺点:

  • 遗忘:微调后的模型经常会忘记或失去预训练的能力。例如,金融专业的 LLM 可能无法再很好地处理一般对话任务。
  • 训练数据依赖性:性能完全依赖于可用训练数据的数量和质量。收集高质量数据的成本很高。
  • 缺乏外部知识:模型只知道训练数据中的内容,缺乏现实世界的知识。
  • 不可定制:对微调模型的更改需要重新训练,这是昂贵的。

相比之下,RAG 系统:

  • 由于 LLM 本身没有修改,因此保留了预培训的能力。
  • 通过可定制的外部知识源(例如数据库)来增强 LLM。
  • 允许改变知识来源而无需重新培训 LLM。
  • 由于 LLM 无需重新培训,因此数据要求较低。

因此,RAG系统通常会获得比微调更好的性能,同时保留原始 LLM 的更多功能。

何时针对不同模型尺寸进行微调 vs RAG

微调和 RAG 之间的选择取决于模型大小:

大型语言模型

对于像 GPT-4 这样具有数万亿参数的大规模模型,RAG 通常比微调更可取:

  • 保留预训练能力:微调可能会导致忘记对话、翻译、分析等需要 GPT-4 规模模型的能力。
  • 利用外部知识: GPT-4/Llama-2 缺乏世界知识,而 RAG 通过外部数据库来增强它。
  • 避免灾难性遗忘:微调可能会损害 LLMS 的通用功能。
  • 灵活的知识源: RAG 知识源可以改变,无需昂贵的再培训。

除非微调任务与预训练非常相似或需要记忆,否则 RAG 更适合 LLMs。

中等大小语言模型

对于 Llama 2 7B、Falcon 7B、Alpaca 7B 等具有数亿参数的中型模型,RAG 和微调都是可行的选择:

  • 对于严重依赖记忆的目标(例如回答问题而不是文档)来说,微调可能是首选。
  • RAG 通过检索相关知识,有利于特定领域的生成或分类任务。

在选择时,评估保留中等大小 LLM 的完整常识对你的用例是否重要。

小语言模型

对于像 Zephyr、Phi2 和 Orca 这样具有数千到数百万个参数的小型定制模型,微调通常比 RAG 更合适:

  • 小型模型已经缺乏大型模型的一般功能。
  • 通过微调对特定领域的数据进行培训,可以直接灌输知识。
  • 由于他们的预训练很少,因此发生灾难性遗忘的风险很小。
  • 需要时可以轻松使用新数据重新训练小型模型。

除非你特别需要保留知识的广度,否则微调小模型比 RAG 更可取。

对预训练模型使用 RAG 和微调

RAG 和微调都是适应预训练模型的适用策略 —— 无论是像 BERT、ELMo、RoBERTa 这样的 LLMs 还是较小的定制模型。

用于预训练模型的 RAG

在以下情况下,将 RAG 应用于预训练模型是有效的:

  • 利用常识 —— 该模型具有你希望保留的强大的基础功能,例如对话、分析等。
  • 最大限度地减少遗忘 —— 进一步的培训可能会损害通用的一般能力。
  • 利用外部知识 —— 利用检索到的特定领域知识进行增强是有价值的。
  • 灵活的知识 —— 知识需求经常变化,因此可交换数据库比再培训更受青睐。

例如,RAG 适合大型会话模型,以避免忘记一般聊天功能,同时用领域知识来增强它们。

微调预训练模型

在以下情况下,微调对于预训练模型是有利的:

  • 专注于专业 —— 最终任务在很大程度上依赖于专业知识而不是一般能力。
  • 记忆 —— 记忆特定领域的数据(例如客户资料)至关重要。
  • 静态知识 —— 知识要求相对固定,减少了对可交换数据库的需求。
  • 小模型 —— 对于较小的模型,微调可以直接注入知识,而不会带来灾难性遗忘的太大风险。

例如,微调对于使用静态公司政策和响应来训练客户服务聊天机器人非常有效。

应用 RAG 和微调的示例

让我们考虑一下金融服务用例的一般知识与特定领域的知识需求的不同 —— 影响 RAG 与微调选择。

投资管理和建议

提供定制投资管理和财务建议需要强大的一般会话能力和特定领域的知识。

RAG 通过以下方式非常适合这些应用:

  • 使用客户资料和投资数据增强 GPT-4 等对话模型,以提供个性化建议。
  • 检索市场数据、过去的表现和研究以制定明智的投资策略。
  • 使用新的市场信息频繁更新数据库,而无需重新训练底层模型。

微调可能会损害与客户有效沟通至关重要的一般对话能力。

保险索赔处理

处理保险索赔主要涉及分析文件、提取关键信息、根据保单验证索赔以及生成索赔报告。

根据过去的索赔和保单对 Llama 2 7B、Falcon 7B 等中型模型进行微调适合此用例:

  • 记住保险单至关重要 —— 通过微调比外部数据库更好地处理。
  • 静态的保单和索赔数据与快速变化的知识。
  • 特定领域的任务侧重于表单分析与一般会话能力。

客户服务聊天机器人

处理金融服务客户服务的聊天机器人通常需要广泛的对话能力和公司特定常见问题解答、政策和脚本的知识:

  • 使用 RAG 进行一般闲聊和对公司知识进行微调的组合方法效果很好。
  • 在内部数据集上微调小型聊天机器人模型,以直接嵌入公司知识。
  • 通过在需要时检索适当的常见问题解答、帐户详细信息和脚本,通过 RAG 进行增强。

这平衡了广泛的对话能力和深入的公司特定知识。

反洗钱文本分析

分析金融文件和客户数据以检测洗钱和金融犯罪在很大程度上依赖于学习的模式和领域术语:

  • 考虑到专门的重点,对 AML 数据的文本分类模型进行微调是有意义的。
  • 法律、法规、可疑活动模式的静态知识。
  • 一般会话技巧不太重要。

通过微调直接训练模型比 RAG 更适合这种专门的文本分析任务。

客户资料关键词提取

从客户文档和信件中提取资产、财务目标、风险承受能力等相关关键字需要基本的语言理解,而无需太多领域知识:

  • 现成的 LLM 在这里可以很好地发挥作用,无需太多调整。
  • 无需记住领域术语或模式。
  • 一般语言能力提供了足够的信号。
  • 对于这种通用任务,RAG 的优势微乎其微。

按原样使用现成的模型通常比大量微调或 RAG 效果更好。

RAG 和微调的关键实际考虑因素

  • 访问 LLMs — RAG 需要访问大型预训练模型。内部开发较小的定制模型更容易。
  • 数据可用性 —— 微调需要大量特定领域的数据集。 RAG 更多地依赖外部知识源。
  • 知识灵活性 —— RAG 支持频繁更新的知识,无需重新培训。微调需要定期重新训练。
  • 培训基础设施 —— RAG 主要意味着选择和更新数据源。微调需要 GPU 来进行高效训练。
  • 推理速度 —— RAG 检索步骤增加了推理延迟。微调模型是独立的,因此速度更快。
  • 一般能力 —— RAG 保留了大型 LLMs 的多功能性。微调以通用性换取专业性。
  • 混合 —— 许多应用程序使用 RAG 来实现某些功能,并针对其他功能进行微调。针对每个任务选择最佳方法。

比较 RAG 和 Fine-tuning 的高级视角:

  • 混合 RAG 调整方法 —— 混合技术旨在结合两种方法的优点,而不是二元选择。例如,T0 对 LLM 的某些层进行部分微调,同时冻结其他层以保留能力。
  • 多阶段建模 —— 一种有前景的方法是首先使用 RAG 进行检索,然后使用检索到的上下文来调节微调模型。这允许灵活地合并外部知识,同时专门化模型的某些部分。
  • 动态 RAG 与静态微调 —— RAG 允许动态更新知识源而无需重新训练,而微调则生成静态专用模型。然而,动态评估和持续学习等技术也旨在在线发展微调模型。
  • 缩放法则 —— 微调通常会随着模型大小的增加而导致性能回报递减,而缩放 RAG 模型可能会随着外部知识的融入而实现更一致的改进。这可以使 RAG 更有效地开发大型模型。
  • 超个性化 —— RAG 通过每个用户的不同知识促进个性化,无需重新训练模型。微调需要从头开始训练每个用户的模型,从而限制个性化。然而,诸如模型无关元学习之类的微调方法可能会缓解这种情况。
  • 灾难性遗忘缓解 —— RAG 本质上避免了遗忘预先训练的功能。但弹性权重整合、突触智能(synapse intelligence)和丢失调度(dropout scheduling)等新的微调技术也旨在减轻灾难性遗忘。
  • 设备上部署 —— 经过微调的模型是完全独立的,允许低延迟的设备上部署。结合知识检索使设备上完整的 RAG 部署更具挑战性。然而,然而,诸如将检索到的知识压缩成模型参数的近似方法可能使得在设备上部署 RAG 系统成为可能。
  • 理论与经验 —— 理论上,RAG 应该通过结合人类知识来提高样本效率,而不是微调。但实证结果好坏参半,通常表现出可比的表现。

    需要进一步的研究来实现RAG的理论收益。

探索它们的组合是最大限度地发挥每种方法优势的一条有前途的途径。

主要建议

根据我们的分析,以下是一些最佳实践:

  • 对于顾问和聊天机器人等面向客户的应用程序,优先考虑使用 RAG 保留对话功能而不是微调。对于特定于公司的重要知识,请谨慎使用微调。
  • 对于文档和文本分析任务,专门的微调模型通常优于 RAG。但考虑 RAG 来进行快速发展的分析,例如投资。
  • 即使构建定制模型,也能保持对大型通用 LLMs 的访问权 —— RAG 可以从他们的通用能力中受益。
  • 定期审核微调模型,以检查与初始训练数据相比是否存在与期望行为的偏差。
  • 评估将专门的微调模型与一般会话 RAG 模型相结合的集成方法。
  • 仔细选择 RAG 的外部知识源 — 相关性、准确性和伦理性决定整体系统性能。
  • 对于客户数据和文档,仅检索必要部分而不是全文,以平衡相关性和隐私性。

结论

选择 RAG 或微调等正确的技术对于最大限度地提高 LLMs、小型模型和金融服务预训练系统的性能至关重要。这些考虑因素很复杂 —— 取决于模型大小、用例重点、基础设施限制、不断变化的知识需求等因素。混合 RAG 和微调通常是实现对话能力和领域专业知识的最佳选择。随着 LLMs 和增强型人工智能的进步,RAG 将变得更加突出 —— 尽管仍然通过在最适合的地方进行微调来补充。了解这些技术之间细微差别的公司将获得根据其独特需求定制的人工智能优势。

谷歌 Rust 团队工作效率是 C++ 团队的两倍 知名开源前端框架「威优易」,你们学吗? 阿里云:以后公司 20% 代码由通义灵码编写 用 Vue 全家桶纯手工搓了一个开源版「抖音」,高仿度接近 100% 某开源公司实习生上班时间向其他开源项目提交 PR,CEO 发现后要求关闭 OpenAI全网疯传的53页PDF文档:计划2027年前开发出通用人工智能 Bun 1.1 版本震撼发布,Windows 支持来了 近万台龙芯 3A5000 电脑走进中小学课堂 mac 苹果芯片运行 Asahi,最强 Linux,终极 ARM64 Linux 工作站 华为已撤回“遥遥领先”商标申请
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/3343882/blog/11050625