Raki的读paper小记:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions

2023-10-30

Abstract&Introduction&Related Work

  • 研究任务
    改进大模型遵循指令的能力,SELF-INSTRUCT提供了一种几乎无需注释的方法来使预训练语言模型与指令对齐
  • 已有方法和相关工作
    • 许多研究提出使用语言模型进行数据生成(Schick和Schütze,2021; Wang等,2021; Liu等,2022; Meng等,2023)或数据增强(Feng等,2021; Yang等,2020; Mekala等,2022)
    • 知识蒸馏。知识蒸馏(Hinton等,2015; Sanh等,2019; West等,2021; Magister等,2022)通常涉及将大型模型的知识转移给较小的模型。SELF-INSTRUCT也可以被看作是一种“知识蒸馏”的形式,然而,它与知识蒸馏的区别在于:(1)蒸馏的源和目标是相同的,即模型的知识被蒸馏到自身;(2)蒸馏的内容以任务的形式存在(即定义任务的指令和一组实例)
    • Bootstrapping with limited resources.:最近的一系列研究使用语言模型通过专门的方法进行自助引导。NPPrompt(Zhao等,2022)提供了一种方法,在没有进行微调的情况下生成语义标签的预测。它使用模型自身的嵌入来自动找到与数据样本标签相关的单词,从而减少了从模型预测到标签(verbalizers)的手动映射的依赖性。STAR(Zelikman等,2022)通过迭代地利用少量的含有理由的示例和大量不含理由的数据集,来引导模型进行推理能力的自助引导。Self-Correction(Welleck等,2023)将一个不完善的基础生成器(模型)与一个独立的校正器分开,后者学会迭代地纠正不完善的生成结果,并在基础生成器上展示了改进
  • 面临挑战
    收集指令数据代价很大并且多样性有限,
  • 创新思路
    • 使用模型自身的指令信号来调优预训练的语言模型。整个过程是一个迭代的自举算法
  • 实验结论
    GPT3SELF-INST的性能大幅优于GPT3(原始模型)(+33.1%),并且几乎与InstructGPT001的性能相当

用GPT3生成的instructions
在这里插入图片描述

贡献:
(1) 我们引入了SELF-INSTRUCT,一种使用最少人工标记数据诱导指令遵循能力的方法;(2) 我们通过广泛的指令调优实验证明了其有效性;(3) 我们发布了一个大规模的合成数据集,包含52,000个指令,以及一组手动编写的新任务,用于构建和评估未来的指令遵循模型。

  1. 首先从一个有限的(比如研究中的175个)手动撰写的任务种子集开始,用于指导整体生成
  2. 在第一阶段,模型被提示为新任务生成instruction。这一步利用现有的指令集来创建更广泛覆盖的instruction,用于定义(通常是新的)任务
  3. 在得到新生成的指令集后,该框架还为它们创建输入-输出实例,这些实例可以在后续的指令调优过程中用于监督
  4. 最后在将低质量或重复的指令自动过滤掉之前,使用各种启发式方法将剩余的有效任务添加到任务池中。这个过程可以重复多次,直到获得大量任务
    在这里插入图片描述

SELF-INSTRUCT是一种生成任务指令数据的方法,它使用预训练的普通语言模型自身来生成任务,经过过滤和调优,可以让模型更好地遵循指令。方法的流程包括定义指令数据、自动指令数据生成、过滤和后处理以及LM调优。

  1. 定义指令数据:指令数据包含一组指令,每个指令用自然语言描述一个任务,并包含对应的输入-输出实例。模型被期望根据指令和输入生成相应的输出
  2. 自动指令数据生成:使用自助引导的方式从一小组人工撰写的种子指令中生成新的指令。根据生成的指令是否表示分类任务,使用先输入后输出或先输出后输入的方法生成实例,并过滤低质量数据
  3. 过滤和后处理:为了鼓励多样性,只有当新的指令与已有指令的ROUGE-L相似度小于0.7时,才将新的指令添加到任务池中。同时,过滤掉完全相同或输入相同但输出不同的实例,并排除一些特定关键词的指令
  4. LM调优:使用创建的指令数据对原始LM进行微调,通过将指令和实例输入连接在一起进行监督训练,使模型更好地遵循指令。

