自我指导:提升语言模型自我生成指令的能力
人工智能咨询培训老师叶梓 转载标明出处
传统的语言模型,尤其是经过指令微调的大型模型,虽然在零样本(zero-shot)任务泛化上表现出色,但它们高度依赖于人类编写的指令数据。这些数据往往数量有限、多样性不足,且缺乏创造性,限制了模型的泛化能力。为了解决这一问题,由华盛顿大学、德黑兰理工大学、亚利桑那州立大学、约翰霍普金斯大学以及艾伦人工智能研究所的研究人员联合提出了一种名为“SELF-INSTRUCT”的框架,旨在通过自举(bootstrapping)的方式,利用预训练语言模型自身的生成能力,提升其遵循指令的能力。
论文链接:https://arxiv.org/pdf/2212.10560
项目链接:https://github.com/yizhongw/self-instruct
方法
SELF-INSTRUCT方法是一种自动化流程,用于生成任务指令、过滤数据,并对语言模型进行微调,以提高其遵循指令的能力。旨在生成包含一组指令的数据集,每个指令定义了一个自然语言中的任务。每个任务包含至少一个输入输出实例。例如,指令“写一篇关于学校安全的作文”可以直接作为任务指令,也可以将其分解为“写一篇关于以下主题的作文”和实例输入“学校安全”。

图 2 显示整个过程从一个小的种子任务集开始,这些任务构成了任务池。然后从任务池中随机抽取任务,用作提示(prompt)来引导现成的语言模型(LM)生成新的指令和相应的实例。接下来,通过过滤掉质量较低或相似的生成内容,将剩余的有效任务添加回初始的任务库中。这些经过筛选的数据随后可以用于对语言模型本身进行指令调优,以使其更好地遵循指令。图中展示的任务是由 GPT3 生成的。这个过程是一个迭代的自举算法,通过这种方式,可以不断扩大任务集并提高模型遵循新指令的能力。自动化指令数据生成流程包含四个主要步骤:
-
生成任务指令:SELF-INSTRUCT从一组种子人类编写的指令开始,通过自举的方式生成新指令。初始任务池包含175个任务,每个任务包含一条指令和一个实例。
-
确定任务类型:为了区分分类任务和非分类任务,使用少量种子任务中的指令来提示语言模型进行判断。
-
实例生成:根据指令和任务类型,独立生成每个指令的实例。对于分类任务,采用输出优先方法(Output-first Approach),首先生成可能的类别标签,然后根据每个类别标签生成输入。对于非分类任务,采用输入优先方法(Input-first Approach),首先生成输入字段,然后产生相应的输出。
-
过滤和后处理:为了确保多样性,只有当新指令与现有指令的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)任务泛化上表现出色,但它们高度依赖于人类编写的指令数据。这些数据往往数量有限、多样性不足…...
使用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开发过程的详细概述: 一、需求分析 明确应用场景…...
宠物狗检测-目标检测数据集(包括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…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
