【大模型LLM第十一篇】微调自动化数据选择方式之MoDS

embedded/2024/11/13 9:43:17/

前言


来自中科院自动化所的paper

MoDS: Model-oriented Data Selection for Instruction Tuning

link:https://arxiv.org/pdf/2311.15653

github:https://github.com/CASIA-LM/MoDS

一、摘要

sft已经成为让LLM遵循用户指令的一种方式。通常,需要使用数十万个数据来微调基础LLM。最近,研究表明少量的高质量指令数据就足够。然而,如何在给定的数据中选择合适的指令数据?

为了解决这个问题,提出了一种面向模型的数据选择(MoDS)方法,该方法基于考虑三个方面的新标准来选择指令数据:质量、覆盖范围和必要性。

首先,利用质量评估模型从原始指令数据集中过滤出高质量子集,然后设计算法进一步从高质量子集中选择具有良好覆盖率的seed instruction dataset。应用seed数据集来微调基础LLM获得初始sft LLM。最后,用一个必要性评估模型来找出初始sft LLM效果较差的sft数据,将这些数据作为下一步改进LLM的必要指令。

从原始指令数据集中得到一个小的高质量、覆盖面广、必要性高的子集。实验结果表明,使用MoDS方法选择的 4,000 个指令对进行微调的模型比使用包含 214k 指令数据的完整原始数据集进行微调的模型表现更好。

二、方法

这个方法主要聚焦于三点:

  • Quality: 数据样本的质量
  • Coverage: 即多样性
  • Necessity: 对模型sft重要且唯一,主要从,大模型能很好的回答,说明模型学习好了,如果不能生成好的回答,说明LLM缺乏这个能力,则这个样本是必要的去提升模型能力。

分为三步骤

  1. Quality Evaluation
  2. Diverse Data Selection for Seed Instructions
  3. Augmented Data Selection.

2.1 Quality Evaluation

直接用一个reward model进行样本质量评分

reward model:reward-model-deberta-
v3-large-v22 (基于DeBERTa架构)

超过某个阈值的数据样本挑出来,当作 high-quality in struction dataset

2.2 Diverse Data Selection for Seed

依然采用k-center-greedy聚类来得到subset

讲解和代码:https://zhuanlan.zhihu.com/p/711917766

最终得到的样本集称为:seed instruction dataset

2.3 Augmented Data Selection

利用seed instruction dataset训练一个sft model.

用这个sft model对high-quality in struction dataset进行推理,之后用一个review model对生成的response和instruction计算一个review score,采用的模型依然是reward-model-deberta-v3-large-v22 (基于DeBERTa架构)

如果review score低于某个分数,则代表模型生成的response不是那么好,收集全部的低review score的样本,之后再用一次K-center greedy选取一个子集,作为加强数据集。

相当于做了一个high-quality in struction dataset选多样性subset,之后再通过预测不好的样本集,再补充一部分增强模型能力。

最终用这两个subset组成最终的数据集进行训练

三、实验

还做了一个 k-center和random采样的对比实验,这种实验基本上在用k-center的情况下都会对比一下:


http://www.ppmy.cn/embedded/107159.html

相关文章

C#线程同步

c#线程同步代码示例 仔细考虑下面这段代码是不是输出0 const int _max 1000000;private int _count 0;void Start(){Task task Task.Run(() >{Decr();});for (int i 0; i < _max; i){_count;}task.Wait();Debug.Log(_count);}void Decr(){for(int i 0; i < _max;…

YOLOv9改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示

一、本文介绍 本文记录的是基于Shuffle Attention注意力模块的YOLOv9目标检测改进方法研究。Shuffle Attention模块通过独特的设计原理&#xff0c;在保持轻量级的同时实现了高效的特征注意力机制&#xff0c;增强了网络的表示能力。本文对YOLOv9的RepNCSPELAN4模块进行二次创…

EmguCV学习笔记 C# 9.2 VideoWriter类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

EPLAN中如何将图纸导出为PDF文件并设置页边距?

EPLAN中如何将图纸导出为PDF文件并设置页边距? 如下图所示,在项目中选中需要导出的图纸页, 如下图所示,点击上方页-----导出------PDF, 如下图所示,在弹出的窗口中设置导出文件的名称、输出目录、输出颜色,这里建议勾选“使用打印边距”, 如下图所示,继续点击下方的设…

python reques使用案例

python数据类型简介 2024/9/3 08:59:28 python数据类型简介 2024/9/3 08:59:32 你想了解哪种数据类型&#xff1f;如数字、字符串、列表等&#xff0c;还是有其他特定的类型或用法吗&#xff1f; 2024/9/3 08:59:40 所有的 2024/9/3 08:59:48 Python的主要数据类型包括&#xf…

Pencils Protocol生态新进展,即将上线 Vault 产品

“极高的盈利预期、通证的持续回购与销毁&#xff0c;Vault产品的推出正在成为Pencils Protocol生态发展的重磅利好。” Pencils Protocol是目前Scroll生态TVL最高的DeFi平台 &#xff0c;即便是行情整体较为平淡&#xff0c;其仍旧能够保持在3亿美元左右的锁仓价值&#xff0c…

?.操作符的作用

在编程中&#xff0c;?. 操作符通常被称为“可选链”&#xff08;Optional Chaining&#xff09;操作符&#xff0c;它主要用于JavaScript等现代编程语言中。这个操作符的主要作用是安全地访问深层嵌套的属性或方法&#xff0c;而无需在每一步都进行繁琐的null或undefined检查…

帆软报表使用url访问报表,自定义前端搜索,优化报表展示

近期公司页面往报表方向迁移&#xff0c;正好选择了帆软报表&#xff0c;由我负责这一部分的业务代码修改&#xff0c;我们没有采用帆软的鉴权模式。再进行简单的报表展示后发现原始的帆软报表组件不符合前端的设计要求&#xff0c;查询帆软官网后发现要修改是比较繁琐的。 先看…