news 2026/9/13 23:52:59

unilm/infoxlm 中的卷积序列到序列机器翻译:fconv 架构、预训练模型与 WMT 复现全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
unilm/infoxlm 中的卷积序列到序列机器翻译:fconv 架构、预训练模型与 WMT 复现全指南

unilm/infoxlm 中的卷积序列到序列机器翻译:fconv 架构、预训练模型与 WMT 复现全指南

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

本文以 infoxlm/fairseq/examples/conv_seq2seq/README.md 为核心,系统讲解 unilm 仓库 infoxlm 子项目内置的 fairseq 框架中,由 Gehring 等人(ICML 2017)提出的全卷积序列到序列模型(Convolutional Sequence to Sequence Learning):包括三个 WMT 预训练翻译模型的清单与使用方法、从数据准备到训练评估的完整复现流程,以及fconv模型的源码级实现解析。读完本文,你将能够下载并使用conv.wmt14.en-fr/conv.wmt14.en-de/conv.wmt17.en-de预训练模型,也能基于fconv_wmt_en_defconv_wmt_en_fr架构从零训练自己的卷积翻译模型。

一、背景:为什么研究卷积序列到序列模型

2017 年,Gehring 等人提出了一种完全基于卷积的序列到序列模型(Convolutional Sequence to Sequence Learning),其论文发表于 ICML 2017。与当时主流的 RNN 序列模型不同,该模型使用时间维度的卷积层同时建模编码器与解码器,从而:

  • 支持对源序列的并行计算,训练速度显著优于逐时间步展开的循环网络;
  • 通过多层卷积堆叠获得足够大的感受野,以捕获长距离依赖;
  • 在解码器中配合**多头注意力的变体(多层逐层注意力)**对齐源与目标信息。

在 unilm 仓库的 infoxlm 子项目中,fairseq 框架完整保留了这一模型的实现、预训练权重与复现脚本,对应源码位于 infoxlm/fairseq/fairseq/models/fconv.py。无论是研究卷积翻译模型的历史实现,还是需要在不依赖注意力堆叠的架构下训练翻译系统,这份文档与源码都是直接可用的参考。

二、预训练模型清单

原文档提供了三个基于该模型训练并公开发布的预训练翻译模型,全部使用Moses tokenizer + subword-nmt BPE作为预处理管线(该配置在 fconv.py 的 hub_models 中有明确声明)。清单如下:

描述数据集模型测试集
Convolutional(Gehring et al., 2017)WMT14 英法(English-French)conv.wmt14.en-fr(公开 tar.bz2 压缩包)newstest2014;newstest2012/2013
Convolutional(Gehring et al., 2017)WMT14 英德(English-German)conv.wmt14.en-de(公开 tar.bz2 压缩包)newstest2014
Convolutional(Gehring et al., 2017)WMT17 英德(English-German)conv.wmt17.en-de(公开 tar.bz2 压缩包)newstest2014

模型权重以.tar.bz2归档发布,其中包含model.pt等文件;对应的测试集(binarized 形式)也可单独下载,供fairseq-generate批量评测使用。上述三个模型在源码中被注册为 PyTorch Hub 入口(见 fconv.py hub_models),统一使用moses_subword预处理配置,即 tokenizer 为moses、BPE 为subword_nmt

三、预训练模型的使用与评测

3.1 通过 PyTorch Hub 交互式翻译

在安装 fairseq(位于 infoxlm/fairseq 目录)及预处理依赖后,可通过 PyTorch Hub 直接加载预训练卷积模型进行交互式翻译:

pip install sacremoses subword_nmt
import torch # 查看可用模型列表,其中包含 conv.wmt14.en-fr 等 torch.hub.list('pytorch/fairseq') # 加载 WMT'14 英法卷积翻译模型 en2fr = torch.hub.load( 'pytorch/fairseq', 'conv.wmt14.en-fr', tokenizer='moses', bpe='subword_nmt' ) # 翻译一个句子 en2fr.translate('Hello world!')

3.2 命令行批量生成与 BLEU 计算

