何时对大、中、小型模型选择微调还是 RAG

生成式 AI 有潜力彻底改变您的业务和数据工程团队,但前提是必须做得正确。那么,您的数据团队如何才能真正通过 LLM 或 GenAI 项目创造价值?

领先组织通常会在两种新兴框架之间做出决策,以区分其 AI 带来的业务价值:RAG 与微调。

检索增强生成(RAG)与微调有什么区别?您的组织应该在什么情况下选择 RAG 与微调?是否应该同时使用两者?

我们将深入探讨 RAG 与微调的基础知识、各自的最佳使用场景、优势以及几个真实用例,帮助你入门。

什么是检索增强生成(RAG)?

检索增强生成(RAG)是 Meta 于 2020 年提出[1]的一种架构框架,它将你的大语言模型(LLM)连接到一个经过策划、动态更新的数据库。通过让 LLM 获取并整合最新的可靠信息到其回答和推理过程中,从而提升其输出质量。

RAG 的开发是一个复杂的过程,并非孤立存在。它可能涉及提示工程、Pinecone[2] 这类向量数据库、嵌入向量和语义层、数据建模、数据编排以及数据管道——所有这些都针对 RAG 量身定制。

以下是 RAG 流程的工作原理:

  • 查询处理: 当用户向系统提交查询时,流程开始。此查询是 RAG 链检索机制的起始点。

  • 数据检索: 根据查询,RAG 系统搜索数据库以查找相关数据。此步骤涉及复杂算法,将查询与数据库中最合适且上下文相关的信息匹配。

  • 与 LLM 集成: 一旦检索到相关数据,就将其与用户初始查询合并,并输入 LLM。

  • 响应生成: 利用 LLM 的能力和检索数据提供的上下文,系统生成不仅准确而且针对查询特定上下文量身定制的响应。

因此,为你的数据团队开发 RAG 架构是一项复杂的工程,需要构建数据管道来提供能够增强 LLM 的专有上下文数据。但如果实施得当,RAG 能为 AI 驱动的数据产品带来巨大价值。

什么是微调?

微调是一种替代性的生成式 AI 开发方法,它使用规模更小、更专门且已标注的数据集对 LLM 进行训练,并根据新数据调整模型的参数和嵌入。

在企业级 AI 的背景下,RAG 与微调的最终目标一致:从 AI 模型中创造更大的业务价值。但与通过访问专有数据库来增强现有 LLM 的方式不同,微调通过深入调整模型本身,使其适配特定领域。

微调使用规模更小、更专门且已标注的数据集对 LLM 进行训练,并根据新数据调整模型的参数和嵌入。通过让模型对齐细分领域的细微差别和术语,微调能帮助模型在特定任务上表现更优。

要充分发挥 LLMs 的全部潜力,需要在检索增强生成(RAG)和微调之间选择合适的技术。

我们来探讨何时对 LLMs、较小模型和预训练模型使用 RAG 而非微调。我们将涵盖:

  • LLMs 和 RAG 的简要背景

  • RAG 相对于微调 LLMs 的优势

  • 何时根据不同模型规模选择微调还是 RAG

  • 在预训练模型上使用 RAG 与微调

  • 金融服务领域中的 RAG 与微调示例

  • 实际考量与建议

关于 LLMs 和 RAG 的背景

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

检索增强生成通过从数据库中检索相关知识作为上下文,然后再生成文本,从而增强 LLMs。例如,一个金融顾问 LLM 可以在提出理财建议之前,检索客户的投资历史和档案。

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

RAG 相比微调 LLMs 的优势

微调通过使用领域特定数据训练,使预训练 LLM 适应特定任务。例如,可以用金融文档对预训练 LLM 进行微调,以提升其金融知识。

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

  • 遗忘: 经过微调的模型通常会遗忘或失去预训练中的能力。例如,一个经过金融领域微调的 LLM 可能再也无法很好地处理一般对话任务。

  • 训练数据依赖性: 性能完全依赖于可用训练数据的数量和质量。收集高质量数据成本高昂。

  • 缺乏外部知识: 模型只知道其训练数据中的内容,缺乏现实世界的知识。

  • 不可定制: 对微调模型进行任何更改都需要重新训练,代价高昂。

