一、常见的数据问题
微调数据的质量直接决定微调效果。指令微调数据量通常只有几万到几百万条,相比预训练的万亿 token,每条数据的影响被大幅放大。
常见的数据问题有四类:
- 重复:同一条或高度相似的数据反复出现;
- 噪声:错误、无意义、不相关的内容;
- 格式不一致:指令和回答的模板、风格、结构不统一;
- 分布偏差:数据在任务、领域、语言、长度上分布失衡。
一句话总结:重复让模型死记硬背,噪声教坏模型,格式不一致让模型困惑,分布偏差让模型偏科。
二、四类问题分别会造成什么影响
1、重复
表现:
- 完全相同的数据出现多次;
- 高度相似的数据,比如只改了几个词;
- 同一 prompt 对应多个相似回答。
影响:
- 过拟合:模型记住特定样本,泛化下降;
- 概率偏移:重复样本对应的模式被过度强化;
- 训练效率低:浪费算力;
- 评估失真:如果验证集和训练集重复,评估结果虚高;
- 记忆泄露:模型可能逐字复述训练数据。
严重程度:
2、噪声
表现:
- 回答错误、事实不符;
- 回答不完整、答非所问;
- 无关内容、乱码、截断;
- 机器翻译痕迹重、语法错误;
- 有害、偏见、不当内容。
影响:
- 学坏:模型学会错误模式和错误知识;
- 幻觉增加:模型学会编造;
- 质量下降:回答质量整体下降;
- 安全风险:可能学会有害输出;
- 训练不稳定:loss 波动大。
严重程度:
- 噪声比例高时危害大;
- 少量噪声可能被平均掉,但仍建议清洗。
3、格式不一致
表现:
- 指令模板不统一,有的用“请回答”,有的用“Q:”;
- 回答风格不统一,有的详细,有的简短;
- 特殊 token 使用不一致;
- 多轮对话格式不统一;
- 系统提示词缺失或不同。
影响:
- 模型困惑:不知道应该遵循哪种格式;
- 输出不稳定:格式随机变化;
- 指令跟随下降:模型难以学到统一模式;
- 评估困难:不同格式难以比较;
- 部署问题:推理时格式不匹配。
严重程度:
- 格式不一致对指令微调影响很大;
- 统一格式通常能显著提升效果。
4、分布偏差
表现:
- 任务类型失衡,比如 90% 是问答;
- 领域失衡,比如全是医疗;
- 语言失衡,比如全是英文;
- 长度失衡,比如全是短回答;
- 难度失衡,比如全是简单问题;
- 来源失衡,比如全是模型生成。
影响:
- 偏科:模型在某些任务上强,其他弱;
- 泛化差:遇到分布外任务表现差;
- 灾难性遗忘:通用能力下降;
- 偏见放大:模型继承数据偏见;
- 评估偏差:评估集也可能偏。
严重程度:
- 分布偏差是微调中最隐蔽但影响很大的问题;
- 需要主动设计和监控。
三、四类问题的对比
| 问题 |
主要影响 |
隐蔽性 |
危害程度 |
| 重复 |
过拟合、记忆 |
低 |
中高 |
| 噪声 |
学坏、幻觉 |
中 |
高 |
| 格式不一致 |
困惑、不稳定 |
中 |
高 |
| 分布偏差 |
偏科、遗忘 |
高 |
高 |
四、数据清洗和质量过滤的方法
1、去重
(1)精确去重
- 完全相同的样本;
- 用哈希,如 MD5、SHA256;
- 简单高效。
(2)近似去重
- 高度相似的样本;
- 用 MinHash、SimHash、LSH;
- 用 embeddings 相似度;
- 用 n-gram 重叠。
(3)语义去重
- 语义相同但表述不同;
- 用句向量相似度;
- 设定阈值过滤。
(4)去重粒度
- 整条样本去重;
- prompt 去重;
- 回答去重;
- 多轮对话按轮去重。
实践建议:
- 先去精确,再近似;
- 阈值需要实验;
- 保留多样性,避免过度去重。
2、去噪
(1)规则过滤
- 长度过滤:太短、太长;
- 字符过滤:乱码、特殊字符比例;
- 重复词过滤:连续重复;
- 语言过滤:非目标语言;
- 敏感词过滤。
(2)质量分类器
- 训练一个质量分类器;
- 用标注数据训练;
- 对样本打分,过滤低分;
- 常用特征:长度、困惑度、语法、相关性。
(3)模型评估
- 用强模型评估回答质量;
- 打分或排序;
- 过滤低质量;
- 成本较高,但效果好。
(4)一致性检查
- 回答是否和指令相关;
- 回答是否自洽;
- 多轮对话是否连贯。
(5)人工审核
- 抽样人工检查;
- 制定标注规范;
- 用于校准自动方法。
3、格式统一
(1)定义模板
- 统一指令模板;
- 统一回答格式;
- 统一多轮对话格式;
- 统一系统提示词。
(2)转换
- 把不同来源数据转成统一格式;
- 处理特殊 token;
- 处理截断和拼接。
(3)验证
- 检查格式合规率;
- 检查特殊 token 使用;
- 检查长度分布。
(4)常见模板
- Alpaca 格式;
- ShareGPT 格式;
- ChatML 格式;
- 自定义格式。
4、分布平衡
(1)统计分布
- 任务类型分布;
- 领域分布;
- 语言分布;
- 长度分布;
- 难度分布;
- 来源分布。
(2)重采样
(3)加权
- 训练时给不同样本加权;
- 少数类权重高;
- 多数类权重低。
(4)补充数据
(5)监控
五、数据清洗流程
1、整体流程
第一步,数据收集:从多个来源收集。
第二步,格式统一:转成统一模板。
第三步,精确去重:哈希去重。
第四步,近似去重:MinHash、相似度。
第五步,规则过滤:长度、字符、语言。
第六步,质量分类:模型打分。
第七步,分布分析:统计各维度。
第八步,重采样:平衡分布。
第九步,人工抽检:校准质量。
第十步,最终验证:评估效果。
2、工具
- datasets:Hugging Face 数据集库;
- fastText:语言识别;
- MinHash:近似去重;
- KenLM:困惑度;
- BERTScore:语义相似;
- 自定义脚本:规则过滤。
3、指标
- 去重率;
- 过滤率;
- 格式合规率;
- 分布熵;
- 质量分分布。
六、实际项目中的建议
1、质量优先
- 宁可少而精;
- LIMA 证明 1000 条高质量数据有效;
- 质量比数量重要。
2、分层处理
- 先粗过滤,再精过滤;
- 规则优先,模型其次;
- 成本可控。
3、保留多样性
4、持续迭代
5、记录和可复现
6、人工参与
- 关键数据人工审核;
- 制定标注规范;
- 校准自动方法。
七、简单评价这道面试题
1、这道题的价值
- 这是大模型微调中非常实战的一道题;
- 一道题能考察数据问题的类型、影响和清洗方法;
- 区分度好,初级可能只知道“要去重”,中级能说清四类问题,高级能系统设计清洗流程;
- 贴近实战,做微调必然要处理数据。
2、这道题的不足
- 题目偏综合,如果没有实际数据处理经验,容易答得空泛;
- 没有涉及具体工具和阈值;
- 对数据合成和自动评估考察不够;
- 没有涉及数据清洗和训练效果的量化关系。
3、建议的追问方向
- 近似去重的阈值怎么定?
- 质量分类器怎么训练?
- 分布偏差怎么量化?
- 数据清洗后效果提升多少?
- 怎么用强模型合成数据?
- 数据清洗和训练的迭代流程?
4、总体评价
这是一道很好的大模型微调数据面试题,适合考察候选人对数据质量和清洗流程的理解。它既能考察四类数据问题的影响,也能延伸到具体清洗方法和工程实践。如果候选人能把重复、噪声、格式不一致、分布偏差的影响讲清楚,并能给出系统的清洗和质量过滤方案,基本可以判断其具备大模型微调数据处理的实战经验。
评论专区
评论加载中...登录后即可发表评论