写点什么

微软发布 T-NLG:一个 170 亿参数的语言模型

2020 年 3 月 09 日

微软发布T-NLG:一个170亿参数的语言模型

Turing Natural LanguageGeneration(T-NLG,图灵自然语言生成)是微软开发的一款 170 亿参数语言模型,它在许多下游 NLP 任务上的表现均超过了现有的顶尖水平。我们向学术界展示了这个模型的一个 demo,其中包括了它的自由格式生成、问题回答和摘要功能,以供反馈和研究之用。<|本段结束|>


上述摘要(的英文原文)是由 Turing-NLG 语言模型生成的。



上图源于 DistilBERT 发布的一张类似的图片


诸如 BERT 和 GPT-2 之类的大规模深度学习语言模型(LM)从互联网上发布的几乎所有文本中学习到了数以十亿计的参数,并提升了几乎所有下游自然语言处理(NLP)任务(包括问题解答、会话代理和文档理解等)的发展水平。


自然语言生成技术可以转化为多种现实应用,例如协助作者撰写内容,帮助人们汇总一长段文本来节省时间,或改善数字助理的客户体验。当下的趋势是自然语言模型规模越大,产生的结果就越好,在这样的背景下,微软图灵项目就推出了图灵自然语言生成(T-NLG)技术,这是有史以来发布的规模最大的模型,拥有 170 亿个参数,在各种语言建模基准测试上的成绩均优于之前最顶尖的水平,并且在许多实际任务(包括摘要和问题解答等)上的表现也很出色。这一成果背后的最大功臣就是DeepSpeed库(与 PyTorch 兼容)和ZeRO优化器带来的突破性进展,相关内容可参阅这一篇博客文章)。


我们向学术界的一小批用户发布了一个 T-NLG 的私有 demo,其中包括自由格式生成、问题回答和摘要功能,以供初步测试和反馈之用。


T-NLG:大型语言生成模型的好处

T-NLG 是一款基于 Transformer 的语言生成模型,这意味着它可以生成词汇来完成开放式文本任务。除了补足未完成的句子外,它还可以直接对输入的问题生成答案,或对输入的文档生成摘要。


T-NLG 之类的生成模型对于 NLP 任务来说是很重要的,因为我们的目标是在任何情况下都尽可能像人类那样直接、准确和流畅地响应。以前,问题解答和摘要系统需要从文档中提取现有内容,这些内容可以用作备用答案或摘要,但它们往往看起来不那么自然和连贯。借助 T-NLG,我们就可以针对个人文档或电子邮件主题自然地给出摘要或回答问题。


我们观察到了这样的事实:只要模型更大,预训练数据更加多样化,更为全面,那么即使所用的训练实例数量较少,模型在推广到多个下游任务时也能表现得更好。因此,我们认为训练一个大型中心化多任务模型,并在众多任务中共享其能力,比为每个任务单独训练新模型的做法更有效率。


预训练 T-NLG:硬件和软件突破

任何具有超过 13 亿个参数的模型都无法装入单个 GPU(甚至有 32GB 内存的 GPU 都不行),因此这个模型本身必须在多个 GPU 之间并行化,或分解成多个片段。我们利用了几项硬件和软件突破性成果来训练 T-NLG:


  1. 我们利用 NVIDIA DGX-2 硬件配置和 InfiniBand 连接,加快了 GPU 之间的通信。

  2. 我们使用张量切片,在 NVIDIA Megatron-LM 框架中将模型分片到四个 NVIDIA V100 GPU 上。

  3. DeepSpeed with ZeRO使我们可以降低模型并行度(从 16 减到 4),并将每个节点的批大小增加到 4 倍,还将训练时间减少到了三分之一。有了 DeepSpeed,我们就能用较少的 GPU 训练非常大的模型,从而提高效率;它仅用 256 个 NVIDIA GPU 就能以 512 的批大小进行训练,而单独使用 Megatron-LM 则需要 1024 个 NVIDIA GPU。此外,DeepSpeed 还兼容 PyTorch。


生成的 T-NLG 模型具有 78 个 Transformer 层,其隐藏层节点大小为 4256,有 28 个 attention head。为了和 Megatron-LM 的结果对比,我们使用了与 Megatron-LM 相同的超参数和学习计划来对模型进行预训练,使用了自回归生成损失函数,1024 长度的 Token 序列,训练了 30 万步,批大小为 512。学习计划遵循 3200 个线性预热步骤,最大学习速率为 1.5×10-4,余弦衰减超过 500,000 个步骤,精度为 FP16。我们使用与 Megatron-LM 模型相同的数据类型来训练模型。


我们还对比了预训练的 T-NLG 模型在标准语言任务,例如 WikiText-103 和 LAMBADA 在下一个单词的预测准确度(越高越好)上的性能。下表显示,我们在 LAMBADA 和 WikiText-103 上都打破了已有的最好纪录。其中,Megatron-LM 是 NVIDIA Megatron 模型公开发布的结果数据。


