大模型微调数据选择和构造技巧
大模型微调数据选择和构造技巧
在大模型微调过程中,如何选择合适的数据是一个关键问题。本文将介绍一些实用的数据选择和构造技巧,包括主动学习、数据多样性、数据不确定性等概念的解释,以及具体的实现方案,如聚类去重、对抗半监督过滤、自建reward二分类等方法。
在大模型场景微调中,选择什么样的数据进行微调是一个核心问题。从实践的角度来看,以下是一些常见的挑战:
- 是否需要对所有数据进行标注?标注速度慢怎么办?
- 已经有一批标注好的数据,接下来应该选择哪些数据进行标注?
- 能否总结出一套自动化的方法来构造数据?
这些问题在大模型出现之前就已经被研究过。以文本分类为例,通常数据分布呈现长尾特性,主要类别占据大部分数据量,而其他类别数据量较少。例如,在小红书上,美食、穿搭、旅游攻略等类别占大多数,而关于大模型微调技巧的搜索则相对较少。如果直接对线上图文进行采样标注,会导致数据分布不均衡,模型效果不佳。
在大模型微调中,类似的问题也存在。例如,在生成小红书文案的场景中,直接使用爬取的数据是否可行?答案是否定的,因为这样会导致数据分布不均衡。为了解决这些问题,可以采用“主动学习”的方法。
主动学习的基本原则
主动学习有两个基本原则:数据多样性和数据不确定性。
数据多样性
数据多样性主要体现在数据去重上。目前常用的相似度度量方法是基于对比学习的语义向量,也可以使用简单的词袋或TF-IDF方法。有了相似度度量方法后,可以使用one-pass聚类方法进行过滤,或者使用更复杂的K-Center-Greedy算法,其目标是在最大化多样性的同时最小化数据集大小。
如果已经有一批高质量的去重数据,如何找到与之不同的新数据?这里有一个简单实用的方案:将已有数据标记为正样本(1),待筛选数据标记为负样本(0),然后使用DeBERTa等模型构建二分类模型,并进行K-fold交叉验证。在交叉验证过程中,选择每个fold测试集中的概率接近0的样本。这种方法不仅适用于数据选择,还可以用于数据质量评估。
数据不确定性
数据不确定性主要体现在数据质量筛选上,需要选择模型学习效果较差的数据。最简单的方法是选择PPL值较差的数据。对于指令数据,可以计算所有选项的概率之和,过滤出概率和较低的数据,这些数据就是模型“不太肯定”的样本。
为了区分数据质量差和模型学习效果差的情况,可以使用reward model进行质量判断。有了质量打分模型后,就可以判断指令数据的质量,并据此选出模型真正不确定的数据。这个过程类似于手动的拒绝采样,核心是选择“模型不确定”+“数据质量达标”的那部分数据。
总结
监督学习中的主动学习主要关注两个方面:寻找多样性的数据和处理数据的不确定性。通过聚类去重、对抗半监督过滤、自建reward二分类等方法,可以构建一个高效、低成本的数据构造pipeline。这种方法不仅适用于大模型的数据选择和构造,也可以应用于所有监督学习场景。