自己训练ai模型全流程

模型与算力

从数据准备到评估上线,把自训模型这条链路拆成可执行步骤,并给出每步的判断标准和卡点排查顺序。

想自己训一个模型,最容易卡在开头:数据从哪来、要不要先微调、算力怎么估、训完怎么判断能不能上线。这篇按链路顺序把每步该做什么、做到什么程度算过关讲一遍,并标出哪些环节可以先跳过。文中涉及具体数字的地方,都指到站内对应页面去核对当时的值,避免照着过时数字做决策。

想自己训一个模型,最容易卡在开头:数据从哪来、要不要先微调、算力怎么估、训完怎么判断能不能上线。很多人一上来就找卡、找框架,结果跑了两周发现方向就选错了。这篇按链路顺序把每步该做什么、做到什么程度算过关讲一遍,并标出哪些环节可以先跳过。

文中涉及具体数字的地方,都指到站内对应页面去核对当时的值,避免照着过时数字做决策。流程本身是通用的,但每一步的取舍要看你的任务和数据,所以下面给的是判断标准,不是标准答案。

先定目标和路线:全量预训练还是续训微调

开训之前先回答三个问题:要解决的任务,现在用的方案为什么不够、你的数据是不是自己独有、预算和时间能不能撑住。这三个里有一个答不上来,就别急着开训——多半是方向没想清楚,不是模型不够强。

从零预训练
用海量通用语料从随机初始化开始训,只在有专属语料且算力和人力都充足时才考虑
继续训练
在开源权重上继续喂领域语料,适合数据量中等、想让模型更懂某个垂直领域
微调
在基座上用小规模高质量数据调行为,多数团队和个人实际落在这一条

路线判断依据可以看站内 /training 与 /stacks/fine-tuning 的目录说明,算力花销的量级去 /compute/training-cost 看当时的估算口径,别凭印象估。如果只是想让模型按固定格式输出、或者学会某个小任务,微调通常就够了,硬上预训练属于用大炮打蚊子。

数据准备:来源、清洗、切分三件事

数据这块先划清来源和授权边界。涉及第三方语料、用户数据、爬取内容的,到 /safety 和 /ai-dict/category/safety 对照合规要求,权属不清的先不用。宁可数据少一点,也别埋一个后来要全部回滚的坑。

  1. 去重先做精确去重再做近似去重,近似去重按语义相似度阈值筛,阈值先在抽样上试,别一上来全量跑
  2. 清噪音去乱码、去模板残留、去网页导航文字,每一步都留抽样前后对照,方便回溯是哪步洗过头了
  3. 过滤按长度和语言过滤,太短太长的先剔除,语言比例按目标任务定,别让某一类语料占比过高
  4. 敏感筛查跑一遍敏感内容筛查,命中的样本单独存放人工过一遍,不要直接删掉也不要不看
  5. 切分切训练/验证/测试三份,切分必须在去重之后做,否则同一内容跨集出现会让评估结果虚高

算力与配置:先小后大,先通再快

别一上来就堆卡。先用小样本、小步数跑通一次完整训练,确认数据能读、loss 能降、checkpoint 能存能加载,再去放大配置。这一步花的机时最少,但能提前暴露绝大多数工程问题。

显存和卡数按模型规模、精度、批大小、序列长度四个变量估,站内 /models/deploy、/compute/sizing 和 /compute/gpus 有按参数与精度算的入口,核对当时的口径。估算时留出余量,训练中途因为显存打满重启最费时间。

现象先查什么下一步
显存打满批大小和序列长度是否同时放大先降一个再试,别两个一起动
loss 不降数据格式和学习率是否匹配抽样看输入,再回到小样本复现
训练中断checkpoint 是否能正常加载先修复存读,再谈继续训
速度异常慢数据读取是否成为瓶颈看 IO 和预处理,别先怀疑卡
  • 训练参数不要照抄别人的配置,先按自己的数据量与显存定一个保守起点,再逐步调
  • 调参记录要留档,包含数据版本、参数、随机种子,能复现才有意义
  • 中途出问题先按上面的表分类,再动手,别一上来就整段重跑
  • 每次放大配置只改一个变量,改两个以上就说不清是哪个起的作用

评估:拿什么判断能不能进下一步

评估集要独立于训练数据,且要覆盖真实使用里最常见的边缘情况,不能只测顺手的样本。顺手样本上分数好看,上线后遇到真实输入照样翻车,这种评估等于没做。

评估维度看什么不适用的情况
任务指标准确率、召回、生成质量是否达标任务本身定义模糊时,指标参考价值有限
行为指标是否跑偏、是否拒答、是否胡编只做离线批处理、无交互时可弱化
成本指标延迟、吞吐、单次开销能否接受成本不敏感的内部实验可暂时放宽

和基线比,不和空气比。基线就是当前线上在用的方案,包括规则、小模型、调用外部接口。比不过就别换,换了反而多一层维护成本。评估结论要写明适用边界和不适用的场景,只有特定输入下效果好就写清楚,别写成通用能力。

上线与回收:灰度、监控、留退路

上线先灰度,按流量比例或按用户分组放量,观察窗口内盯住质量指标和成本指标,两侧都稳住再扩量。只盯质量不盯成本,很容易出现效果没退多少、账单翻几倍的情况。

  • 旧方案保留一段时间,回退路径要能一键切回,别等出事再临时搭
  • 模型权重与配置版本的对应关系记录清楚,出问题时能定位到具体是哪一版
  • 数据格式变更要有兼容期,上下游不会同时升级
  • 上线后定期复评,数据分布会漂移,评估集也要跟着更新
  • 评估集长期不换,分数会慢慢失去参考意义,定期换掉过时样本

这套流程走一遍大约要多久、各环节算力大致什么量级,去 /training 和 /compute/training-cost 看当时的页面数据,别用旧印象排期。流程能压缩,但评估和回退这两步不要省。

下一步如果你还在选路线阶段,先去模型与工具目录对照自己的任务类型,再决定是微调还是继续训练,能省掉一轮无效跑。

常见问题

完全没有算力,能自己训模型吗?

能训,但要选对路线。纯从零预训练基本不现实,换成在开源权重上做小规模微调,用免费或低价算力也能跑通全流程。关键是先把数据和小样本流程跑通,再按站内算力页面核对当时的价格与机型,别一上来就租大卡。

数据量多少才够训?

没有统一门槛,取决于路线。微调往往几百到几千条高质量样本就能看到效果,从零训练则需要大得多。判断标准不是条数,而是数据是否覆盖你的目标场景、是否和评估集来源一致。站内微调与训练相关页面有按规模估算的思路,可以对一遍。

训完了怎么知道能不能上线?

先过评估集,再和当前线上基线对比,两类都要赢才算过关。评估要同时看任务效果、行为表现和成本三项,任何一项明显变差都要先查原因。小流量灰度跑一段时间,质量与成本都稳得住,再逐步放量,同时保留随时回退旧方案的能力。

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