很多人看模型介绍时只关注参数和榜单,等到自己要准备数据做微调,才发现手里那批语料根本用不上——因为不同训练阶段吃的数据完全不是一回事。这篇按阶段讲清数据从哪来、拿来干什么、格式差在哪,帮你判断自己手上的数据该喂给哪个环节,避免把问答对丢进预训练这类常见错误。
很多人看模型介绍时只盯参数和榜单,等到自己要准备数据做微调,才发现手里那批语料根本用不上——因为不同训练阶段吃的数据完全不是一回事。预训练、微调、对齐这三层,数据的来源、体量、格式、想改变的东西都不一样,混着用必然出问题。
这篇不讲模型的原理,只讲一件事:拿到一批数据,怎么判断它该喂给哪个环节,以及哪一层其实轮不到你介入。判断之前先接受一个前提,不是所有数据都值得你花时间去清洗,有些层级的数据个人本来就没法碰。
先分清三个阶段,数据用途完全不同
先把三层的分工说清楚。预训练是大规模学语言规律和世界常识,微调是教模型按你的方式干活,对齐是调回答的风格和边界。同样是文本,进了不同的层,起的作用完全不一样,这也决定了你能不能介入。
| 阶段 | 数据长什么样 | 想改变什么 | 个人能否介入 |
|---|---|---|---|
| 预训练 | 海量连续长文本,无标注 | 语言能力与基础知识 | 基本不能,由厂商掌控 |
| 微调 | 成对的指令或问答,有标注 | 具体任务与业务能力 | 能,主要战场在这 |
| 对齐 | 偏好排序或反馈数据 | 回答风格与安全边界 | 通常不能,由标注团队产出 |
判断自己的数据属于哪一层,抓两个信号就够:有没有标注、有没有标准答案。没有标注的裸文本,大概率是预训练那一层的料;有成对问答和明确答案的,才是微调要的。想改变的是知识本身还是行为习惯,也能帮你分流。
数据从哪来:抓取、购买、自产、标注四条路
数据来源大致四条路,各有各的坑。选哪条路,取决于你要哪个层级的数据,以及你能不能承担对应的合规和成本压力。下面按来源说清楚各自适合什么。
- 公开网页与书籍论文:量大但噪音多,版权和许可要单独确认,能不能商用别自己拍脑袋,可到 /ai-nav 查许可证相关的站内资料
- 自有业务数据:客服记录、工单、内部文档,最贴业务,但必须脱敏和清洗,不能原样进训练集
- 合成数据:由更强的模型生成,成本低、格式统一,风险是错误会被放大,必须抽样人工校验
- 人工标注:质量最高也最贵,适合对齐和小规模高质量微调,规模一上去成本就很难看
四条路不是互斥的,实践中经常是自有数据打底、合成数据补量、人工标注收口。但每批数据的来源要单独记录,出问题时你才知道是哪一批惹的祸。
格式与体量:不同阶段的硬性差别
格式和体量是最容易被忽略、也最容易翻车的地方。预训练和微调的数据在结构上几乎是两种东西,把问答对塞进预训练,模型只会把问题格式背下来,你得不到想要的效果。
- 第一步 去重先把完全重复和高度相似的样本去掉,重复样本会让模型对某些句式过拟合。
- 第二步 清洗格式检查字段是否齐全、有没有乱码和截断,格式不对的样本宁可删掉也别硬塞。
- 第三步 查答案一致性同一个问题有互相矛盾的答案时,先解决矛盾,不要指望模型自己学会分辨。
- 第四步 小规模试跑拿几百条先跑一轮,看效果再决定要不要扩量,比看任何估算表都准。
体量差别要有概念:预训练按很大的 token 量级算,微调常常几千到几万条就能看到变化。具体门槛和测算思路可以到 /training 里微调相关的部分对照,但别把它当死标准。
最常见的三种误用和怎么避开
知道原理还不够,实际准备数据时踩的坑就那么几个,提前认出来能省下大量返工时间。下面三种误用,几乎每个自己动手准备数据的人都遇过。
- 问答对当预训练料
- 模型学不到新知识,只会复述问题格式,表现为回答时莫名其妙把题目念一遍
- 对齐数据做业务微调
- 风格变了但业务准确率没变,因为这类数据本来就不含你要的专业知识
- 多来源混用不标来源
- 出了问题无法回溯是哪批语料导致,建议每批单独记录来源、时间和清洗方式
什么时候不适用这套判断:如果你只是想让模型换个语气、少说废话、回答短一点,优先试提示词,不一定要动数据。数据准备是有成本的,能用提示词解决的就别开训练流程。
先问这批数据想改变知识还是行为,答案决定它该进哪一层,而不是决定它值不值得被清洗。下一步想确认许可证、微调门槛和各家中转方案的实际情况,去站内对应页面看当时的数字和资料,比凭印象判断靠谱。→
常见问题
我想让模型学会公司内部知识,该准备哪种数据?
优先考虑检索增强或微调,而不是预训练。数据形态是「问题+标准答案」或「文档片段+对应结论」,不是原始文档堆积。如果知识更新频繁,检索比微调更省事,模型不用重训就能换内容。
网上公开数据集直接拿来训练有问题吗?
要看许可证和使用条款,很多数据集限定研究用途,商用会踩坑。另外公开数据里常混有重复、低质甚至错误内容,直接用之前至少要抽样人工看一眼,别整批照单全收。
数据量不够,能不能用模型生成数据来补?
可以补格式和覆盖度,但别指望它补出模型本身不知道的知识,那样只会在错误上叠加错误。生成数据要和控制数量,并且留一批人工抽查,验证没有系统性偏差。