在应用SELF-INSTRUCT到GPT3的案例研究中,研究了生成数据的多样性和质量。生成的指令包含多样的意图和文本格式,与种子指令有较低的重叠。在质量方面,大部分生成的指令都是有意义的,生成的实例可能会包含一些噪声,但仍有用于训练模型遵循指令的价值

SELF-INSTRUCT方法通过自动生成指令和实例数据,克服了人工标注大规模指令数据的挑战。通过自我引导的方式,不断扩充任务池,生成更多的任务指令和实例,从而实现了大规模数据的生成。方法中提到使用多个模板来处理不同格式的指令和实例输入,这样能够提高模型的鲁棒性。生成的数据具有一定的多样性,涵盖了不同的意图和文本格式,这有助于提高模型的泛化能力。

在质量方面,生成的数据虽然可能存在一些噪声,但大多数仍然是正确格式或部分正确的,这为训练模型遵循指令提供了有用的指导。这意味着自动生成的数据虽然不完美,但仍然具有一定的实用性和可行性,为解决大规模任务指令数据标注的瓶颈问题提供了新的思路和方法。这对于推动自然语言处理领域的发展,特别是在通用模型和多任务学习方向上,具有重要的意义。然而,还需要进一步研究和改进,以提高自动生成数据的质量和适用性

Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Conclusions

文章引入了SELF-INSTRUCT,一种通过其自己生成的指令数据来改进语言模型(LM)的遵循指令能力的方法。在对普通的GPT3进行实验后,我们自动生成了一个包含52,000个指令的大规模数据集,涵盖了多样化的任务。将GPT3在这个数据集上进行微调后,在SUPERNI任务上相对于原始的GPT3取得了33%的绝对改进。此外,我们策划了一组由专家撰写的用于新任务的指令。对这组数据进行人工评估显示,使用SELF-INSTRUCT微调的GPT3在性能上大幅优于使用现有公共指令数据集,并且接近于InstructGPT001的表现。我们希望SELF-INSTRUCT可以作为第一步,将预训练的语言模型与人类指令保持一致,未来的研究可以在此基础上继续改进遵循指令的模型。

Remark

一种有意思的用自监督来克服数据资源不够的困境的方法,期待后续工作改进

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Raki的读paper小记:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions 的相关文章

