fairseq
Fairseq是一个由Facebook开发的序列建模工具包,旨在帮助研究人员和开发者训练自定义模型,用于翻译、摘要生成、语言建模以及其他文本生成任务。它实现了多种序列建模方法,包括卷积神经网络(CNN)、轻量和动态卷积模型、长短期记忆网络(LSTM)和自注意力变换器(Transformer)等。
使用场景
-
机器翻译:
- 支持多种语言间的机器翻译任务,提供预训练模型和适合多语言翻译的方案。
-
文本摘要:
- 可以训练模型从长文本中生成简洁的摘要,适用于新闻、科学文献等领域。
-
语言建模:
- 包括基于CNN和Transformer的语言模型,用于生成自然语言文本如对话、脚本等。
-
语音识别:
- 提供了如wav2vec等模型,适用于自监督学习的语音表示和无监督语音识别。
-
生成式任务:
- 支持各种生成文本的任务,如故事生成、对话生成等。
特性
- 多GPU训练: 支持单机多GPU或多机分布式训练。
- 快速生成: 实现了多种搜索算法,如束搜索、采样(包括top-k和top-p)等。
- 梯度累积: 允许在单个GPU上进行大批量训练。
- 混合精度训练: 使用混合精度训练加速训练速度并减少GPU内存消耗。
- 可扩展性: 用户可以轻松注册新的模型、损失函数、任务、优化器和学习率调度器。
- 灵活的配置: 基于Hydra的配置框架,支持代码、命令行和文件的混合配置。
- 参数分片与CPU卸载: 支持将参数和优化状态分片并卸载到CPU,适合大型模型训练。
安装
基本安装步骤如下:
git clone https://github.com/pytorch/fairseq
cd fairseq
pip install --editable ./
若需要更快的训练,可以安装NVIDIA的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" ./
社区与支持
- Twitter: https://twitter.com/fairseq
- Facebook页面: https://www.facebook.com/groups/fairseq.users
- Google群组: https://groups.google.com/forum/#!forum/fairseq-users
Fairseq除了一些预训练模型外,还提供详细的文档和示例,帮助用户快速上手。有关完整的文档和更多示例,可访问Fairseq官方文档。
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621