0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌提出Flan-T5,一个模型解决所有NLP任务

深度学习自然语言处理 来源:深度学习自然语言处理 作者:nghuyong 2022-11-24 11:21 次阅读

d797167e-6ba6-11ed-8abf-dac502259ad0.jpg

「论文」: Scaling Instruction-Finetuned Language Models
「地址」: https://arxiv.org/abs/2210.11416
「模型」: https://huggingface.co/google/flan-t5-xxl

1. Flan-T5是什么

「Flan-T5」是Google最新的一篇工作,通过在超大规模的任务上进行微调,让语言模型具备了极强的泛化性能,做到单个模型就可以在1800多个NLP任务上都能有很好的表现。这意味着模型一旦训练完毕,可以直接在几乎全部的NLP任务上直接使用,实现「One model for ALL tasks」,这就非常有诱惑力!

这里的Flan指的是(Instruction finetuning),即"基于指令的微调";T5是2019年Google发布的一个语言模型了。注意这里的语言模型可以进行任意的替换(需要有Decoder部分,所以「不包括BERT这类纯Encoder语言模型」),论文的核心贡献是提出一套多任务的微调方案(Flan),来极大提升语言模型的泛化性。

d7ad732e-6ba6-11ed-8abf-dac502259ad0.png

Flat

例如下面文章中的例子,模型训练好之后,可直接让模型做问答:

「模型输入」是:"Geoffrey Hinton和George Washington这两个人有没有交谈过?在回答之前想一想原因。“

「模型返回」是:Geoffrey Hinton是一个计算机科学家,出生在1947年;而George Washington在1799年去世。所以这两个不可能有过交谈。所以答案时“没有”。

2. 怎么做的

d7bb88b0-6ba6-11ed-8abf-dac502259ad0.png

1800+微调任务

(1) 「任务收集」:工作的第一步是收集一系列监督的数据,这里一个任务可以被定义成<数据集,任务类型的形式>,比如“基于SQuAD数据集的问题生成任务”。需要注意的是这里有9个任务是需要进行推理的任务,即Chain-of-thought (CoT)任务。

(2) 「形式改写」:因为需要用单个语言模型来完成超过1800+种不同的任务,所以需要将任务都转换成相同的“输入格式”喂给模型训练,同时这些任务的输出也需要是统一的“输出格式”。

d7d6b630-6ba6-11ed-8abf-dac502259ad0.png

输入输出格式

如上图所示,根据 “是否需要进行推理 (CoT)” 以及 “是否需要提供示例(Few-shot)” 可将输入输出划分成四种类型:

  • chain-of-thought : and few-shot: (图中左上)
    • 输入:指令 + 问题
    • 输出:答案
  • chain-of-thought : and few-shot: (图中右上)
    • 输入:指令 + CoT引导(by reasoning step by step) + 问题
    • 输出:理由 + 答案
  • chain-of-thought: and few-shot: (图中左下)
    • 输入:指令 + 示例问题 + 示例问题回答 + 指令 + 问题
    • 输出:答案
  • chain-of-thought: and few-shot: (图中右下)
    • 输入:指令 + CoT引导 + 示例问题 + 示例问题理由 + 示例问题回答 + 指令 + CoT引导 + 问题
    • 输出:理由 + 答案

(3) 「训练过程」:采用恒定的学习率以及Adafactor优化器进行训练;同时会将多个训练样本“打包”成一个训练样本,这些训练样本直接会通过一个特殊的“结束token”进行分割。训练时候在每个指定的步数会在“保留任务”上进行模型评估,保存最佳的checkpoint。

d7f38ada-6ba6-11ed-8abf-dac502259ad0.png

保留任务

尽管微调的任务数量很多,但是相比于语言模型本身的预训练过程,计算量小了非常多,只有0.2%。所以通过这个方案,大公司训练好的语言模型可以被再次有效的利用,我们只需要做好“微调”即可,不用重复耗费大量计算资源再去训一个语言模型。

d81381dc-6ba6-11ed-8abf-dac502259ad0.png

微调过程与预训练本身的计算量对比

3. 一些结论

(1) 微调很重要

d923992c-6ba6-11ed-8abf-dac502259ad0.png

直接预测(红框)微调(绿框)

与不微调相比,通过基于指令的微调(flan)可以大幅度提高语言模型的效果。

(2) 模型越大效果越好

d9499398-6ba6-11ed-8abf-dac502259ad0.png

模型大小与任务数量对效果的影响

伴随模型体积的增加(上图左), 尤其是指数级的增加,比如从8B->62B,再从62B->540B,不论是否微调,效果都有非常显著的提升,而且还没有看到收敛的信号,可能如果有了 “万亿”参数的模型,效果还能继续提升。

(3) 任务越多效果越好

伴随任务数量的增加(上图右),模型的性能也会跟着增加,但是当任务数量超过282个之后,提升就不是很明显了。因为继续增加新的任务,尤其任务形式跟之前一样,不会给模型带来新的知识;多任务微调的本质是模型能够更好的把从预训练学到的知识进行表达,超过一定任务之后,继续新增相似的任务,知识的表达能力不会继续有很大的收益。进一步统计全部微调数据集的token数,发现只占到了预训练数据token数的0.2%,这表明还是有很多的知识没有在微调阶段重新被激发。

(4) 混杂CoT相关的任务很重要

d955b5a6-6ba6-11ed-8abf-dac502259ad0.png

保留任务中 CoT相关的任务 以及 非CoT相关的任务

尽管在1800多个任务中只有9个需要推理再给出回答的任务(CoT任务),但是混杂了这9个任务之后对整个模型的提升很大。在针对CoT相关任务的预测上,如果在微调中混淆CoT任务能带来明显的提升(左图中蓝色和绿色线);在针对非CoT相关任务的预测上,如果在微调中混淆了CoT任务也不会对模型带来伤害(右图中蓝色和绿色线)。

