![[从零训练一个200B大语言模型] 8/25:训练数据怎样清洗?](/_next/image?url=%2Fblog%2Ftraining-200b-part-8-cover.webp&w=3840&q=75&dpl=dpl_Cm1UzBFibwjXXztx75HsHi8fJTxx)
[从零训练一个200B大语言模型] 8/25:训练数据怎样清洗?
上一篇选好了数据来源。FineWeb、FineWeb2,以及代码和数学数据集,已经替我们完成了大量整理。现在要把它们合成自己的训练集,团队面前还有几个决定:哪些内容值得留下,重复的材料算哪一份,损坏的内容能不能修好。
这件事可以请已经训练好的模型帮忙。让一个模型先读材料、判断它的用途与质量,再把合适的材料交给我们正在训练的模型,能够省掉很多逐篇检查的工作。FineWeb-Edu就是这样做出来的。本篇把这条清洗流程走完整:从接收现成数据开始,用规则和模型处理问题,再安排内部团队与外部服务,最后交出可以用于训练的材料。
先看看仓库里已经有什么
以FineWeb为例,发布者已经提取正文、筛选语言和质量,并在抓取批次内去重。我们先固定来源版本,取小批记录检查正文、网址、日期与已有分数,再把字段接进项目。
已有质量标签也一起接收。教育价值分数、数学质量分数分别保留名称和评分规则;抽样确认适用以后,就可以直接帮助选取材料。这样,发布者完成的工作会继续发挥作用。
接下来的例子是一份构造的排序教程:要求保留重复元素,输入[3, 1, 3],用sorted(xs)得到[1, 3, 3]。我们一路跟着它,看它怎样进入训练集。
这份教程可能同时出现在普通集合与精选集合中。FineWeb-Edu本来就是FineWeb的子集,就像图书馆的全部书目和其中的推荐书目。我们为同一份正文保留两个来源与精选标签,独立库存算一份。
元数据:描述正文的信息,例如来源、版本、许可记录和质量标签。它可以与送进模型的文字分别保存。
子集:从较大集合里选出的一部分内容。里面的材料已经包含在原集合中。
便宜的检查先做
空记录、无法读取的文本、明显损坏的格式,可以先交给程序检查。已知来源之间的子集关系,也在这里处理。FineMath-4+包含在FineMath-3+中,选择材料时直接标出这层关系。
不同来源复制了相同内容,就用正文指纹找出来。标题有变化、主体相同的材料,再通过共享片段寻找近似版本。DataTrove提供了这类去重步骤。我们核对后保留完整代表版本,并记录其他来源。
排序教程里,“保留重复”和“去掉重复”会产生不同结果。后者使用sorted(set(xs)),输出[1, 3]。文字很像,教学任务却不同,因此两份都应留下。
更复杂的改写还可以借助模型:先把文本转成表示含义的向量,找出意思相近的候选,再比较任务、条件和答案。相似程度负责缩小搜索范围;保留决定要看内容是否提供了新的学习价值。代码中的一个符号、题目中的一个条件,都可能改变结论。
筛选规则同样按材料类型设置。代码需要标点与缩进,数学需要公式,短小的完整证明也值得保留。抽样发现哪类材料受损,就调整那一类规则。2026年8月混元团队的去重研究也将重复检测与保留策略分开,并对代码结构作保护。
内容指纹:根据内容计算的短标识,用来快速寻找相同材料。
近似重复:主体大部分相同、但存在标题或少量文字变化的材料。
向量:用一串数字表示内容的特征。这里用它寻找含义相近的文本。
已经训练好的模型,可以接手哪些工作?
规则处理完明显问题,还会剩下一类判断:这段文字有没有讲清楚一件事?教程是否完整?它适合一般阅读,还是适合教代码?这正是模型可以帮忙的地方。
先从简单的评分开始。FineWeb-Edu classifier是一个约0.1B参数的公开小模型,会给英文材料的教育价值打分。开发团队先用Llama3-70B-Instruct为45万份材料评分,再用这些样本训练小模型,最后由小模型处理大量文本。大模型帮助建立判断标准,小模型承担重复工作。
我们可以直接使用已经训练好的分类器,先在自己的样本上检查效果。现有材料缺少合适评分时,再安排批量处理。下面几种模型截至2026年10月都有公开权重:
| 现成模型 | 可以交给它什么 | 在本项目怎样使用 |
|---|---|---|
| FineWeb-Edu classifier,约0.1B | 英文教育价值评分 | 偏向英文基础教育内容;专业数学、代码另行校准 |
| NVIDIA quality-classifier-deberta,约0.2B | 高、中、低质量标签 | 在候选来源上试评分,抽查各档内容后决定选取范围 |
| NVIDIA domain-classifier,约0.2B | 科学、计算机等26类主题 | 给材料分组,方便分别设置检查标准 |
| Qwen3.8-27B,语言模型27B | 按我们的要求读材料、给判断理由、提出修复 | 小批标注、疑难复核和定向修复,再用实际结果决定是否扩大 |
这四个权重的官方页面均列出Apache 2.0许可。前三个是专门分类的工具,Qwen是可以遵循指令的通用模型。NVIDIA的质量分类器仍直接接入NeMo Curator 2026年9月版,已有工具可以接成批处理流程。
分数的含义需要分清。FineWeb-Edu的评分尤其偏向基础与中小学教育内容,专业论文、数学和代码要另行校准。教育分数衡量材料像不像有用的教学内容;主题标签回答它在讲什么。代码是否正确,则要运行代码检查。中文、代码与数学材料也分别抽样校准,不能只拿英文教育分数决定所有材料的去留。
对于长文,评分模型要分段读取并汇总。NVIDIA质量分类器的上下文是1,024 token;只给它文章开头,得到的就是开头的判断。项目记录读了哪些段落,抽查关键条件与结论是否被覆盖,再选择适合的汇总方式。
分类器:读入内容后输出类别或分数的模型,例如“计算机主题”或“教育价值较高”。
校准:用人工核对过的样本,检查模型分数怎样对应我们真正想保留的材料,再设置选取标准。
让大模型读这份排序教程
对疑难材料,我会给模型一个明确任务:“找出教程的要求、代码和预期输出,判断三者是否一致。指出问题所在的原文位置,并给出保留、隔离或修复建议。”
完整的版本写着保留重复元素,代码是sorted(xs),输出是[1, 3, 3]。三者一致,可以进入验收。另一份记录如果写着同样要求,代码却变成sorted(set(xs)),模型应该指出:这个写法会删掉重复元素。
我们随后运行测试,把[3, 1, 3]交给代码,实际得到[1, 3],问题就明确了。还要检查空列表、负数等与任务相关的情况。模型帮助定位错误,独立检查决定材料能否进入训练。
接下来有三个出口。完整且通过检查的材料保留;缺少关键条件、无法核实的材料先隔离;有明确修复依据的材料生成一个新版本,再检查一次。
假如原始教程明确要求保留重复,我们可以让模型提出将sorted(set(xs))改成sorted(xs),再检查修复前后的差异与测试结果。若题目本身丢了,模型猜测“作者大概想保留重复”就没有足够依据,这份记录继续留在隔离区。
同样的方法可以用于格式问题:恢复有依据的段落边界,修复能与原始文件核对的代码缩进,整理能够对照来源的公式。涉及事实的修复,需要回到可信来源;数学推导需要检查步骤和条件。先挑选容易验证、修好以后价值明确的材料,才能把修复成本花在值得保留的内容上。
隔离:暂时把存在疑问的材料放在训练清单之外,同时保留原文与问题记录,供后续核查。
改写以后,另存一份
模型也可以把零散材料重写成清楚的说明,或者从已有内容生成问答。NeMo Curator的Nemotron-CC流程就提供了改写、提取知识和生成问答等步骤。它说明模型辅助处理已经有现成的实现可以参考。
这一步产生的文字另存为合成版本,连同原始来源、所用模型、处理要求和验证结果一起记录。原文保留,团队才能看清模型到底改了什么。新的版本通过内容检查以后,还要再次核对重复关系与评估隔离。
例如,模型可以把排序教程改成一组问答,但它仍然来自同一份知识材料。原文和改写版归入同一个内容家族,划分训练与测试时一起处理。新增表达可以用于训练实验,它的来源关系仍然清楚。
接收时已经很完整的文章,直接保留即可。模型处理优先落在缺少评分、存在明确损坏或确实需要新表达的那一部分。
合成数据:由模型生成或改写的材料。项目单独记录其来源、生成过程与验证结果。
这样到底省了什么?
最直接省下的是逐篇人工阅读和手写判断规则的时间。小分类器一次输出分数,大模型则能读懂复杂要求、解释问题,并帮助建立项目自己的标注样本。标注积累以后,还可以训练更贴合我们材料的小分类器,继续承担大批量评分。
计算开销也要一起看。大模型需要读入正文,有时还会生成理由和修改后的全文。按API计费时,把所有输入、输出及重试计入费用;自行部署时,记录GPU时长和每小时完成的材料量。先测一批有代表性的样本,就能估计每百万输入token的处理成本,以及其中有多少材料值得保留或修复。
因此,我们采用分层处理:已有合格分数先复用,便宜规则处理明显问题,小分类器处理适用的大批材料,大模型接手疑难部分。保留、隔离和修复三条路分别抽样,检查留下来的错误,也检查被排除的好材料。
最后,用固定训练预算做一次对照:一组采用原有数据选择,另一组加入新的清洗结果。看目标能力有没有提高,中文、数学、代码等需要保护的能力有没有退步,再决定扩大处理。这样,清洗流程的价值会体现在模型学到了什么。
阈值:筛选的分界线。改变它会同时影响保留数量与误判情况。
谁来做,要几个人?
这条流水线需要工程师,也需要懂材料的人。沿用第三篇的团队计划,我们给数据工作安排四个内部岗位,随项目进度到位:
| 岗位与到岗时间 | 负责什么 | 怎样分工 |
|---|---|---|
| 数据负责人,第2月 | 选来源、定质量标准、管理供应商与验收 | 和模型负责人决定值得补什么材料;采购与许可条款交给已有法务支持 |
| 数据工程师,第3月 | 接入、格式统一、去重与批处理 | 基础设施团队提供存储、计算资源和运行支持 |
| 数据工程师,第5月 | 分类器、模型复核与修复验证 | 专业判断交给相应领域专家,代码检查接入程序测试 |
| 数据工程师,第7月 | 版本、token账本和训练交付 | 与评估团队核对隔离清单、抽检结果和持续供数 |
这是内部四人的职责分配。第7月以前,版本与计数由先到岗的两人维护;评估团队参与质量验证。第2月先把样本、标准和试验跑通,第3月开始批处理,第5月扩大模型辅助处理,第7月完成整批验收。每次扩大都要看处理速度、保留率和人工复核队列能否跟上训练排期。
四个人管理自动流程与交付,专家审核和批量标注可以按项目购买。供应商安排多少人,要从试产的工作量算:每类材料平均检查多久,有多少需要第二人复核,多少需要返工,都在样本阶段计时。然后用“待处理数量乘平均工时,加复核与返工工时”,除以交付期内每人可用于这些任务的工时,得到所需人力。中文、代码和数学分别计算,复杂证明的工时与普通文本会很不同。
机器处理慢,就调整批处理或增加计算资源;专家队列排不完,就扩大外部审核;质量规则和管线维护长期超过内部能力,再调整内部编制。这样,人数由具体瓶颈决定,四人之外的外包劳动也有单独的数量与费用。
哪些工作可以直接买?
可以买,而且我们应该把钱花在现成材料仍然缺少的部分。先分清购买的东西:一包授权文章、一批专家示范、一项复核服务,以及运行清洗程序的工具,解决的是四种问题。按2026年10月19日的官方产品资料,可以从下面几项开始选:
| 供应方或工具 | 实际提供什么 | 本项目怎样用与核价 |
|---|---|---|
| Defined.ai Marketplace | 现成授权数据及定制采集;目录有英文STEM文章、医疗问答等文本 | 针对缺少的领域取样,核对授权与重复后按数据包询价 |
| Scale AI Data Engine | 专家定制提示与回答、偏好标注、模型评估 | 询价少量高价值示范与审核任务,明确合格样本标准及返工费用 |
| Labelbox Alignerr | 领域专家的评分、偏好判断与评审 | 将需要专业判断的复核队列交给专家,按任务与质量要求取得项目报价 |
| NVIDIA NeMo Curator | 开源过滤、分类和去重软件 | 内部部署自动流水线;软件免费,计算、存储与维护单独计费 |
Scale的生成式AI服务尤其适合请程序员、语言与领域专家制作或评审示范。它的Data Engine页面明确列出了初始预训练之后的问答生成、偏好反馈和评估。因此,我们把它放进高价值专家数据的采购清单;大批预训练正文继续从已有语料与授权材料入手。
Defined.ai更接近“挑一包现成材料”:先看目录、拿样本,选中后确认使用范围和报价。买来的文章进入项目后,仍要与已有库存交叉去重。Labelbox在这里承担的是专家复核:我们提供需要判断的材料与标准,接收可追溯的评审结果。
这些定制服务需要项目报价。Scale的报价入口是联系销售,Defined.ai提供样本与询价,Labelbox专家项目也需要按需求确定。NeMo Curator则是Apache 2.0开源软件,由自己的团队运行。把软件费、模型计算费、专家费分开,才能比较总成本。
采购时,我们按五步推进:
- 写出缺什么材料,附上应保留、应排除和有争议的样本,以及交付格式。
- 请供应方交付一小批试产,带上来源、采集或生成方式、使用许可与处理记录。合同写明允许的模型训练与商业用途,以及交付数据和训练后权重的使用范围。
- 内部用供应方看不到答案的检查样本验收,核对内容、重复、评估泄漏和保留率。对代码运行测试,对专业判断安排独立复核。
- 按通过验收的独立材料核价:正文看每百万合格学生token成本,专家任务看每条合格示范或评审成本。试产、被拒材料、计算、返工和传输费用一起进入分子。
- 把合格标准、每批数量、交付日期、复核方式和替换责任写进合同,再逐批扩大。每批留下可追溯记录,最终验收由内部负责。
第三篇为全年数据许可与外部处理预留了100万至300万美元。这笔钱接下来用试产结果分配给具体合同:哪些缺口靠采购补,哪些用现成数据和自动处理解决。保留率低、重复多或者专家修改频繁的来源,即使原始报价便宜,每条真正可用的数据也可能更贵。
偏好标注:比较两个回答,记录哪一个更符合要求以及原因,用来训练或评估回答质量。
合格单位成本:总费用除以最终通过验收的独立材料数量。材料可以按学生token或完整任务计量,比较时使用相同标准。
留好考试,交出可以核对的训练集
材料入库以前,把重复与改写版本归成家族,再划分训练、验证和测试。验证集用于选择清洗方案,最终测试留到方案确定以后。公开评测的题目、答案和解法另外建立排除清单,检查直接匹配与近似泄漏。
确定入选范围后,用学生模型固定版本的分词器计数。一份中文数学讲义可以同时带有“中文”和“数学”标签,总库存只计一次。独立库存与训练累计读取量分别记录,第七篇的读取次数才有可靠分母。
训练团队最终收到四样东西:
| 交付 | 里面有什么 | 怎样验收 |
|---|---|---|
| 固定来源清单 | 数据集版本、选取范围、访问与使用条件 | 能重新取得同一批内容 |
| 统一文档与处理记录 | 正文、已有和新增标签、模型版本、修复前后差异 | 分类别检查完整性、正确性及误删 |
| 合并与用途清单 | 子集、复制和合成来源关系,训练与评估归属 | 检查重复与评估泄漏 |
| 学生token账本 | 固定分词器、独立库存与累计读取量 | 多标签文档只计一次,合成来源可追踪 |
回到开头的问题:已经训练好的模型,当然可以帮我们清洗数据。我们让它评分、复核和修复,再用来源核对、程序测试、人工抽样和训练对照验收成果。实际执行时,沿用四人的内部数据线,用现成软件和模型处理大批材料,按缺口购买授权数据与专家工作。先试样、核算合格成本,再分批放量。团队保留来源选择、质量标准、评估隔离与最终验收,交给训练团队的是一份来源、数量和质量都能核对的训练集。
重复家族:同一内容的复制、转载和关联改写组成的一组材料。
评估污染:测试内容进入训练材料,使成绩高估模型处理新问题的能力。
分词器:把文字转换为模型读取的token序列的工具。计数使用固定版本和配置。
新文章,直接发到你的邮箱。
AI、工程与实验,每月 1–2 封。
无垃圾邮件,随时取消。