LAMBADA(acc)strictWikiText-103(teat adj.ppl)
Open AI GPT-2 1.5B52.66(63.24)17.48
Megatron-LM 8.3B66.5110.81
T-NLG 17B67.9810.21


OpenAI 使用了额外的处理技术(停用词过滤)来获得比独立模型更好的成绩。Megatron 和 T-NLG 都不使用这种停用词过滤技术。


下面的图 1 显示了与 Megatron-LM 相比,T-NLG 在验证困惑度方面的表现。



图 1:训练期间 Megatron-8B 参数模型(橙色线)与 T-NLG 17B 模型(蓝线和绿线)验证困惑度的成绩对比。虚线表示通过当前公开的最佳技术模型实现的最低验证损失。图中从蓝色到绿色的过渡表示 T-NLG 在性能上超过了已有的最佳公开技术水平


直接回答问题和零次回答能力

许多 Web 搜索用户希望在问问题时,能看到结果页面的顶部显示一个直接回答问题的卡片。这些卡片往往会从某段上下文中找出一句话来做答案。我们的目标是直接回答用户的问题,从而更明确地满足他们信息需求。例如,大多数搜索引擎解答下面这个问题时会展示一段文字,并高亮显示其中的“Tristan Prettyman”(参见下面的示例)。


问题Jason Mraze之前和谁订婚了?
段落Mraz在2010年圣诞夜与歌手/作词人,也是她的长期密友Tristan Prettyman订婚;他们在六个月后解除了婚约。
"直接"答案Jason Mraz曾与Tristan Prettyman订婚。


相比之下,T-NLG 会直接用完整的句子回答问题。这种能力在 Web 搜索以外的场景中用途更大。例如,当用户向 AI 助手询问有关自己个人数据的问题(例如电子邮件或 Word 文档)时,这种能力能让助手更智能地给出答案。


这一模型还能够实现“零次”(zero shot)问题解答,意味着无需上下文即可回答问题。下面的示例中模型没有什么段落可用,只有问题。在这类情况下,模型通过在预训练过程中获得的知识来生成答案。


第二次世界大战是何时结束的?二战结束于1945年。
美国有多少居民?现在美国有超过3亿居民。


由于ROUGE评分取决于真值(ground-truth)答案,其无法反映其他质量指标,例如事实正确性和语法正确性等。因此,我们请人工注释者来评估我们之前的基准系统(一个类似于 CopyNet 的 LSTM 模型)和当前的 T-NLG 模型。要实现对事实正确性的自动评估还有很多工作要做。


正确率(%)T-NLGLSTM(类似CopyNet)
语法9897
事实9692


我们还注意到,较大的预训练模型要达到较好的学习成果时所需的下游任务实例更少。我们最多只有 100,000 个“直接”回答问题-段落-答案三元组的实例,但就算只进行了几千次训练,我们的模型仍比 LSTM 基准模型在同一份数据上训练多个 epoch 的表现还更出色。由于收集带注释的监督数据是非常昂贵的,所以这种结果会带来实际的业务收益。


无需太多监督的抽象摘要

NLP 领域中的摘要技术有两种类型:提取——从文档中获取少量句子作为摘要;抽象——用 NLG 模型像人类一样生成摘要。T-NLG 的目标不是复制现有内容,而是为各种文本文档(如电子邮件、博客文章、Word 文档甚至 Excel 工作表和 PowerPoint 演示文稿)像人类那样编写抽象摘要。这里的一大挑战是,在所有这些情况下都缺乏监督训练数据:人类并不会每次都明确地总结每种文档类型。T-NLG 的强大在于,它已经非常理解文本,因此无需太多的监督即可胜过我们之前使用的所有技术。


