# 这门微调课程，最有价值的部分在训练之前

> Sharon Zhou 在 DeepLearning.AI 的 95 分钟课程里，用近 30 分钟回答客户常问前线部署工程师（FDE）的问题：该不该微调？

原文: https://fdetimes.net/zh/books-courses/sharon-zhou-finetuning-llms-course-review/

你可能以为微调课程一上来就会给出训练代码。DeepLearning.AI 的 **Finetuning Large Language Models** 却不是这样。它先用将近 30 分钟讲两节课，“Why finetune”（为什么要微调）和“Where finetuning fits in”（微调用在哪里），然后才进入训练。而整门课总共只有约 1 小时 35 分钟。

这样安排有原因。设想一位客户问的不是“怎么微调？”，而是“该不该微调？”。后一个问题答错了，团队可能要花好几周去解决一个本来写好提示词就能解决的问题。

## 谁来讲，课程包含什么？

讲师是 Sharon Zhou，现任 AMD AI 副总裁。2023 年课程上线时，她是 Lamini 的联合创始人兼 CEO，这门课也是与 Lamini 合作制作的。

这是一门中级短课程，包含 9 个视频、6 个代码示例和 1 次计分测验。部分页面标注的时长略短，为 1 小时 25 分钟。

导论之后，各节课按真实项目的顺序展开：Why finetune（约 14 分钟）、Where finetuning fits in（15 分钟）、Instruction finetuning（指令微调，9 分钟）、Data preparation（数据准备，10 分钟）、Training process（训练过程，16 分钟）、Evaluation and iteration（评测与迭代，11 分钟）、Considerations for getting started（入门注意事项，4 分钟），以及结语（1 分钟）。学习前需要会 Python，并了解 PyTorch 等深度学习框架。

课程页面称，新学习平台处于测试阶段期间，课程限时免费，访问条件请以[官方页面](https://www.deeplearning.ai/short-courses/finetuning-large-language-models/)为准。

## 第一个观点：微调先教模型怎么回答，再教它新东西

按照官方介绍，微调帮助模型学习风格和格式，也能补充新知识。课程的目标之一，是讲清微调与提示工程有何不同、各自什么时候用，以及什么时候两者结合。

[OpenAI](https://developers.openai.com/api/docs/guides/model-optimization) 的模型优化指南说得更直接：对你的场景来说，提示工程可能已经足以取得好效果，而微调需要投入时间。

所以，如果客户抱怨模型“语气不对”或“格式跑偏”，先改写提示词、补充示例。这时还用不着 GPU。

## 第二个观点：微调是成本问题

OpenAI 列出了微调明显有帮助的两种情况。一是输出必须保持一致的格式。二是希望用更小、更便宜、更快的模型把一件事做得很好，而用大模型并不经济。

微调后的模型所需提示词也更短，示例更少、上下文更少，因此在大规模调用时能节省 token。

2024 年 7 月，Anthropic 开放 Claude 3 Haiku 微调时给出了同样的理由：用 Haiku 替代 Sonnet 或 Opus 以降低生产环境成本，以及针对企业高度特定的工作流训练模型。

不妨做一个假设性计算。某工单分类系统每个提示词里放约 2,000 个 token 的示例，每天处理 100,000 次调用。仅示例部分每天就是 2 亿个 token。

再假设微调后，每个提示词只需约 200 个 token 的示例。示例部分每天降到 2,000 万个 token，减少 1.8 亿，降幅 90%。把这笔节省与准备数据、训练和重新评测的工作量放在一起比较，就有了可以带到客户会议上的具体数字。

**要点:** 微调是一项经济决策，而不是用来补救写得差的提示词。

## 第三个观点：数据和评测比训练更重要

把各节课的时长加起来，数据准备加上评测与迭代，比训练过程还长。这种分配符合实际工作。训练时间可以花钱买；干净的数据集和客户认可的指标，却必须在现场和客户一起搭建。

实用的建议是：在第一周、还在用提示词跑的时候，就建好评测集。之后如果确实需要微调，手上已经有可供对比的基线；如果不需要，这个评测集依然是留给客户最有价值的东西。

## 哪些错误会让微调项目跑偏？

最常见的错误，是用微调去补救写得差的提示词。如果提示词缺少清晰的指令或示例，再多训练也只是掩盖问题，而且比改提示词耗时得多。

第二个错误是没有基线就开始训练。没有一个在基于提示词的版本上跑过的评测集，就无法证明新模型更好，客户只能凭感觉做决定。

第三个错误是训练后忘了重新核算成本。如果微调的理由是减少 token 或换用更小的模型，就把前后数字并排列出来。如果节省微乎其微，提示词仍然是正确的选择。

## 怎么学，简历上写什么

这门课适合已经至少把一个基于提示词的 LLM 应用投入实际使用的人。先看前两节课，同时读 OpenAI 的指南，然后再打开训练用的 notebook。如果还不熟悉 PyTorch，先把它学好：课程把它列为前置要求。

阅读 FDE 岗位描述时，留意“fine-tuning”“evaluation”“cost optimization”这类关键词。简历上写“在自建评测集上对比提示工程与微调，选择了满足质量要求且成本更低的方案”，远比只写“微调过一个模型”更有分量。

学完这门课，你会掌握怎么微调。但在客户项目中，更有用的能力是用数字说清客户为什么应该微调，或者为什么暂时还不需要。

**本周动手试试:**

- 看完“Why finetune”和“Where finetuning fits in”两节课（约 29 分钟），写下一个你认为应该微调的客户场景，并说明理由。
- 找一个正在生产环境中运行的提示词，统计仅花在示例上的 token 数，再乘以每天的调用次数。
- 在碰任何训练代码之前，先为这个任务建一个小型评测集。

## 信源

- [Finetuning Large Language Models - DeepLearning.AI](https://www.deeplearning.ai/courses/finetuning-large-language-models)

- [Finetuning Large Language Models - DeepLearning.AI](https://www.deeplearning.ai/short-courses/finetuning-large-language-models/)

- [Model optimization - OpenAI](https://developers.openai.com/api/docs/guides/model-optimization)

- [Fine-tune Claude 3 Haiku - Anthropic](https://claude.com/blog/fine-tune-claude-3-haiku)
