当前位置: 首页 > news >正文

自我指导:提升语言模型自我生成指令的能力

人工智能咨询培训老师叶梓 转载标明出处

传统的语言模型,尤其是经过指令微调的大型模型,虽然在零样本(zero-shot)任务泛化上表现出色,但它们高度依赖于人类编写的指令数据。这些数据往往数量有限、多样性不足,且缺乏创造性,限制了模型的泛化能力。为了解决这一问题,由华盛顿大学、德黑兰理工大学、亚利桑那州立大学、约翰霍普金斯大学以及艾伦人工智能研究所的研究人员联合提出了一种名为“SELF-INSTRUCT”的框架,旨在通过自举(bootstrapping)的方式,利用预训练语言模型自身的生成能力,提升其遵循指令的能力。

论文链接:https://arxiv.org/pdf/2212.10560

项目链接:https://github.com/yizhongw/self-instruct 

方法

SELF-INSTRUCT方法是一种自动化流程,用于生成任务指令、过滤数据,并对语言模型进行微调,以提高其遵循指令的能力。旨在生成包含一组指令的数据集,每个指令定义了一个自然语言中的任务。每个任务包含至少一个输入输出实例。例如,指令“写一篇关于学校安全的作文”可以直接作为任务指令,也可以将其分解为“写一篇关于以下主题的作文”和实例输入“学校安全”。

图 2 显示整个过程从一个小的种子任务集开始,这些任务构成了任务池。然后从任务池中随机抽取任务,用作提示(prompt)来引导现成的语言模型(LM)生成新的指令和相应的实例。接下来,通过过滤掉质量较低或相似的生成内容,将剩余的有效任务添加回初始的任务库中。这些经过筛选的数据随后可以用于对语言模型本身进行指令调优,以使其更好地遵循指令。图中展示的任务是由 GPT3 生成的。这个过程是一个迭代的自举算法,通过这种方式,可以不断扩大任务集并提高模型遵循新指令的能力。自动化指令数据生成流程包含四个主要步骤:

  1. 生成任务指令:SELF-INSTRUCT从一组种子人类编写的指令开始,通过自举的方式生成新指令。初始任务池包含175个任务,每个任务包含一条指令和一个实例。

  2. 确定任务类型:为了区分分类任务和非分类任务,使用少量种子任务中的指令来提示语言模型进行判断。

  3. 实例生成:根据指令和任务类型,独立生成每个指令的实例。对于分类任务,采用输出优先方法(Output-first Approach),首先生成可能的类别标签,然后根据每个类别标签生成输入。对于非分类任务,采用输入优先方法(Input-first Approach),首先生成输入字段,然后产生相应的输出。

  4. 过滤和后处理:为了确保多样性,只有当新指令与现有指令的ROUGE-L相似度小于0.7时,才将其添加到任务池中。同时,排除包含特定关键词(如“图像”、“图片”、“图表”)的指令,因为这些通常无法由语言模型处理。

在生成了大规模指令数据后,研究者使用这些数据对原始语言模型进行微调。通过将指令和实例输入串联起来作为提示,并训练模型以标准监督学习的方式生成实例输出。

表1描述了通过将 SELF-INSTRUCT 应用于 GPT3 生成的数据的基本统计信息,包括指令数量、分类指令数量、非分类指令数量、实例数量、平均指令长度、平均非空输入长度和平均输出长度。研究者使用了伯克利神经解析器(Berkeley Neural Parser)来分析指令中的动词-名词结构,并提取了最常见的动词和直接宾语。这些分析结果展示了指令的多样性。

为了评估生成数据的质量,作者随机抽取了200个指令,并请专家注释员对每个实例的正确性进行了评估。评估结果显示,大多数生成的指令是有意义的,尽管有些生成的实例可能包含噪声,但它们仍然在正确的格式或部分正确,这对训练模型遵循指令提供了有用的指导。图3为生成指令中最常见的 20 个动词(内圈)和它们的前 4 个直接宾语(外圈)。这些指令虽然多样,但只占所有生成指令的 14%。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验 

研究者使用生成的指令数据对GPT3模型本身进行了指令调整。这个过程通过OpenAI的微调API完成,使用了各种模板将指令和输入串联起来,并训练模型生成输出。微调使用了默认的超参数设置,除了将提示损失权重设置为0,并训练了2个周期。通过这种方式微调后的模型被命名为GPT3SELF-INST。

