AI前沿|迭代式合成小模型训练数据:用LLM外推数据误差来逼近真实数据分布
数据合成是一种在只有很少标注数据时训练小模型的有效方式,其中一种是利用大模型丰富知识去合成小模型的伪训练示例,使得同时实现数据与计算高效。但数据合成的一个挑战是合成的数据集通常与真实任务数据分布存在很大的分布差异。因此,作者提出逐步合成(Synthesis Step by Step, S3),一种数据合成框架,一个数据合成框架,通过用大模型迭代式地外推由在合成数据上训练的小模型在一个小的真实世界验证集上所产生的错误来缩小分布差距。多个NLP任务的广泛实验表明,该方法通过减少合成数据集和真实数据之间的差距,提高了小模型的性能,与几个基线相比有了显著改进:与ZeroGen相比提高了9.48%,与GoldGen相比提高了2.73%,与基于人工注释数据训练的小模型相比提高了15.17%。
小模型在任务特定数据上训练在资源受限场景下还很受欢迎,但大量标注数据过于昂贵,现有的数据生成方式如用LLM生成无限数量训练数据的方法如ZeroGen,需要多达1M的合成数据,但这经常导致大量数据合成与计算开销。直觉上数据质量对小模型效果很关键,但因为真实世界具体任务复杂性,合成数据和真实数据差距较大,见fig1,小模型在合成数据上的训练准确率接近100%,但在真实数据上的测试准确率仍很低。相比之下,当使用人工注释数据训练,训练和测试准确性间的差距小得多。
作者提出的动态优化方法见fig2,S3首先使用”解释然后生成”的方法合成种子数据集,该方法首先让LLM为每个标签生成基本原理(如果任务太难就跳过该步骤),然后结合生成的基本原理和特定于任务的提示来生成数据。然后S3通过迭代合成更多数据来细化种子数据集,方法是外推在种子数据集上训练的模型在小型验证集上的错误原因并利用这些信息继续生成新的数据,作者假定该验证集是从真实任务数据分布中采样的。
作者还对S3这种方法为何有效做了理论分析,简而言之,见下公示1,2。其中方程1代表每次模型推断数据后的新合成额外数据的分布的计算,其中括号里的P_D是真实世界数据分布,P_LLM表示从LLM合成数据的分布,数据合成过程就是从P_LLM中做i.i.d采样,P(0)_LLM表示种子数据的分布,所以公式1代表着模型外推错误并合成新数据的过程。接着公示2中用参数p控制来实际实现外推的计算,可以直观理解为附加数据集和种子数据集不同比例混合。理论上,我们可以通过简单地组合原始种子数据和合成的附加数据来恢复真实数据分布。但我们仍不能保证LLM和小模型的训练在现实场景中是完美的。因此,S3迭代地重复该过程以逐渐减小分布差异并优化混合数据集直到收敛。
table2展示了主结果。