解决训练难题,1000层的Transformer来了,训练代码很快公开(二)

本文涉及的产品
语种识别,语种识别 100万字符
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
简介: 解决训练难题,1000层的Transformer来了,训练代码很快公开(二)

DeepNet:极深的 Transformer 模型


研究者首先介绍了极深的 Transformer 模型 ——DeepNet,该模型可以通过缓解爆炸式模型更新问题来稳定优化过程。


DeepNet 基于 Transformer 架构。与原版 Transformer 相比,DeepNet 在每个子层使用了新方法 DEEPNORM,而不是以往的 Post-LN。DEEPNORM 的公式如下所示。


2dc93ec405d9219937d6fb45a5807e63.png


其中,α 是一个常数,G_l (x_l , θ_l) 是参数为 θ_l 的第 l 个 Transformer 子层(即注意力或前馈网络)的函数。DeepNet 还将残差内部的权重 θ_l 扩展了 β。


接着,研究者提供了对 DeepNet 模型更新预期大小(expected magnitude)的估计。


他们可视化了 IWSLT-14 De-En 翻译数据集上,Post-LN 和 DeepNet 在早期训练阶段的模型更新情况,如下图 5 所示。可以看到,相较于 Post-LN,DeepNet 的模型更新几乎保持恒定。


aaba1cdb27941674e5d33f47ed7af514.png


最后,研究者提供理论分析,以表明 DeepNet 的更新受到了 DEEPNORM 的常数限制。具体地,他们展示了 DeepNet 的预期模型更新受到了适当参数 α 和 β 的常数限制。研究者的分析基于 SGD 更新,并通过实证证明对 Adam 优化器效果很好。


研究者提供了对编码器 - 解码器架构的分析,它能够以相同的方式自然地扩展到仅编码器和仅解码器的模型。具体如下图所示,他们将模型更新的目标设定如下:


0c2ea4cc9eb922fca1c77aaa420dba60.png


仅编码器(例如 BERT)和仅解码器(例如 GPT)架构的推导能够以相同的方式进行。研究者将步骤总结如下:


7a632fdacbcc8c8331160108a0de7a5b.png


神经机器翻译


该研究验证了 DeepNet 在流行的机器翻译基准上的有效性,包括 IWSLT-14 德语 - 英语 (De-En) 数据集和 WMT-17 英语 - 德语 (En-De) 数据集。该研究将 DeepNet 与多个 SOTA 深度 Transformer 模型进行比较,包括 DLCL 、NormFormer 、ReZero 、R- Fixup 、T-Fixup 、DS-init 和 Admin。


下表 1 报告了 WMT-17 En-De 翻译数据集上的基线和 DeepNet 的结果:


f242787116db4d73ced7b46505995d05.png


下图 6 显示了 IWSLT-14 数据集的结果


3b849508eadfde94dbf2c9ed8c2cbbfd.png


下图 7 报告了 WMT-17 验证集的损失曲线


ad7a6ffc7e21e759f0e28c57d38e363f.png


大规模多语言神经机器翻译


该研究首先使用 OPUS-100 语料库来评估模型。OPUS100 是一个以英语为中心的多语言语料库,涵盖 100 种语言,是从 OPUS 集合中随机抽取的。该研究将 DeepNet 扩展到 1,000 层,该模型有一个 500 层的编码器、 500 层的解码器、512 个隐藏大小、8 个注意力头和 2,048 维度的前馈层。


下表 2 总结了 DeepNet 和基线的结果。结果表明,增加网络深度可以显着提高 NMT 的翻译质量:48 层的模型比 12 层的模型平均获得 3.2 点的提高。DeepNet 可以成功地将深度扩展到 1,000 层,比基线提高 4.4 BLEU。值得注意的是,DeepNet 只训练了 4 个 epoch,并且在计算预算更多的情况下,性能可以进一步提高。


501fa3aea52a65518b9832ab4b2a903e.png


深度扩展规律:该研究在 OPUS100 数据集上训练具有 {12,20,100,200,1000} 层的 DeepNet,下图 8 显示了深度扩展曲线。与双语 NMT 相比,多语 NMT 从扩展模型深度受益更多。可以观察到多语 NMT 的 BLEU 值呈对数增长,规律可以写成:L (d) = A log (d) + B,其中 d 是深度,A, B 是关于其他超参数的常数。


2a579126dee33c4a5c42182a8c953325.png


更多数据和语言说明:为了探索 DeepNet 在多语 NMT 上的局限性,该研究随后使用 Schwenk 等人提出的 CCMatrix 扩展训练数据。此外,该研究还扩展了 CCAligned 、OPUS 和 Tatoeba 的数据,以涵盖 Flores101 评估集的所有语言。最终的数据由 102 种语言、1932 个方向和 12B 对句子组成。利用这些数据,该研究用 100 层编码器、100 层解码器、1024 个隐藏维度、16 个头、4096 个前馈层中间维度对 DeepNet 进行训练。


