【通览一百个大模型】UL2(Google)

news2024/9/22 21:30:45

【通览一百个大模型】UL2(Google)

作者:王嘉宁,本文章内容为转载或整理,仓库链接:https://github.com/wjn1996/LLMs-NLP-Algo

订阅专栏【大模型&NLP&算法】可获得博主多年积累的全部NLP、大模型和算法干货资料大礼包,近200篇论文,300份博主亲自撰写的markdown笔记,近100个大模型资料卡,助力NLP科研、学习和求职。


UL2大模型基本信息资料卡

序号大模型名称归属推出时间规模预训练语料评测基准模型与训练方法开源论文模型地址相关资料
11UL2Google2022-0520BC4(Colossal Clean Crawled Corpus)预训练语料50 NLP 任务。包括文本生成(人工+自动评测方法), 文本分类、QA、常识推理、长文本推理、知识重组、信息检索等与模型、任务无关的统一训练方法。
(1)稀疏化训练
(2)统一了MLM、PrefixLM和CausalLM三种任务为Span Correction(mixed-of-denoiser,MoD)。R-denoising与MLM类似,masking一个区间并让模型预测;S-denoising:对末尾文本进行masking,并让模型生成;X-denoising:增大masking的span长度和数量。
image.png
(3)JAX/Flax框架训练
https://github.com/google-research/google-research/tree/master/ul2https://arxiv.org/pdf/2205.05131.pdfhttps://huggingface.co/google/ul2查看

UL2


  Google 的 Yi Tay (and Mostafa) 团队提出了一个新的策略 Mixture-of-Denoisers, 统一了各大预训练范式

  重新思考现在的预训练精调,我们有各种各样的预训练范式:decoder-only or encoder-decoder, span corruption or language model, 等等,不同的范式建模了不同的上下文关系,也正是因为如此,不同的预训练范式适配不同类型的下游任务。例如,基于双向上下文的预训练(span corruption,如T5)更加适用于 fact completion,基于单向上文(PrefixLM/LM,如GPT等)更加适用于 open ended. 也就是说,具体的下游任务类型需要选用特定的预训练策略

  准确地说,常见有三套范式:单向文本建模的CausalLM(i.e. LM),双向文本建模的 span corruption, 前缀文本建模的 PrefixLM.

  这是大一统吗?感觉只能是小一统,总感觉还缺少一味菜!今天,Google 把这道菜补上了!那就是:Mixture-of-Denoisers。先来感受一下效果:

论文标题: Unifying Language Learning Paradigms
论文作者: Yi Tay, Mostafa Dehghani, etc. (Google)
论文链接:https://arxiv.org/pdf/2205.05131.pdf


方法

  先说一下本文方法的目的:构建一种独立于模型架构以及下游任务类型的预训练策略,可以灵活地适配不同类型的下游任务。
整个方法的框架和 UniLM[1] 是很相似的,但是引入了稀疏化。

Mixture-of-Denoisers

  首先回顾上文所说的三个预训练范式:CausalLM, PrefixLM, span corruption,其实都可以统一到 span corruption :定义函数 , 这里 为平均 span 长度, 为 corruption rate, 为 corrupted span 的数量。定义输入序列长度为 ,经过正态分布或者均匀分布采样 corrputed span 后,训练模型学习恢复这些 span。可见,对于 CausalLM,只需要设置 ; 对于 PrefixLM, 只需要设置 (为前缀长度)。
基于此,作者提出了 Mixture-of-Denoisers :

  • R-Denoiser : regular denoising. corrupted span 的长度为 2-5 个 tokens, 大约是 15% 的掩码率。通常用于获得知识而不是生成流畅文本的能力。
  • S-Denoiser : sequential denoising. 保留严格的序列顺序,通常用于 inputs-to-targets 任务,如 PrefixLM. 需要注意的是,可见的 Prefix 仍然是上下文建模方式,但是被掩码掉的长 span 是不可见的。
  • X-Denoiser : extreme denoising. 可以看作 R-denoiser 和 S-denoiser 的中间体,是一种极端的情况,也就是 span length 非常长,或者 masking rate 非常大。一般用于长文本生成任务,因为这类任务一般只有非常有限的上下文记忆信息。

  最后,本文使用的七个 denoiser 设定如下:

