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

news2024/11/24 14:22:40

文章目录

    • 一、论文解读
      • 1.1 模型介绍
      • 1.2 模型架构
      • 1.3 wordpiece
    • 二、整体总结

论文: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最大的字符对;

原文表述如下:

二、整体总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1288030.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

26、pytest使用allure解读

官方实例 # content of pytest_quick_start_test.py import allurepytestmark [allure.epic("My first epic"), allure.feature("Quick start feature")]allure.id(1) allure.story("Simple story") allure.title("test_allure_simple_te…

数据库学习日常案例20231203-Mysql高级 -- 日志管理篇

Mysql高级 -- 日志篇 *日志类型 1.mysql的6类日志: 2.日志的弊端 *慢查询日志(slow query log) *通用查询日志(general query log) 1.作用: 2.问题场景: 3.查看当前状态 : 4.启动日志: 方式1:永久…

MySQL 8 update语句更新数据表里边的数据

数据重新补充 这里使用alter table Bookbought.bookuser add userage INT after userphone;为用户表bookuser在userphone列后边添加一个类型为INT的新列userage。 使用alter table Bookbought.bookuser add sex varchar(6) after userage ;为用户表bookuser在userage 列后边添…

文件批量管理技巧:高效移动文件并创建文件夹,按数量分类的重要性

在日常生活和工作中,经常会遇到大量的文件要管理。这些文件可能存储在电脑的硬盘、外部存储设备或是云存储中。如何高效地管理这些文件,以便能够快速找到所需的资料,是一项非常重要的技能。本文讲解云炫文件管理器如何批量管理文件的技巧&…

win11 install oh-my-posh

安装配置 下载 Nerd Fonts 字体 oh-my-posh font installNerd Fonts 网站下载,解压后右击安装 为终端设置 Nerd Fonts 字体 修改 Windows 终端设置(默认快捷方式:CTRL SHIFT ,),在settings.json文件defaults属性下添…

Python与PHP:编写大型爬虫的适用性比较

目录 一、引言 二、Python编写爬虫的优势 1、强大的数据处理能力 2、丰富的网络库和框架 3、良好的可读性和易维护性 4、社区支持和生态系统 三、PHP编写爬虫的优势 1、简单易学 2、广泛的应用领域 3、高效的性能 4、灵活的请求处理方式 四、大型爬虫的编写实例&am…

基于ssm vue技术的品牌银饰售卖平台源码和论文737

摘 要 本论文主要是针对品牌银饰售卖而开发进行概述,主要包括对研究的背景和研究现状,以及研究目的等的阐述,也对该系统的各种功能要求,对系统结构,数据库的设计等进行讨论。随着科技与技术的发展,利用计…

前端vue导出PPT幻灯片,使用pptxgen.js,超详细(赋原数据)

即上一篇文章最终代码 前端vue导出PPT,使用pptxgen.js 前端vue导出PPT,使用pptxgen.js 一个平台下有10个国家,这个是后端返回数据固定的,每一个国家下面有10个物流方式,这10个物流方式是这10个国家都有的,…

开发与AI的邂逅

目录 一、前言 二、百度文心一言 三、阿里通义灵码 3.1.工具介绍 3.2.产品功能 3.3.配置流程 3.4.适用范围 3.5.收费标准 3.6.注意事项 一、前言 前段时间,由OpenAI公司研发的一款聊天机器人程序ChatGPT(全名:Chat Generative …

学习ShardingSphere前置知识

学习ShardingSphere前置准备知识 一. SPI SPI(Service Provider Interface)是一种Java的扩展机制,用于实现组件之间的松耦合。在SPI模型中,服务提供者(Service Provider)定义了一组接口,而服务…

超大规模集成电路设计----CMOS反相器(五)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----CMOS反相器(五) 5.1 静态CMOS反相器综述5.1.1 静态CMOS反相器优点…

linux的权限741

741权限 在 Linux 中,文件和目录的权限由三组权限来定义,分别是所有者(Owner)、所属组(Group)和其他用户(Others)。每一组权限又分为读(Read)、写&#xff0…

30、pytest入门内容回顾

整体结构 解读与实操 pytest30讲主要从四个方面由浅入深的进行解读, 开始 讲解了pytest的概述,安装前的准备工作(python,pycharm,pytest),运行方式(命令行),断言(assert…

一起学习:大型语言模型(LLM)中的QKV(Query, Key, Value)和多头注意力机制

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

深度学习TensorFlow2基础知识学习前半部分

目录 测试TensorFlow是否支持GPU: 自动求导: 数据预处理 之 统一数组维度 定义变量和常量 训练模型的时候设备变量的设置 生成随机数据 交叉熵损失CE和均方误差函数MSE 全连接Dense层 维度变换reshape 增加或减小维度 数组合并 广播机制&#…

C++ 预处理详解

目录 预处理符号 #define #define定义标识符 #define定义宏 #define的替换规则 #与## 带副作用的宏参数 宏和函数的对比 undef 命令行定义 条件编译 文件包含 头文件被包含的方式 本地文件包含 库文件包含 嵌套文件包含 预处理符号 __FILE__ //进行编译的源…

手写分析文件大小工具

背景: window 用久了磁盘变红了,又不想安装大文件分析的软件,突发奇想能否自己写一个代码,分析有哪些大文件 文件的单位,最高记作G // 文件大小单位static String[] fileSizeUnits {"B", "KB", …

【Spring Boot】如何在IntelliJ IDEA中由同一份spring boot源码运行多个不同端口的实例

我们需要使用一个服务有多个实例的测试场景,那么我们就需要在IntelliJ IDEA中通过不同的端口运行不同的实例,并且运行时的源代码是一样的,那么我们可以在IntelliJ IDEA这样操作,接下来以UserApplication服务为例: 复制…

Kafka 消费者 API 指南:深入探讨消费者的实现与最佳实践

Kafka 消费者 API 是连接应用程序与 Kafka 集群之间的关键接口,用于从 Kafka 主题中拉取消息并进行处理。本篇文章将深入探讨 Kafka 消费者 API 的核心概念、用法,以及一些最佳实践,帮助你构建高效、可靠的消息消费系统。 1. Kafka 消费者 A…

[CAD]接下来导出一张高清大图

选择输出-范围,点击右侧绿色画框,划区一个范围 点击输出区域并设置右侧选项。 下图,大大大 页面设置替代-大大大 输出即可,可以说是非常的清晰了