1. 类比
预训练:像让模型读完整个图书馆,学会语言、常识和推理。
微调:像入职后培训,教它“在我们公司,客服该怎么说话”“合同该怎么审”“代码该怎么写”。
提示工程:每次现场给它写详细工作说明。
RAG:允许它开卷考试,临时查资料。
2. 微调到底改了什么?
预训练模型已经很强,但它是通用的。微调会用你的特定数据继续训练,调整模型参数,让它学会:
特定格式:总是输出 JSON、表格、固定话术。
特定风格:更专业、更口语、更像某个角色。
特定任务:分类、抽取、翻译、代码生成、医疗问答。
特定领域术语:法律、金融、工业、游戏等。
所以微调不是简单“加知识”,更多是改行为、改格式、改风格、改任务模式。
3. 常见微调类型
全量微调:更新所有参数,效果最好,但算力贵,容易“灾难性遗忘”。
参数高效微调(PEFT):只训练一小部分参数,比如LoRA、QLoRA、Adapter、Prefix Tuning。消费级显卡也能玩,是目前主流。
指令微调(SFT):用“指令-回答”数据,教模型听懂人话、按指令办事。
对齐微调:用人类偏好数据做RLHF、DPO,让模型更有用、更安全、更诚实。
4. 典型流程
定目标:到底要它改什么?格式?风格?准确率?
准备数据:几千到几万条高质量“输入-输出”对,质量比数量重要。
选基座:如 Qwen、Llama、DeepSeek 等开源模型。
训练:全量或 LoRA,调参。
评估:留出测试集,人工打分,对比微调前后。
部署:合并权重或加载适配器。
5. 和 RAG、提示工程的区别
| 方式 | 是否改模型 | 适合什么 |
|---|---|---|
| 提示工程 | 不改 | 快速试验、简单任务 |
| RAG | 不改 | 私有知识、最新资料、减少幻觉 |
| 微调 | 改 | 固定格式、特定风格、复杂任务模式 |
关键点:如果只是想让模型知道“公司最新产品手册”,优先RAG;如果想让它“永远用我们公司的语气写周报”,微调更合适。
6. 什么时候该微调?
提示工程和 RAG 效果不够。
需要稳定输出特定格式。
需要模型学会复杂推理步骤或领域黑话。
想把大模型能力蒸馏到小模型,降低推理成本。
7. 坑
数据质量差:垃圾进,垃圾出。
过拟合:背答案,换问法就错。
灾难性遗忘:通用能力下降。
成本:全量微调很贵;LoRA 便宜但效果有上限。
知识更新:微调不适合频繁更新事实,RAG 更合适。