[wordpiece]论文分析:Google’s Neural Machine Translation System

文章目录

论文:Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation

作者:Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V. Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, Jeff Klingner, Apurva Shah, Melvin Johnson, Xiaobing Liu, Łukasz Kaiser, Stephan Gouws, Yoshikiyo Kato, Taku Kudo, Hideto Kazawa, Keith Stevens, George Kurian, Nishant Patil, Wei Wang, Cliff Young, Jason Smith, Jason Riesa, Alex Rudnick, Oriol Vinyals, Greg Corrado, Macduff Hughes, Jeffrey Dean

时间:2016

一、论文解读

Google's Neural Machine Translation system简称GNMT,是一个深度LSTM网络,其由8层编码器和8层解码器组成;在这个深层LSTM网络中,层与层之间使用残差连接,解码器和编码器使用注意力机制连接;

  • 为了提高并行性,从而减少训练时间,注意机制将解码器的底层和编码器的顶层进行连接;
  • 为了加速最终的翻译速度,在推理计算中采用了低精度的计算;
  • 为了改进对罕见单词的处理,使用wordpiece进行分词并同时用于输入和输出;

wordpiece在"character"分隔模型的灵活性和"word"分隔模型的效率之间提供了很好的平衡,自然地处理罕见词的翻译,最终提高了系统的整体精度

该结果与与谷歌的之前的翻译系统相比,该模型平均减少了60%的翻译错误;我想这就是是谷歌抛弃传统翻译方法拥抱神经网络的最主要的原因之一吧;

1.1 模型介绍

神经机器翻译的架构通常由两个递归神经网络组成,(2017年的Transformer就打你的脸;),一个用于输入文本,一个用于输出文本;通常存在以下几个问题:训练和推理速度较慢(Transformer),无法处理罕见的单词无效,有时无法翻译源句中的所有单词(wordpiece);

For parallelism, we connect the attention from the bottom layer of the decoder network to the top layer of the encoder network. To improve inference time, we employ low-precision arithmetic for inference, which is further accelerated by special hardware (Google's Tensor Processing Unit, or TPU). To effectively deal with rare words, we use sub-word units (also known as "wordpieces") for inputs and outputs in our system. Using wordpieces gives a good balance between the flexibility of single characters and the efficiency of full words for decoding, and also sidesteps the need for special treatment of unknown words. Our beam search technique includes a length normalization procedure to deal efficiently with the problem of comparing hypotheses of different lengths during decoding, and a coverage penalty to encourage the model to translate all of the provided input.

  • 为了提高并行性,从而减少训练时间,注意机制将解码器的底层和编码器的顶层进行连接;
  • 为了加速最终的翻译速度,在推理计算中采用了低精度的计算;
  • 为了改进对罕见单词的处理,使用wordpiece进行分词并同时用于输入和输出;

传统的翻译系统基本都是基于Statistical Machine Translation (SMT)统计机器翻译,主要的应用都是 在翻译短文本上;在神经网络出现优势之前,统计机器翻译就集合了神经机器翻译,直到后来的一篇论文Addressing the rare word problem in neural machine translation中发现使用某架构的神经机器翻译模型的效果要好于传统机器翻译,神经机器翻译迎来了许多的新技术;

1.2 模型架构

模型架构如图所示:

其结构由解码器和编码器结合注意力机制构成,解码器和编码器都是8层的LSTM;循环网络的并行化不好处理,这里采用的是8个GPU结合并行处理的方式进行训练和推理;

模型中注意力模块和decoder模块结合的计算如图所示:

在层与层之间,采取了残差连接的方法:

每一层也不闲着,搞一搞双向RNN网络:

这就是模型的基本架构;

1.3 wordpiece

一般来说对于OOV词有两种方法:一种方法是简单的复制OOV,从输入到输出,就是不翻译的意思;另一种就是论文的重点,使用wordpiece方法,这是一个data-driven方法,可以把任何的字符进行分割;论文中特别提到wordpiece在字符的灵活性和单词的效率之间达到了平衡;

wordpieceBPE的一种变体,BPE找的是频数最高的字符对,其采取的策略是直接进行合并,wordpiece是根据 L o s s = l o g p ( z ) p ( x ) p ( y ) Loss = log\frac{p(z)}{p(x)p(y)} Loss=logp(x)p(y)p(z) 来判断的,其中 p ( i ) p(i) p(i)表示 i i i这个词出现的概率,这里可以采取的方式有很多种,这里举例常见的几种:

  • 设定一个 k k k值,和BPE一样去寻找频数最高的字符对,判断 L o s s Loss Loss是否大于 k k k,若大于则合并;
  • 遍历所有的字符对,合并 L o s s Loss Loss最大的字符对;

原文表述如下:

二、整体总结

相关推荐
罗西的思考2 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab3 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab3 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸4 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云5 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny8655 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔5 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung5 小时前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_5 小时前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能
南山安6 小时前
手写 Cursor 核心原理:从 Node.js 进程到智能 Agent
人工智能·agent·设计