研究者评估了以下基线模型:

  • 现成的语言模型:T5-LM和GPT3作为未经额外微调的基线模型。
  • 公开可用的指令调整模型:T0和T𝑘-INSTRUCT,这两个模型基于T5进行了指令调整,并且公开可用。
  • 指令调整的GPT3模型:InstructGPT,由OpenAI基于GPT3开发,以更好地遵循人类指令。

研究者首先评估了模型在典型NLP任务上遵循指令的零样本能力。使用的是SUPERNI评估集,包含119个任务,每个任务有100个实例。实验主要关注零样本设置,即模型仅根据任务定义进行提示,没有上下文示例。实验结果显示,SELF-INSTRUCT显著提高了GPT3的指令遵循能力。与未经SUPERNI特别训练的其他模型相比,GPT3SELF-INST性能更好,接近InstructGPT001的性能。

尽管SUPERNI在收集现有NLP任务方面非常全面,但这些任务大多偏向于分类任务,并且是为了研究目的而提出的。为了更好地评估指令遵循模型的实际价值,研究者策划了一组新的、以用户为导向的指令集。这组指令涵盖了多种领域,如电子邮件写作、社交媒体、生产力工具、娱乐和编程等。研究者创造了252个指令,每个指令有一个实例。这些指令旨在测试指令模型处理多样化和不熟悉指令的能力。

图6 展示了GPT3模型及其指令调整变体在这些新编写的指令集上的性能,由人类专家进行评估。评估者根据模型的响应是否准确有效完成任务,将输出分为四个等级:正确且满意的响应、可接受但有小错误的响应、回应指令但内容有重大错误的响应、不相关或完全无效的响应。结果显示,GPT3SELF-INST在所有经过公开指令数据集训练的GPT3变体中表现最佳,并且与InstructGPT001的性能非常接近。

研究者还探讨了数据规模和质量对模型性能的影响。通过从生成的数据集中抽取不同数量的指令,对GPT3进行微调,并评估结果模型在252个用户导向指令集上的性能。结果表明,随着数据规模的增加,模型性能持续改善,但在达到16K后几乎趋于平稳。

图 7 展示了使用不同大小指令数据集进行调优的 GPT3SELF-INST 模型的人类评估性能。研究者们还评估了通过从 InstructGPT003 (最好的通用模型)中提取输出来提高数据质量是否能进一步提升性能。结果显示所得到的模型比使用原始数据训练的模型性能提高了10%,这表明通过人类专家或从更好的模型中提取来提高数据质量有很大的空间。

综上所述,SELF-INSTRUCT方法不仅提高了GPT3的指令遵循能力,而且通过实验验证了其在多样化任务上的有效性。这些实验结果为未来在指令调整领域的研究提供了有价值的见解和方向。

相关文章:

自我指导:提升语言模型自我生成指令的能力

人工智能咨询培训老师叶梓 转载标明出处 传统的语言模型,尤其是经过指令微调的大型模型,虽然在零样本(zero-shot)任务泛化上表现出色,但它们高度依赖于人类编写的指令数据。这些数据往往数量有限、多样性不足&#xf…...

使用Node.js实现单文件上传功能—含代码解释

1、概念 文件上传的具体内容 在前端让用户发送(上传)图片,图片由后端(服务器)接收,并转存到到服务端设备上的操作node.js的文件上传功能主要是使用:multer 插件实现的 搭建一个图片上传的接口 先让接口开通,再去做插件下载/配置等…...

【机器人工具箱Robotics Toolbox开发笔记(一)】Matlab机器人工具箱简介

MATLAB是一款被广泛应用于科学计算和工程领域的专业软件。它的全称为Matrix Laboratory(矩阵实验室),因为其最基本的数据类型就是矢量与矩阵,所以在处理数学和科学问题时非常方便,可用于线性代数计算、图形和动态仿真的…...

基于 Metropolis 的朗之万算法

基于 Metropolis 的朗之万算法 1. 未经调整的朗之万算法2. 基于 Metropolis 的朗之万算法 (MALA)2.1. MH算法2.2. 基于 Metropolis 的朗之万算法 (MALA) 3. Metropolis 调整的朗之万截断算法(MALTA) 1. 未经调整的朗之万算法 未调整的朗之万算法 (ULA) 是…...

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架…...

