随着业务发展,某些子任务的数据量可能过大,影响其他任务的模型泛化。定期检查并精简这些“冗余”数据,确保数据集高效且均衡。
面对新业务需求而无特定SFT训练数据时,需从开源数据中筛选有助于提升该场景表现的数据,以填补数据缺口,增强模型适应性。
分析现有训练集,找出对特定业务场景增益最大的数据,优化数据资源配置,提高模型性能和效率。
本文将探索两种类型的数据精选方法
本文将聚焦于这些方法的核心逻辑和理论,而非论文中的测试结果。实际上,很多测试结果并不具备实际业务参考价值,关键在于理解并运用其中的思想。
核心思想:
论文的核心理念围绕三个关键指标,其中最核心的是 Instruction-Following Difficulty (IFD) metric。
具体例子:
左上角的正例 1: DA 和 CA 都很高, 显示出该输出对原始模型而言就颇具挑战性,同时,即便在给定提示(prompt)作为上下文时,模型生成输出的难度并未显著降低。这类就是 “difficulty” 样本。
左下角的正例 2: DA 和 CA 都相对低, 意味着该输出对模型而言容易生成,但加入提示后,并未给模型带来显著的生成难度下降。这类也是值得训练的样本。
右上角的负例 1: DA 高而 CA 低。 这种情况通常出现在短文本中,由于平均损失较高导致 DA 值大。然而,给定提示后 CA 显著降低,说明在上下文的帮助下,生成这个简短的输出变得轻而易举。属于 “easy” 样本。
右边中间的负例 2: DA 和 CA 都相对低。 这个例子中,答案引自 LLM 预训练学过的一本书,因此作为已有知识,LLM 很容易复述出这句话。但是,如果加上一个指令,CA 分数就会变得更低,这表明 LLM 在遵循这个指令方面已经获得了相当好的能力。属于 “easy” 样本
右下角的负例 3: 最常见的情况,即教学难度不够。同样属于 “easy” 样本。
优点:
缺点:
在 Alpaca和 WizardLM上进行了实验,大约 5%-10% 的数据即可超过原来的模型。如下图:
进一步探究了不同的数据筛选方法对模型的影响,如下图:
值得注意的是,Low IFD score 有着极低的 performance,这进一步证明了我们方法的有效性,即高 IFD 的 sample 是更有效的,而低 IFD 的 sample 反而是对训练有负面影响的。
论文链接:https://arxiv.org/abs/2402.00530
Github 链接:https://github.com/tianyi-lab/Superfiltering
这篇文章揭示了较强和较弱的模型在感知数据难度上的一致性,提出只要在很小的模型上,如 GPT2(124M),使用 IFD score,就可以很好的选出较好的指令数据。这篇文章是第一个成功使用 GPT2-level 的小模型完成对 GPT4 生成的数据进行筛选的工作。
链接:ACL2024《Superfiltering: Weak-to-Strong Data Filtering for Fast Instruction-Tuning》论文解读
论文链接:https://arxiv.org/abs/2402.10110
Github 链接:https://github.com/tianyi-lab/Reflection_Tuning
这篇文章提出了老师学生互动模式(teacher-student collaboration pipeline)来提升数据质量,其中使用了 IFD 来评估新生成的 instruction 的难度,同时提出了逆过程的 IFD(reversed-IFD)来评估新生成 response 和 instruction 之间的 alignment。
这篇文章是 IFD 工作的进一步发展,由同一批作者撰写,主要解决了 IFD 效率问题。
核心思想:
设想一个场景,若你计划训练一个 72B 的庞大模型,在百万级别的 SFT 数据上使用 IFD 进行数据筛选可能会非常耗时费力。那么,我们是否能用一个规模较小的 13B 模型来代替这一步的数据挑选工作呢?问题的关键在于这两个不同大小的模型在计算 IFD 指标时能否保持顺序一致性。
论文中证明了,尽管大模型和小模型在内在能力上存在显著差异,例如,大型模型在同一数据上通常会有更低的困惑度,但不同大小的模型在感知教学难度方面可能具有相似性。
具体来说,如果某条候选训练数据在大 size 的模型中计算的 IFD 分数位列前 5%,那么用小模型计算的话,这条数据也有很大可能性排在前 5%。简而言之,不同 size 的模型在识别困难数据时,不同数据的相对排名往往相似。这对我们来说已经足够,因为在应用 IFD 方法时,我们更关注数据的相对排名,而不是具体得分。例如,通常选取 IFD 排名前 10% 的数据作为训练集。
优点和缺点
这种方法与标准的 IFD 相比,优点在于提高了时效性,使数据处理更加迅速。然而,它也存在一个缺点,即相较于原始的 IFD 方法,其效果略有降低。
项目:https://github.com/CASIA-LM/MoDS
核心思想:
围绕三个点 quality (质量), coverage (覆盖面) 和 necessity (必要性)。
方法步骤:
优点:
缺点:
项目:https://github.com/IronBeliever/CaR
核心思想:
同 MoDs 的方法十分相似,但流程更为简洁。
该方法融合了质量和多样性两个关键要素。首先,它使用评分模型对数据进行质量评估,筛选出高质量数据作为训练集的一部分。为了保持数据的多样性,还采用 k-means 聚类,并从每个簇中选取高质量数据,作为训练数据的另外一部分。最终筛选出来的数据同时兼顾质量和多样性。
不同点在于该论文中用了较长的篇幅去讨论怎么得到一个更符合人类喜好的评分模型,论文中谈到很多的评分模型其实是倾向于 GPT 偏好的,而不是人类偏好。
优点:
缺点:
核心思想:
假设,现在我们有 5 个不同的任务场景需要优化,每个任务配有 4 条测试数据,共计 20 条测试数据。目前,我们还拥有 1000 条训练数据。为了评估这些数据对测试集的增益效果,我们将每条训练数据逐一作为 one-shot example,观察加入其后对每条测试数据输出的影响。若加入某条训练数据能降低测试数据的损失(loss),则视为有增益效果,可能值得加入到最终的训练集中。
每条训练数据将根据其对 20 条测试数据中多少条有增益效果来获得一个得分,例如,若一条训练数据能让 16 条测试数据得到增益,则其得分为 0。8(即 16/20)。我们将根据这一得分机制,选择得分高的数据组成精选训练集。下图展示了得分低和得分高的数据示例。可以看到这里得分低的例子,如输出为空,或没有真正输出一张图片。
优点:
缺点:
核心思想:
同 Nuggets, 一样要首先得到你需要优化场景的诺干测试集,不同于 Nuggets 的是, Nuggets 是考察训练集作为 one-shot 对测试集的提升, LESS 更直接, 考察的是训练集给模型梯度优化方向对测试集 loss 的下降, 选择那些对测试集 loss 下降最大的那些训练集作为 gold train dataset。 实质上, 论文中考虑得更全面,如为了更精细得到损失的影响,设置了 warmup 的环境,为了空间的友好型,使用了 Lora搭配降维等等各种探究, 这篇论文有陈丹琪的挂名,值得深度!
LESS 方法的核心思想同 Nuggets 类似,都是基于一个明确的场景测试集挑选数据,考虑候选训练数据对这个测试集的提升作用。与 Nuggets 不同的是,LESS 不依赖于训练集作为 one-shot example 对测试集的提升,而是直接考察假如模型对这条候选训练数据进行训练时,模型梯度优化方向对测试集损失的降低。通过选择那些能最大程度降低测试集损失的训练数据,我们得到了所谓的 “target gold train datset”。这种方法考虑得非常周全,例如通过 warm up 来更精确地衡量损失的影响,同时使用 Lora 搭配降维等技术以优化空间效率。这篇论文还有陈丹琪的参与,论文写作十分完备,值得深入研究。
具体例子:
该论文中的一个有趣例子展示了 LESS 方法的有效性。在这个例子中,红框内是一条孟加拉语的测试集,而下方三个例子则是通过不同方法找到的对这条验证集最有贡献的训练集。可以看到,基于字符表面的方法如 BM25 只能召回相同语种和词汇的例子,而 RDS 使用嵌入式的召回方法。令人印象深刻的是,LESS 方法找回了一个英文例子,且改例子其难度与验证集相似。这证明了 LESS 能从更深层次筛选数据,并揭示了大型语言模型对不同语种的内在对齐能力。
优点:
缺点:
参考链接:大模型SFT数据精选方法
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有