随机推荐

  • vue.js:基于nodejs使用log4js输出日志文件

    一 问题 开发web项目过程中 常规的console log 只是将信息反映在了浏览器的控制台 我们经常需要输出到文本日志文件 以便开发调试和维护排查 下面介绍log4js在vue项目中的部署与使用 二 解决方案 1 安装log4j 注意
  • IntelliJ IDEA2022(破译版)安装教程

    首先先下载一个压缩包 里面安装包破译插件都有 通过百度网盘分享的文件 JetBrain zip 链接 https pan baidu com s 1mBQUacDIf39AJtR wGZ bw 提取码 P95C 复制这段内容打开 百度网盘A
  • 全局负载均衡(GSLB)的实现方案

    What is GSLB Global Server Load Balancing 中文 全局负载均衡 SLB Server load balancing 是对集群内物理主机的负载均衡 而GSLB是对物理集群的负载均衡 这里的负载均衡可能不
  • python驱动DDT框架应用--实战举例

    步骤 创建一个python file ddttest 引入ddt 更新ddt File Settings 双击pip 搜索框输入 ddt 实例讲解 传入一个参数 import unittest from ddt import ddt dat
  • 2022全国职业技能大赛-网络安全赛题解析总结⑨(超详细)

    2022全国职业技能大赛 网络安全赛题解析总结 自己得思路 模块A 基础设施设置与安全加固 20分 模块B 网络安全事件响应 数字取证调查和应用安全 40分 模块C CTF夺旗 攻击 20分 模块D CTF夺旗 防御 20分 有什么不懂得可
  • openstack调优

    cinder限速 为了减缓来自实例的数据访问速度的减慢 openstack block storage支持对卷数据复制带宽的速率限制 请修改cinder后端配置文件将文件卷复制带宽限制为最高100MB s The upper limit o
  • arm 关于m a r系列区别

    arm系列contex的a r m的区别 从cortex开始 分为三个系列 a系列 r系列 m系列 m系列与arm7相似 不能跑操作系统 只能跑ucos2 偏向于控制方面 说白了就是一个高级的单片机 a系列主要应用在人机互动要求较高的场合
  • Github Copilot连接不上服务器

    现象 报错 ERROR default 2023 09 08T15 47 01 542Z GitHub Copilot could not connect to server Extension activation failed conn
  • Python 2.7下下载并安装nltk (自然语言处理工具包)

    1 在cmd窗口中 进入到python的文件夹内的 Scripts内 我的目录地址是 D using Python Scripts 命令行输入 easy install pip 运行结束后 安装PyYAML and NLTK 命令行输入 p
  • c++ 中bool 的默认值

    比如在Test h中定义变量 isFirst Test h头文件 ifndef TEST H define TEST H class Test private bool isFirst endif 然后访问它 include Test h
  • Java面试题整理——网络

    Java面试题整理 网络 网络 1 常用的 http 响应码及含义 200 OK 请求成功 这是对HTTP请求成功的标准应答 201 Created 请求创建被完成 同时新的资源被创建 202 Acceptd 供处理的请求已被接受 但是处理
  • 【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

    目录 1 VxWorks操作系统 2 QNX操作系统 3 Xenomai操作系统 4 INtime操作系统 5 SylixOS操作系统 5 1 SylixOS官网
  • uniapp 跳转传参 [‘object‘] 问题解决, 遇坑解决

    普通 号拼接传参不知道什么原因 接收参数时转换数据失败 换成模板传参试试 解决 传 ckgd productList 传参时先转为json 一定要用模板字符串传参 如下 uni navigateTo url pagesA service d
  • MySQL执行器与存储引擎是怎么交互的

    体系结构 1 连接器 2 查询缓存 3 分析器 4 优化器 多个索引 选择哪个索引 join的顺序 5 执行器 调用存储引擎接口获取满足条件的第一行记录 调用存储引擎接口获取满足条件的下一行记录 6 存储引擎 索引下推 假设现子表T有字段
  • c++泛型算法扩展和迭代器、反向迭代器

    cout lt lt 插入迭代器 lt lt endl back inserter 创建一个使用push back的迭代器 front inserter 创建一个使用push front的迭代器 inserter 创建一个使用insert的
  • bee-box

    这篇博客就是为了记下bee box做题过程 随便记记 免得忘了 安装 先去官网下载了 然后分个新的盘单独放进去 打开虚拟机 双击bee box vmx就能安装了 打开里面的火狐会自动跳去一个登录界面 默认账号和密码是bee bug 登录然后
  • GitHub 源代码被泄露了...

    阅读本文大概需要 4 分钟 来自量子位 GitHub 忽然 开源 了自己代码的一部分 还将它放在了 GitHub 上 事件起因是这样的 TypeScript 的开发者 Resynth 忽然 Po 了篇文章 表示代码托管服务 GitHub 的
  • 【牛客网OJ题】不要二

    题目描述 二货小易有一个WH的网格盒子 网格的行编号为 0 H 1 网格的列编号为0 W 1 每个格子至多可以放一块蛋糕 任意两块蛋糕的欧几里得距离不能等于2 对于两个格子坐标 x1 y1 x2 y2 的欧几里得距离为 x1 x2 x1 x
  • spring注解:@Autowired、@Qualifier、@Primary

    Autowired 默认情况下 Autowired 按类型装配 Spring Bean 如果容器中有多个相同类型的 bean 则框架将抛出 NoUniqueBeanDefinitionException 以提示有多个满足条件的 bean 进
  • Raki的读paper小记:SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions

    Abstract Introduction Related Work 研究任务 改进大模型遵循指令的能力 SELF INSTRUCT提供了一种几乎无需注释的方法来使预训练语言模型与指令对齐 已有方法和相关工作 许多研究提出使用语言模型进行数