盘点!Instruction Tuning 时代的大模型

news2025/1/16 11:18:32

format,png

作者 | Kevin吴嘉文 

整理 | NewBeeNLP 公众号

https://zhuanlan.zhihu.com/p/616830127

Alpaca,ChatGLM 等模型的效果可以接受,下文总结部分笔记,为训练自定义小型化(7B)模型提供点知识储备。包括模型论文 LaMDA, Muppet, FLAN, T0, FLAN-PLAM, FLAN-T5

LaMDA

论文:Language Models for Dialog Applications

LaMDA 没用到 Instrcution Tuning,但下文中部分模型基于 LaMDA 进行微调。

模型:大小从 2B 到 137B 不等。

训练数据:在 1.56T words 级别的互联网对话及文档预料上预训练。

训练:

预训练比较普通,比较有意思的在于文中的 6.2 部分外部知识微调:"Fine-tuning to learn to call an external information retrieval system"。LaMDA 提出 Tool Set 模块,通过外界模块 进行翻译、数学计算、信息检索 三种功能。在一个对话流程中,TS 的功能如下:

  1. 假设用户进行 query,LaMDA 会进行一次普通预测,返回一个可能存在事实错误的答案,该答案通过 prompt 拼接,传入到 LaMDA-Research 模块当中。

  2. Research 模块可以看作一个修正答案回复的模块,是基于 multi-task finetune 而来的,比如信息安全、对话质量等任务。该模型能够生成两种类型的回复,一种由 TS 开头,表示当前的 prompt 需要进行 TS 工具来优化回复。第二种由 USER 开头,表示当前回复可以给用户看了。ReSearch 模块是一个循环迭代过程。

57f0488066d49ab6a4683dbe59cce634.png

微调还针对其他的能力,如 LaMDA 的回复安全性,事实一致性以及质量是通过在 DATASET 上额外训练得来的:

e20dbc0644ef5de385cf4f92ae5c453f.png

该文发现,占不到预训练数据 0.001% 的额外数据上(算起来也有10M 级别的 Token 了),进行安全和质量训练能够显著提高模型的使用体验。

91e349771f7fa681a0a941ce5dba431e.png

Muppet

论文:Massive Multi-task Representations with Pre-Finetuning

  • 大规模的多任务学习是很关键的,并且数据集应该在 20 个以上时,多任务学习的收益才会明显

  • 使用不同的heads 对应不同预训练任务,不同任务的loss进行 scaling。根据输出维度进行scale 的效果很好:L^{scaled} = \frac L{\log n(i)} ,如二分类任务 N 为 2,生成任务的话 n 为 vocab size。

  • 优化时,对不同任务的 loss 进行累加再进行梯度下降。

FLAN

论文:FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS

背景:GPT-3 zero-shot performance 和 few shot 差距大,作者猜测这可能是因为用户提问的 prompt 与实际训练的 prompt 匹配度太低。FLAN 提出通过 instruction tuning 提高 0-shot 能力

模型:LaMDA-PT,即 LaMDA 预训练后的模型。137 B,decoder 架构模型。

数据: 60+ 个 NLP 数据集上进行 instruction tune。

  • 模型规模、数据集数量、instructions 模板(方法)是 instruction tuning 的关键。

instruct tune 的 prompt 设计方式

  • 对于一个任务,设置 10个 不同的 template 来构造任务相关数据,这里的 template 可以看作 prompt 的一种形式。同时设置额外 3 个 template 来进行相关任务联系,比如在评论电影情感时候,可能还会要求模型写一些评论。(因此整个数据集大概包括 630 个 prompt)

6464e0ba7348d36b3d4f2b2204602d52.png

实验结果:

  • 相对于 GPT-3,FLAN 在 zero-shot 场景的能力得到了很大的提升。

  • multi-task learning 中涉及的任务或数据集越多,instruction finetuning 的效果提高越大

  • 模型越大, instruction tuning 可能带来 zero-shot 上涌现能力:

344b838b094344460ac3fadafb4605dd.png

T0