Mode Switching

  本文提出通过 mode-switching 来进行 paradigm-shifting. 首先在预训练的时候,新增三个 special tokens : ,分别指代三个 paradigms (i.e… denoiser). 然后在下游任务精调或者小样本学习时,也为特定任务的设定和需要,新增一个 paradigm token, 以触发模型学习更优的方案。然后在主体模型架构上,使用 encoder-decoder 还是 decoder-only 是不重要的,因为本文方法的初衷就在于 architecture-agnostic (架构无关). 因此,作者基于 T5,对两种设定都进行了相关实验。

实验

消融实验

任务设定:

  • SuperGLUE (SG) :8 NLU sub-tasks
  • GEM benchmark : XSUM (summarization), ToTTo (table-to-text generation), Schema Guided Dialog (SGD)
  • C4 validation set

场景设定:

  • 精调(fine-tuning)
  • 基于提示的单样本学习

Baselines :

  • Causal Language Model (CLM) : GPT-style
  • Prefix LM (PLM)
  • Span Corruption (SC) : T5-style
  • Span Corruption + LM (SCLM)
  • UniLM (ULM)
  1. Decoder v.s. Encoder-Decoder


  结论:当不考虑存储时,encoder-decoder 比 decoder-only 更优;比起 backbone 架构,自监督目标更加重要。

  1. Paradigm Prompt (mode switching)

  结论:在 one-shot 场景下,使用范式提示几乎总是更好,但是,选对 paradigm prompt 非常关键。

  1. Mixture-of-Denoisers


▲SD% 表示 S-Denoisers 的占比
结论:X-denoising 有补充性效果,但不能单用;只用一小部分 S-Denoisers () 更好。

  1. 小幅增加模型尺寸以及预训练数据量


  结论:本文方法在 SuperGLUE 上比 T5 差了一点,但是其他任务仍然领先。

200亿参数!

  好了,现在开始壕起来:Scaling to 20B Parameters!虽然这个方法是 architecture agnostic (架构无关)的,但基于上面的消融实验,我们 prefer Encoder-Decoder 架构,更重要的是:Encoder-Decoder 具备固有的稀疏特性(intrinsic sparsity)

  任务设定:

  • 文本生成:摘要和 data-to-text 生成。数据集:CNN/Dailymail,XSUM,MultiNews,SAMSum,WebNLG,E2E,CommonGen
  • 人工评测的文本生成:aNLG, ARC-DA, WMT19, XSUM
  • 理解、分类、问答:RACE, QASC, OpenBookQA, TweetQA, QuAIL, IMDB, Agnews, DocNLI, Adversarial NLI, VitaminC, Civil Comments and Wikipedia Toxicity detection
  • 常识推理:HellaSwag, SocialIQA/SIQA, PhysicalIQA/PIQA, CosmosQA, AbductiveNLI, CommonsenseQA, CommonsenseQA2
  • 长程推理:Scrolls benchmark (GovReport, SumScr, QMSUm, QASPER, NarrativeQA, QuaLITY, ContractNLI )
  • 结构化知识 (Structured Knowledge Grounding): UnifiedSKG (WikiTQ, CompWQ, FetaQA, HybridQA, WikiSQL, TabFat, Feverous, SQA, MTOP, DART)
  • 信息检索:Natural Questions

  有意思的是:对于信息检索,作者使用的是 DSI[2] 进行的实验,简单说就是 text-to-docid 进行检索。

  评测结果:

  1. Tradeoffs between Finetuning and Prompt-based Zero-shot Learning (SuperGLUE)


  1. Generative Few-shot: XSUM Summarization

  1. Summary of UL20B results compared to state-of-the-art



