如何用大模型训练精准数据参数的方法

模型与算力

讲微调里数据怎么造、超参怎么定、结果怎么验证,给一套按任务倒推参数的可执行顺序,避免拍脑袋调参。

微调卡住的人,多半不是不会跑脚本,而是数据造得不对、超参凭感觉抄,跑完一轮也不知道该信哪个指标。这篇按「先定目标输出,再定数据形态,最后定超参」的顺序拆一遍,每一步都给判断标准和排查动作,也说明哪些做法在数据量小、标签噪声大时不适用。

微调卡住的人,问题往往不在脚本跑不起来,而在数据造得不对、超参凭感觉抄,跑完一轮也不知道该信哪个指标。更麻烦的是,很多人一上来就纠结学习率设多少、训练几轮,却没把「目标输出长什么样」想清楚,结果数据形态和任务目标对不上,怎么调都不对。

这篇按「先定目标输出,再定数据形态,最后定超参」的顺序拆一遍。每个环节都给判断标准和排查动作,也说清楚哪些做法在数据量小、标签噪声大的场景下不适用。如果你还在纠结要不要微调,可以先去 fine-tuning 相关页面看看别人怎么分层处理,再回来做数据。

先定目标输出,再决定要不要微调

动手写数据之前,先把任务写成固定的「输入→输出」格式。如果格式半天定不下来,说明你要的不是微调,而是提示工程或者检索增强。格式定不下来通常意味着任务本身还没收敛,这种情况下喂多少数据都学不出稳定行为。

  • 输出格式要严格统一,比如永远返回固定字段的 JSON,容错空间小到模型自己发挥不出来
  • 领域术语模型老答错,而且换提示词也救不回来
  • 需要稳定复现同一种风格或语气,靠提示词约束不住

判断顺序很简单:先试提示工程,再试检索增强,最后才考虑微调。前两步能解决就别急着微调,因为微调一次的数据维护成本远高于维护一套提示词或检索配置。

数据怎么造:形态、规模与配比

每条样本都要写清楚「必须出现的字段」和「必须不出现的字段」。后者常被忽略,但恰恰是过滤跑偏样本的关键。比如要求输出里不出现某类免责声明,你就得在过滤阶段把带这种句子的样本挑出来,而不是等训练完发现模型老爱加一句废话。

规模没有固定门槛。先按任务复杂度做小样本试跑,看损失曲线是否收敛、验证表现是否稳定,再决定加量。具体到什么量级算够,不同任务差异很大,可以去训练相关的站内页面核对当时的实操口径,别照搬别人的数字。

数据类型作用配比建议
干净样本教会模型正确格式占主体
失败案例提升鲁棒性按线上出错频率配
边界样本防止模型过度自信少量但必须有
探针样本不训练,用来观察记忆固定留出

配比要覆盖失败场景。把线上真实答错的案例按比例塞进训练集,比全用干净样本更能提升鲁棒性。但要注意:标签本身有歧义、多个标注员理解不一致时,先统一标注规范再加量,否则只是把噪声放大。

数据清洗与质量校验清单

  1. 去重先处理完全重复,再用相似度阈值粗筛近似重复。近似重复会导致模型背题,把同一句话换个说法当成两个样本学。
  2. 长度分布检查画一下样本长度分布,看有没有极端长尾。过长样本容易拖慢训练,过短样本可能信息不足。
  3. 格式校验用脚本批量检查每条样本的字段是否齐全、JSON 是否能解析、必填项有没有空值。
  4. 人工抽检按数据来源可信度定抽检比例,来源杂的先高比例抽,来源单一的可降低。

留一小撮「探针样本」不参与训练,用来观察模型是否记住了不该记的内容。探针样本要长得像训练数据,但内容上刻意换个说法,训练完拿它测一下,如果模型答得跟训练集一模一样,说明记忆过度了。

超参怎么设:从保守档开始,一次只动一个

先固定一个保守组合跑通全流程,确认数据管道没问题,再逐个调整。一次改多个变量等于没法归因,出了问题你也不知道是哪个参数导致的。保守档的意思是学习率偏小、训练轮数偏少、可训练范围偏窄,先看模型有没有在学。

学习率、批大小、训练轮数三者互相牵制。改一个要看另外两个是否还合适,别直接抄别人的配置。比如批大小翻倍了,学习率通常也要跟着调,但调到多少取决于你的数据规模和任务难度,没有通用答案。

  • LoRA 类方法重点在秩和可训练层范围,范围铺得越大越容易过拟合小数据
  • 训练轮数不是越多越好,小数据下多跑几轮先看到的是过拟合不是提升
  • 批大小受显存限制,调不上去就用梯度累积顶,但要注意累积步数和学习率的配合

不适用情形:数据量极少时,增大训练轮数通常先带来过拟合而不是效果提升。这时候更该做的是补数据或者降低可训练范围,而不是继续加轮数。

什么时候算过拟合:看验证集而不是训练集