论文:Multitask Prompted Training Enables Zero-Shot Task Generalization

模型:使用 LM-adapted T5 (T5+LM);文中实验了 11B 和 3B 两种规模

数据:预训练 1100 B tokens;微调 250 B tokens;微调涵盖了 2073 个 prompt,涉及到了 177 个 dataset。论文中 appendix G 列出了所有的 prompt。

训练(Instruction Tuning):

  • learning rate of 1e-3

  • 参考了 T5(Exploring the limits of transfer learning with a unified text-to-text transformer) 对于数据量大于 500000 的数据集,根据 prompt template 的数量来调整采样数。

9e44e6fb844ec1f90e85e42622076ce1.png

  • 使用上图中所有的数据集进行训练,通过结合并随机打乱所有数据集的方式进行 multi task traning。

  • batch size 1024, Adafactor optimizer

  • trained for 250 billion tokens(25% of pretrain);270 hour on v3-512 Cloud TPU

实验结果:

  1. T0 的 prompt robust 比 GPT-3 好。

2. 文中对 prompt 数量的影响做了实验

5012ef578b05f20823beea28b81f6768.png

对于单个任务来说,prompt 的数量越多,任务上的效果越好

当 prompt 数量锁定时,训练数据集增加能够带来额外的效果提升:

e48cc95c3aa5d0786f0aaf2a681bfaff.png

数据集数量 T0<T0+<T0++;T0+ 额外使用了 GPT-3 evaluation datasets

  • 根据文中 T0 的训练方法,文中对模型规模进行了实验,发现多任务 prompt 训练的效果提升只出现在 3B 以上的模型(不包括 3B)。猜测:insturction tuning 仅针对 3B 以上模型?

050ff26676b89fad210a8ba78c0616d4.png

FLAN-PLAM

论文: Scaling Instruction-Finetuned Language Models

虽然叫 FLAN,但数据集以及模型似乎和 FLAN 模型没啥关系。论文进行了三方面训练测试:数据集规模分析、模型规模分析、COT 微调效果分析。

模型:

数据:tuning 1.4B tokens;pretrain 780B tokens

训练

  • 时间:540B-Flan-PaLM 训练占用 512 v4 TPU chips 共 37 小时

结果:

567ebd58307adff2dcaedbee0b076974.png

大概感觉 instruct finetune 训练数量是边际效应递减的。论文表示 COT 可以提升 reasoning 能力。

可能有用的训练花费表:

856b0bcafb6e4797011830e8a39508a1.png

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

format,png

78879089371b2b32ac8ce8131e72e760.gif

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

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

相关文章

纯净版Win10系统重装教程(超详细)

本博客详细讲解纯净版Win10系统重装,步骤齐全,小白可实操。 纯净版Win10系统重装教程 系统安装前准备下载安装工具更新重装 制作U盘为启动盘 重装Win10进入Boot模式选择系统版本分区系统安装中新系统配置 系统安装前准备 ➢ 准备8G或8G以上的空U盘。&a…

