搜「大模型微调」的人多半卡在两处:一是分不清全参、LoRA、指令微调这些词到底指什么;二是知道要微调,却不知道第一步该干什么、数据长什么样。这篇按分类、方法、步骤三条线捋一遍,最后给一份能照着走的排查顺序。
搜「大模型微调」的人多半卡在两处:一是分不清全参、LoRA、指令微调这些词到底指什么,感觉像在听黑话;二是知道要微调,却不知道第一步该干什么、数据长什么样、训完怎么验证。这篇按分类、方法、步骤三条线捋一遍,每个环节都给判断标准和可执行动作,最后给一份能照着走的自查顺序。
先说清定位:微调不是万能药,也不是换个提示词那么轻。它介于「改提示词」和「重训一个模型」之间,具体该走哪条路,站内有专门讲三条路分界的页面,动手前建议先比一遍再决定,别把检索能解决的事硬塞进训练里。
先搞清微调到底改了什么,以及什么时候不该做
微调是在已有权重上继续训练,改的是模型的行为习惯——输出格式、语气、术语用法、任务映射方式。它不擅长往里「塞资料」:你没法指望微调完模型就记住你公司上周改的价目表,那类事实性、会变的内容属于检索的活。把这两件事混在一起,是入门阶段最常见的判断失误。
- 适合微调
- 输出格式必须固定、语气风格要统一、领域术语要按你的口径说、任务映射单一且重复量大
- 不适合微调
- 知识更新频繁、事实查询、需要引用来源、样本量极少且任务本身模型已经能做对
- 微调救不回来
- 底座模型压根不具备的能力,比如纯文本模型让它看图,先换模型再谈训练
还有个容易被忽略的前提:底座模型许可证。有些权重允许商用、有些只允许研究用途,训完才发现不能用,前面的数据和时间都白费。动手前把许可证条款看清楚,这比调参重要得多。
微调的分类:按改多少参数、按训练目标两条线看
分类别死记名词,抓住两条线就够:一条是「改多少参数」,一条是「训练目标是什么」。同一个方法名,放到不同的目标下,数据格式和评估方式完全不一样,这才是容易踩坑的地方。
| 分类维度 | 常见类型 | 特点与适用 |
|---|---|---|
| 按参数量 | 全参微调 | 改动最大、显存需求最高,适合数据充足、要改底层能力的场景 |
| 按参数量 | 部分层微调 | 只训若干层,折中方案,调哪几层需要实验 |
| 按参数量 | 参数高效微调 | LoRA 类、Adapter、前缀类,显存低、产物可插拔 |
| 按目标 | 指令微调 | 让模型学会听指令,数据是指令与期望输出的配对 |
| 按目标 | 领域继续预训练 | 补领域语料,数据是纯文本,成本高、见效慢 |
| 按目标 | 对齐微调 | 调偏好与安全,数据是偏好对,入门阶段可先跳过 |
按训练信号还能分出监督式、偏好对、强化式。入门先从监督式指令微调起步就够了,别一上来就碰偏好和强化,链路长、坑多,且很多任务根本用不上。分类不是越新越好——改的参数越少,越不容易把原模型能力练崩,但反过来也越难改掉深层习惯。
- 改参数越少越安全,但能改动的行为上限也越低,先想清楚要改的是表层格式还是深层能力
- 指令微调数据是配对样本,领域继续预训练是纯文本,两者别混着喂
- 同一套数据换个目标就要重新设计验证集,评估口径跟着目标走
- 方法名相同、目标不同时,超参经验不能直接照搬
常用方法怎么选:从 LoRA 起步,别一上来就全参
对大多数小团队和单卡环境,参数高效微调是默认起点:显存占用低,产物是一个独立适配器,效果不对可以随时摘掉回退到原模型,试错成本低。全参微调则留给数据量足够、确实要改模型底层能力、且手里有多卡资源的场景,否则很容易训到一半资源不够,退不回去。
| 场景 | 建议起点 | 注意点 |
|---|---|---|
| 单卡、数据量中等 | 参数高效微调 | 先跑通链路,再决定要不要加数据 |
| 多卡、要改深层能力 | 全参微调 | 留好基线对照,注意原能力退化 |
| 只要固定输出格式 | 先试提示词 | 提示词能稳定达标就别训 |
| 知识随时在变 | 检索方案 | 微调跟不上更新节奏 |
数据格式上,指令微调最省事的是「指令 + 输入 + 期望输出」三段式样本对。选方法前先按模型规模和批大小粗算一遍显存,别凭感觉选——具体配置口径和规模估算,去 /models/deploy 与 /compute/sizing 对一遍当时的数字再动手,比事后返工划算。
# 跑通链路的三步,先小样本再放大;具体参数以站内页面当时的推荐口径为准。\n# 1) 用几十条样本做一次训练-验证-推理全链路\n# 2) 固定随机种子,确认结果可复现\n# 3) 通过后再把数据量放大,重新跑同一套评估操作步骤:按这个顺序走,别跳步
微调最大的浪费不是算力,是顺序错。先定验收标准再准备数据,能避免「训完了才发现不知道算不算成功」。下面五步按顺序走,每一步都有明确的通过条件,过不了就停在原地修,别硬往前推。
- 第一步:定任务与验收标准写清「什么输入下必须输出什么」,以及不合格的具体表现。验收标准写不出来,说明任务还没定义清楚,先别训。
- 第二步:准备数据统一格式、去重、清洗,切出独立验证集。规模怎么估、怎么切,参考站内数据集准备相关页面当时的口径,别凭感觉凑条数。
- 第三步:选方法并跑通小样本先用几十条样本把训练、验证、推理链路跑通,确认能复现,再决定放大数据还是换方法。
- 第四步:正式训练与观察盯验证集而不是训练损失,出现原能力退化就回调学习率或轮数,别只看曲线好看。
- 第五步:部署与对照验证合并权重或挂适配器部署,用真实流量和原模型做对照,别只在自己造的数据上测。
部署后的成本和并发是另一笔账,跟训练阶段完全不是一回事,需要单独算。上线前去看当时的口径,别拿训练时的资源估算套到服务上。
动手前的自查清单与常见坑
动手前过一遍清单,能挡掉大部分返工。四项里缺任何一项,建议先停一下补齐:数据量够不够支撑验证集、显存是否够跑目标方法、基座模型许可证是否允许你的用途、有没有准备好和原模型的基线对照。
- 数据:验证集绝不能混进训练样本,混了等于自己骗自己
- 显存:按目标方法与批大小粗算一遍,去 /models/deploy 与 /compute/sizing 核对
- 许可证:商用、研究用途、二次分发分别看,别训完才发现不合规
- 基线:没有原模型对照,就无法判断微调是变好还是变差
- 评估:先用真实流量或贴近真实的样本集,自造数据只能当冒烟测试
效果变差时按顺序排查:先看数据(脏、重复、格式不一致),再看学习率与轮数(过大或过多会伤原能力),最后才怀疑方法选错。反过来先换方法,往往是在错误的地方反复花钱。挑选和比价相关的事,去 /price-watch 与 /rankings 核对当时的数字,别用旧印象判断。
下一步把提示词、检索、微调三条路先比一遍,再动手准备数据,能省掉大部分无效训练。→常见问题
微调和提示词、RAG 是什么关系,能不能只用其中一个?
三者解决的不是同一件事:提示词改的是这一次提问的上下文,RAG 补的是可检索的外部资料,微调改的是模型本身的输出习惯。任务只要求格式和语气稳定,微调收益最明显;要求事实准确且资料常更新,优先 RAG。实际项目里常常是提示词打底、RAG 补知识、微调管风格,不必二选一。
入门应该先学全参微调还是 LoRA?
先学 LoRA 类。它对显存要求低,单张消费级卡就能跑通流程,产物是独立适配器,训崩了可以直接摘掉,不会毁掉原模型。全参微调适合数据量充足、要改模型底层能力、且有充足多卡资源的情况,入门阶段做这个既贵又难判断问题出在哪。
微调之后效果反而不如原模型,一般是什么原因?
按这个顺序查:先确认验证集没被污染、样本格式一致;再看学习率是不是过大、训练轮数是不是过多,这两项最容易把原模型能力练退化;然后是数据量和覆盖度是否够,样本太单一模型会过拟合到那几种说法上。方法本身选错反而是最后才需要怀疑的一项。