深入理解FastAPI的response_model:自动化数据验证与文档生成

使用 FastAPI 的 response_model 参数 在构建 RESTful API 时,确保数据的一致性和正确性是非常重要的。FastAPI 提供了强大的工具来帮助开发者实现这一目标。其中一个关键特性是 response_model 参数,它允许开发者定义期望的响应格式,并自动…...

【数据结构与算法 | 灵神题单 | 删除链表篇】力扣3217, 82, 237

总结,删除链表节点问题使用到列表,哈希表,递归比较容易超时,我觉得使用计数排序比较稳,处理起来也不是很难。 1. 力扣3217:从链表中移除在数组中的节点 1.1 题目: 给你一个整数数组 nums 和一…...

快速失败 (fail-fast) 和安全失败 (fail-safe)

1. 定义与工作原理 1.1 快速失败(Fail-Fast) 定义: 快速失败是一种系统设计原则,当系统遇到异常情况或错误时,立即停止执行并返回错误,而不是试图继续执行或处理潜在的问题。快速失败系统会主动检测系统中…...

【MySQL】MySQL中表的增删改查——(基础篇)(超详解)

前言: 🌟🌟本期讲解关于MySQL中CDUD的基础操作,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/fNldO 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 目录 …...

【B题第二套完整论文已出】2024数模国赛B题第二套完整论文+可运行代码参考(无偿分享)

2024数模国赛B题完整论文 摘要: 随着电子产品制造业的快速发展,质量控制与成本优化问题成为生产过程中亟待解决的核心挑战。为应对生产环节中的质量不确定性及成本控制需求,本文结合抽样检测理论和成本效益分析,通过构建数学模型…...

大数据之Flink(四)

11、水位线 11.1、水位线概念 一般实时流处理场景中,事件时间基本与处理时间保持同步,可能会略微延迟。 flink中用来衡量事件时间进展的标记就是水位线(WaterMark)。水位线可以看作一条特殊的数据记录,它是插入到数…...

《Web性能权威指南》-网络技术概览-读书笔记

注:TCP/IP等知识牵涉面太广,且不说本文,哪怕是原书,限于篇幅,很多知识点都是大致介绍下。如果想深入理解,需要更一步Google相关页面资料。 延迟与带宽 WPO,Web Performance Optimization&…...

最新版php进销存系统源码 ERP进销存专业化管理 永久免费升级更新+完整图文搭建教程

在当今信息化时代,企业管理的高效性与精确性是企业竞争力的关键。分享一款最新版的PHP进销存系统源码,一款专为企业设计的ERP进销存管理工具,其丰富的功能、灵活的子账号设置、强大的权限控制、以及独家升级的合同管理和报价单打印功能&#…...

【高效办公】三、两台电脑共享鼠标、键盘和文件,两台电脑当一个用的神操作!barrier

1.下载 ubuntu:sudo apt install barrierwindows:https://github.com/debauchee/barrier/releases-下载 : 2.4.0-Assets-BarrierSetup-2.4.0-release.exe 2.运行 ubuntu:sudo apt install barrierwindows:https://github.com/debauchee/barrier/releases-下载 : 2.4.0-Asset…...

智能合约系统DAPP开发

智能合约系统DAPP(去中心化应用)的开发是一个复杂且综合性的过程,它结合了区块链技术、智能合约编程、前端开发以及安全性等多方面的知识和技能。以下是对智能合约系统DAPP开发过程的详细概述: 一、需求分析 明确应用场景&#xf…...

宠物狗检测-目标检测数据集(包括VOC格式、YOLO格式)

宠物狗检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接:https://pan.baidu.com/s/1roegkaGAURWUVRR-D7OzzA?pwddxv6 提取码:dxv6 数据集信息介绍: 共有20580 张图像和一一对应的标注文件 标…...

2.5多任务示例编程2

