当前位置: 首页 > 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…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

大数据治理的常见方式

大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?

无论是建筑施工、软件开发,还是市场营销活动,项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素,项目很容易陷入混乱,导致进度延误、成本超支,甚至失败。 项目进度管理软…...

Docker环境下安装 Elasticsearch + IK 分词器 + Pinyin插件 + Kibana(适配7.10.1)

做RAG自己打算使用esmilvus自己开发一个,安装时好像网上没有比较新的安装方法,然后找了个旧的方法对应试试: 🚀 本文将手把手教你在 Docker 环境中部署 Elasticsearch 7.10.1 IK分词器 拼音插件 Kibana,适配中文搜索…...

IP选择注意事项

IP选择注意事项 MTP、FTP、EFUSE、EMEMORY选择时,需要考虑以下参数,然后确定后选择IP。 容量工作电压范围温度范围擦除、烧写速度/耗时读取所有bit的时间待机功耗擦写、烧写功耗面积所需要的mask layer...

在ubuntu等linux系统上申请https证书

使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具,支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上: sudo apt update sudo apt install certbot申请证书 纯手动方式(不自动配置)&…...