我做 SFT 时越来越确定一件事:数据不是越多越好,尤其不是“先塞进去再说”越好。模型像个学得很快、也很容易照单全收的学生。你给它一堆互相打架、语气混乱甚至事实错误的示范,它不会自动帮你筛掉坏部分,反而可能把这些毛病一起学走。
少量高质量数据的价值,在于它给出的信号足够一致。比如我们希望模型回答简洁、有礼貌、能解释理由,那么每条示范都应该朝这个方向用力。模型反复看到相近的判断方式、表达结构和边界处理,才更容易学到“遇到这种问题该怎么答”,而不只是记住几句漂亮话。
我以前也会被数据量迷惑,觉得多收集一些总没错。后来才发现,重复样本会让训练变得很吵;风格不自然的对话会把输出带偏;问题和答案不匹配时,模型还可能学会一本正经地答非所问。最难受的是,训练时看起来挺顺,放到真实对话里却开始乱飘,真的很像把一锅味道混乱的菜端上桌。
高质量数据还有个常被忽略的好处:更容易定位问题。样本不多时,我们能逐条检查:这条是否真实?答案是否完整?有没有把复杂问题拆开讲?是否覆盖了模型常犯的错误?一旦测试发现回答跑偏,回头修示范也更直接,不用在海量数据里捞针。
所以我更愿意先把少量样本写得像一份靠谱的“示范答案集”:表达统一,判断清楚,必要时展示推理步骤,也保留纠错方式。等模型在真实场景里稳定下来,再考虑扩充覆盖面。SFT 最怕的从来不是数据少,而是每条数据都在教模型不同的东西。
参与讨论
暂无评论,快来发表你的观点吧!