©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

大概在 1 年前,我们提出了旋转位置编码(RoPE),并发布了对应的预训练模型 RoFormer [1]。随着时间的推移,RoFormer 非常幸运地得到了越来越多的关注和认可,比如 EleutherAI 新发布的 60亿 [2] 和 200亿 [3] 参数的 GPT 模型中就用上了 RoPE 位置编码,Google 新提出的 FLASH 模型论文中则明确指出了 RoPE 对 Transformer 效果有明显的提升作用。

与此同时,我们也一直在尝试继续加强 RoFormer 模型,试图让 RoFormer 的性能“更上一层楼”。经过近半年的努力,我们自认为取得了还不错的成果,因此将其作为“RoFormerV2”正式发布:

Github:

https://github.com/ZhuiyiTechnology/roformer-v2

极限探索

在预训练模型兴起之后,不少研究人员都对一个问题相当感兴趣:预训练模型的极限在哪里?当然,“极限”这个词含义很丰富,以 GPT3 为代表的一系列工作试图探索的是参数量、数据量的极限,而微软近来提出的 DeepNet 则探究的是深度的极限。对于我们来说,我们更想知道同一参数量下的性能极限,试图最充分地“压榨”预训练模型的性能,RoFormerV2 正是这一理念的产物。

简单来说,RoFormerV2 先在 RoFormer 的基础上对模型结构做了适当的简化,从而获得了一定的速度提升。训练方面,除了进行常规的无监督 MLM 预训练外,我们还收集了 20 多 G 的标注数据,进行了有监督的多任务预训练。在有监督式训练之下,模型效果获得了长足的提升,基本上实现了同一参数量下速度和效果的最优解。

特别地,3 亿参数量的 RoFormer large,在 CLUE 榜单 [4] 上超过了若干 10 亿 + 参数量的模型,做到了第 5 名,它也是榜上前5名中参数量最少的模型:

▲ RoFormerV2 large在CLUE上的“成绩单”

模型介绍

相比 RoFormer,RoFormerV2 的主要改动是简化模型结构、增加训练数据以及加入有监督训练,这些改动能让 RoFormerV2 最终取得了速度和效果的“双赢”。

结构的简化

在结构上,RoFormerV2 主要去掉了模型的所有 Bias 项,以及 Layer Norm 换成了简单的 RMS Norm,并且去掉了 RMS Norm 的 gamma 参数。这些改动的灵感主要来自 Google 的 T5 模型。

大家的潜意识里可能会觉得 Bias 项以及 Layer Norm 的 beta 和 gamma 参数计算量都很小,至少对速度来说是无关痛痒的。但事实出乎我们的意料:去掉这些看似“无关痛痒”的参数外,RoFormerV2 的训练速度获得了明显的提升!

一些参考数据如下(RoFormer 和 RoBERTa 速度接近,就不列出来了,base 版的测试显卡为 3090,large 版的测试显卡为 A100):

无监督训练

同 RoFormer 一样,RoFormerV2 也是先通过 MLM 任务进行无监督预训练,不同的地方主要有两点:

1. RoFormer 是在 RoBERTa 权重基础上进行训练,RoFormerV2 是从零训练;

2. RoFormer 的无监督训练只有 30 多 G 数据,RoFormerV2 则用到了 280G 数据。

从零训练相比于在已有权重基础上继续训练会更加困难,主要体现在 Post Norm 结构更难收敛。为此,我们提出了一种新的训练技术:将残差设计为

其中 初始化为 0 并线性地缓慢增加到 1,相关讨论还可以参考《浅谈 Transformer 的初始化、参数化与标准化》[5]。该方案跟 ReZero 相似,不同的是 ReZero 中 是可训练参数且去掉 操作,而实验显示我们的改动相比 ReZero 的最终效果更好,几乎是 DeepNet 之前的最优解。

多任务训练

前面提到 RoFormerV2 的结构有所简化以获得速度的提升,但由于“没有免费的午餐”,同样的训练设置之下 RoFormerV2 相比 RoBERTa、RoFormer 的效果会有轻微下降。为了弥补回这部分下降的效果,更有效地挖掘模型潜力,我们补充了有监督式的多任务预训练。

具体来说,我们收集了 77 个共计 20G 的标注数据集,构建了 92 个任务进行多任务训练,这些数据集涵盖文本分类、文本匹配、阅读理解、信息抽取、指代消解等常见自然语言理解任务,以求模型能获得比较全面的自然语言理解能力。为了完成训练,我们在 bert4keras 基础上进一步开发了一个多任务训练框架,灵活支持不同格式的任务进行混合训练,并整合了梯度归一化等技术(参考《多任务学习漫谈(二):行梯度之事》)来确保每个任务都达到尽可能优的效果。

RoFormerV2 并不是第一个尝试多任务预训练的模型,在它之前有 MT-DNN [6]、T5 [7] 以及前段时间的 ZeroPrompt [8] 都已经肯定过多任务预训练的价值,而我们主要是在中文上进行了充分的验证并首先进行了开源。

实验结果

我们主要在 CLUE 榜单上对比效果:

可以看到,多任务训练的提升是相当可观的,在大多数任务上 RoFormerV2 不仅“追回”了结构简化带来的效果差距,还有一定的提升,平均来说算得上达到了同级模型的最优效果。另外,CMNLI 和 CHID 两个任务上,RoFormerV2 都不如 RoBERTa,这是因为这两个任务都训练数据都非常多(数十万级别),当训练数据量足够大时,模型的效果主要取决于模型的容量,多任务训练带来的提升比较小。

所以,总的来说就是:如果你的任务类型比较常规,数据量不是特别大,那么 RoFormerV2 往往是一个不错的选择;如果你希望加快一点训练速度,那么也可以选择 RoFormerV2;但如果你的任务数据量特别大,那么 RoFormerV2 通常不会有优势。

