SELF-INSTRUCT: Aligning Language Modelswith Self-Generated Instructions 学习

指令微调就是要训练模型执行用户的要求的能力。

文章首先说"指令微调"数据集经常是人工生成,有数量少等缺点。文章提供了一个让语言模型自己生成指令微调数据,自己学习的方法。首先会让一个语言模型自己生成要求,输入和输出,然后去除低质量,重复的例子,得到的数据集再去训练这个语言模型。接下来是流程中的一些细节:

1,从人工生成的初始任务池中选出8个的instruction作为例子交给模型,让它生成类似的instruction。

如图,给8个实例,然后让模型继续生成。

2,让模型分辨这个instruction是不是分类任务。

如图,给模型几个例子,让他知道什么叫分类任务,什么叫非分类任务,然后然他分辨一下自己刚刚生成的任务是不是分类任务。

3,实例生成,也就是input,output的生成。这一步中,第二步的工作就要发挥作用了。文章表示在分类任务中,先生成output再生成input更好,其他的任务都是先生成input再生成output。

4.筛选。文章使用ROUGE-L similarity(Rouge-L是基于最长公共子序列的相似度评价指标。 它寻找参考摘要和文摘之间的最长公共子序列,并计算其相似度分数。)计算新instruction和已有instruction之间的相似度,只有新instruction和每一个旧instruction相似度都不超过0.7的时候它才会被采纳。在input,output方面,筛掉和旧例子完全一样或者input一样output不一样的。

5.微调。把新得到的数据喂给模型,多弄一些花样(比如修改一下格式之类的)给他训练

基本结构就是这样,接下来是收集到的数据的统计。

下面是收集到的任务信息的统计:

作者还研究了一下这些instruction当中最常见的动词和名词

这些词汇可以表现instruction多样性的程度。

还要检查新产生的这些任务相较于原始的任务池有多大差别,依旧是使用ROUGE-L算法计算相似度。

可以看到大部分都集中在0.2到0.4,相似度较低。

还统计了instruction的长度之类的信息。

总而言之,论文用这些数据来证明模型新产生的数据是足够多样化,且与原有数据差别够大的。接下来就要衡量这些数据质量够不够高。

为了衡量得到数据的质量,项目组随机选择了200个instruction,每个instruction随便选一个inputoutput对,然后请了项目组的老大来评价这些数据:

最终正确率为54%,不过作者说即使最终正确率不高,至少大部分样例是部分正确的,可以用来训练模型。

接下来是实验这些数据有没有用:

相关推荐
Deepoch2 小时前
Deepoc 大模型在无人机行业应用效果的方法
人工智能·科技·ai·语言模型·无人机
昵称是6硬币3 小时前
YOLOv11: AN OVERVIEW OF THE KEY ARCHITECTURAL ENHANCEMENTS目标检测论文精读(逐段解析)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
静心问道3 小时前
XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习
人工智能·学习·语音识别
heimeiyingwang9 天前
【深度学习加速探秘】Winograd 卷积算法:让计算效率 “飞” 起来
人工智能·深度学习·算法
IAM四十二9 天前
Google 端侧 AI 框架 LiteRT 初探
android·深度学习·tensorflow
小白菜3336669 天前
DAY 37 早停策略和模型权重的保存
人工智能·深度学习·算法
yizhimie379 天前
DAY 40 训练和测试的规范写法
深度学习
zeroporn9 天前
以玄幻小说方式打开深度学习词嵌入算法!! 使用Skip-gram来完成 Word2Vec 词嵌入(Embedding)
人工智能·深度学习·算法·自然语言处理·embedding·word2vec·skip-gram
懒惰的bit9 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
Jay_5159 天前
C++ STL 模板详解:由浅入深掌握标准模板库
c++·学习·stl