ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

unilm(edgelm)中的 Scaling Neural Machine Translation 复现指南:WMT16 En-De Transformer 训练与评测全流程

unilm(edgelm)中的 Scaling Neural Machine Translation 复现指南:WMT16 En-De Transformer 训练与评测全流程 unilmedgelm中的 Scaling Neural Machine Translation 复现指南WMT16 En-De Transformer 训练与评测全流程【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm本文基于 edgelm/examples/scaling_nmt/README.md 展开讲解如何在 unilm 仓库所集成的 edgelmfairseq 派生版中完整复现 Ott et al., 2018《Scaling Neural Machine Translation》arXiv:1806.00187的核心实验从 WMT16 En-De 数据解压、joined dictionary 预处理、transformer_vaswani_wmt_en_de_big架构训练到 checkpoint 平均、beam 搜索与 sacreBLEU 评测的每一步命令与参数含义。读完后你可以直接按文档给出的命令跑通数据→训练→评测闭环并理解每个关键选项在底层源码中的实际作用。文档定位edgelm 子树中的 Scaling NMT 复现示例该文档位于 unilm 仓库的edgelm/examples/示例目录下与 fairseq 系列的其他examples如bart、m2m_100、hubert等并列专门承担一件事提供与论文完全对齐的可执行命令以复现 Scaling NMT 论文在 WMT 翻译任务上的结果。文档给出的完整工作流包括官方预训练模型及其数据集说明在 WMT16 En-De 上从零训练一个新模型的 4 步流程解压数据 → 预处理 → 训练 → 评测评测阶段的两个 BLEU 计算方式compound split tokenized BLEU 与 sacreBLEU detokenized BLEU及适用边界论文的 BibTeX 引用信息。下文按这一脉络逐节展开并结合仓库源码补充各参数背后的实现依据。官方预训练模型文档给出了两个官方发布的预训练模型均为 Transformer 架构Ott et al., 2018使用 joined dictionary 训练模型描述数据集交付物transformer.wmt14.en-frTransformerOtt et al., 2018WMT14 English-French模型检查点.tar.bz2 newstest2014 翻译输出.tar.bz2transformer.wmt16.en-deTransformerOtt et al., 2018WMT16 English-German模型检查点.tar.bz2 newstest2014 翻译输出.tar.bz2模型检查点与 newstest2014 参考翻译均以.tar.bz2形式由 fairseq 官方文件服务发布数据集下载入口分别为 statmt.org 的 WMT14 页面与 Google Drive 的 WMT16 预处理包具体外链以原文档表格为准。这两个模型可直接用于fairseq-generate做翻译也可作为后续微调的初始化检查点。训练新模型WMT16 En-De 全流程第 1 步解压 WMT16 En-De 数据首先需要下载 Google 提供的预处理好的 WMT16 En-De 数据32k BPE文件wmt16_en_de.tar.gz然后解压TEXTwmt16_en_de_bpe32k mkdir -p $TEXT tar -xzvf wmt16_en_de.tar.gz -C $TEXT解压后目录内包含train.tok.clean.bpe.32000、newstest2013.tok.bpe.32000、newstest2014.tok.bpe.32000等已做分词与 BPE 编码的.en/.de平行语料文件后续预处理命令直接以这些前缀引用。第 2 步使用 joined dictionary 预处理数据集fairseq-preprocess \ --source-lang en --target-lang de \ --trainpref $TEXT/train.tok.clean.bpe.32000 \ --validpref $TEXT/newstest2013.tok.bpe.32000 \ --testpref $TEXT/newstest2014.tok.bpe.32000 \ --destdir>fairseq-train \ >python edgelm/scripts/average_checkpoints.py \ --inputs /path/to/checkpoints \ --num-epoch-checkpoints 10 \ --output checkpoint.avg10.pt原文档中写作python scripts/average_checkpoints ...此处已按仓库根目录相对路径修正原文档中的仓库内链接/scripts/average_checkpoints.py同理指向该文件。从源码看--num-epoch-checkpoints模式下脚本用正则checkpoint(\d)\.pt匹配按 epoch 保存的 checkpoint按编号倒序取最后 n 个见 average_checkpoints.py 的last_n_checkpoints权重平均本身对每个参数张量先求和再除以个数fp16 张量会先转回 float32 参与平均average_checkpoints.py。若你的 checkpoint 以 update 编号保存checkpoint_ee_xx.pt可改用互斥的--num-update-checkpoints--checkpoint-upper-bound可用于限定参与平均的最大编号区间。4.2 用平均后的 checkpoint 生成翻译fairseq-generate \ >bash edgelm/scripts/compound_split_bleu.sh gen.out # BLEU4 29.29, 60.3/35.0/22.8/15.3 (BP1.000, ratio1.004, syslen64763, reflen64496)对应实现为 edgelm/scripts/compound_split_bleu.sh脚本先校验gen.out末尾已有 BLEU 行确认生成完成再用 perl 对H/T行做正则替换s{(\S)-(\S)}{$1 ##AT##-##AT## $2}g把每个字符-字符边界改写为空格-连字符-空格最后调用fairseq-score计算 BLEUcompound_split_bleu.sh。4.4 方式二sacreBLEU detokenized BLEU推荐bash edgelm/scripts/sacrebleu.sh wmt14/full en de gen.out # BLEUcase.mixedlang.en-denumrefs.1smooth.exptest.wmt14/fulltok.13aversion.1.4.3 28.6 59.3/34.3/22.1/14.9 (BP 1.000 ratio 1.016 hyp_len 63666 ref_len 62688)edgelm/scripts/sacrebleu.sh 的用法为$0 TESTSET SRCLANG TGTLANG GEN本例测试集标识为wmt14/full。其内部流程sacrebleu.sh从gen.out中抽取H行、去除前缀、按 id 排序、取第 3 列翻译文本先用sacremoses detokenize做去分词脚本会先检查该命令是否存在缺失时提示安装再交给sacrebleu按指定语言对计算。这也是文档标注的 preferred 评测方式。参考文献文档随附论文 BibTeX如需引用 Scaling NMT 请原样使用inproceedings{ott2018scaling, title {Scaling Neural Machine Translation}, author {Ott, Myle and Edunov, Sergey and Grangier, David and Auli, Michael}, booktitle {Proceedings of the Third Conference on Machine Translation (WMT)}, year 2018, }复现要点小结词表--joined-dictionary与--share-all-embeddings必须配对使用源码层面存在硬性校验transformer_legacy.py架构transformer_vaswani_wmt_en_de_big 6 层 × (1024 维、4096 FFN、16 头) × 编解码器各一套transformer_legacy.py优化Adam (0.9, 0.98)、无梯度裁剪、无权重衰减、inverse_sqrt 4000 步预热、label smoothing 0.1大批量--update-freq 16--lr 0.001是文档给出的 8 卡机器模拟 128 GPU 大批量的推荐配置评测checkpoint 平均最后 5–10 个→--beam 4 --lenpen 0.6生成 → 优先用 sacrebleu.sh 报告 detokenized sacreBLEUcompound split 分数仅用于与论文数字对齐且不可跨工作比较。【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表