机器翻译

一、示例简介

1. 应用场景

利用计算机将源语言转换为目标语言的过程,可应用于翻译等场景。

2. 实现功能

本示例是以中英互译为背景,基于MLU服务器的机器翻译解决方案,基本功能包括web浏览器前端输入源语言,然后使用MLU服务器进行推理,最后在前端展示翻译结果。

二、方案优势

1. 使用寒武纪智能处理卡,为端、云侧推理提供的强大运算能力支撑,并具备强大的推理功能。

2. 根据寒武纪硬件进行优化,通过多batch等方式,充分利用多个MLU core进行平行处理。

3. 基于MLU加速版本的TensorFlow框架,算力开销由为多batch性能优化过的MLU算子执行,具有很高的执行效率。

三、适配规格

1. 硬件平台

寒武纪MLU270系列智能处理卡

寒武纪 MLU270采用寒武纪MLUv02架构,可支持视觉、语音、自然语言处理以及传统机器学习等多样化的人工智能应用,更为视觉应用集成了充裕的视频和图像编解码硬件单元。

MLU270集成了寒武纪在处理器架构领域的一系列创新性技术,处理非稀疏深度学习模型的理论峰值性能提升至上一代思元100的4倍,达到128TOPS(INT8);同时兼容INT4和INT16运算,理论峰值分别达到256TOPS和64TOPS;支持浮点运算和混合精度运算。  

最低配置

8张MLU270对应总共不少于16个CPU核心,配置时服务器需采用Balanced拓扑

不低于2倍加速卡缓存容量的系统内存,256GB

建议配置

8张MLU270对应总共不少于32个CPU核心,配置时服务器需采用Balanced拓扑

不低于3倍加速卡缓存容量的系统内存,384GB

4张MLU270对应总共不少于16个CPU核心,配置时服务器需采用Balanced拓扑

不低于3倍加速卡缓存容量的系统内存,192GB

 

 

 

 

 

 

 

 

 

案例展示

服务器厂商

型号

高度

CPU平台

MLU板卡

插卡数

Inspur

NF5468M5

4U

2* Intel Xeon Scalable Processor

MLU270-X5K

8

NF2180M3

2U

FT2000plus

MLU270-A4K

4

GreatWall

DF720

2U

FT2000plus

MLU270-A4K

2

 

 

 

 

 

 

 

 

 

2. 软件环境

依赖寒武纪驱动(Cambricon Driver),寒武纪软件(Cambricon Neuware)中的编解码库(CNCodec)、运行时库(CNRT)、CNDev、CNDrv、CNML、CNPlugin等。

 

四、功能介绍

机器翻译示例,可以通过运行docker环境中的机器翻译项目,然后根据提示在浏览器中打开提示的网站,体验机器翻译示例。

五、实现方案

1. 整体流程

 

2. 解释

1) 模型简介

中英互译使用的神经网络模型为Transformer模型。Transformer摒弃了传统的CNN和RNN结构,基于Attention机制和前馈神经网络搭建了Encoder-Decoder结构。

基于Transformer的神经网络可以通过堆叠多个Encoder-Decoder的形式进行搭建,如下图所示,左半部分为Encoder,右半部分为Decoder。Transformer-Base模型搭建了Encoder和Decoder各六层。

每一层Encoder由两个子层组成:Multi-head Self Attention层和全连接前馈网络层,每个子层输出都使用残差连接并加上Layer Normalization 。

Self Attention层建立了不同位置词向量之间的依赖关系。每一层Decoder中除了含有Encoder中的两个子层外,还增加了一个Encoder-Decoder Attention层,建立了源语言词向量与目标语言词向量之间的依赖关系。

由于Attention机制中没有包含位置信息,因此引入了Positional Encoding(位置编码)为输入词向量增加了位置信息。

 

 

2) 推理实现

实现基于MLU推理的接口,包括网络的前处理、后处理、Transformer网络模型在线运行等。

  • 前处理主要包括对源语言文本进行分词、编码等操作,得到适配网络模型的输入。分词实现将一段长文本分解为若干个字词单位,编码是将字词单位映射为词表ID。

  • 后处理主要对模型预测得到的词表ID序列进行解码,即将词表ID转换为目标语言文本。

 

3)前端页面

web服务框架使用Flask 框架搭建,整个流程包括响应用户前端页面操作,调用后端翻译计算,返回翻译结果给前端页面展示给用户。

前端页面主要用来与用户进行交互,提供以下功能:

  • 翻译语言选择
  • 输入文本与翻译结果显示

前端页面简图如下图所示

模型输入:encoded_txt(输入文本的词表ID序列)

模型输出:目标语言的词表ID序列

 

六、效果展示

 

七、相关资源

将在GitHub(https://github.com/Cambricon)上开源,感谢您的关注。

申 请 试 用