1. 设计模式之工厂模式
326 2023-04-03 03:31:53
【导语】:Fairseq是一个序列建模工具包,可对翻译、摘要、语言建模和其他文本作业训练自定义建模,完全使用python实现,主要面向科研人员和开发者。
简介
Fairseq 这个翻译模型由Facebook AI实验室在2017年提出,和以往以RNN为基础的翻译模型相比,使用一种全新的卷积神经网络(CNN)进行语言翻译,结果以 9 倍于以往循环神经网络(CNN)的速度实现了目前最高准确率。
项目地址:github.com/pytorch/fai…
特点
单机多GPU训练或者多机器并行(数据和模型并行)
CPU和GPU的快速生成基于多个搜索算法的实现:
柱型搜索
多样化柱型搜索
抽样(无约束,top-k和top-p/nucleus)
词法约束译码(Post & Vilar, 2018)
梯度堆积可以在单个GPU上完成大量的小块训练
混合精度训练 (基于英伟达张量内核,可以用更少的GPU进行更快速的训练)
也为翻译提供了预训练模型,此外还为语言模型提供了便利的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
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" ./
pip install pyarrow
开始使用
完整的使用文档涵盖了如何启动,训练新模型以及使用新模型和任务来扩展fairseq的详细说明。
具体细节,查看如下链接:
fairseq.readthedocs.io/
开源前哨
日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。