SFT 数据中混入低质量回答后模型输出变啰嗦时,如何从数据清洗和训练样本权重排查
旗舰版来源:huawei初级工程师训练样本加权输出冗长训练数据去重数据清洗流程
草稿
答案解析
我会从两个方向排查:一个是数据本身有没有把“啰嗦”模式教给模型,另一个是训练时这些样本是不是被放大了。
数据清洗上,我会先做一轮统计分析,重点看低质量回答和模型变啰嗦之间有没有相关性:
看回答长度分布,比如 token 数、句子数、段落数,和历史高质量 SFT 数据对比,确认是不是混入了大量超长回答。 看不同任务类型的长度,比如问答、代码解释、总结、数学推理、闲聊类是否有异常膨胀。 抽样检查长回答,判断是必要推理还是无效重复,比如重复解释、过度免责声明、模板化开头结尾、无关扩展。 检查是否存在格式污染,比如回答总是带“首先、其次、最后”、大量总结性废话,或者明明可以直接回答却强行展开背景。 检查 prompt 和 answer 是否匹配,有些低质量数据可能答非所问,但因为答案很长,模型会学到“多说就对”。
清洗策略上,我一般不会简单按长度一刀切,而是结合规则和模型打分:
对明显重复、模板化、无关扩展的样本直接删除。 对超长但有效的样本保留,比如复杂推理、代码分析、长文总结。 对简单问题配超长回答的样本降权或删除,比如“Redis 是什么”却回答几
登录后查看完整内容
