内容摘要
本视频是"人人皆可用的生成式 AI"课程第二周第六讲,核心内容是**微调(Fine-tuning)**技术的原理、典型用途和成本概览。吴恩达将微调与 RAG 进行对比:RAG 通过向提示词中注入信息来扩展 LLM 能力,而微调则通过让 LLM 在较小的精选数据集上"再学习"来改变模型本身的输出行为。本讲详细梳理了微调的三大核心应用场景,并在结尾初步介绍了比微调更昂贵的预训练(Pre-training),为下一讲做铺垫。
核心观点
-
微调与 RAG 的本质区别:改变提示词 vs 改变模型
RAG 是在不改变模型的前提下,通过向提示词中注入相关信息来让 LLM "看到"更多内容。微调则不同——它是让 LLM 在新数据上进一步训练,实际上改变了模型的参数。微调特别适合以下两种情境:当信息量超出上下文窗口限制时,以及当你需要 LLM 以特定风格输出文本时。 -
预训练(Pre-training)是基础,微调是在其之上的"再学习"
LLM 的标准训练流程是:先在数百亿乃至超过万亿个词的互联网文本上进行预训练,学会预测下一个词;然后可以在一个相对小得多的精选数据集(一万到一百万词)上进行微调,改变输出风格或注入特定领域知识。微调的关键优势在于:即使只用相对少量的数据,也能显著改变一个已经在海量数据上预训练过的 LLM 的输出。 -
微调用途一:难以用提示词描述的任务风格
有些任务很难用文字指令精确定义。例如:- 写摘要的特定格式(如客服通话摘要需要包含"产品型号 MK4127-KX3、客户编号 542、问题:屏幕损坏"等具体要素)
- 模仿特定人物的说话风格(课程组的 Tommy Nelson 尝试用微调让 LLM 模仿吴恩达的表达方式,效果明显优于通过提示词描述)
-
微调用途二:让 LLM 获取专业领域知识
医疗记录(充满缩写如"PT c/o SOB")、法律文件(充满"hereof"等古雅用语)、金融文件——这些都是普通英语之外的专业语言。将 LLM 在这类文档上进行微调,可以让它真正掌握该领域的语言模式,从而构建更准确的医疗、法律、金融专业应用。 -
微调用途三:用小模型替代大模型,降低延迟和成本
对于简单任务(如餐厅评论情感分析),一个 10 亿参数的小模型完全够用,不需要动用 1000 亿参数的大模型。但小模型"不够聪明"。解决方案:先用大模型生成高质量的训练样例,再用这些样例微调小模型——这样小模型就可以在笔记本电脑或手机上运行,延迟低、成本低。
关键收获
💡 收获 1:微调解决了 RAG 解决不了的问题——输入窗口溢出和风格模仿
RAG 受限于提示词的输入长度;当你的知识库远大于上下文窗口时,RAG 无法完整注入。微调让 LLM 把知识"内化"进参数,绕过了这一限制。此外,对于"用某人的口吻说话"这类难以用语言描述的风格要求,微调也是比提示词更精准的工具。
💡 收获 2:微调的数据量要求远低于预训练——几百到几千个样本就能起效
在已经经过数千亿词预训练的基础上,微调只需要几百甚至几千个精心标注的样例,就能显著改变 LLM 的输出行为。这使得企业自己准备微调数据集变得可行,而不需要像预训练那样海量数据。
💡 收获 3:专业领域语言≠普通英语,微调是最有效的"语言适配"手段
医疗、法律、金融领域都有其特定的语言体系,这些与 LLM 在公开互联网上学到的普通英语差距巨大。通过在领域专用文档上微调,LLM 能真正"学会"读写这类文本,而不只是泛泛应付。
💡 收获 4:RAG vs 微调的成本对比——从几乎免费到几十至几百美元
RAG 本质上只是修改提示词,几乎不增加额外成本。微调需要让模型在新数据上训练,起步成本约几十到几百美元(取决于数据量和模型大小)。对于大多数应用,先尝试 RAG,不够再考虑微调,是合理的决策路径。
💡 收获 5:小模型 + 微调 = 兼顾性能与效率的中间路线
大模型(100B+参数)能力强但延迟高、成本高,且通常需要专用 GPU 服务器,无法在笔记本或手机上直接运行。通过微调将任务"蒸馏"到小模型(~1B参数)中,可以显著降低部署成本,同时保持任务所需的性能水平。
重要引述
"It turns out that if you take an LLM that has been pre-trained on hundreds of billions of words and fine-tune it on just an additional, say, 10,000 words — fine-tuning to this relatively modest-sized dataset can shift the output of your LLM."
(事实证明,如果你把一个已经在数千亿词上预训练过的 LLM,再在额外的大约 1 万个词上微调——仅在这个相对小规模数据集上的微调,就能改变你的 LLM 的输出。)
"Fine-tuning turns out to be a more effective way to get an LLM to speak in a certain style."
(事实证明,微调是让 LLM 以特定风格说话的更有效方式。)
"RAG and fine-tuning are both relatively cheap to implement — RAG is just modifications of your prompt, and fine-tuning you might be able to get started with tens of dollars or maybe low hundreds of dollars."
(RAG 和微调的实现成本都相对较低——RAG 只是修改提示词,微调你可能只需要几十或一百多美元就能起步。)
总体结论
本讲系统地解释了微调的工作原理和三大核心应用场景,并将其与 RAG 和预训练进行了清晰的对比定位。微调的本质是:在一个已经拥有丰富基础知识的预训练模型上,用少量精选数据进行"精准再学习",从而改变输出风格、注入领域知识或让小模型胜任大模型的任务。从成本角度看:RAG(几乎免费)< 微调(几十至几百美元)< 预训练(极其昂贵,只有大型科技公司才能负担)。对于绝大多数企业 GenAI 项目,先尝试提示词工程,若不够则考虑 RAG,若仍不够再考虑微调——这是吴恩达在本讲隐含的技术决策框架。
逐字稿(中文翻译)
RAG 给了你一种向大语言模型提供额外信息的方法,但还有另一种叫做"微调"(Fine-tuning)的技术,它是另一种提供更多信息的方式。特别是当你有的上下文信息量超过了 LLM 输入上下文窗口所能容纳的长度时,微调提供了另一种让 LLM 吸收这些信息的途径。此外,微调还能有效地让 LLM 以特定风格输出文本。不过,微调的实际实现比 RAG 稍微复杂一些。我们来看看。
假设你有一个 LLM,按照我们之前描述的方式训练——在互联网上发现的句子上进行训练,比如"我最喜欢的食物是带奶油芝士的百吉饼",然后它可能已经从数千亿词,甚至超过万亿词的数据中学习了预测下一个词的能力。这样的 LLM 将已经学会生成听起来像互联网内容的文本。这个在大量数据上训练大语言模型的过程通常被称为"预训练"。
现在假设我想修改这个 LLM,让它对一切事物都保持"无懈可击的积极乐观态度"。有一种叫做"微调"的技术,我们可以用它来让 LLM 进行一点点额外的学习,从而改变其输出——在这个例子中,是变得更加积极和乐观。
要对 LLM 进行微调,我们需要准备一组具有积极乐观态度的句子或文本,比如"多么美妙的巧克力蛋糕"或"这部小说令人心潮澎湃"。有了这样的文本,你就可以创建一个额外的数据集:对于"多么美妙的巧克力",模型接下来要预测的词是"蛋糕";"多么"→"美妙";"多么美妙"→"巧克力"……以此类推。
事实证明,如果你把一个已经在数千亿词上预训练过的 LLM,再在额外的、大约只有 1 万词的数据(或者如果有更多数据,可以是 10 万词,甚至 100 万词)上进行微调,仅在这个相对小规模数据集上的微调,就能将你的 LLM 的输出风格转变为具有这种积极乐观的态度。
当然,让 LLM 保持"无懈可击的积极态度"也许不是特别有用的应用,但微调在很多真实应用中都有用武之地。
微调的第一大类应用:任务很难在提示词中精确定义。例如,如果你想用 LLM 来总结客户服务通话,一个通用的 LLM 可能会这样总结:"客户向客服人员反映了一个显示器问题"。但如果你经营一个客户服务中心,你可能需要它生成更具体的内容——"型号 MK4127-KX3 被客户 542 报告为损坏"等等。如果你创建一个数据集,里面有几百个由人类专家撰写的这种特定风格的摘要,然后让一个已经从数千亿词的互联网数据中学习了大量通用知识的 LLM,额外在这几百个精心撰写的特定风格摘要上进行微调,这就会将 LLM 写摘要的能力转向你想要的那种风格——而这种特定风格的摘要其实很难在文本提示词中精确定义,也许你可以做到,但微调会是一种更精确的方式来告诉 LLM 你想要什么样的摘要。
另一个任务不容易用提示词定义的例子是:你想模仿特定的写作或说话风格。课程组的 Tommy Nelson,他一直在与我合作这门课程,实际上尝试(半开玩笑地)让 LLM 听起来像我说话。事实证明,个人的说话方式很难用提示词来描述——我是说,你怎么给别人清晰的指令,让他们听起来像我呢?所以如果你用提示词驱动一个通用 LLM,要求它听起来像我,你会得到这样的文本——我认为这听起来并不太像我。但如果你把大量我实际说话的文字记录提供给一个 LLM,让它通过微调来真正学习听起来像我,通过学习我的实际用语,然后再让它写一些听起来像我的内容,结果就像这样——这听起来更像我会说的话了。
模仿特定的写作或说话风格之所以很难通过提示词实现,是因为很难通过写文字说明来描述一个特定人物的风格;所以微调是让 LLM 以特定风格说话的更有效方式。如果你在构建一个虚构角色——也许是一个卡通人物——微调也可以是让 LLM 以特定风格说话的一种方式。
微调的第二大类应用:帮助 LLM 获取某个特定领域的知识。例如,如果你想让 LLM 能够读取和处理医疗记录——这就是医生写的关于病人的医疗记录的样子:"PT c/o SOB"(患者主诉呼吸急促)、"DOE"(劳累性呼吸困难)、"PE"(体格检查结果)……这真的不是普通英语。如果你把一个在普通英语上训练的 LLM 拿来,它不会很擅长处理这样的文本。所以如果你在医疗记录的集合上对 LLM 进行微调,LLM 就能更好地吸收这个关于医疗记录是什么样子的知识体系,然后你就可以在此基础上构建其他应用,更好地理解医疗记录。
法律文件也一样——这是律师为律师写的一段法律文书,对非律师来说很难阅读:"……第 2(A)(3) 条授予非排他性权利……在本协议生效之日起 15 日内……"——我不知道你怎么想,但我在日常说话中根本不用"hereof"("本协议项下的")这个词,这就是法律文件的语言风格。如果你想让 LLM 获得关于如何阅读和理解法律文件的知识体系,那么把 LLM 在法律文件上进行微调,就能帮助它获取这一知识体系。同理,金融文件也是如此——在大量金融文件上微调 LLM,会帮助它更好地获取关于金融领域的知识,使它在处理这类文件的应用中表现更好。
微调的第三大应用原因:让一个更小、成本更低的模型来完成此前可能需要更大模型才能完成的任务。我们本周稍后会讨论选择大模型还是小模型的利弊,但对于某些需要大量知识或复杂推理的应用,你可能会使用一个相对较大的模型,比如超过 1000 亿参数。但使用这样的模型,其延迟可能相当高——也就是说,你发出提示词之后,可能需要等待一段时间才能得到回应;如果你在自己的电脑上部署,成本也相当高。尽管我们在之前的视频中说这些模型的成本并不高,但你可能还是希望它更便宜一些——因为一个 1000 亿参数的模型可能需要专用的 GPU 服务器或其他高速计算机才能运行,你很难在普通笔记本电脑或 PC 上运行这样的大模型,更别说今天的智能手机了。
但如果你能让你的应用在小得多的模型上运行,比如 10 亿参数,那么这个量级的模型就能更轻松地在笔记本电脑、PC 或手机上运行。例如,如果你想要的是把餐厅评论分类为正面或负面情感,这是一个足够简单的任务,你可能不需要一个 1000 亿或 2000 亿参数的大模型;也许 10 亿参数的模型就完全够用——说实话可能更小都行。但这些小模型不如大模型聪明,所以如果你把一个小模型在类似这样的数据集上进行微调(不只是三个样例,而是几百个甚至几千个样例),你就可以让一个 10 亿参数的小模型在这类任务上表现非常好。
总结一下:微调为你提供了除 RAG 之外另一种提升 LLM 能力的技术。你可能在以下情况使用它:任务风格难以在提示词中说明,例如你想要以特定风格输出文本;或者想让 LLM 获取某个知识体系,比如关于医疗记录的知识;或者你想让一个更小、运行更便宜的 LLM 来完成此前可能需要大型 LLM 才能完成的任务。
事实证明,RAG 和微调的实现成本都相对较低:RAG 只是修改提示词,微调你可能只需要几十或低几百美元就能起步,具体取决于你有多少数据需要微调。还有另一种叫做"预训练"的技术——从头预训练你自己的模型——这非常昂贵,今天除了规模相对较大的公司(通常是科技公司)之外,几乎没有人在尝试这样做。但为了完整起见,让我们在下一个视频中来看看预训练涉及什么内容。
本文档根据视频字幕整理翻译,内容为 DeepLearning.AI "Generative AI for Everyone" 课程第二周第六讲。
微调
下载 MP3