为了使 T-NLG 尽可能通用,从而为各种类型的文本生成摘要,我们在几乎所有公开可用的摘要数据集中以多任务方式调整了 T-NLG 模型,总计约有 400 万个训练实例。我们使用 ROUGE 分数(代表所生成的摘要与参考摘要中的单字组和双字组的匹配程度)与另一种最新的基于 Transformer 的语言模型(称为 PEGASUS,https://arxiv.org/abs/1912.08777)以及之前表现最佳的模型进行了对比。


Rouge-LT-NLG之前的最佳模型PEGASUS Large
arXiv30.823.625.7
WikiHow31.526.533.4
BillSum41.633.745.8
WikiSum36.038.8-


请注意,T-NLG 是以多任务方式,同时在所有数据集上进行训练的。众所周知,ROUGE 评分在摘要任务方面存在缺陷(可以通过多种方式编写很好的抽象摘要),因此我们在下面提供了一些公开发表的文章的输出摘要,以供比较。


原始文本的链接T-NLG摘要
“Microsoft will be carbon negative by 2030” by Brad Smith, Official Microsoft Blog”(https://blogs.microsoft.com/blog/2020/01/16/microsoft-will-be-carbon-negative-by-2030/Microsoft is committed to being carbon negative by 2030. We are launching an aggressive program to cut our carbon emissions by more than half by 2030, both for our direct emissions and for our entire supply and value chain. We are also launching an initiative to use Microsoft technology to help our suppliers and customers reduce their own carbon footprints and a new $1 billion climate innovation fund to accelerate the development of carbon reduction, capture, and removal technologies that will help us and the world become carbon negative. In addition to our aggressive carbon goals, we are launching a new Climate Innovation Fund to accelerate carbon reduction and removal opportunities. We are also launching a program to use our technology to improve the efficiency of our supply chain and reduce our own carbon footprint as well…
“The Next Word: Where will predictive text take us?” by John Seabrook, The New Yorker(https://www.newyorker.com/magazine/2019/10/14/can-a-machine-learn-to-write-for-the-new-yorker“Smart” compose is a feature that suggests what going to type next, based on your past e-mails and your current thoughts. But what happens when you let the A.I. decide what you want to say next?


T-NLG 的未来应用

T-NLG 在自然语言生成方面已经取得了突破,为业界提供了新的机遇。除了通过文档和电子邮件摘要来节省用户时间之外,T-NLG 还可以为作者提供写作辅助,并回答读者可能对文档提出的问题来增强微软 Office 套件的体验。此外,它为对话更流畅的聊天机器人数字助理)铺平了道路,这样自然语言生成技术就可以与客户对话,从而帮助企业改善客户关系管理和销售工作。随着我们进一步提高语言模型的质量,我们也对新的可能性非常期待。


关于图灵项目:


T-NLG 是一个名为图灵项目的更大计划的一部分,该计划是一个应用研究小组,致力于在文本和图像处理方面采用深度学习技术来开发微软产品。我们的工作正在主动集成到多个微软产品中,包括 Bing、Office 和 Xbox 等。


如果你想提名自己的组织参与图灵项目的语义搜索的私有测试,请在此处提交申请


原文链接


https://www.microsoft.com/en-us/research/blog/turing-nlg-a-17-billion-parameter-language-model-by-microsoft/


2020 年 3 月 09 日 08:281091
用户头像
赵钰莹 InfoQ高级编辑

发布了 695 篇内容, 共 407.9 次阅读, 收获喜欢 2269 次。

关注

评论

发布
暂无评论
发现更多内容

你了解 SpringBoot java -jar 的启动原理吗?

猴哥一一 cium

Spring Boot Java 面试 Fat-JAR JAR URL Java 25 周年

国内首个区块链电子档案平台上线

CECBC区块链专委会

区块链技术 防伪 溯源 电子档案

程序员陪娃系列——叛逆小娃回归

孙苏勇

程序员人生 陪伴

官方源、镜像源汇总

JackTian

镜像源 官网源

1. 版本管理工具及 Ruby 工具链环境

Edmond

rubygems CocoaPods VersionControl PackageManager Git Submodule

阿里架构师用心整理JVM与性能优化核心知识分享

周老师

Java 程序员 JVM Java 面试 计算机

仓储控制系统(WCS)软件可靠性设计

阿喜伯

仓储控制系统 WCS 可靠性设计 容错性 易恢复性

软件设计原则作业

qihuajun

JVM学习笔记——JVM类加载机制

王海

Java JVM Java 面试

OFD 版式技术解析系列(二):OFD的颜色显示

华宇法律科技

大话设计模式 | 2. 策略模式

Puran

C# 设计模式

编程基础

南山

架构师训练营第一讲-学习总结

索隆

使用 Docker 镜像 | Docker 系列

AlwaysBeta

Docker 容器 虚拟私有云

Flink 源码分析之写给大忙人看的 Flink Window原理

shengjk1

flink flink源码 flink window

个人编程技能全景图

南山

愚蠢写作术(4):怎么让写作从开始到放弃

史方远

读书笔记 个人成长 写作 随笔杂谈

Shell的技巧小总结(MIT Missing Semester)

AndersonKim

Shell MIT 计算机 Computer Science 计算机工具

ARTS Week 3

时之虫

ARTS 打卡计划

GoF 23种设计模式

无心水

设计模式 GoF 23种设计模式

ARTS Week4

丽子

架构师训练营作业1-食堂就餐卡系统设计

索隆

ARTS打卡计划_第二周

叫不醒装睡的人

ARTS 打卡计划

推荐几款有意思的小众 App(06.13)

静陌

产品 App

为什么软件交付要快?因为要有赢的感觉!

刘华Kenneth

DevOps 敏捷 MVP 最小可用产品 持续交付

硬核!30 张图解 HTTP 常见面试题

小林coding

https 计算机网络 计算机基础 HTTP

架构训练营作业-20200614

caibird1984

软件设计原则学习总结

qihuajun

利用工作日志提高效率

Janenesome

思考 工作方式

小师妹学JavaIO之:用Selector来发好人卡

程序那些事

io nio 「Java 25周年」 小师妹 selector

【在云端 001】欢迎来到云原生

Bora.Don

云计算 云原生

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

微软发布T-NLG:一个170亿参数的语言模型-InfoQ