暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NUGGETS: 在大数据集中筛选高质量数据用于微调

AI 搜索引擎 2024-09-25
475
今天分享的文章是:One-Shot Learning as Instruction Data Prospector for Large Language Models
基于One-Shot测试筛选高质量的指令微调数据集

文章链接: https://arxiv.org/pdf/2312.10302

代码链接: https://github.com/pldlgb/nuggets

摘要

当前在指令微调(instruction tuning)实践中,通常依赖于扩大数据集的规模,而缺乏明确的质量保证策略,这无意中引入了噪声,可能会损害模型的性能。为了解决这一挑战,论文提出了NUGGETS,这是一种新颖且高效的框架,利用One-Shot来识别并选择高质量的指令数据。

主要方法

如图所示,传统的指令微调数据集增强方法在于不断地用人力来迭代筛选有效的数据,不断尝试微调直到效果达到预期。而本文期望提出一个自动化方法Nuggets来从数据集中筛选高质量数据(Golden Subset)。
Nuggets的工作流程如上图所示。
  1. 计算零样本评分(Zero-Shot Score)这里有三个预定义的任务(A、B、C),并给出了模型在没有额外提示词指令下的表现。例如:
    • 任务A:法国首都是哪里(可以正确回答)
    • 任务B:计算数学方程(解方程错误)
    • 任务C:解释物联网的工作原理(解释错误)
  2. 一次性学习(One-Shot Learning):针对每个指令,计算其对应的One-Shot评分
    选择两个个指令示例(Education is not about accumulating knowledge, but rather about learning how to think for yourself、Generate a meaningful quote about education)给到任务ABC。三个任务都得到了正确的答案。
  3. 计算每个指令的黄金得分(Golden Score)
    黄金得分是通过比较One-Shot和零样本之间的差异得出的。在这个例子中,我们看到模型在添加了指令后,表现有了显著的提高。Golden Score的计算公式如下:

:表示第 个指令示例。
:表示预定义任务的数量。
:表示使用作为One-shot提示后,模型在第 个任务上的表现分数。
:表示模型在第 个任务上的零样本评分(即没有使用任何提示时的评分)。
:指示函数(indicator function),当括号内的条件成立时返回 1,否则返回 0。
总的来说,这就是一个评估两种回答的差异的方法,对于每个任务 ,比较使用 后模型的表现 和零样本评分 。如果 ,即使用 后模型的表现更好,则指示函数 返回 1;否则返回 0。
最后,会对所有任务 的指示函数值求和,然后除以任务总数 ,得到平均得分。
  1. 按黄金得分排序并选择最高得分的指令子集
    最后,我们根据黄金得分对所有的指令示例进行排序,并选择得分最高的那个子集。这个子集就是所谓的“黄金子集”。使用黄金子集的指令和数据集中的所有输入组合作为指令微调的数据集即可。

总结

本文提出了一个筛选有效指令的很直观的一个思路,期望在特定的数据中通过这种方式筛选高质量数据集,再将数据集用于微调来提高特定任务的准确率。

编者简介

李剑楠:华东师范大学硕士研究生,研究方向为向量检索。作为核心研发工程师参与向量数据库、RAG等产品的研发。代表公司参加DTCC、WAIM等会议进行主题分享。

文章转载自AI 搜索引擎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论