Read in English

你的 SFT 数据,教的是风格不是能力

把杂乱的数据流整理成统一训练集

一份指令集可以看起来无可挑剔——问题干净、答案用心、语气统一——却仍然让模型变差。问题通常不在答案,而在这份数据悄悄教的是风格,不是行为。

这是指令数据最奇怪的地方:它是最容易收集的语料,也是最容易出错而不自知的语料。

风格比知识泄漏得更快

一个团队写的指令集,会带着这个团队的口吻。开头的句式重复,回避的句式重复。模型往往还没学会任务,就先学会了声音——因为这份声音是每一行都有的共同点。

解法不是「写得更小心」,而是换人来写,并且检查一件事:只看第一句话,分类器能不能判断出这是哪类任务?能判断,模型多半也能。

重复是最便宜的那类昂贵错误

近似重复藏在改写里。三个只是换了说法、其实同一个问题的提示,会让模型在同一个行为上训三遍,而你真正想补的那类行为一行都没有。

去重要在意图层面做,而不是字符串层面:归一化提示、去掉领域名词,再把剩下的聚成类。留下来的,应该是一组彼此不同的行为。

长度是一个标签

如果每条长提示都配长答案、短提示都配短答案,模型学到的是这种配对,而不是推理。要有意打散长度:短问题配长答案,往往才是承载真正行为的那一行。

留出集必须长得像真实请求

由写训练集的人顺手写的留出集,衡量的是风格一致性。留出集要从真实使用里取——生产环境里那种混乱的、说了一半的请求——否则你只是在对一个没有用户会参加的考试调参。

交付前我们跑的清单

  • 只看答案风格,分类器能猜出任务类型吗?能,就换人换写法。
  • 重复是按意图去掉的,而不是按措辞?
  • 提示长度和答案长度是彼此独立的?
  • 留出集和训练行的来源不同?
  • 每一行都带任务类型与难度标签?

答不上这些,这份数据照样能训出一个「听起来很专业」的模型。专业不等于有能力。

从哪里开始

做监督微调集,先从你想改变的行为出发,再倒推哪些行能演示这个行为。语料总目录说明了指令行在各训练阶段怎么用;如果你要训的是「对题目做推理」而不是对话,题库语料是最近的邻居。

这些 SFT 语料由 Zovda 通过 Datuva 生产,风格与能力标签打在每一条上而不是整个数据集上,改配比不需要重新标注。

告诉我们你要教的行为和需要的量,我们会在 1 个工作日内回复;范围确认后提供字段说明。

说说你在训练什么

相关文章

把能直接进训练的语料交到你手上

告诉我们你在训练什么、关注哪些模态,我们在 1 个工作日内回复。

申请试用查看语料清单

申请试用

告诉我们你要解决的问题,我们在 1 个工作日内回复。