相比之下,RAG 系统:

  • 保留了预训练的能力,因为 LLM 本身没有被修改。

  • 通过可定制的外部知识源(如数据库)来增强 LLM。

  • 允许在不重新训练 LLM 的情况下更换知识来源。

  • 由于无需重新训练 LLM,对数据的需求更低。

因此,RAG 系统通常在保留原始 LLM 更多能力的同时,性能也优于微调。

何时对大、中、小型模型选择微调还是 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 与微调的高级视角比较:

  • 混合 RAG-微调方法 —— 与其做非此即彼的选择,混合技术旨在将两者的优势结合起来。例如,T0 会对 LLM 的某些层进行部分微调,同时冻结其他层以保留原有能力。

  • 多阶段建模 —— 一种颇具前景的做法是先通过 RAG 进行检索,然后利用检索到的上下文来条件化一个已微调的模型。这样既灵活地整合了外部知识,又实现了对模型部分模块的专门化。

  • 动态 RAG 与静态微调 —— RAG 无需重新训练即可动态更新知识源,而微调则生成静态的专用模型。然而,诸如动态评估和持续学习等技术也正尝试让微调后的模型在线演进。

  • 扩展规律 — 随着模型规模增大,微调的性能回报往往递减,而扩展 RAG 模型通过在模型中引入外部知识,可能带来更持续的改进。这使得 RAG 在开发大型模型时更具优势。

  • 超个性化 — RAG 可通过为不同用户提供不同知识来实现个性化,而无需重新训练模型。微调则需要为每位用户从头训练专属模型,限制了个性化规模。不过,像模型无关元学习这样的微调方法有望缓解这一问题。

  • 灾难性遗忘的缓解 — RAG 天然避免了预训练能力的遗忘。然而,新的微调技术,如弹性权重巩固、突触智能和 dropout 调度,也在致力于缓解灾难性遗忘。

  • 设备端部署 ——经过微调后的模型完全自给自足,可实现低延迟的设备端部署。若加入知识检索,则完整的 RAG 系统要在设备端落地会更加困难。然而,通过蒸馏将检索到的知识压缩进模型参数等近似方法,仍有可能在设备端部署 RAG 系统。

  • 理论 vs 实证 ——理论上,RAG 通过引入人类知识应能比微调提高样本效率。但实证结果好坏参半,往往显示二者表现相近。尚需进一步研究才能兑现 RAG 的理论优势。

探索两者的结合是最大化各自优势的有前景之路。

关键建议

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

  • 对于面向客户的应用(如顾问和聊天机器人),应优先使用 RAG 来保持对话能力,而非微调。仅在涉及核心企业知识时才谨慎使用微调。

  • 在文档和文本分析任务中,经过专门微调的模型通常优于 RAG。但对于快速变化的分析场景(如投资),可考虑使用 RAG。

  • 即使构建自定义模型,也要保留对大型通用 LLMs 的访问权限——RAG 能让你受益于它们的通用能力。

  • 定期审计微调模型,检查其行为是否偏离初始训练数据所期望的表现。

  • 评估将经过专门微调的模型与一般性对话 RAG 模型相结合的集成方法。

  • 为 RAG 精心挑选外部知识源——相关性、准确性和伦理性共同决定了系统整体表现。

  • 对于客户数据和文档,仅检索必要片段而非全文,以在相关性与隐私之间取得平衡。

结论

选择 RAG 或微调等合适技术对于最大化 LLMs、较小模型以及预训练系统在金融服务中的性能至关重要。需考虑的因素错综复杂——取决于模型规模、用例侧重、基础设施约束、知识更新需求等。将 RAG 与微调融合通常能实现对话能力与领域专长的双赢。随着 LLMs 与增强式 AI 的发展,RAG 将愈发突出——但在最契合的场景仍由微调作为补充。理解这些技术差异的企业,将在满足自身独特需求的 AI 竞争中占得先机。

  如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。 

 这份《LLM项目+学习笔记+电子书籍+学习视频》已经整理好,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方二维码免费领取【保证100%免费】👇👇

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。


1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值