首页 > 其他分享 >Self-Instruct 论文解读:利用大模型自己给自己生成指令数据,指令数据自动生成

Self-Instruct 论文解读:利用大模型自己给自己生成指令数据,指令数据自动生成

时间:2023-06-27 20:22:37浏览次数:39  
标签:输出 Self 生成 任务 指令 模型 输入

总览

大规模“指令调整”的语言模型,即指令微调的LLM,已经表现出非凡的零样本能力,尤其是推广新任务上。 然而,这些模型严重依赖于人类编写的指令数据,而这些数据通常在数量、多样性和创造力方面受到限制,因此阻碍了调整模型的通用性。

基于上述背景,作者提出了Self-instruct框架,一个通过预训练语言模型自己引导自己来提高的指令遵循能力的框架

大白话点讲,就是

  1. 大模型自己遵循一套流程来生成数据
  2. 再用这些生成的数据来指令微调训自己
  3. 从而提高模型自己的能力。

因此核心思想就是生成 指令遵循数据

数据生成

指令数据由指令、输入、输出组成。如下图,作者的数据生成piple包含四个步骤:1)生成任务指令,2)确定指令是否代表分类任务,3)使用输入优先或输出优先方法生成实例,4)过滤低质量的数据。

1 指令生成

首先生成丰富的指令,初始化175个任务,每个任务1个指令和1个实例;

  1. 每一个迭代都选8个任务的指令作为该任务的提示样本,其中6个是人写的,2个是生成的。
  2. 然后组成输入送入模型进行输出引导,直到达到token限制或者够16个任务

2 分类任务识别

作者对于分类任务和非分类任务的后续处理是不同的,所以需要先区别是否为分类任务,这里同样使用LLM对生成的指令进行区别。如下图(只显示了部分),作者为列举 12 个分类指令和19个非分类指令作为prompt提示,以少样本学习提示的方式让LLM判断是否任务为分类。

3 实例生成

针对每一任务类型,作者独立的生成实例,即整个指令数据。

指令微调一般三部分:指令、输入和输出,大模型需要对这3部分都进行生成。

这部分比较难的是让大模型理解模板任务是什么,并根据指令(上面已经生成了),得到输入,再进一步补充出输出

作者发现大模型对 指令-输入-输出 提示的上下文学习有效果,于是:

输入优先方式(Input-first Approach)

以下图为例,给大模型一堆例子,指令指导它进行参考生成:如果需要input,就先生成input,如果没有input,就直接生成output

输出优先方式(Output-first Approach)

上面这种输入优先的方式不适合部分任务生成,尤其是分类任务,生成的输入会偏向于某个标签(label),比如是语法错误检测任务,他会生成 语法性的输入。于是作者提出输出优先方式,将输出放在前面进行上下文学习

4 过滤和后处理

  1. 为了保证指令多样性,新指令中只有与已有指令ROUGE-L相似度(衡量自然语言相似度的指标)小于0.7的才会被保留;
  2. 包含特定关键词的指令也剔除(image, picture, graph等LM本来也无法处理的);
  3. 去除 输入输出完全相同的实例;或者输入相同输出不同的实例;
  4. 还有一些启发式方法(比如指令太长/短,输出是输入的重复等等)进行剔除;

标签:输出,Self,生成,任务,指令,模型,输入
From: https://www.cnblogs.com/chengnan113/p/17509840.html

相关文章

  • 分享几个免费设计生成及参考工具 (第四期)
    今天来给大家分享几个国外免费的设计生成工具CallToInspirationhttps://calltoinspiration.com/一个为UX设计师和开发人员提供灵感的平台,在这里你可以看到很多细节化的设计元素,比如登录界面、个人资料页面、按钮、图标等,让你可以从中获取灵感,创造出独特而精致的设计。KuKuKeKeht......
  • 创建WinFrom项目,生成桌面exe安装包 【VS2019】
    一:添加WinFrom开发需要的工具  a)打开VS-->选择随意项目或继续无需代码-->工具-->获取工具和功能-->选中【.NET桌面开发】进行安装即可。二:创建WinFrom项目  a)打开VS-->创建新项目-->搜索窗体应用,选择Windows窗体应用(.NETFramework)如图所示-->修改项目名称、位置......
  • odoo14中生成序列号
    #大货类型的制造订单,序列号格式为“MO年份后两位四位顺序码”,例:MO230001#PPS样类型的制造订单,序列号格式为“MO年份后两位四位顺序码-Sample“,例:MO230001-Sample 在Odoo中,您可以使用XML来定义一个ir.sequence数据,以生成满足特定格式的序列号。以下是按照您提供的格式创......
  • ChatGPT 指令知识要点
     ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作全面AI时代就在转角道路已经铺好了“局外人”or“先行者”就在此刻等你决定。。。。。还有更多。。。。,联系我,一起学起来,行动起来吧ChatGPT指令知识要点指令越精确,ChatGPT回答会越到位。我们介绍11类......
  • VUE 滚动到底部加载更多(附带指令实现方式)
    VUE滚动到底部加载更多(附带指令实现方式)直接上代码:mounted(){window.addEventListener('scroll',this.handleScroll,true);},destroyed(){window.removeEventListener('scroll',this.handleScroll);},methods:{......
  • 三层代码生成器
    packagecom.uma.hsnn.util;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.core.exceptions.MybatisPlusException;importcom.baomidou.mybatisplus.core.toolkit.StringUtils;importcom.baomidou.mybatisplus.generator.AutoGe......
  • 论文插图也能自动生成了,用到了扩散模型,还被ICLR接收
    前言 如果论文中的图表不用绘制,对于研究者来说是不是一种便利呢?有人在这方面进行了探索,利用文本描述生成论文图表,结果还挺有模有样的呢!本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV......
  • 插件qrcode生成二维码
    1、安装依赖[email protected]、引入importQrCodefrom'qrcode'3、使用constcontent=window.location?.href||''QrCode.toDataURL(content,{margin:1,widht:128,height:1......
  • Prim算法 最小值生成树
    前言:给定一个无向图,如果它的某个子图中任意两个顶点都互相连通并且是一棵树,那么这棵树就叫做生成树(SpanningTree)。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST,MinimumSpanningTree)。例如我们假设有这样一个图:把顶点看作村庄,边看作计划要修建的道路。......
  • 汇编指令-add,sub
        标志寄存器     ......