ai大模型训练之前是什么

模型与算力

讲清大模型正式开训之前的数据采集、清洗、配比与预训练准备环节,给出可落地的检查顺序和常见坑,帮你判断一份语料到底能不能进训练。

很多人以为训练大模型就是「把数据丢进去开跑」,实际卡住人的往往是开跑之前那几周:语料从哪来、脏数据怎么洗、多来源怎么配比、tokenizer 和验证集什么时候定。这篇按顺序把准备环节拆开,给一份能照着走的清单,也说明哪些做法在什么情况下不适用。

很多人对训练大模型的想象是「把数据倒进去、按下开始」。真做过就知道,卡住人的往往是开跑之前那几周:语料从哪来、脏数据怎么洗、多来源怎么配比、tokenizer 和验证集什么时候定下来。这些环节没理顺,正式开跑之后返工的成本远高于前面多花几天。下面按实际执行顺序把准备环节拆开。

这篇只讲一件事:一份语料从原始状态到能进训练,中间要过哪些关、每关怎么判断过没过。适合自己攒数据、准备做预训练或继续预训练的团队;如果你只是调 API 或者做轻量微调,重心不在这些环节,别照搬整套流程。

开训之前到底有哪几步

先把主线串起来,心里有张顺序图,后面每节才好对号入座。顺序不是随便排的,前一步的结论会直接影响后一步的做法,跳步做等于给自己埋返工。

  1. 确定目标与评测口径先想清楚这个模型要强在哪:是中文长文本、代码,还是通用对话。评测口径和配比都从这里推出来,别等训练完再补。
  2. 语料采集按来源分类收集,同时留下抓取时间、来源、许可记录。这一步脏一点关系不大,但记录必须全。
  3. 清洗与去重格式编码清理、模板残留剔除、近重复去重、低质与有害过滤、语言长度筛选,逐层过。
  4. 配比混合把不同来源按显式配方表混合,写成百分比和规则,而不是靠手感倒。
  5. 切分与打包验证集在清洗完成后切出来,与训练集同源不同批;数据打包成可直接流式读取的格式。
  6. 小规模试跑用同一份脚本跑一小段,看 loss 曲线和数据读取瓶颈,没问题再进正式训练。

这一步的产出物不是一堆散放的文件,而是一份可复现的数据清单:来源、占比、过滤规则、版本号都写清楚。别人拿着这份清单能复现出同一批数据,才算过关。需要注意的是,这套流程针对预训练或继续预训练;只做微调的话,前置重心是标注质量和任务对齐,完全不是一回事。

采集:来源怎么找、授权怎么留痕

采集阶段最容易被低估,很多人上来就写爬虫,抓完才发现授权记录一团糟。来源大致分三类,它们在噪声特征和授权复杂度上差别很大,处理思路也不该一样。

来源类型典型噪声特征留痕重点
公开网页、书籍、论文模板残留、导航文字、重复转载抓取时间、来源域名、许可协议
自有或合作方业务数据格式不统一、字段缺失、含隐私信息数据来源说明、脱敏记录、使用范围
合成与开源数据集质量参差、风格单一、标签可能错上游数据集许可、生成方法、版本号
  • 采集阶段就做留痕:抓取时间、来源域名、许可协议、抓取方式,后期合规抽查基本都靠这份记录。
  • 近重复去重和版权判断是两件事:前者靠文本相似度,后者靠授权边界,别指望清洗脚本顺手解决合规问题。
  • 三类来源不要混在一起存:分开存放、分开打标,配比时才好按比例取用。
  • 遇到来源不清的语料,宁可先放一边单独标记,也不要直接混进主数据集。

术语和判断口径建议先统一。到站内的基础概念词典核对数据相关术语的定义,再到安全与合规术语对照确认授权、隐私、可商用这些词对应的具体边界,口径一致之后再动手,能少很多来回扯皮。

清洗与过滤:规则怎么定才可复用

清洗不是写一堆正则跑一遍就完事,关键是让每条规则都能被检验和复用。推荐按层次推进,前一层的结果作为后一层的输入,出问题容易定位是哪一层的问题。

  • 格式与编码清理:统一编码,去掉乱码、控制字符、异常换行。
  • 模板与导航残留剔除:页眉页脚、菜单、广告位、免责声明这类固定文字。
  • 近重复去重:同源转载和改写内容要处理,具体相似度阈值按语料特点调。
  • 低质与有害内容过滤:按词表加规则筛,垂直领域要换成领域词表。
  • 语言与长度筛选:确定目标语言占比,过短过长的样本单独统计再决定去留。

每条规则都要能回答两个数:命中多少、误删多少。只报命中不报误删的规则,规模一放大就会伤到有效数据,而且伤在暗处,很难发现。去重比例、过滤命中率这类指标的合理区间不用背,具体数字到站内的模型训练和 AI 测评榜单页面看当时的统计口径,比自己拍脑袋靠谱。

不适用的情形要说清楚:面向法律、医疗这类垂直领域的数据,通用脏词表误伤会很严重,必须换成领域词表,并保留人工抽检环节。另外,如果语料本身只有几千条,去重和过滤的收益有限,重点应该放在人工审读上。

配比、切分与试跑:进训练前的最后一道关

配比决定模型后来的「性格」。中文占比、代码占比、长文本占比,都会影响模型在不同任务上的偏向,所以要写成显式配方表,而不是凭感觉混。配方表要能回答:每个来源占多少、为什么是这个比例、调整过几次。

准备项合格标准常见坑
配比配方表每个来源占比明确,有调整记录凭感觉倒,事后说不清比例
验证集切分清洗完成后切出,与训练集同源不同批拿训练集的一部分当验证集
数据格式可直接流式读取,读取不成为瓶颈训练时才现做格式转换
试跑结果loss 曲线正常,读取速度跟得上算力直接上正式训练再发现问题

验证集必须在清洗完成之后、正式训练之前切出来,而且和训练集同源不同批。如果验证集混进了训练数据,早期指标看着好看,实际没参考价值。切完之后还要再确认一次:两边有没有重复样本 crept in。

# 试跑前自检:随机抽一小批数据,确认格式与读取速度
python check_pipeline.py --data ./processed --sample 2000 --dry-run

正式开跑前建议先做小规模试跑:用同一份数据处理脚本跑一小段,看 loss 曲线是否正常、数据读取是否成为瓶颈。这一步能提前暴露大部分数据层问题。需要估算资源时,到站内的算力总览和部署测算页面对齐卡型和时长口径,再谈预算,别自己用拍出来的数字算账。

下一步把上面这份清单对着自己的语料过一遍,缺哪一步先补哪一步;需要横向对比不同方案的资源口径时,可以到站内模型训练与算力总览页面核对当时的说明与数字。

常见问题

训练之前必须准备多少数据才算够?

没有通用门槛,取决于模型规模、领域宽度和你想达到的效果。更实用的判断是:先看清洗后有效数据量和重复率,再决定是否扩采。数据不够时优先做配比和去重优化,而不是硬凑量。具体规模参考可以到站内训练相关页面看当时的口径。

清洗规则越严是不是越好?

不是。规则过严会大量误删有效样本,尤其对垂直领域语料而言,通用脏词表很容易伤到正常技术文本。做法是每条规则都统计命中量和误删抽样,误删率高就收紧范围或改成人工抽检,而不是一刀切全删。

预训练的数据准备和微调的数据准备能共用吗?

只能共用工具链,不能共用标准。预训练看的是海量、多样、低重复,微调看的是任务对齐和标注质量,几百上千条精标数据比几百万条脏数据更管用。两边的清洗规则、去重阈值、验证集切法都要分开设计。

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