AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


大模型的微调数据选择技巧(二)
发布日期:2024-04-08 12:13:33 浏览次数: 2299 来源:包包算法笔记


今天包大人继续讲大模型训练中微调数据选择技巧,其二。

在上一篇文章里,我们回答了几个关于大模型数据方面的问题

1.数据要不要都去标注,标的比较慢咋办? 

2.我已经有一批标好的数据了,再去选哪些数据送标注比较好? 

3.能不能总结出一套数据构造方面自动化的方法?

传送门大模型微调数据选择和构造技巧

那么我们再来一个新的问题,如果给定了一批标注数据,如何选出其中“最好的”,“最适合”训练的数据子集呢?

类似于传统机器学习的特征选择,从N个特征里选出n个,提升模型效果,本身这个问题是NP难的,我们有没有什么近似的,高效的,贪心的方法能解决这个问题。大模型选数据也一样,不可能所有的组合都尝试一遍。

这篇文章《One Shot Learning as Instruction Data Prospector for Large Language Models》就提出了一个方法,可以从一堆数据中,把精华选出来,使用精华部分训练就够了,这个方法称为Nuggets。

具体是怎么做的可以参考这个图。

Nuggets看着挺复杂的,其实很简单,首先Nuggets有三个输入,一个输出。 

三个输入分别是:第一,一个大模型,用来评估数据好坏;第二,Predefined Task Set 用来辅助评估数据好坏;第三,Instruction Set就是等待筛选的大数据集。

输出目标就是Instruction Set的优秀子集,被称为Golden Set。

一句话说明白它是怎么做的。

它认为,如果一条数据作为one-shot的那个shot,即作为一条例子作为参考,能使得大模型有这个参考后,比zeroshot提升很多,就认为这是一条高质量的数据。

类似机器学习场景,多了一个特征,auc暴涨,那这个特征就是个好特征。

整体的方法论就是这样,至于评估LLM输出的好坏,其实可以选取的角度很多,比如最简单的PPL。

TASK就是Predefined Task Set中的测试数据,文中设定包含1000条左右的指令测试数据。需要对这1000条数据 有了one-hot参考后的PPL变化情况统计,数一下有百分之多少变好了,就作为这条数据A的Golder Score。

然后把Instruction Set的每一条数据都算出来他的Golder Score,从高到低排序,选top N作为最优子集即可。

结果比较惊人,在Alpaca数据中,选出top 1%的数据,就能取得和使用全部Alpaca类似的效果!

思路简单明了,但是有可以改进的地方。

首先是Predefined Task Set辅助数据集,这个随便选1000个就是最好的吗?

作者实验发现,使用Kmeans聚类100个类后,每个类别中心选1个,最后100个有代表性的效果是最好的。

整体看来,这个方法还是非常直观的,大家可以把思路拓宽一点,延伸到特征选择中的那些方法,看能否迁移过来,其核心就是如何低成本的度量一条数据有用。期待你的讨论。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询