【AI学习】对指令微调(instruction tuning)的理解

news2025/1/9 6:27:03

前面对微调(Fine-tuning)的学习中,提到指令微调。当时,不清楚何为指令微调,也一直没来得及仔细学习。

什么是指令微调?LLM经过预训练后,通过指令微调提升模型的指令遵循能力。所谓指令,就是针对具体下游任务,有明确的要求和目的,一般有相应的模板来让指令更加明确。基于指令数据微调语言模型,就是指令微调。

当然,在谷歌的FLAN(https://ar5iv.labs.arxiv.org/html/2109.01652)系列论文中,有一点意外的效果,在针对某些任务进行指令微调后,语言模型在其他未经过微调的任务上的性能也提升了。就是说,人家大模型,是具备举一反三的能力的!

在FLAN系列的论文中,谷歌提出了指令微调的概念,通过自然语言指令描述的任务数据集对预训练后的语言模型进行微调,用于提高语言模型的零样本学习能力。

FLAN(Finetuned Language Net)的论文中展示了指令微调——在通过指令描述的多个数据集上微调语言模型——显著提高了在未见任务上的零样本性能。文章采用了一个137B参数的预训练语言模型,并在超过60个通过自然语言指令模板描述的NLP数据集上进行了指令微调,然后评估在未见任务类型上的性能。FLAN显著提高了其未修改版本的性能,在评估的25个数据集中的20个上超越了零样本175B GPT-3,甚至在ANLI、RTE、BoolQ、AI2-ARC、OpenbookQA和StoryCloze上大幅度超越了GPT-3的少量样本性能。

来看一下FLAN这篇文章的几张图,快速理解FLAN模型的潜力和指令微调方法。

在这里插入图片描述

图1展示FLAN模型如何通过指令微调在未见任务上实现出色的零样本性能,并与GPT-3模型的性能进行了直观的比较。图的上半部分展示了指令微调的流程,其中预训练的语言模型在多种任务上进行微调,这些任务以指令的形式表述。在推理时,即使在指令微调期间未见过自然语言推理(NLI)任务,模型也会被评估在NLI任务上的性能。图的下半部分展示零样本FLAN模型对比零样本和少量样本GPT-3模型在三个未见任务类型(自然语言推理、阅读理解和闭卷问答)上的性能提升。

在这里插入图片描述

图2对比了指令微调(Instruction Tuning)与预训练-微调(Pretrain-Finetune)和提示(Prompting)两种方法。

√ 预训练-微调(Pretrain-Finetune):这种方法通常需要许多特定任务的示例,并且为每个任务训练一个专门的模型。这通常涉及到在特定任务A上进行微调,并在任务A上进行推理。

√ 提示(Prompting):这种方法通过少量样本提示或提示工程来提高模型的性能。在这种方法中,预训练的语言模型(LM)在推理时通过提示来改善任务A的性能。

√ 指令微调(Instruction Tuning):这种方法结合了预训练-微调和提示的优点,通过使用微调期间的监督来改进语言模型对推理时文本交互的响应。在指令微调中,模型在多个任务上进行微调,这些任务通过自然语言指令来描述,然后在未见的任务上进行推理。

指令微调的核心思想是利用自然语言指令来教授模型执行任务,这样即使在未见任务上,模型也能够遵循指令来执行任务。

在这里插入图片描述

图3描述了用于研究的各个数据集以及它们所属的任务簇。具体来说,图3展示了62个文本数据集,这些数据集被聚合成一个单一的集合,并且根据它们的任务类型被分类到12个不同的任务簇中。每个簇内的数据集具有相同的任务类型。图中的两种颜色标识两类不同的任务, “NLU” 代表 “Natural Language Understanding”(自然语言理解),而 “NLG” 代表 “Natural Language Generation”(自然语言生成)。

在这里插入图片描述

图4展示了用于自然语言推理(Natural Language Inference, NLI)任务的多个指令模板(instruction templates)。

从头开始创建一个包含许多任务的指令调整数据集将非常耗费资源,所以,文章将社区现有的数据集转换为为指令格式。汇总的62个文本数据集,这些数据集在TensorFlow Datasets上公开可用。

对于每个数据集,手动编写了十个独特的模板,这些模板使用自然语言指令来描述该数据集的任务。这十个模板中的大多数描述了原始任务,但为了增加多样性,对于每个数据集,还包括了多达三个“反转任务”的模板(例如,对于情感分类,包括了要求生成电影评论的模板)。然后,在所有数据集的混合体上对预训练的语言模型进行指令调整,每个数据集中的例子都通过为该数据集随机选择的指令模板进行格式化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1676176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sectigo SSL证书申请的流程是怎样的?

在当今数字化时代,网络安全成为了一个不可忽视的问题。为了保护网站和用户数据的安全,SSL证书成为了网站运营的重要组成部分。Sectigo作为全球领先的数字证书颁发机构之一,提供了一系列的证书解决方案来满足不同类型网站的需求。以下是对Sect…

浅谈Windows 上的线程亲和性(Thread affinity)

​ 前言 线程属性包括是否分离、亲和性、调度策略和优先级等。Linux默认的调度策略是CFS(完全公平调度算法),而 Windows 是基于优先级抢占式的策略。 在这些方面,Windows 和 Linux 差异巨大。本文仅针对 Windows 系统的线程亲和性进行探讨。 线程亲和性(Thread affinity) 什…

【大道至简】官方兼容到android13+的获取系统屏幕高度, statusbar,navBar

android在屏幕高度和app高度,statusbar, navigationbar的高度处理上,迭代了好多版本。 android11, android12都有新的api和过时的api标记。 涉及的api类似如下: windowManager,defaultDisplay, Context.display, Deco…

linux安装Openresty

安装必要的依赖库 指定仓库地址 下载openresty 添加环境变量 vi /etc/profile i export NGINX_HOME/usr/local/openresty/nginx/ export PATH${NGINX_HOME}/sbin:$PATH esc :wq source /etc/profile #启动 nginx # 重启 nginx -s reload #关闭 nginx -s stop

网上有哪些赚钱的方法能一天赚二三十?盘点7个靠谱的搞钱副业和赚钱软件

想在家里躺着就能把钱赚?这不再是遥不可及的梦想!随着互联网的飞速发展,网上赚钱的方式层出不穷,总有一款适合你。 今天,就让我们一起揭开这些神秘面纱,看看哪些网上赚钱秘诀能让你轻松实现月入过万&#x…

专业矢量绘图软件Sketch for mac v100中文激活版

Sketch for Mac 是一款专业的矢量图形设计工具,主要用于 UI/UX 设计、网页设计、图标设计等领域。它的界面简洁、易用,功能强大,可以帮助设计师快速创建高质量的设计作品。 Sketch for Mac 可以轻松地创建矢量图形、图标、网页布局、移动应用…

VACode 创建Vue项目完整过程

一、软件下载 VSCode官网下载地址:https://code.visualstudio.com/ 二、下载开发环境 1. 安装 [Node.js](https://nodejs.org/); 2. 安装 [npm](https://www.npmjs.com/) 依赖管理工具; 注:node.js安装完后会同步安装npm,一般…

数据结构之二叉树详解[1]

在前面我们介绍了堆和二叉树的基本概念后,本篇文章将带领大家深入学习链式二叉树。 1.预备知识 2.二叉树结点的创建 3.二叉树的遍历 3.1前序遍历 3.2中序遍历 3.3 后序遍历 4.统计二叉树的结点个数 5.二叉树叶子结点的个数 6.二叉树第k层的结点个数 7.总结 …

activiti——网关配置

文章目录 前言网关介绍代码案例测试各项网关排他网关 ExclusiveGateway1、绘制流程图2、编写测试代码 并行网关ParallelGateway1、绘制流程图2、编写测试代码 包含网关InclusiveGateway1、绘制流程图2、编写测试代码 前言 在activiti工作流中,还有一个组件也很重要…

短视频拍摄+直播间搭建视觉艺术实战课:手把手场景演绎 从0-1短视频-8节课

抖音短视频和直播间你是否遇到这些问题? 短视频是用手机拍还是相机拍?画面怎么拍都没有质感 短视频产量低,拍的素材可用率低 看到别人用手机就能把短视频拍好自己却无从下手 明明已经打了好几盏灯了,但是画面还是比较暗 直播软件参数不会设置,电脑…

Git使用(1):介绍、克隆、推送

一、介绍与安装 1、Git是什么? Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程: workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓…

3dmax材质库导入方法?3dmax云渲染速度体验

3ds Max 材质库包含多种素材,如金属、木材、布料和石材等,但用户在导入材质时常遇到问题。本文将介绍如何在3ds Max中成功导入材质,并探讨使用云渲染服务来加速渲染过程,提高项目效率。 一、3dmax材质库导入教程 自建材质导入方法…

LLM Agent智能体综述(万字长文)

前言 🏆🏆🏆在上一篇文章中,我们介绍了如何部署MetaGPT到本地,获取OpenAI API Key并配置其开发环境,并通过一个开发小组的多Agent案例感受了智能体的强大,在本文中,我们将对AI Agent…

卷积神经网络CNN的运行过程、常见术语与问题

目录 一、CNN运行过程 1、卷积(Convolution) 2、激活函数(activation function) 3、池化(pooling) 3.1 池化操作 3.2 池化过程 3.3 池化后结果 4、Flatten 5、全连接层 Flatten层的操作 全连接层…

Oracle 流stream将删除的数据保存

Oracle 流stream将删除的数据保存 --实验的目的是捕获hr.employees表的删除行,将删除行插入到emp_del表中。 --设置初始化参数 AQ_TM_PROCESSES1 COMPATIBLE9.2.0 LOG_PARALLELISM1 --查看数据库的名称,我的为ora9,将以下的ora9全部替换为你的数据库名称…

部分树上问题及图的联通性(图论学习总结部分内容)

文章目录 前言三、部分树上问题及图的联通性最小生成树知识点例题 e g 1 : eg1: eg1: 走廊泼水节(克鲁斯卡尔思想的灵活运用) e g 2 : eg2: eg2: B-Picnic Planning e g 3 eg3 eg3:L - Classic Problem&…

Mybatis入门之在基于Springboot的框架下拿到MySQL中数据

介绍 Java技术操作数据库 MyBatis是一款优秀的持久层框架 用于简化JDBC的开发 优秀的持久层框架 我们要基于Springboot整合Mybatis 实操 学习 基于Mybatis是如何操作数据库的 通过MyBatis书写SQL语句 SQL语句执行完毕后 会将查询结果返回给Java程序 表中数据会自动封装…

灵卡科技HDMI音视频采集及H.264编码一体化采集卡—LCC260

推荐一款由灵卡科技倾力打造的高品质HDMI音视频采集卡——LCC260。以创新的技术,精湛的工艺和卓越的性能,为您提供全方位的音视频解决方案。 LCC260是一款集HDMI音视频采集与H.264编码于一身的全功能采集卡。它的输入端配备了最先进的HDMI 1.4a标准接口&…

Vue实战技巧 —— 企业开发实战中的常见疑难问题

Vue企业开发实战中的常见疑难问题 1. 解决Vue动态路由参数变化,页面数据不更新2. vue组件里定时器销毁问题3. vue实现按需加载组件的两种方式4. 组件之间,父子组件之间的通信方案5. Vue中获取当前父元素,子元素,兄弟元素6. 开发环…

HIVE大数据平台SQL优化分享

相信很多小伙伴在面试的时候,必然跳不过去的一个问题就是SQL脚本的优化,这是很多面试官爱问的问题,也是可以证明你实力进阶的一个重要的能力。 下面给大家分享一个重量级的大数据行业sql技能---hive大数据平台SQL优化。 此文章是大数据平台…