总结

  Prompt 主要适用于三个场景:低资源、低算力、统一场景。也曾在知乎上发表过想法:Prompt 在某种程度上可以进行模型的专家化(expertization)或者模块化(modularization),需要和 Mixture-of-Experts进行沟通。这篇文章使用 paradigm prompt 进行 denoiser 的 mode switching,有进一步的启发意义。脱离 denoiser 的 mixture,可能会有更加宏大的 picture.

  另外,一直来说,为不同的下游任务部署特定的模型,是一个很消耗资源的方式,因此,一个统一的 black box 是必然的。虽然 GPT-3/T0[3] 等通过 instruction/prompt 或 in-context learning 等方式,为解决这个问题提供了思路,但是要真正 beat task-specific finetuning, 仍然有一段路要走。希望从这篇文章出发,能够彻底解决这个关键的部署问题。

  博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。


【大模型&NLP&算法】专栏

近200篇论文,300份博主亲自撰写的markdown笔记。订阅本专栏【大模型&NLP&算法】专栏,或前往https://github.com/wjn1996/LLMs-NLP-Algo即可获得全部如下资料:

  • 机器学习&深度学习基础与进阶干货(笔记、PPT、代码)
  • NLP基础与进阶干货(笔记、PPT、代码)
  • 大模型全套体系——预训练语言模型基础、知识预训练、大模型一览、大模型训练与优化、大模型调优、类ChatGPT的复现与应用等;
  • 大厂算法刷题;

在这里插入图片描述

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

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

相关文章

SLAM在ARM上的加速(3)- Neon在SLAM中的应用

SLAM在ARM上的加速: SLAM在ARM上的加速(1)- ARM加速基础 SLAM在ARM上的加速(2)- Neon SLAM在ARM上的加速(3)- Neon在SLAM中的应用 视觉SLAM通常可以分为前端和后端两个部分: (1)…

【深度学习】受限玻尔兹曼机 (RBM) 初学者指南

一、说明 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)是一种基于能量模型的人工神经网络。它只有一个隐层,将输入层和隐层中的每个神经元互相连接,但不同层的神经元之间没有连接。RBM是一种无向的概率图模型&am…

09_Linux内核定时器

目录 Linux时间管理和内核定时器简介 内核定时器简介 Linux内核短延时函数 定时器驱动程序编写 编写测试APP 运行测试 Linux时间管理和内核定时器简介 学习过UCOS或FreeRTOS的同学应该知道, UCOS或FreeRTOS是需要一个硬件定时器提供系统时钟,一般使用Systick作为系统时钟…

Vue生态及实践 - 优化实践

目录 目标 keep alive util/vue.js【vue里面常用的函数】 src/components/UKeepAlive.vue 无限加载列表优化的实现方案 src/util/throttle.js src/components/UInfiniteList.vue src/module/topic/views/UTopic.vue 献上一张ai生成图~ 目标 Keep Alive实践长列表优化…

基于pytorch的神经网络与对比学习CL的训练示例实战和代码解析

目录 对比学习原理解析构建一个对比学习模型(代码详解)导入库构建简单的神经网络构建对比学习的损失函数开始训练 完整代码 对比学习原理解析 对比学习(Contrastive Learning)是一种无监督学习方法,用于从未标记的数据…

3 STM32标准库函数 之 窗口看门狗(WWDG)所有函数的介绍及使用

3 STM32标准库函数 之 窗口看门狗(WWDG)所有函数的介绍及使用 1. 图片有格式2 文字无格式三 库函数之窗口看门狗(WWDG)所有函数的介绍及使用前言一、IWDG库函数固件库函数预览1.1 函 数 IWDG_WriteAccessCmd1.1.1 IWDG_WriteAcces…

string模拟实现

文章目录 1.回顾库函数strcpymemcpystrcmpstrstr 2.回顾类和对象哪些函数里会有this指针?this指针调用方法结论:只要是不修改this指针指向的对象内容的成员函数,都可以加上const自己写了构造函数,编译器不会自动生成默认构造2.1构…

