news 2026/9/13 13:16:03

非自回归机器翻译(NAT)实战指南:在 fairseq 中复现 Levenshtein Transformer 与 Mask-Predict 等五类模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
非自回归机器翻译(NAT)实战指南:在 fairseq 中复现 Levenshtein Transformer 与 Mask-Predict 等五类模型

非自回归机器翻译(NAT)实战指南:在 fairseq 中复现 Levenshtein Transformer 与 Mask-Predict 等五类模型

【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm

导读

本文以 fairseq 官方nonautoregressive_translation示例为骨架,完整讲解如何在 WMT'14 英德(En-De)数据集上训练与推理五类非自回归(Non-Autoregressive, NAT)机器翻译模型:Levenshtein Transformer(LevT)、Non-Autoregressive Transformer(NAT)、迭代精炼版 iNAT、Insertion Transformer(InsT)与 Mask-Predict(CMLM)。读完本文,你将掌握translation_lev任务、nat_loss准则、--noise噪声注入机制以及iterative_refinement_generator迭代解码器的完整用法,并理解其底层源码实现,能够直接复现论文结果。

背景:为什么需要非自回归翻译

传统自回归(Autoregressive, AT)翻译逐词从左到右解码,每一步都依赖上一步输出,生成 N 个词需要 N 次串行前向计算,推理延迟高。非自回归模型的目标是并行生成整句翻译:一次性输出全部目标 token,或在少量迭代轮数内逐步精炼,从而大幅降低解码时延。

fairseq 在 examples/nonautoregressive_translation/README.md 中提供了 Levenshtein Transformer(Gu et al., 2019)的完整复现指引,并额外内置了四类经典 NAT 模型的参考实现:

模型论文核心思想
Levenshtein Transformer (LevT)Gu et al., 2019以删除/插入两类编辑操作迭代精炼译文
NATGu et al., 2017长度预测 + 一次性并行生成
iNATLee et al., 2018并行生成后迭代精炼,训练中引入 DAE
Insertion Transformer (InsT)Stern et al., 2019通过插入操作逐步构造序列
Mask-Predict (CMLM)Ghazvininejad et al., 2019条件掩码语言模型 + 迭代解码

所有模型共享同一套任务(translation_lev)与损失准则(nat_loss),差异主要体现在模型架构与训练时注入的噪声类型上,这使得对比实验非常方便。

数据集准备:WMT'14 英德与知识蒸馏

下载与预处理

首先按照翻译任务的数据准备说明下载并预处理 WMT'14 En-De 数据集。关键一步:在运行fairseq-preprocess时必须传入--joined-dictionary,让源语言(英)与目标语言(德)共享同一个词表——这是 NAT 系列模型的常见要求,因为许多 NAT 方法(如 LevT、InsT)需要将源 token 直接映射到目标 token 的编辑操作上。

知识蒸馏(Knowledge Distillation)

NAT 模型在训练中缺乏逐词依赖的"自纠正"能力,直接从原始平行语料学习往往难以生成高质量译文。遵循 Gu et al. 2019 的做法,从自回归模型进行知识蒸馏可以显著简化训练数据的分布,有时甚至对 NAT 模型能否学到良好翻译起到决定性作用。

蒸馏流程很简单:

  1. 先在相同数据上按标准 Transformer 训练指引训练一个自回归模型;
  2. 用该模型对训练集解码,得到一份"蒸馏数据集"(通常称为wmt14_en_de_distill),供 NAT 模型训练使用。

官方也提供了预处理好的原始数据集与蒸馏数据集,下载后需自行调用fairseq-preprocess完成二值化(binarized)处理。

训练非自回归模型

训练 NAT 模型统一使用translation_lev任务与nat_loss准则,通过--noise参数指定施加在目标句上的输入噪声。从源码看,translation_lev.py 中--noise的合法取值为random_deleterandom_maskno_noisefull_mask四种,并在 inject_noise 方法中按取值分别执行随机删除、随机掩码、无噪声、全掩码操作,作为解码器的输入prev_target

默认配置运行的是 Levenshtein Transformer(--noise='random_delete'),以下命令在二值化蒸馏数据上训练 LevT:

fairseq-train \ >fairseq-train \ >fairseq-train \ >fairseq-train \ >fairseq-train \ >fairseq-generate \ >@article{gu2019levenshtein, title={Levenshtein Transformer}, author={Gu, Jiatao and Wang, Changhan and Zhao, Jake}, journal={arXiv preprint arXiv:1905.11006}, year={2019} }

延伸阅读

  • 完整训练脚本汇总:nonautoregressive_translation/scripts.md
  • 模型实现:levenshtein_transformer.py
  • 损失准则:nat_loss.py
  • 噪声注入任务:translation_lev.py
  • 迭代精炼生成器:iterative_refinement_generator.py

【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 13:15:30

ML-KWS-for-MCU源码静态评测:嵌入式边缘AI部署的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 13:12:05

多传感器融合方案对比:从架构选型到算法落地全梳理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 13:12:04

YOLO疲劳驾驶检测:三种标签格式对齐与训练全流程

简介:YOLO疲劳驾驶目标检测数据集面向计算机视觉目标检测方向的开发者与学生,提供真实驾驶场景下高质量图片共1000张,场景覆盖日间、夜间、不同光照及视角,可用于疲劳驾驶行为识别模型的训练与验证。压缩包内共2000个文件&#xf…

作者头像 李华
网站建设 2026/9/13 13:11:23

XGBoost临床风险建模:急性心梗死亡率预测与可解释部署

简介:本资源是一套基于Python与机器学习算法构建的急性心肌梗死(AMI)患者院内死亡风险预测系统,面向本科毕业设计、课程设计及医疗AI初阶项目开发者,聚焦临床数据建模实践与模型可解释性训练。压缩包共14个文件&#x…

作者头像 李华
网站建设 2026/9/13 13:09:38

YOLO车牌检测数据集实战:从标签校验到训练验证全流程

简介:面向yolo系列算法目标检测任务,这套车牌检测数据集包含1019张已标注图像,配套yolo格式(txt)与VOC格式(xml)两种标签文件,并已按训练和验证需求划分好数据集,内置dat…

作者头像 李华
网站建设 2026/9/13 13:09:30

四轮转向车辆路径跟踪的LPV增益调度控制设计与实车验证

做四轮转向(4WS)车辆控制这几年,我最大的感受是:仿真里跑得再漂亮的控制器,一上实车就露馅的情况太多了。尤其是路径跟踪这种任务,整车工况要从低速挪车一直覆盖到高速变道,轮胎力特性、车辆横摆…

作者头像 李华