缓解LLM“偏科”难题:IDEAL方法优化训练集组成

上交大&上海AI Lab提出的IDEAL方法,通过调整SFT训练集组成,显著提升LLM在多领域的综合性能,有效缓解LLM“偏科”现象。

原文标题:一招缓解LLM偏科!调整训练集组成,“秘方”在此 | 上交大&上海AI Lab等

原文作者:数据派THU

冷月清谈:

上海交大&上海AI Lab联合团队提出了一种名为IDEAL的创新方法,旨在通过调整SFT训练集的组成,显著提升大型语言模型(LLM)在多种不同领域上的综合性能,有效缓解LLM在多任务场景下出现的“偏科”现象。该方法通过建模量化每个领域数据对于最终结果的影响情况,科学地调整训练数据集的组成,从而提高模型整体的均衡性。研究表明,SFT阶段训练数据的数量并非关键,配比不合适反而会加剧模型“偏科”,IDEAL方法能够迭代优化训练集的各个领域数据数量,避免了人工调整数据集配比的繁琐过程,具有较大的实用价值。

怜星夜思:

1、IDEAL方法主要针对的是SFT阶段的训练集优化,那么在预训练阶段,我们是否也能应用类似的思路来构建更均衡的数据集,从而避免LLM在一开始就产生“偏科”倾向?
2、文章提到,增加SFT训练数据量不一定能提升模型性能,甚至可能加剧“偏科”现象。那么,在实际应用中,我们应该如何判断当前的数据配比是否合理?有没有一些可量化的指标可以参考?
3、IDEAL方法似乎更关注于不同领域之间的性能平衡。那么,对于某个特定领域,如何进一步提升LLM在该领域的专业能力?是应该增加该领域的训练数据,还是应该采用其他更精细化的方法?

原文内容

本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处

本文共1500字,建议阅读5分钟

配比不科学,训练量越大偏科越严重。


大幅缓解LLM偏科,只需调整SFT训练集的组成。


本来不擅长coding的Llama 3.1-8B,代码能力明显提升。


上海交大&上海AI Lab联合团队提出创新方法IDEAL,可显著提升LLM在多种不同领域上的综合性能。



此外,研究还有一些重要发现,比如:


  • SFT阶段训练数据的数量不是关键

  • 配比不合适,训练数据越多,反而会加剧模型“偏科”


具体来看——


SFT后LLM部分能力甚至退化


大型语言模型 (LLM) 凭借其强大的理解和逻辑推理能力,在多个领域展现了惊人的能力。除了模型参数量的增大,高质量的数据是公认的LLM性能提升最关键的影响因素。


当对模型进行监督微调(SFT)时,研究人员发现LLM在多任务场景下常出现“偏科”现象——部分能力突出而部分能力并未涨进,甚至退化。这种不平衡的现象导致大模型在不同的领域上能力不同,进而影响用户体验。


上海交大和上海AI Lab的研究者迅速将目光聚焦到SFT训练的训练集上,是否可以通过调整训练集的组成来缓解LLM偏科的情况?直觉上来看,直接将LLM的弱势科目的训练数据增加一倍,就可以让最后的结果发生变化。但是,由于训练数据之间的耦合关系,研究者通过建模量化每个领域数据对于最终结果的影响情况,科学地调整训练数据集的组成,最终提高了模型的。


IDEAL方法


问题建模:

首先按照不同的领域准备高质量的训练数据集:图片


并给出对应的用于验证的验证集:图片。通过在训练集上面训练模型θ,获得训练集上的最优参数:θ*。


论文希望在验证集上的损失达到最小。为了能够方便的调整训练集,论文引入了对应的变量β,并将这个优化问题显示地建模了出来:



论文从理论角度给出了各个领域数据调整对于最优模型在验证集上影响的大小(具体可见原论文中的Lemma 1):



高效计算:

由于式子中存在参数二阶矩阵的逆的操作,计算的资源消耗非常大。为了能够扩展到LLM的参数量级,论文采用了K-FAC的理论来近似简化计算Hessian矩阵的逆。通过挑选模型参数中的“重要”层的数值来近似刻画各个领域数据对于最后模型性能的影响,并最后通过合理的放缩超参数m来控制最后的调整比例大小:



整体的算法流程图如下所示:



实验结果


论文主要以Llama3.1 8B模型作为Base model,测试了IDEAL对四个典型领域上多任务训练的模型的提升效果。可以看到,无论是epoch1还是epoch3,IDEAL都能够在2轮迭代后将原先不擅长的Coding能力显著提升。