使用下载的 binarized 测试集,可执行批量的fairseq-generate生成并计算 BLEU(以下为 WMT'14 英法示例,硬件参考为 GTX-1080ti):

mkdir -p>grep ^H /tmp/gen.out | cut -f3- > /tmp/gen.out.sys grep ^T /tmp/gen.out | cut -f2- > /tmp/gen.out.ref fairseq-score --sys /tmp/gen.out.sys --ref /tmp/gen.out.ref

其中--remove-bpe用于将 subword 单元还原为词级文本,grep ^H提取假设(hypothesis)、grep ^T提取参考译文(reference)。评测命令与结果格式详见 infoxlm/fairseq/examples/translation/README.md。

四、从零复现:WMT'14 英德与英法训练全流程

原文档明确指出:使用fconv_wmt_en_defconv_wmt_en_fr两个命名架构复现 WMT'14 En-De 与 WMT'14 En-Fr 的完整指令,参见 translation README。以下为该 README 中卷积模型部分的完整操作流程。

4.1 数据准备:prepare-wmt14en2de.sh 与 --icml17 选项

数据准备脚本位于 infoxlm/fairseq/examples/translation/prepare-wmt14en2de.sh。默认情况下,它构建的数据集仿照《Attention Is All You Need》的配置,但额外加入 WMT'17 的 news-commentary-v12 数据:

cd infoxlm/fairseq/examples/translation/ # 默认:使用 WMT'17 数据(Europarl-v7 + CommonCrawl + news-commentary-v12) bash prepare-wmt14en2de.sh # 或者仅使用 WMT'14 数据,复现 Gehring et al., 2017 论文结果: # bash prepare-wmt14en2de.sh --icml17

脚本核心逻辑(可依据 prepare-wmt14en2de.sh 源码确认):

  • 克隆 Moses 与 Subword-NMT 仓库,用于 tokenization、clean 与 BPE 处理;
  • 下载 Europarl-v7、CommonCrawl、news-commentary 语料,以及dev.tgz(含 newstest2013)与test-full.tgz(含 newstest2014);
  • 传入--icml17时,将新闻语料替换为 WMT'14 的 news-commentary-v9,输出目录从wmt17_en_de变为wmt14_en_de
  • 训练数据抽取NR%100 == 0的行作为验证集,其余作为训练集;
  • 使用learn_bpe.py -s 40000学习4 万条 BPE 合并规则,再对 train/valid/test 应用 BPE;
  • clean-corpus-n.perl -ratio 1.5过滤过长、比例失衡的句对。

英法数据集则通过 prepare-wmt14en2fr.sh 准备。

4.2 二值化(Binarize)

cd infoxlm/fairseq/ TEXT=examples/translation/wmt17_en_de # 若使用 --icml17,则为 wmt14_en_de fairseq-preprocess \ --source-lang en --target-lang de \ --trainpref $TEXT/train --validpref $TEXT/valid --testpref $TEXT/test \ --destdir>mkdir -p checkpoints/fconv_wmt_en_de fairseq-train \ >cd infoxlm/fairseq/ # 数据准备 bash examples/translation/prepare-wmt14en2fr.sh # 二值化 TEXT=examples/translation/wmt14_en_fr fairseq-preprocess \ --source-lang en --target-lang fr \ --trainpref $TEXT/train --validpref $TEXT/valid --testpref $TEXT/test \ --destdir>fairseq-generate>@inproceedings{gehring2017convs2s, title = {Convolutional Sequence to Sequence Learning}, author = {Gehring, Jonas, and Auli, Michael and Grangier, David and Yarats, Denis and Dauphin, Yann N}, booktitle = {Proc. of ICML}, year = 2017, }

总结

围绕 conv_seq2seq README,本文完整覆盖了:三个公开预训练卷积翻译模型(WMT14 En-Fr、WMT14 En-De、WMT17 En-De)的清单与用法;基于 translation README 的 WMT'14 英德/英法从数据准备、二值化、训练到评测的完整复现流程;以及 fconv.py 中编码器/解码器/注意力层的源码级原理,包括 GLU 门控、线性化卷积、残差缩放、权重归一化与各命名架构的超参。读者既可以直接调用预训练模型做推理,也可以复现论文实验或基于fconv架构改造自己的卷积翻译系统。

【免费下载链接】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 23:51:37

扩散模型教程(Diffusion model)

1.写在前面 扩散模型是一类重要的深度生成模型.它的基本思想不是一步生成一个复杂样本,而是先定义一个固定的前向随机过程,把真实样本逐步扰动为近似高斯噪声;再学习一个反向过程,从噪声一步步恢复数据&#xf…

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

2026年高教社杯全国大学生数学建模竞赛A题药材的烘干问题-完整版Word论文,完整版Matlab代码,可直接运行和复制

A题 药材的烘干问题干燥是决定中药材成品品质的关键工序之一,其中热风烘干是一种常见的干燥方式。该方式主要包括预热平衡和恒温干燥两个阶段,通过调控烘房温湿环境,完成药材的干燥。在中药材烘干过程中,工艺参数选取不当容易导致…

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

工业HMI数据架构设计:IEC标准与实践指南

1. 工业HMI数据架构设计概述在工业自动化领域,人机界面(HMI)作为操作人员与控制系统交互的关键纽带,其数据架构设计直接影响着整个生产系统的可靠性和可维护性。一个设计良好的HMI数据架构能够显著提升操作效率、降低维护成本,同时确保系统符…

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

HarmonyOS 跨设备互通实战:平板点一下,手机镜头帮你拍照

本文主线落在 HarmonyOS 6.1.0(23) 的调用策略扩展,并顺带讲清算 6.0.0(20) 新增的视频选择器。文中的 API 名称、枚举取值与版本号来自华为官方文档;结构、代码示例、调用方向矩阵与自检清单为本人整理编写,未在真机逐行验证,涉及…

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

基于数字路径概念的彩色数字图像脉冲噪声去除

翻译至《Impulsive Noise Removal in Color Digital Images Based on the Concept of Digital Paths》Bogdan Smolka摘要本文提出一种用于彩色图像脉冲噪声抑制的快速算法。该算法利用数字路径的概念,这些数字路径将滤波窗口的中心像素与其边界相连。为每一条路径分…

作者头像 李华