POSTGRESQL 10个使用POSTGRESQL 需要避免的错误 (译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

EOS网络基金会大战Block.One

微信公众号修改了推送规则,请各位亲爱的读者给刘教链公众号添加星标🌟,以便及时收到每日最新文章推送! 星标🌟添加方法:【1】点击标题下方“刘教链 刘教链”的第二个“刘教链”,打开公众号主页&…

chatgpt赋能Python-python_field

Python在Field上的应用 Python作为一门高级编程语言,在众多领域中扮演着应用广泛、易于学习、使用简便、速度出色的角色。在本文中,我们将重点关注Python在Field上的应用。 Field是什么? Field指的是“领域”,包括科学、工程、…

活动报名|分布式人工智能:可扩展性、效率和泛化性

2023年05月25日(星期四)14:00-15:30,智源社区「智源Live 第42期」线上活动将在线举办,「阅读原文」报名即可参加。 活动主题:分布式人工智能:可扩展性、效率和泛化性 安波 安波是新加坡南洋理工大学校长委员…

chatgpt赋能Python-python_for_end

Python for End: 介绍 Python是一种高级编程语言,由Guido van Rossum创建于1989年,并在1991年正式发布。Python是一种多范式编程语言,可以用于面向对象、函数式和过程式编程。它拥有简单易懂的语法以及扩展性强的库,从而使得开发…

见证ES6革命:深入学习let、const、var的区别、解构赋值、箭头函数等常用知识点,开创全新开发模式。

let、const、var的区别 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象。使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升。使用const声明的是常量,在后面出现的代码块中,不能在修改改常量的值。 var let const 函数级作用域 块级…

ThingsBoard教程(五十):规则节点解析 创建关系节点Create Relation Node,删除关系节点 Delete Relation Node

创建关系节点 Create Relation Node Since TB Version 2.2.1 根据类型和方向,从所选实体创建到消息发起方的关系。 以下消息发起方类型被允许:资产、设备、实体视图、客户、租、仪表板。 通过元数据键模式查找目标实体,然后在源实体和目标实体之间创建关系。 如果选择的…

AbstractStringBuilder源码

介绍 AbstractStringBuilder这个抽象类是StringBuilder和StringBuffer的直接父类,而且定义了很多方法,因此在学习这两个类之前建议先学习 AbstractStringBuilder抽象类 该类在源码中注释是以JDK1.5开始作为前两个类的父类存在的 abstract class Abstr…

【已解决】使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

问题描述 1、在使用python实现自动化网络爬虫时,我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页,然后爬取数据,代码如下: from selenium import webdriver import timedriver webdriver.Chrome() driver.get(https://…

基于JavaSpringBoot+Vue+uniapp实现微信小程序新闻资讯平台

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

多模态大模型时代下的文档图像智能分析与处理

多模态大模型时代下的文档图像智能分析与处理 0. 前言1. 人工智能发展历程1.1 传统机器学习1.2 深度学习1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛2.1 文档图像智能分析与处理的重要性和挑战2.2 文档图像智能分析与处理高峰论坛2.3 走进合合信息 3. 文档图像智…

<SQL>《SQL命令(含例句)精心整理版(2)》

《SQL命令(含例句)精心整理版(2)》 跳转《SQL命令(含例句)精心整理版(1)8 函数8.1 文本处理函数8.2 数值处理函数8.3 时间处理函数8.3.1 时间戳转化为自定义格式from_unixtime8.3.2 …

案例17:Java代驾管理系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

类的加载过程

一、前言   类加载器的技术 二、类的加载过程 2.1 JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)。链接又分为三个步骤,如下图所示: 装载:…

linux命名管道总结

FIFO&#xff0c;也称为命名管道&#xff0c;它是一种文件类型。 1、特点 (1)FIFO可以在无关的进程之间交换数据&#xff0c;与无名管道不同。 (2)FIFO有路径名与之相关联&#xff0c;它以一种特殊设备文件形式存在于文件系统中。 2、原型 (1)#include <sys/types.h> #in…

一篇文章告诉你什么是Java内存模型

在上篇 并发编程Bug起源:可见性、有序性和原子性问题&#xff0c;介绍了操作系统为了提示运行速度&#xff0c;做了各种优化&#xff0c;同时也带来数据的并发问题&#xff0c; 定义 在单线程系统中&#xff0c;代码按照顺序从上往下顺序执行&#xff0c;执行不会出现问题。比…

一图看懂 click 模块:一个通过组合的方式来创建精美命令行界面的包,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 click 模块&#xff1a;一个通过组合的方式来创建精美命令行界面的包&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模块图&#…

Python篇——数据结构与算法(第一部分)

目录 一、查找 1、顺序查找&#xff1a;也叫线性查找&#xff0c;从列表第一个元素开始&#xff0c;顺序进行搜索&#xff0c;直到找到元素或搜索到列表最后一个元素为止。 2、二分查找&#xff1a;也叫折半查找&#xff0c;从有序列表的初始候选区li[0:n]开始&#xff0c;通…

【远程访问】Linux搭建SVN服务器,并内网穿透实现公网远程访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…