训练损失持续降、验证损失开始回升,就是典型的过拟合拐点。取拐点附近而不是最后一个检查点,最后一个检查点往往已经偏离了。验证集要定期跑,别等训练结束才看。

用固定的一批真实任务做人工对比,胜、平、负各占多少,比单一指标更能说明问题。单一指标容易被格式合规率这类硬指标拉高,但实际任务质量可能已经掉了。

现象可能原因对应动作
训练损失降、验证损失升过拟合取拐点附近的检查点
验证好、真实任务差验证集分布不一致重建验证集
两者都不动学习率过小或数据有问题先查数据格式
两者都剧烈波动学习率过大或批太小降学习率或加批

不适用情形:任务只有几十条样本时,验证集本身抖动大,结论要更谨慎。这种情况下多换几个随机种子跑,看结论是否稳定,比盯着单次结果调参靠谱。

评测闭环:拿什么指标判断该停还是该继续

分三层看:格式合规率是硬指标,任务正确率靠人工或规则判定,风格一致性靠抽样对比。三层指标要分开记录,不要把风格问题和正确率问题混在一起归因,那会导致改错方向。

  • 准备两套评测:一套跑批量回归,一套是固定的小型人工评测集
  • 人工评测集用来防止指标造假式的自我欺骗,因为批量回归容易被格式指标带偏
  • 每轮训练记录改动项和结果,形成可回溯的对照表
  • 判断标准要写下来,不然看结果时容易事后调整预期

对照表要写到什么程度?至少要有轮次编号、改了哪个变量、三层指标各是什么、结论是继续还是回退。几轮之后如果没有这张表,你会说不清哪次改动起了作用。

常见坑与排查顺序

按这个顺序排查:数据格式 → 标签一致性 → 评测集是否泄漏 → 超参 → 模型规模是否合适。顺序不能乱,因为后面的问题往往被前面的问题掩盖。数据格式没对齐就去调超参,纯属浪费时间。

  • 最常见的坑是训练集里混进了评测集样本,效果虚高,上线立刻打回原形
  • 第二个坑是只调超参不看数据,参数换了一轮又一轮,问题其实在样本质量
  • 第三个坑是评测标准中途改,前后两轮的结果没法比
  • 第四个坑是数据量不够却硬上大范围微调,过拟合几乎是必然的

不适用情形:任务本身定义模糊时,任何参数调整都是随机波动。这时候先回去把任务定义收敛,把输入输出格式写清楚,再谈训练。评估指标怎么设、每轮看什么,可以到评测相关的站内页面参考当时的框架,别自己拍脑袋定一套。

一张对照表:现象与对应动作

看到的状况先查什么对应动作
输出格式不稳定数据里的格式一致性统一样本格式,而不是加训练轮数
领域术语答错术语相关样本对数量补充样本对,单个词出现次数太少学不牢
通用能力下降学习率和可训练范围收窄范围、降学习率
效果波动大数据量和随机种子小数据下换种子差异显著,多跑几次取稳定结论

这张表的用法是:先定位现象属于哪一行,再按「先查什么」的顺序排查,不要跳步。跳步最容易出现的情况是,明明数据格式有问题,却一直在调超参,几轮下来既没解决问题也说不清哪次改动有效。价格、算力成本这类数字会随时间和供应商变化,去站内价格追踪页面核对当时的数字,别拿旧数据做预算。

下一步把上面这张对照表存下来,下一轮训练前先按排查顺序过一遍;需要横向对比不同方案的成本和性能时,去价格追踪和排名页面核对当时的数字。

常见问题

数据量不多,比如只有几百条,还能微调吗?

可以试,但要把预期放在「格式和风格收敛」而不是「学会新知识」。几百条样本更适合调输出格式和口吻,学习率要小、轮数要少,并且必须留出足够有代表性的验证样本,否则很容易得出错误结论。

超参该按什么顺序调?

先确认数据没问题,再固定一组保守参数跑通,然后按影响从大到小逐个调:通常是学习率、可训练范围、轮数、批大小。一次只改一个,改完就记录结果,不然几轮之后根本说不清是哪次改动起了作用。

训练损失一直在降,是不是说明效果在变好?

不一定。训练损失降只说明模型在拟合训练集,真正要看的是验证集和真实任务的对比结果。验证损失开始回升、或者人工对比胜率不再提升,基本就到了该停的点,继续跑大概率是过拟合。

怎么判断是数据问题还是参数问题?

先做数据侧排查:格式是否统一、标签是否一致、有没有重复样本和评测集泄漏。这些都没问题再动参数。实践中多数效果不理想的情况出在数据上,参数的影响通常排在后面。

微调后通用能力变差怎么办?

通常是学习率偏大或者可训练的范围铺得太广,把小数据上的噪声学进去了。降低学习率、缩小可训练范围、减少轮数,同时检查训练集里是否有大量偏离原分布的样本,必要时混入一部分通用样本做平衡。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。