【导语】:Fairseq是一个序列建模工具包,可对翻译、摘要、语言建模和其他文本作业训练自定义建模,完全使用python实现,主要面向科研人员和开发者。 

1 万 Star!来自 Facebook 的翻译模型:Fairseq-LMLPHP

简介

Fairseq 这个翻译模型由Facebook AI实验室在2017年提出,和以往以RNN为基础的翻译模型相比,使用一种全新的卷积神经网络(CNN)进行语言翻译,结果以 9 倍于以往循环神经网络(CNN)的速度实现了目前最高准确率。

项目地址: https://github.com/pytorch/fairseq

特点

  • 单机多GPU训练或者多机器并行(数据和模型并行)

  • CPU和GPU的快速生成基于多个搜索算法的实现:

    • 柱型搜索

    • 多样化柱型搜索

    • 抽样(无约束,top-k和top-p/nucleus) 

    • 词法约束译码(Post & Vilar, 2018)

  • 梯度堆积可以在单个GPU上完成大量的小块训练

  • 混合精度训练 (基于英伟达张量内核,可以用更少的GPU进行更快速的训练)

  • 可拓展:注册新模型,测量规范,任务,优化器以及学习率的调度十分便捷

  • 基于Hydra的灵活配置,可满足代码,命令行和配置文件的混合使用

也为翻译提供了预训练模型,此外还为语言模型提供了便利的torch.hub接口:

en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')
en2de.translate('Hello world', beam=5)
# 'Hallo Welt'

安装和要求

  • PyTorch 版本 >= 1.5.0

  • Python 版本 >= 3.6

  • 为了训练新模型, 你需要一个英伟达 GPU 和 NCCL

  • 安装fairseq以及本地开发,可用如下命令:

git clone https://github.com/pytorch/fairseq
cd fairseq
pip install --editable ./

# on MacOS:
# CFLAGS="-stdlib=libc++" pip install --editable ./

# to install the latest stable release (0.10.0)
# pip install fairseq==0.10.0
  • 安装英伟达的apex库,以提高训练速度。安装命令如下:
git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" \
  --global-option="--deprecated_fused_adam" --global-option="--xentropy" \
  --global-option="--fast_multihead_attn" ./
  • 安装PyArrow,以满足大数据集的需求。安装命令如下:
pip install pyarrow
  • 如果你使用Docker,一定要增加共享内存,使用--ipc=host或者--shm-size选项来运行nvidia-docker run.

开始使用

完整的使用文档涵盖了如何启动,训练新模型以及使用新模型和任务来扩展fairseq的详细说明。

具体细节,查看如下链接: 
https://fairseq.readthedocs.io/

04-11 12:54