Skip to main content
QUICK REVIEW

[论文解读] fairseq: A Fast, Extensible Toolkit for Sequence Modeling

Myle Ott, Sergey Edunov|arXiv (Cornell University)|Apr 1, 2019
Topic Modeling参考文献 47被引用 163
一句话总结

fairseq 是一个基于 PyTorch 的快速、可扩展的序列建模工具包,能够通过分布式训练、混合精度和优化推理,在翻译、摘要和语言建模任务中进行研究与生产部署。

ABSTRACT

fairseq is an open-source sequence modeling toolkit that allows researchers and developers to train custom models for translation, summarization, language modeling, and other text generation tasks. The toolkit is based on PyTorch and supports distributed training across multiple GPUs and machines. We also support fast mixed-precision training and inference on modern GPUs. A demo video can be found at https://www.youtube.com/watch?v=OtgDdWtHvto

研究动机与目标

  • 提供一个基于 PyTorch 的快速、可扩展的序列建模工具包。
  • 支持分布式与混合精度训练以及高效推理。
  • 提供用于机器翻译、摘要和语言建模的最先进实现和预训练模型。
  • 通过模型、criterions、tasks、optimizers 和 schedulers 的插件实现易于扩展。

提出的方法

  • 五种类型的用户可提供的插件以实现可扩展性(模型、损失函数、任务、优化器、调度器)。
  • 跨模型和任务的通用接口,可通过插件扩展。
  • 高效的批处理和分组以尽量减少小批量中的填充。
  • 使用 NCCL2 和 torch.distributed 的同步多GPU/多机训练。
  • FP16 前向/后向与 FP32 更新的混合精度训练,并配合动态损失缩放。
  • 推理过程中的增量解码,用于带缓存的快速非循环模型。
  • 束搜索、具多样性的束搜索,以及 top-k 采样作为搜索选项。

实验结果

研究问题

  • RQ1如何在翻译、语言建模和摘要任务中,通过单一工具包实现快速、可扩展且灵活的序列建模?
  • RQ2哪些架构与训练策略可以在大规模数据集上实现高效的多GPU/多机训练与推理?
  • RQ3具备鲁棒损失缩放的混合精度训练是否在提高吞吐量的同时保持模型质量?
  • RQ4解码器/推理优化(如增量解码、缓存)对翻译速度的影响在不牺牲准确性的情况下如何?

主要发现

  • Fairseq 支持在含数亿句子规模的数据集上进行分布式与混合精度训练。
  • 在 V100 上,对一个大型 Transformer 模型,FP16 推理速度提升至 136.0 句/秒,相较于 FP32 的 88.1。
  • 在测试设置中,FP16 推理使解码速度提高了 54%,且没有精度损失。
  • Transformer base 和 big 模型在 En–De 上分别达到 28.1 和 29.3 BLEU,在 En–Fr 上分别达到 41.1 和 43.2,且使用了具体的设置。
  • 在 CNN-DailyMail 的摘要任务中,ROUGE-1/2/L 为 40.1/17.6/36.8,当使用预训练语言模型时提升至 41.6/18.9/38.5。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。