查看原文
其他

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

南瓜 开源前哨 2021-02-01

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



简介 


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/fairseqcd fairseqpip 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/apexcd apexpip 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/



- EOF - 


更多优秀开源项目(点击下方图片可跳转)





如果觉得本文介绍的开源项目不错,欢迎转发推荐给更多人。



分享、点赞和在看

支持我们分享更多优秀开源项目,谢谢!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存