本文小结

本文主要对我们新发布的 RoFormerV2 模型做了基本的介绍,它主要通过结构的简化来提升速度,并通过无监督预训练和有监督预训练的结合来提升效果,从而达到了速度与效果的“双赢”。

参考文献

[1] https://github.com/ZhuiyiTechnology/roformer

[2] https://github.com/kingoflolz/mesh-transformer-jax/#gpt-j-6b

[3] https://blog.eleuther.ai/announcing-20b/

[4] https://www.cluebenchmarks.com/rank.html

[5] https://kexue.fm/archives/8620

[6] https://arxiv.org/abs/1901.11504

[7] https://arxiv.org/abs/1910.10683

[8] https://arxiv.org/abs/2201.06910

RoFormerV2:自然语言理解的极限探索相关推荐

  1. 为什么神经网络不适合自然语言理解

    本文来自 Ben Dickson 在过去十年中,人工智能的一个主要趋势是通过创建更大的深度学习模型来解决问题.这种趋势在自然语言处理领域最为明显,同时自然语言处理是人工智能最具挑战性的领域之一. 近年 ...

  2. CIIS 2020专题论坛丨突破自然语言理解,找到人工智能出口

    11月14-15日,由中国人工智能学会.嘉兴市人民政府.嘉兴市南湖区人民政府主办,嘉兴科技城管理委员会.浙江未来技术研究院(嘉兴)承办的2020第十届中国智能产业高峰论坛(CIIS 2020),将在中 ...

  3. OpenAI最新研究:如何通过无监督学习提升「自然语言理解能力」?

    来源:amazonaws.com 摘要:长期以来,使用无监督(预)训练来提高区别性任务的性能表现一直是机器学习研究的一个重要目标.最近,OpenAI通过使用一个具有可扩展性的任务不可知系统,在一系列不 ...

  4. 自然语言一般使用计算机,自然语言理解

    自然语言处理(N LP , Natural Language Processing)是使用自然语言同计算机进行通讯的技术, 因为处理自然语言的关键是要让计算机"理解"自然语言,所以 ...

  5. 人工智能:第十一章 自然语言理解

    第十一章自然语言理解 教学内容:自然语言理解的一般概念.句法和语法的自动分析原理.句子的自动理解方法和语言的自动生成等. 教学重点:句法模式匹配.语义的分析.句子的自动理解和语言的自动生成. 教学难点 ...

  6. 任务式对话中的自然语言理解(智能对话场景)

    摘要: 随着人工智能技术的发展,智能对话的应用场景越来越多,目前已经成为了研究的热点.天猫精灵,小度小度,腾讯叮当,这些智能助手都是智能对话在业界的应用.智能助手的对话方式可分为三种:任务式对话 ( ...

  7. 机器学习: 专家系统、认知模拟、规划和问题求解、数据挖掘、网络信息服务、图象识别、故障诊断、自然语言理解、机器人和博弈等领域。...

    机器学习 编辑 本词条由"科普中国"百科科学词条编写与应用工作项目 审核 . 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论. ...

  8. 《人工智能》之《自然语言理解》

    教材:<人工智能及其应用>,蔡自兴等,2016m清华大学出版社(第5版) 参考书: <人工智能>之<自然语言理解> 1 自然语言理解概述 1.1 什么是自然语言处理 ...

  9. 自然语言理解(NLU)难在哪儿?

    文章作者:刘知远 清华大学 副教授 自然语言理解本质是结构预测 要搞清楚自然语言理解难在哪儿,先看自然语言理解任务的本质是什么.作为人工智能关注的三大信息类型(语音.视觉.语言)之一,自然语言文本是典 ...

最新文章

  1. 智能音箱自己把自己黑了:随机购物拨号,自主开灯关门,平均成功率达88%
  2. JS 退出系统并跳转到登录界面的实现代码
  3. is属性用法 vue_vue组件讲解(is属性的用法)模板标签替换操作
  4. Linux下安装MongoDB全程记录
  5. vue图片懒加载实例
  6. POJ1284:Primitive Roots——题解
  7. Asp.NetCoreWebApi入门 - 从零开始新建api项目
  8. python中的可变数据类型有列表和元组_Python中列表的 += 和 .extend() 的异同
  9. Github项目汇总
  10. mysql lvs 读写分离_mysql高可用架构方案之二(keepalived+lvs+读写分离+负载均衡)
  11. The Windows Phone Emulator wasn't able to create the external network switches 解决方法
  12. join()方法与CSV格式文件
  13. 如何将MBR分区转换成GPT分区
  14. 《论文阅读》PSF-LO: Parameterized Semantic Features Based Lidar Odometry
  15. 【PyQt5 知识点示例代码,2022年抓住金三银四涨薪好时机
  16. Android获取硬件设备详细信息
  17. 【MySQL】MySQL用 limit 为什么会影响性能?
  18. ChatGPT中文网 - ChatGPT国内网页版在线使用
  19. Oracle 数据误删的恢复措施
  20. uk码对照表_英国儿童鞋uk鞋码对照表

热门文章

  1. opencv 眼睛识别 linux,用opencv测试人脸识别眨眼练习及问题
  2. 诸神战纪2java_诸神战纪2死神归来
  3. MTK 修改后置Camera方向/镜像 Patch
  4. 绿盟数据库审计系统hive_数据库审计系统
  5. 软件工程能力漫谈:比编码更重要的,是项目管理能力
  6. 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
  7. sqoop将关系型数据库的表导入hive中
  8. Linux开发常见问题:GCC:链接器输入文件未使用,因为链接尚未完成
  9. could not open C:\Program Files\Java\jdk1.6.0-11\lib\i386\jvm.cfg
  10. git-commit