该研究将 DeepNet 与 SOTA 多语 NMT 模型 M2M-100 进行了比较。M2M-100 有一个 24 层的编码器、一个 24 层的解码器和 4,096 个隐藏大小,从而产生高达 12B 的参数。与 M2M-100 相比,DeepNet 深而窄,参数只有 3.2B。


在 M2M-100 之后,该研究在几个多语言翻译评估数据集上评估模型,包括 WMT、OPUS 、TED、 Flores。WMT 的语言对是以英语为中心的。包括英语在内的 10 种语言,其中大部分是高资源语言。对于 OPUS 数据集,该研究从包含 30 个评估对的测试集中选择非英语方向。TED 评估集有 28 种语言和 756 个方向,数据来自口语领域。Flores 数据集包含 102 种语言之间的所有翻译对。该研究使用涵盖 M2M-100 和 DeepNet 支持的语言的子集,产生 87 种语言和 7,482 个翻译方向。


下表 3 报告了结果,为了公平比较,该研究使用与基线相同的评估方法。结果表明 DeepNet 在所有评估数据集上的性能都明显优于 M2M-100,表明深化模型是提高 NMT 模型质量的一个非常有前景的方向。


90ddb46f29a0a891863a7976297176b8.png

相关文章
|
机器学习/深度学习 自然语言处理 并行计算
大模型开发:什么是Transformer架构及其重要性?
Transformer模型革新了NLP,以其高效的并行计算和自注意力机制解决了长距离依赖问题。从机器翻译到各种NLP任务,Transformer展现出卓越性能,其编码器-解码器结构结合自注意力层和前馈网络,实现高效训练。此架构已成为领域内重要里程碑。
677 3
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
机器学习/深度学习 存储 自然语言处理
大语言模型参数真的必须要万亿以上吗?
本文探讨了大语言模型(LLMs)的发展及其在自然语言处理领域的应用。随着模型规模的不断增大,文章分析了参数规模与性能之间的关系,并展示了不同规模模型的优势与挑战。此外,文中还提供了代码示例,介绍了参数设置的方法。未来研究方向包括模型压缩和多模态学习,以进一步优化模型性能。总之,选择合适的模型规模对于平衡性能和效率至关重要。
|
机器学习/深度学习 自然语言处理 监控
NLP技术有哪些主要任务?
【7月更文挑战第8天】NLP技术有哪些主要任务?
1025 4
|
机器学习/深度学习 自然语言处理
【大模型】在大语言模型的架构中,Transformer有何作用?
【5月更文挑战第5天】【大模型】在大语言模型的架构中,Transformer有何作用?
|
存储 自然语言处理 开发工具
milvus向量库的工具类(添加分区、删除分区、删除记录)
【5月更文挑战第13天】milvus向量库的工具类(添加分区、删除分区、删除记录)
714 6
|
机器学习/深度学习 人工智能
论文介绍:深入解析神经语言模型的规模定律
【4月更文挑战第2天】OpenAI的论文《Scaling Laws for Neural Language Models》探索了模型规模、数据量和计算资源与性能的幂律关系。研究发现,增大模型参数、数据集和计算投入能按幂律提升性能,且模型性能与架构细节关联较小。大型模型在样本效率上更优,能在少量数据上达到与小型模型相当的性能。尽管存在理论解释和数据规模等方面的局限性,该研究为优化资源分配和设计高性能语言模型提供了关键洞见。
258 2
论文介绍:深入解析神经语言模型的规模定律
|
机器学习/深度学习 自然语言处理
GPT Tokenizer的工作原理
【2月更文挑战第4天】GPT Tokenizer的工作原理
365 4
GPT Tokenizer的工作原理
|
数据处理 索引 Python
pandas数据处理之数据转换(映射map、替换replace、重命名rename)
我们在数据处理的过程中经常碰到需要对数据进行转换的工作,比如将原来数据里的字典值根据字典转义成有意义的说明,将某些数据转换成其他的数据,将空值转换成其他值,将数据字段名进行重命名等。pandas作为数据处理分析的利器当然为上述的这些数据转换提供了便捷的方法。我们可以利用pandas提供的映射、替换、重命名等操作方便的进行相应的数据转换操作。 本文通过实例重点介绍pandas常用的数据转换工具映射map()、替换replace()、重命名rename()
486 0
|
JavaScript 算法
Nodejs 第十九章(pngquant)
Nodejs 第十九章(pngquant)
252 0
下一篇
开通oss服务