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

前面对微调(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.rhkb.cn/news/327638.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp怎么使用jsx

安装vitejs/plugin-vue-jsx npm install vitejs/plugin-vue-jsx -Dvite.config.js配置 import { defineConfig } from "vite"; import uni from "dcloudio/vite-plugin-uni"; import vueJsx from vitejs/plugin-vue-jsxexport default defineConfig({plu…

全方位入门git-慕课网 笔记

目录 【上传github忽略某些文件】【配置用户名和邮箱】【想要删除不需要的文件时如何进行操作】【想要给文件重命名如何操作】【想要移动文件到其他位置时如何操作】【文件有变化时,如何查看前后变化】【操作失误的情况下如何实现一键还原】【不再追踪时如何实现撤销…

区块链 | NFT 水印:Review on Watermarking Techniques(一)

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains 1 应用于 NFT 的水印技术 常见的水印技术类型可以分为: 可见 v i s i b l e \mathsf{visible} visi…

项目9-网页聊天室1(注册+Bycrpt加密)

1.准备工作 1.1.前端页面展示 1.2 数据库的建立 我们通过注册页面,考虑如何设计用户表数据库。 用户id,userId用户名,唯一,username用户密码,password(包括密码和确认密码ensurePssword【数据库没有该字段…

【全开源】酷柚易汛ERP 源码部署/售后更新/上线维护

一款基于FastAdminThinkPHPLayui开发的ERP管理系统,帮助中小企业实现ERP管理规范化,此系统能为你解决五大方面的经营问题:1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理,适用于:服装鞋帽、化妆品、机械机电…

openssl 生成证书步骤

本地测试RSA非对称加密功能时,需要用到签名证书。本文记录作者使用openssl本地生成证书的步骤,并没有深入研究openssl,难免会有错误,欢迎指出!!! 生成证书标准流程: 1、生成私钥&am…

jar包安装成Windows服务

一、前言 很多年前写过一篇《使用java service wrapper把windows flume做成服务》的文章,也是把jar包安装成windows服务,今天介绍另外一种更简便的方案。 二、正片 这次使用的工具是 winsw,一个Windows服务包装器。下面看详细介绍 首先从g…

运输层(计算机网络谢希仁第八版)——学习笔记五

课件:课程包列表 (51zhy.cn) 目录 运输层协议概述 用户报协议UDP 传输控制协议TCP概述 可靠传输的工作原理 TCP可靠传输的实现 TCP的流量控制 TCP的拥塞控制 TCP的运输连接管理 运输层协议概述 进程之间的通信 运输层的位置——只有位于网络边缘部分的主机的协议栈才…

Vue3实战笔记(13)—pinia安装笔记

文章目录 前言安装和配置pinia总结 前言 Pinia 是 Vue 的专属状态管理库,它允许你跨组件或页面共享状态。 Pinia是一个轻量级的状态管理库,它专注于提供一个简单的API来管理应用程序的状态。相比之下,Vuex是一个更完整的状态管理库&#xf…

【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手

文章目录 一、前言二、绘制效果三、ConstraintLayout 使用方法3.1 创建布局文件3.2 替换配置3.3 设置约束,步骤13.4 设置约束,步骤23.5 其他设置 四、结束 一、前言 在进行Android APP开发过程中,减少layout嵌套即可改善UI的绘制性能&#x…

在阿里云服务器上安装MySQL

目录 一、先卸载不需要的环境 1.关闭MySQL服务 2.查看安装包以及卸载安装包 3.依次卸载所有包 4. 获取mysql官⽅yum源 二、安装(密钥过期解决方法) 三、启动并进入 关于MySQL MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS&…

嵌入式学习-通用定时器

简介 框图介绍 时钟选择 计数器部分 输入捕获和输出比较框图 嵌入式学习全文参考(小向是个der)做笔记:https://blog.csdn.net/qq_41954556/article/details/129735708

单区域OSPF实验

实验目的: 理解OSPF的基本概念。掌握单曲于OSPF的配置掌握OSPF邻居状态的解读掌握通过Cost控制OSPF选路的方法掌握OSPF认证的配置方法 一、基础配置: 搭建实验拓扑图; 配置路由器接口的IP地址以及配置环回地址待后续使用 (1&a…

Patch-Wise Graph Contrastive Learning for Image Translation

Patch-Wise Graph Contrastive Learning for Image Translation 图像翻译中的逐块图对比学习 Chanyong Jung1, Gihyun Kwon1, Jong Chul Ye1, 2 Chanyong Jung,Gihyun Kwon,Jong Chul Ye 1, 2 Abstract 摘要 Patch-Wise Graph Cont…

[MRCTF2020]PixelShooter

是个安卓游戏题 re手肯定不会去玩游戏,先jadx分析一波 没有什么关键信息,但找到了一个unity类,想到apk也可以解压缩得到 .so 或者 Assembly-CSharp.dll 故又在dnspy分析一下 看了半天没有和flag有关信息,看wp: Asse…

(docker)进入容器后如何使用本机gpu

首次创建容器,不能直接使用本机gpu 在系统终端进行如下配置: 1.安装NVIDIA Container Toolkit 进入Nvidia官网Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.15.0 documentation,安装NVIDIA Container Toolkit …

在idea中使用vue

一、安装node.js 1、在node.js官网(下载 | Node.js 中文网)上下载适合自己电脑版本的node.js压缩包 2、下载完成后进行解压并安装,一定要记住自己的安装路径 一直点击next即可,这部选第一个 3、安装成功后,按住winR输入…

kafka学习笔记04(小滴课堂)

Kafka的producer生产者发送到Broker分区策略讲解 Kafka核心API模块-producer API讲解实战 代码: ProducerRecord介绍和key的作用 Kafka核心API模块-producerAPI回调函数实战 producer生产者发送指定分区实战 我们设置5个分区。 我们指定分区。 重新指定一个分区&am…

前端动画requestAnimationFrame

window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行。 备注: 若你想在浏览器下次重绘…

华为涅槃,余承东重生

最近一段时间,余承东甚为低调。最为明显的是,“遥遥领先”已经听不到了,“余大嘴”口中的措辞越来越克制。 今后手机相关的发布会,或许不再看到余承东的身影。 5月10日,余承东的职位正式更新,从终端BG CE…