首页 > 其他分享 >击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式

时间:2023-05-01 12:32:22浏览次数:50  
标签:NLP 范式 Denoisers GPT3 SOTA 任务 训练 span pdf


击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_人工智能

文 | ZenMoore
编 | 小轶

写在前面

一觉醒来,迷糊之中看到一条推特:

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_java_02

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_人工智能_03

瞬间清醒!

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

先来感受一下效果:


击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_04

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

方法 (UL2)

先说一下本文方法的目的:构建一种独立于模型架构以及下游任务类型的预训练策略,可以灵活地适配不同类型的下游任务。

整个方法的框架和 UniLM[1] 是很相似的,但是引入了稀疏化。

Mixture-of-Denoisers

首先回顾上文所说的三个预训练范式:CausalLM, PrefixLM, span corruption,其实都可以统一到 span corruption

定义函数 , 这里 为平均 span 长度, 为 corruption rate, 为 corrupted span 的数量.定义输入序列长度为 ,经过正态分布或者均匀分布采样 corrputed span 后,训练模型学习恢复这些 span.

可见,对于 CausalLM,只需要设置 ; 对于 PrefixLM, 只需要设置 (为前缀长度)。

基于此,作者提出了 Mixture-of-Denoisers :


击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_深度学习_05

  • 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 设定如下:


击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_06

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

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_机器学习_07

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_机器学习_08

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

  1. Paradigm Prompt (mode switching)

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_深度学习_09

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

  1. Mixture-of-Denoisers

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_10

▲SD% 表示 S-Denoisers 的占比

结论:X-denoising 有补充性效果,但不能单用;只用一小部分 S-Denoisers () 更好。

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

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_深度学习_11

结论:本文方法在 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)

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_12

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_13

  1. Generative Few-shot: XSUM Summarization

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_深度学习_14

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

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_自然语言处理_15

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_深度学习_16

写在最后

看完这篇之后,总的感觉并没有第一眼看到推特时那样激动,或者说,也没有当初学习 UniLM[1] 时的感觉强烈。

我在之前的文章也提到过,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, 仍然有一段路要走。希望从这篇文章出发,能够彻底解决这个关键的部署问题。

击败GPT3,刷新50个SOTA!谷歌全面统一NLP范式_机器学习_17

作者:ZenMoore

北航本科生

标签:NLP,范式,Denoisers,GPT3,SOTA,任务,训练,span,pdf
From: https://blog.51cto.com/xixiaoyao/6238757

相关文章

  • EMNLP 2022 最佳论文揭晓!这脑洞绝了….
    前言读文章之前,我们先来思考人工智能中一个核心而底层的问题:什么是抽象以及它能够给我们带来什么?我们这里说的“抽象”是一个认知学上的概念,著名学者ChatGPT说:“抽象是指不依赖于具体事物或实例,而是指抽取共同点或基本特征的思维过程。”在人类智能中,抽象是一个很底层很基本的......
  • NLP中数据增强
    DataAugmentationApproachesinNaturalLanguageProcessing:ASurvey数据增强方法数据增强(DataAugmentation,简称DA),是指根据现有数据,合成新数据的一类方法。毕竟数据才是真正的效果天花板,有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。然而由于NLP任务天生......
  • 【NLP教程】用python调用百度AI开放平台进行情感倾向分析
    目录一、背景二、操作步骤2.1创建应用2.2获取token2.3情感倾向分析三、其他情感分析四、讲解视频一、背景Hi,大家!我是@马哥python说,一名10年程序猿。今天我来演示一下:通过百度AI开放平台,利用python调用百度接口进行中文情感倾向分析,并得出情感极性分为积极、消极还是中性以......
  • 劲(很)霸(不)酷(好)炫(用)的NLP可视化包:Dodorio 使用指北
    朋友们,朋友们,事情是这样的。最近心血来潮,突然想起很久以前看过的一个NLP可视化包。它的效果是下面这个样子:在此之前,已经有一些文章从论文的角度对这个包进行了介绍,详情请见推荐一个可交互的Attention可视化工具!我的Transformer可解释性有救啦?当时我第一眼就被这个包的效果折......
  • 十级NLPer才能笑出声的算法梗!
    文|付奶茶近期小编整理出了一些非常好笑的梗图,与各位NLPer共赏,希望与大家一起评选出本期最好笑的梗图选手!【1号选手:非常擅长讲笑话的NLM】前排评论区:(1)Ienjoyedyourjokeaboutjokeaboutjokeaboutjokeaboutjokeaboutjokeaboutjokeaboutjokeaboutjokeaboutlanguag......
  • HanLP
    向生产环境的多语种自然语言处理工具包,基于PyTorch和TensorFlow2.x双引擎,目标是普及落地最前沿的NLP技术。HanLP具备功能完善、精度准确、性能高效、语料时新、架构清晰、可自定义的特点。https://githubfast.com/hankcs/HanLP/tree/doc-zh......
  • 自然语言处理(Natural Language Processing,NLP)简要
    自然语言处理(NaturalLanguageProcessing,NLP)简要一、发展状况二、发展优势三、发展瓶颈四、具体研究方向五、自然语言处理工具六、未来发展方向自然语言处理(NaturalLanguageProcessing,NLP)是计算机科学和人工智能领域的一个重要研究方向,其目的是使计算机能够理......
  • NLP深度网络中self.embedding(x)词嵌入后降维方法
    在自然语言处理中的循环神经网络中,经常使用torch定义类,self.embedding(x)中,x是输入,介绍self.embedding(x)返回结果,以及结果的形状,并解释这个形状在自然语言处理中的循环神经网络中,使用PyTorch定义类时通常会包含一个嵌入层(embeddinglayer)。在嵌入层中,使用self.embedding(x)语......
  • 服務器掛的gpt3升級 3.5
    您可以先将旧版chatgpt-bot-telegram文件夹更名为其他名称,以免出现冲突。使用以下命令将其更名为"chatgpt-bot-telegram-old":复制mvchatgpt-bot-telegramchatgpt-bot-telegram-old接下来,再使用gitclone命令克隆新版chatgpt_telegram_bot:复制gitclonehttps://g......
  • SOTA!目标检测开源框架YOLOv6 3.0版本来啦
    近日,美团视觉智能部发布了YOLOv63.0版本,再一次将目标检测的综合性能推向新高。YOLOv6-L6检测精度和速度超越YOLOv7-E6E,取得当前实时目标检测榜单SOTA。本文主要介绍了YOLOv63.0版本中引入的技术创新和优化,希望能为从事相关工作的同学带来一些启发或帮助。1.概述2.关键技......