[阅读笔记14][3S]Let‘s Synthesize Step by Step: Iterative Dataset Synthesis with Large Language Models by

这篇论文是23年10月发表的,针对使用LLM合成数据来训练小模型这个场景进行了优化,使得合成数据和真实世界数据(gold data)更接近,以此提升小模型性能。

根据下图可以看到,直接用LLM生成的数据,也就是ZeroGen论文方法,训练和测试有很大准确度差异,这是因为这样的合成数据与真实世界数据存在一个分布上的gap。而GoldData是用真实世界数据来训练的,可以看到训练和测试的差异小了很多。
基于这点作者提出如果能让LLM合成的数据更接近真实世界数据,那么用这个数据来训练小模型的话效果就会更好。

作者提出的方法分为四个步骤,第一步是先生成种子数据,第二步是用种子数据训练小模型,第三步是把验证集中小模型分类错误的数据给LLM让其生成类似的数据,然后添加到训练数据集中,第四步就是重复第二步和第三步,直到小模型性能收敛。

这里显示了第一步生成种子数据的伪代码,对于每个类别标签先利用LLM生成若干逻辑依据,然后让LLM考虑这些逻辑依据给出符合该标签的prompt。例如影评态度分类,对于积极这个类别,让LLM先给出若干依据,比如表现力强、剧情跌宕起伏等等,然后让LLM想象自己正在看表现力强、剧情跌宕起伏的这么一部电影,让它给出积极的影评。这一步收集到的所有数据作为种子数据集。

这里右图显示了剩下几步的伪代码,R为迭代轮数,人类标注的真实世界的数据叫做gold data,将gold data划分为验证集和测试集,每次迭代都需要用目前已有的数据训练小模型,然后用验证集验证小模型,分类失败的数据会交给LLM,让它再生成类似的数据并加入到训练数据中。R轮迭代之后就得到了最终的训练数据。左图是在影评态度分类这个任务上的prompt。

图里展示了对DistilBERT模型进行微调的结果,使用S3方法产生的数据集来微调效果最好,在四个数据集上都达到了最优表现。(但这里gold data直接标灰不参与对比我不认同,虽然这篇论文就是标榜只用少量gold data来合成大量近似gold data的数据,但是既然有更优质的数据为什么不用于训练,而且你这里合成的数据质量也达不到很好,也没有很接近gold data,毕竟用了那么多数据训练结果有些数据集上离gold data差挺远的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值