1.CUBEMX配置 2.代码 void StartADC(void const * argument) {/* USER CODE BEGIN StartADC */TickType_t pxPreviousWakeTimexTaskGetTickCount();/* Infinite loop */for(;;){HAL_ADC_Start(&hadc1);if(HAL_ADC_PollForConversion(&hadc1,100)HAL_OK){uint32_t valu…...

JavaWeb - 4 - Vue Ajax

一.Vue Vue Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写 基于MVVM(Model-VIew-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上 官网:https://cn.vuejs.org…...

深入掌握Go语言中的正则表达式与字符串处理

Go语言中的正则表达式与模式匹配 在编程中,字符串处理是常见的需求之一,而正则表达式则是一个强大的工具,能够帮助我们实现复杂的字符串匹配、提取和替换功能。Go语言内置了对正则表达式的支持,通过regexp包,我们可以…...

Docker进入容器运行命令

Docker进入容器运行命令 1. **使用 docker exec 进入容器并运行命令**语法:示例 1:进入容器并启动交互式 Bash 终端示例 2:在容器中运行单个命令 2. **使用 docker attach 进入容器**3. **使用 docker run 启动新容器并运行命令**4. **使用 d…...

[数据集][目标检测]机油泄漏检测数据集VOC+YOLO格式43张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):43 标注数量(xml文件个数):43 标注数量(txt文件个数):43 标注类别数…...

Python实现读取Excel数据详细教学版

Python实现读取Excel数据详细教学版 在处理数据和进行数据分析时,Excel文件是常见的数据载体。通过Python读取Excel数据,可以方便地对数据进行进一步的处理和分析。以下将详细介绍使用Python读取Excel数据的方法和相关库的使用,并提供具体代…...

【HarmonyOS】- 内存优化

文章目录 知识回顾前言源码分析1. onMemoryLevel2. 使用LRUCache优化ArkTS内存原理介绍3. 使用生命周期管理优化ArkTS内存4. 使用purgeable优化C++内存拓展知识1. Purgeable Memory总结知识回顾 前言 当应用程序占用过多内存时,系统可能会频繁进行内存回收和重新分配,导致应…...

【生日视频制作】保时捷车主提车交车仪式感AE模板修改文字软件生成器教程特效素材【AE模板】

生日视频制作教程保时捷车主提车交车仪式感AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程 怎么如何做的【生日视频制作】保时捷车主提车交车仪式感AE模板修改文字软件生成器教程特效素材【AE模板】 生日视频制作步骤: 下载AE模板 安装AE软件 把AE模板导入…...

【自用14】C++俄罗斯方块-思路复盘3

在上篇降落函数中使用到了判断游戏是否结束的功能,因此这篇先从判断游戏是否结束开始 判断游戏是否结束 void failCheck(void){if(!moveable(START_X,START_Y,MOVE_DOWN,BLOCK_UP)){setcolor(WHITE);setfont(45,0,_T("隶体"));outtextxy(75,300,_T(&quo…...

ElasticSearch的DSL查询⑤(ES数据聚合、DSL语法数据聚合、RestClient数据聚合)

目录 一、数据聚合 1.1 DSL实现聚合 1.1.1 Bucket聚合 1.1.2 带条件聚合 1.1.3 Metric聚合 1.1.4 总结 2.1 RestClient实现聚合 2.1.1 Bucket聚合 2.1.2 带条件聚合 2.2.3 Metric聚合 一、数据聚合 聚合(aggregations)可以让我们极其方便的实…...

DBeaver 24.0 高阶用法

DBeaver 24.0 高阶用法 文章目录 DBeaver 24.0 高阶用法DBeaver 介绍功能一、元数据搜索功能二、仪表盘显示功能三、ER图功能四、导出数据最后 DBeaver 介绍 DBeaver 确实是一款功能强大的通用数据库管理工具,适合所有需要以专业方式处理数据的用户。它不仅提供了直…...

外卖会员卡项目骗局揭秘,你还在做梦吗?改醒醒了

大家好,我是鲸天科技千千,大家都知道我是做开发的,做互联网行业很多年了,平时会在这里给大家分享一些互联网相关的小技巧和小项目,感兴趣的给我点个关注。 关于外卖会员卡这个项目的一些骗局和套路,我真的…...

比较顺序3s1,3s2,4s1之间的关系

(A,B)---6*30*2---(0,1)(1,0) 分类A和B,让B全是0。当收敛误差为7e-4,收敛199次取迭代次数平均值,3s1为 3s2为 4s1为 3s1,3s2,4s1这3个顺序之间是否有什么联系 , 因为4s1可以按照结构加法 变换成与4s1内在…...

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录 [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法: [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问…...