代码随想录第21天 | 回溯理论基础 77. 组合

回溯理论基础 回溯法解决的问题都可以抽象为树形结构,是的,我指的是所有回溯法的问题都可以抽象为树形结构! 因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度,都构成的…

MySQL面试题总结(部分)

一.介绍MySQL为什么在面试中会提及 1.为什么要在面试时MySQL会被提及? 在面试中问MySQL问题有几个主要原因: 1. 数据库管理系统的重要性:MySQL作为一种常用的关系型数据库管理系统(RDBMS),在互联网和企业应用中得到广泛使用。对数…

Conda安装及使用方法(常用命令)

系列文章目录 文章目录 系列文章目录前言一、Conda下载安装1.下载2.安装3.配置国内源 二、Conda安装Python环境1.创建虚拟环境2.激活虚拟环境3.虚拟环境安装Python库 三、Conda环境环境执行脚本四、PyCharm配置Conda环境五、Conda迁移环境1.方式一:拷贝环境2.方式二…

Modbus通信从入门到精通_1_Modbus通信基础

关于Modbus通信的相关知识比较零碎,此处对查找到的知识点从理论,通信协议、使用方法方面进行整理。 值得学习的博文:Modbus及调试用软件介绍;Modbus协议和上位机应用开发介绍 文章目录 1. Modbus通信理论1.1 Modbus通信特点1.2 存…

多线程(1): 线程的创建、回收、分离

1. 多线程概述 多线程在项目开发过程中使用频率非常高,因为使用多线程可以提高程序的并发性。提高程序并发性有两种方式:(1)多线程 (2)多进程。但是多线程对系统资源的消耗会更加少一些,并且线程和进程执行效率差不多。 在执行系统应用程序时&#xff…

2023/7/8总结

Tomcat 启动:双击bin目录下的startup.bat文件停止:双击bin目录下的shutdown.bat 文件访问 :http://localhost:8080(默认是8080,可以修改) git的使用 打开git bash git config --global user.name "名…

Vue3---什么是路由缓存问题

使用带有参数的路由时需要注意的是,当用户从 /users/johnny 导航到 /users/jolyne 时,相同的组件实例将被重复使用。因为两个路由都渲染同个组件,比起销毁再创建,复用则显得更加高效。不过,这也意味着组件的生命周期钩…

500万PV的网站需要多少台服务器?

1. 衡量业务量的指标 衡量业务量的指标项有很多,比如,常见Web类应用中的PV、UV、IP。而比较贴近业务的指标项就是大家通常所说的业务用户数。但这个用户数比较笼统,其实和真实访问量有比较大的差距,所以为了更贴近实际业务量及压力…

什么是提示工程?

原文链接:芝士AI吃鱼 理解大规模人工智能模型为何如此行事是一门艺术。即使是最有成就的技术专家也会对大型语言模型 (LLM) 的意想不到的能力感到困惑,大型语言模型是ChatGPT等人工智能聊天机器人的基本构建模块。 因此,提示工程成为生成式 …

特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的分类数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的分类数据特征选择 部分源码 %--------------------

python 常用数据结构-列表

list 列表 列表定义与使用列表常用方法列表嵌套列表推导式 列表定义 列表是有序的可变元素的集合,使用中括号[]包围,元素之间用逗号分隔 列表是动态的,可以随时扩展和收缩 列表是异构的,可以同时存放不同类型的对象 列表中允…

阶乘后的零(力扣)数学 JAVA

给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释:3! 6 ,不含尾随 0 示例 2: 输入:n 5 输出&…

WSL2 及 docker开发环境搭建

WSL2 及 docker开发环境搭建 1.使能WSL 控制面板->程序->程序和功能->启动或关闭Windows功能->勾选红框中选项->确认后重启电脑  2.下载Linux Kernel Update安装包 下载地址如下, 附件已将下载的安装包作为附件形式上传,…