除此之外,论文还有其他的发现:


  • 一般随机初始的训练集分布都是有进一步优化的空间:文章中,无论在4个领域4个benchmark,还是5个领域8个benchmark上,无论初始分布是各个领域是数量相等的或者不等的分布上,IDEAL都实现了对于平均结果的提升。

  • SFT阶段训练数据的数量不是关键:因为以往的re-weighting工作会控制整体的训练数据量,研究团队将对比的方法DoReMi和DOGE,都提升了整体的数据量到IDEAL对应的数量,但实验结果证明,提升数据量而没有改变数据混合分布,对于模型的提升效果甚微。

  • 如果数据分布配比不合适,更多数据量,训练地更久,反而会导致更加不均衡的模型效果。团队发现相比训练epoch1,训练同样的数据epoch3会导致数据之间的负面冲突被放大,导致最终的模型性能更加不均衡。

  • 论文还指导了超参数m的选取:m的取值最好选在0.15。因为理论要求,应该在原始分布的周围优化数据配比,所以m应该选取不大的步长。而选取过小的步长,对于模型最终的效果影响也会较小。综上所述,论文在m=0.1,0.15,和0.3三个设定的实验中更加推荐0.15的取值。


应用价值


IDEAL解决了得到各个领域高质量训练数据之后如何配比组合成为统一的训练集的问题。通过迭代优化的方式优化训练集的各个领域数据数量。避免了之前研究者需要按经验,人工调整各个数据集配比的dirty work,具有较大的实用价值。


论文信息:

标题:

IDEAL: Data Equilibrium Adaptation for Multi-Capability Language Model Alignment
作者:上海交通大学、上海AI实验室、清华大学等
GitHub代码库:

https://anonymous.4open.science/r/IDEAL-678C520/README.md
arxiv:

https://arxiv.org/abs/2505.12762


编辑:于腾凯
校对:丁玺茗



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

针对特定领域的能力提升,我觉得不能简单地增加数据。精细化方法更重要,比如领域知识注入,将特定领域的知识图谱、规则等融入到模型中。另外,可以尝试使用领域自适应预训练的方法,在特定领域的数据上进行二次预训练,使模型更加适应该领域的特点。此外,还可以借鉴迁移学习的思想,将其他相关领域已经训练好的模型迁移过来,然后进行微调。

楼上说的都有道理。不过,在采用这些精细化方法之前,最好还是先对当前模型在该领域的表现进行深入分析,找出瓶颈所在。例如,可以通过错误分析,了解模型在哪些类型的样本上容易出错,或者通过可视化技术,了解模型在哪些方面对该领域的知识理解不够深入。只有找到了问题的根源,才能更有针对性地选择合适的方法。

有道理,预训练阶段的数据真的太重要了,直接决定了模型的上限。不过,预训练的数据量通常非常庞大,想要实现精细化的数据均衡,成本可能会很高。感觉可以考虑一些更轻量级的方法,比如基于领域分类的简单采样策略,或者使用一些自动数据选择的算法,尽量在成本可控的前提下,提升数据的均衡性。

我也觉得验证集loss是一个重要的参考指标。不过,在实际应用中,验证集的选择也很关键。如果验证集本身就存在偏差,那么基于验证集loss的评估结果可能就不准确。因此,需要尽可能构建一个具有代表性、覆盖面广泛的验证集,以保证评估结果的可靠性。另外,可以考虑使用cross-validation的方法,多次评估数据配比的合理性。

这个问题提得很好!预训练阶段的数据均衡同样重要。IDEAL方法的核心在于量化不同领域数据的影响,并进行针对性调整。在预训练阶段,可以尝试对不同领域的数据进行加权采样,或者采用数据增强等技术,以平衡不同领域数据对模型的影响。此外,还可以借鉴课程学习的思想,先用简单、通用的数据训练,再逐步引入复杂、特定领域的数据,避免模型过早陷入局部最优。

文章里提到可以通过验证集损失来评估数据配比,这个思路挺好的。更进一步,可以考虑引入一些信息论的指标,例如互信息、KL散度等,来衡量不同领域数据之间的相关性和差异性。此外,还可以通过观察模型在不同领域任务上的表现差异,例如准确率、召回率等,来判断是否存在“偏科”现象。如果发现模型在某些任务上表现明显较差,就可以考虑增加对应领域的数据。

楼上说到点子上了!我补充一点,预训练阶段的数据偏斜可能会导致模型在某些领域存在“先入为主”的偏见。因此,除了数据层面的调整,还可以考虑在模型结构或训练目标上进行改进,例如引入领域自适应学习的方法,或者设计更鲁棒的损失函数,以增强模型对不同领域数据的适应性。

补充一下,除了知识注入和领域自适应预训练,还可以考虑使用一些专门针对特定领域的模型结构。例如,在金融领域,可以采用一些时序模型或图神经网络;在医学领域,可以采用一些注意力机制更强的模型。此外,还可以针对特定领域的任务特点,设计更有效的损失函数和评价指标。

别忘了还可以用对抗训练!通过生成一些对抗样本,来评估模型在不同领域任务上的鲁棒性。如果在某个领域,模型容易受到对抗样本的攻击,说明该领域的数据可能存在不足,或者模型对该领域的知识掌握不够扎实。这种情况下,可以考虑增加该领域的数据,并采用一些对抗训练的技巧,提升模型的鲁棒性。