大模型训练数据的清洗链路怎么设计?去重、过滤、脱敏怎么做?
面试怎么回答
我会把它设计成一条分阶段的大规模流水线:抽取正文和统一格式,语言识别和长度乱码等基础过滤,再用启发式规则加质量分类器做质量过滤,然后精确哈希去重加 MinHash LSH 近似去重,接着识别处理个人信息和有害内容,并把评测集内容从训练数据里排除防止污染。工程上用 Spark 或 Ray 按分片并行;记录每条数据在哪一步因什么原因被过滤;每个环节出输入输出和过滤比例的报表;产出的数据集带版本并记录规则参数;中间结果按阶段保存便于调整后重跑。质量评估靠人工抽样检查过滤掉和保留的数据,以及用不同清洗策略训练小模型对比效果。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
「数据决定模型的上限」在大模型时代更明显了。无论是预训练、继续预训练还是行业模型的训练,都要处理海量的原始文本。面试官问训练数据的清洗链路,其实是在问一个大规模数据处理流水线的设计,这正是数据开发的强项。
整体流程
原始数据 → 抽取和格式统一 → 语言识别和基础过滤 → 质量过滤 → 去重 → 安全和隐私处理 → 抽样评估 → 产出数据集(带版本)
各环节要做什么
- 抽取和格式统一:从网页、PDF、文档中提取正文,去掉导航栏、广告、页眉页脚,统一编码和格式;
- 基础过滤:语言识别(只保留目标语言)、长度过滤(太短的没有信息量)、乱码和特殊字符比例过滤;
- 质量过滤:
- 规则:重复行比例、标点比例、平均词长、停用词比例等启发式规则;
- 模型:用质量分类器给文本打分,保留高质量内容;
- 领域过滤:行业模型只保留相关领域的数据;
- 去重:
- 精确去重:内容哈希;
- 近似去重:MinHash + LSH 识别高度相似的文档(转载、模板化内容);
- 去重的粒度可以是文档级、段落级;
- 安全和隐私:识别并处理个人信息(手机号、邮箱、身份证)、去除有害内容;
- 防污染:把评测集的内容从训练数据中排除,避免模型「背答案」导致评测结果虚高。
工程要点
- 大规模并行:用 Spark 或 Ray,按数据分片并行处理;
- 每一步可追溯:记录每条数据被哪一步过滤、原因是什么,方便分析过滤规则是否过严或过松;
- 统计报表:每个环节的输入输出量、过滤比例、各数据源的贡献;
- 数据集版本化:每个产出的数据集有版本号,记录使用的规则和参数,模型训练时引用具体版本;
- 可重跑:调整规则后能高效重跑,中间结果按阶段保存。
质量评估
- 人工抽样检查每个环节过滤掉的和保留下来的数据;
- 小规模训练实验:用不同清洗策略的数据训练小模型,比较效果,这是验证清洗策略最直接的方法。