找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 48|回复: 0

使用 Universal Transformer 超越翻译

[复制链接]

545

主题

0

回帖

1677

积分

金牌会员

积分
1677
发表于 2024-12-10 17:05:12 | 显示全部楼层 |阅读模式
去年,我们发布了Transformer,这是一种新的机器学习模型,在机器翻译和其他语言理解任务中,它比现有的算法取得了显著的成功。在 Transformer 之前,大多数基于神经网络的机器翻译方法都依赖于循环神经网络(RNN),该网络使用循环(即每个步骤的输出都会输入到下一步)按顺序运行(例如,一个接一个地翻译句子中的单词)。虽然 RNN 在对序列进行建模方面非常强大,但它们的顺序性意味着它们的训练速度非常慢,因为较长的句子需要更多的处理步骤,而且它们的循环结构也使它们很难进行正确的训练。 与基于 RNN 的方法相比,Transformer 不使用循环,而是并行处理序列中的所有单词或符号,同时利用自注意力机制来整合较远单词的上下文。通过并行处理所有单词并让每个单词在多个处理步骤中关注句子中的其他单词,Transformer 的训练速度比循环模型快得多。值得注意的是,它还产生了比 RNN 更好的翻译结果。然而,在规模较小、结构化程度更高的语言理解任务,甚至是复制字符串(例如将输入“ abc ”转换为“ abcabc ”)等简单的算法任务中,Transformer 的表现并不理想。相比之下,在这些任务上表现良好的模型(如神经 GPU和神经图灵机)在翻译等大规模语言理解任务上却表现不佳。 在“通用 Transformer ”中,我们使用一种新颖、高效的并行时间递归方式将标准 Transformer 扩展为计算通用(图灵完备)
可在更广泛的任务中产生更强大的结果。我们以 Transformer 的并行结构为基础,以保持其快速的训练速度,但我们用单个并行时间循环转换函数的多个应用(即,相同的学习转换函数在多个处理步骤中并行应用于所有符号,其中每个步骤的输出都会输入到下一个步骤中)取代了 Transformer 固定的不同转换函数堆栈。至关重要的是,当 RNN 逐个符号(从左到右)处理序列时,Universal Transformer 同时处理所有符号(与 Transformer 一样),然后使用自注意力机制在可变数量的循环处理步骤中并行细化对每个符号的解释。这种并行时间递归机制既比 RNN 中使用的串行递归更快,也使 Universal Transformer 比标准前馈 Transformer 更强大。
通用变换器通过使用自注意力机制结合来自不同位置的信息并应用循环转换函数,反复并行细化序列每个位置的一系列向量表示(显示为 h 1到 h m )。箭头表示操作之间的依赖关系。
在每个步骤中,信息都会使用自注意力从每个符号(例如句子中的单词)传达到所有其他符号,就像在原始 Transformer 中一样。但是,现在应用于每个符号的这种变换的次数(即循环步骤的数量)可以提前手动设置(例如设置为某个固定数字或输入长度),也可以由 Universal Transformer 本身动态决定。为了实现后者,我们在每个位置添加了一个自适应计算机制,可以为更模糊或需要更多计算的符号分配更多的处理步骤。
作为一个直观的例子来说明它如何有用,请考虑这句话“我过河到了河岸”。在这种情况下,与“我”或“河流”的不太模糊的含义相比,需要更多的上下文来推断“银行”这个词最可能的含义。当我们使用标准 Transformer 对这个句子进行编码时,会无条件地对每个单词应用相同量的计算。然而,Universal Transformer 的自适应机制允许模型只在歧义较多的单词上花费更多的计算,例如使用更多步骤来整合消除“ bank ”一词歧义所需的额外上下文信息,而在歧义较少的单词上花费更少的步骤。 起初,允许 Universal Transformer 只重复应用单个学习到的函数来处理其输入似乎有限制,尤其是与学习应用固定序列的不同函数的标准 Transformer 相比时。但学习如何重复应用单个函数意味着应用的数量(处理步骤)现在可以变化,这是关键的区别。除了允许 Universal Transformer 对更模糊的符号应用更多计算(如上所述)之外,它还允许模型根据输入的整体大小扩展函数应用的数量(序列越长,步骤越多),或者根据训练期间学习到的其他特征动态决定将函数应用于输入的任何给定部分的频率。这使得 Universal Transformer 在理论上更加强大,因为它可以有效地学习将不同的转换应用于输入的不同部分。这是标准 Transformer 无法做到的,因为它由只应用一次的学习过的转换块的固定堆栈组成。
但是,虽然提高理论能力是可取的,但我们也关心经验表现。我们的实验证实,Universal Transformer 确实能够从示例中学习如何复制和反转字符串以及如何比 Transformer 或 RNN 更好地执行整数加法(尽管不如神经 GPU)。此外,在一系列具有挑战性的语言理解任务中,Universal Transformer 的泛化能力明显更好,并在bAbI 语言推理任务和具有挑战性的LAMBADA 语言建模任务中取得了新的最高水平。但也许最有趣的是,与具有相同数量参数、以相同方式在相同训练数据上训练的基础 Transformer 相比,Universal Transformer 的翻译质量提高了 0.9 BLEU 1。从整体上看,这在原始 Transformer 去年发布时相对于早期模型展示的 2.0 BLEU 改进的基础上又增加了 50% 的相对改进。
因此,通用 Transformer 缩小了在机器翻译等大规模语言理解任务上有竞争力的实用序列模型与神经图灵机或神经 GPU 等计算通用模型之间的差距,这些模型可以使用梯度下降进行训练以执行任意算法任务。我们对并行时间序列模型的最新发展充满热情,除了增加计算能力和处理深度的递归之外,我们希望对此处介绍的基本通用 Transformer 的进一步改进将帮助我们构建更强大、更数据高效、并且超越当前最先进技术的学习算法。
如果您想亲自尝试,可以在开源 Tensor2Tensor 存储库中找到用于训练和评估通用 Transformer 的代码。 致谢
这项研究由Mostafa Dehghani、Stephan Gouws、Oriol Vinyals、Jakob Uszkoreit和Łukasz Kaiser
进行。另外还要感谢Ashish Vaswani、Douglas Eck和David Dohan的宝贵意见和启发。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|绿色天空实验室

GMT+8, 2024-12-28 02:48 , Processed in 0.086059 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表