d966f668-6ba6-11ed-8abf-dac502259ad0.png

zero-shot上是否引入CoT的对比
(5) 整合起来

最终在多个不同尺寸的模型上进行实验,都可以获得一致性的结论:引入Flan微调方案,可以很好提高语言模型在超大规模任务上的整体效果。

d975968c-6ba6-11ed-8abf-dac502259ad0.png

不同版本的模型

总结一下,这篇工作提出了Flan的微调框架,核心有四点:统一的输入输出格式(4种类型),引入chain-of-thought,大幅提高任务数量,大幅提高模型体积;实现了用一个模型来解决超过1800种几乎全部的NLP任务,通过较低的成本,极大发掘了现有语言模型的泛化性能,让大家看到了通用模型的希望,即「One Model for ALL Tasks」


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Google
    +关注

    关注

    5

    文章

    1714

    浏览量

    56796
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47716
  • nlp
    nlp
    +关注

    关注

    1

    文章

    464

    浏览量

    21830

原文标题:谷歌提出Flan-T5,一个模型解决所有NLP任务

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlow。TensorFlow是一个开源的机器学习框架,由谷歌的机器学习团队开发,用于构建和
    的头像 发表于 03-01 16:25 247次阅读

    谷歌模型训练软件有哪些?谷歌模型训练软件哪个好?

    谷歌模型训练方面提供了一些强大的软件工具和平台。以下是几个常用的谷歌模型训练软件及其特点。
    的头像 发表于 03-01 16:24 286次阅读

    谷歌模型怎么用手机打开

    要使用手机打开谷歌模型,首先需要明确一点:谷歌模型本身是在计算机上运行的程序或算法,而不是可以直接在手机上打开的应用程序。然而,你可以通过手机访问
    的头像 发表于 03-01 16:23 214次阅读

    谷歌模型软件有哪些功能

    谷歌模型软件通常指的是谷歌推出的一系列人工智能模型和软件工具,其中最具代表性的是Google Gemini。Google Gemini是谷歌
    的头像 发表于 03-01 16:20 211次阅读

    谷歌模型合成软件有哪些

    谷歌模型合成软件通常指的是谷歌提供的用于创建、修改和共享3D模型的软件。目前,谷歌推出的模型合成
    的头像 发表于 02-29 18:20 897次阅读

    谷歌模型软件有哪些好用的

    谷歌模型软件的好用程度可能因个人需求和技能水平而异,但以下是一些广受欢迎的谷歌模型软件,它们在各自的领域内有着出色的表现。
    的头像 发表于 02-29 18:17 558次阅读

    谷歌模型框架是什么?有哪些功能和应用?

    谷歌模型框架(Google Model Framework)并不是一个特定的框架,而是指谷歌开发的一系列软件框架,用于支持机器学习和人工智能的应用。以下是一些与谷歌
    的头像 发表于 02-29 18:11 679次阅读

    谷歌模型合成工具怎么用

    谷歌模型合成工具主要是指Dreamfusion,这是Google的大型AI图像模型Imagen与NeRF的3D功能相结合的一种技术。Dreamfusion是Dream Fields的演变,Dream Fields是
    的头像 发表于 02-29 17:33 390次阅读

    谷歌交互世界模型重磅发布

    谷歌模型
    北京中科同志科技股份有限公司
    发布于 :2024年02月28日 09:13:06

    谷歌大型模型终于开放源代码,迟到但重要的开源战略

    在人工智能领域,谷歌可以算是开源的鼻祖。今天几乎所有的大语言模型,都基于谷歌在 2017 年发布的 Transformer 论文;谷歌的发布
    发表于 02-22 18:14 192次阅读
    <b class='flag-5'>谷歌</b>大型<b class='flag-5'>模型</b>终于开放源代码,迟到但重要的开源战略

    苹果正测试四种AI模型支持自己的人工智能

    据报道,苹果正在测试四种AI模型以支持其人工智能技术。这些模型可能包括苹果自家开发的“Ajax”,以及来自OpenAI和谷歌的两个外部大模型,分别是OpenAIGPT和
    的头像 发表于 02-04 11:17 543次阅读

    NeurIPS 2023 | 扩散模型解决多任务强化学习问题

    扩散模型(diffusion model)在 CV 领域甚至 NLP 领域都已经有了令人印象深刻的表现。最近的一些工作开始将 diffusion model 用于强化学习(RL)中来解决序列决策问题
    的头像 发表于 10-02 10:45 455次阅读
    NeurIPS 2023 | 扩散<b class='flag-5'>模型</b>解决多<b class='flag-5'>任务</b>强化学习问题

    请问freeRTOS可以次挂起所有任务吗?

    1.freeRTOS可以次挂起所有任务吗? 2.在界面下,如果不需要所有
    发表于 09-28 08:28

    LLM in Medical Domain: 一文速览大语言模型在医学领域的应用

    由于在生成长文本的数据集上,Flan-PaLM和临床医生的结果显示出一定gap。本文提出了使用Instruction Prompt Tuning对Flan-PaLM进行微调。使用soft
    的头像 发表于 06-15 18:00 1299次阅读
    LLM in Medical Domain: 一文速览大语言<b class='flag-5'>模型</b>在医学领域的应用

    NLP中的迁移学习:利用预训练模型进行文本分类

    迁移学习彻底改变了自然语言处理(NLP)领域,允许从业者利用预先训练的模型来完成自己的任务,从而大大减少了训练时间和计算资源。在本文中,我们将讨论迁移学习的概念,探索一些流行的预训练模型
    发表于 06-14 09:30 312次阅读