Facebook AI Research Sequence-to-Sequence Toolkit
项目描述
Fairseq(-py)是一个序列建模工具包,允许研究人员和开发人员为翻译、摘要、语言建模和其他文本生成任务训练自定义模型。
我们提供了各种序列建模论文的参考实现
实现论文列表
- 卷积神经网络 (CNN)
- LightConv和DynamicConv模型
- 长短期记忆 (LSTM) 网络
- 基于注意力的神经机器翻译的有效方法(Luong等人,2015年)
- Transformer(自注意力)网络
- 注意即全部所需(Vaswani等人,2017年)
- 扩展神经机器翻译(Ott等人,2018年)
- 理解大规模回译(Edunov等人,2018年)
- 自适应输入表示用于神经语言建模(Baevski和Auli,2018年)
- 使用动态束分配的词汇约束解码(Post & Vilar,2018年)
- Transformer-XL:超越固定长度上下文的注意力语言模型(Dai等人,2019年)
- Transformer中的自适应注意力跨度(Sukhbaatar等人,2019年)
- 多模型机器翻译的混合模型:商业技巧(Shen等人,2019年)
- RoBERTa:鲁棒优化的BERT预训练方法(Liu等人,2019年)
- Facebook FAIR的WMT19新闻翻译任务提交(Ng等人,2019年)
- 使用Transformer模型联合学习对齐和翻译(Garg等人,2019年)
- 神经机器翻译的多语言去噪预训练(Liu等人,2020年)
- 基于字节级子词的神经机器翻译(Wang等人,2020年)
- 神经机器翻译的无监督质量估计(Fomicheva等人,2020年)
- wav2vec 2.0:语音表示的自监督学习方法框架(Baevski等人,2020年)
- 使用序列到序列模型从患者-医生对话生成医学报告(Enarvi等人,2020年)
- Linformer:具有线性复杂度的自注意力(Wang等人,2020年)
- 跨语言检索用于迭代自监督训练(Tran等人,2020年)
- 具有潜在深度的深度Transformer(Li等人,2020年)
- 语音识别的无监督跨语言表示学习(Conneau等人,2020年)
- 自训练和预训练对于语音识别是互补的(Xu等人,2020年)
- 鲁棒的wav2vec 2.0:分析自监督预训练中的领域偏移(Hsu等人,2021年)
- 无监督语音识别(Baevski等人,2021年)
- 简单而有效的零样本跨语言音素识别(Xu等人,2021年)
- VideoCLIP:零样本视频-文本理解的对比预训练(Xu等人,2021年)
- VLM:视频理解的零样本视频-语言模型预训练(Xu等人,2021年)
- NormFormer:使用额外归一化的改进Transformer预训练(Shleifer等人,2021年)
- 非自回归Transformer
- 非自回归神经机器翻译(Gu等人,2017年)
- 通过迭代细化确定性的非自回归神经序列建模(Lee等人,2018年)
- 插入Transformer:通过插入操作进行灵活的序列生成(Stern等人,2019年)
- Mask-Predict:条件掩码语言模型的并行解码(Ghazvininejad等人,2019年)
- Levenshtein Transformer(Gu等人,2019年)
- 微调
有什么新内容
- 2022年6月 发布了wav2vec-U 2.0的代码,来自面向端到端无监督语音识别(Liu等人,2022年)
- 2022年5月 与xFormers集成
- 2021年12月 发布了直接语音到语音翻译代码
- 2021年10月 发布了VideoCLIP和VLM模型
- 2021年10月 发布了多语言微调的XLSR-53模型
- 2021年9月
master
分支重命名为main
。 - 2021年7月 发布了DrNMT代码
- 2021年7月 发布了鲁棒的wav2vec 2.0模型
- 2021年6月 发布了XLMR-XL和XLMR-XXL模型
- 2021年5月 发布了无监督语音识别代码
- 2021年3月 添加了完整参数和优化器状态分片+CPU卸载
- 2021年2月 添加了LASER训练代码
- 2020年12月: 添加了自适应注意力跨度代码
- 2020年12月: GottBERT模型和代码发布
- 2020年11月:采用Hydra配置框架
- 2020年11月:发布 fairseq 0.10.0
- 2020年10月:添加了 R3F/R4F(更好的微调)代码
- 2020年10月:发布具有潜在深度的深度 Transformer 代码
- 2020年10月:添加了 CRISS 模型和代码
以前更新
- 2020年9月:添加了 Linformer 代码
- 2020年9月:添加了 pointer-generator 网络
- 2020年8月:添加了词法约束解码
- 2020年8月:发布 wav2vec2 模型和代码
- 2020年7月:发布无监督质量估计代码
- 2020年5月:在 Twitter 上关注 fairseq
- 2020年4月:发布单调多头注意力代码
- 2020年4月:发布 Quant-Noise 代码
- 2020年4月:初始模型并行支持和 11B 参数单向语言模型发布
- 2020年3月:发布字节级 BPE 代码
- 2020年2月:发布 mBART 模型和代码
- 2020年2月:添加了回译教程
- 2019年12月:发布 fairseq 0.9.0
- 2019年11月:发布 VizSeq(用于评估 fairseq 模型的可视化分析工具包)
- 2019年11月:发布 CamemBERT 模型和代码
- 2019年11月:发布 BART 模型和代码
- 2019年11月:发布 XLM-R 模型和代码
- 2019年9月:发布非自回归翻译代码
- 2019年8月:发布 WMT'19 模型
- 2019年7月:fairseq 在 MIT 许可证下重新授权
- 2019年7月:发布 RoBERTa 模型和代码
- 2019年6月:发布 wav2vec 模型和代码
功能
- 在一台或多台机器上使用多 GPU 训练(数据并行和模型并行)
- 使用多种搜索算法在 CPU 和 GPU 上快速生成
- 束搜索
- 多样性束搜索(《Vijayakumar et al., 2016》)
- 采样(无约束、top-k 和 top-p/nucleus)
- 词法约束解码(《Post & Vilar, 2018》)
- 梯度累积使得即使在单个 GPU 上也可以使用大型微批训练
- 混合精度训练(在NVIDIA 张量核心上使用更少的 GPU 内存训练速度更快)
- 可扩展的:轻松注册新的模型、评判标准、任务、优化器和学习率调度器
- 基于 Hydra 的灵活配置,允许结合代码、命令行和基于文件的配置
- 完整的参数和优化器状态分片
- 将参数卸载到 CPU
我们还提供了翻译和语言模型的预训练模型,具有方便的 torch.hub
接口
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')
en2de.translate('Hello world', beam=5)
# 'Hallo Welt'
请参阅PyTorch Hub教程,了解翻译和RoBERTa的更多示例。
需求和安装
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.x)
# pip install fairseq
- 为了更快地训练,安装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" ./
- 对于大数据集,安装PyArrow:
pip install pyarrow
- 如果您使用Docker,请确保通过将
--ipc=host
或--shm-size
作为命令行选项传递给nvidia-docker run
来增加共享内存大小。
入门指南
完整的文档包含了入门、训练新模型以及使用新模型类型和任务扩展fairseq的说明。
预训练模型和示例
我们为以下列出的几个任务提供了预训练模型和预处理的二进制测试集,以及示例训练和评估命令。
我们还提供了更详细的README来重现特定论文的结果
- XLS-R:大规模自监督跨语言语音表示学习(Babu等,2021年)
- 跨语言检索用于迭代自监督训练(Tran等人,2020年)
- wav2vec 2.0:语音表示的自监督学习方法框架(Baevski等人,2020年)
- 神经机器翻译的无监督质量估计(Fomicheva等人,2020年)
- 使用量化噪声进行极端模型压缩(Fan* Stock*等,2020年)
- 基于字节级子词的神经机器翻译(Wang等人,2020年)
- 神经机器翻译的多语言去噪预训练(Liu等人,2020年)
- 使用结构化dropout按需减少Transformer深度(Fan等,2019年)
- 使用Transformer模型联合学习对齐和翻译(Garg等人,2019年)
- Levenshtein Transformer(Gu等人,2019年)
- Facebook FAIR的WMT19新闻翻译任务提交(Ng等人,2019年)
- RoBERTa:鲁棒优化的BERT预训练方法(Liu等人,2019年)
- wav2vec:语音识别的无监督预训练(Schneider等人,2019年)
- 多模型机器翻译的混合模型:商业技巧(Shen等人,2019年)
- 使用轻量级和动态卷积减少关注(Wu等人,2019年)
- 理解大规模回译(Edunov等人,2018年)
- 序列到序列学习的经典结构化预测损失(Edunov等人,2018年)
- 分层神经故事生成(Fan等人,2018年)
- 扩展神经机器翻译(Ott等人,2018年)
- 卷积序列到序列学习(Gehring等人,2017年)
- 具有门控卷积网络的语盲建模(Dauphin等人,2017年)
加入fairseq社区
- Twitter:https://twitter.com/fairseq
- Facebook页面:https://#/groups/fairseq.users
- Google群组:https://groups.google.com/forum/#!forum/fairseq-users
许可
fairseq(-py)遵循MIT许可。此许可证也适用于预训练模型。
引用
请引用如下
@inproceedings{ott2019fairseq,
title = {fairseq: A Fast, Extensible Toolkit for Sequence Modeling},
author = {Myle Ott and Sergey Edunov and Alexei Baevski and Angela Fan and Sam Gross and Nathan Ng and David Grangier and Michael Auli},
booktitle = {Proceedings of NAACL-HLT 2019: Demonstrations},
year = {2019},
}
项目详情
关闭
fairseq-0.12.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34f1b18426bf3844714534162f065ab733e049597476daa35fffb4d06a92b524 |
|
MD5 | 1d22317681c3973c27e5bf41556b6d5f |
|
BLAKE2b-256 | 3036db42846570f479ac859be3b48d8b47f2ae9b0b9c77487a512f2f2ecbcb6b |
关闭
fairseq-0.12.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 08fa308c760f995cdc13d9c385e2b9d923a78b48275d8b4d78f3a854c71a8f29 |
|
MD5 | 03bb14b55f6d38982b1ee46727603ba1 |
|
BLAKE2b-256 | e18ccfca1b3c2e50983d0b51804ed24014573ff2aa42d8b4931760d57d6b2118 |
关闭
fairseq-0.12.2-cp38-cp38-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b8c8b6dc368d2fd23a06ff613a2af05959eee275fe90846d7cffef4a43c522a |
|
MD5 | e5490d9726c9620f6a7a9bb90b134fa3 |
|
BLAKE2b-256 | 02a926614de9037c74115c75cd7dd8bd8fffeb289e08a12fd762e12c63a9f828 |
关闭
fairseq-0.12.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 26454f334ca705c67f898846dff34e14c148fcdaf53b4f52d64209773b509347 |
|
MD5 | 94345614ad701c8fc1656a98d9d6c17e |
|
BLAKE2b-256 | 9392469dbf90aaa4ada79266ea0a77f7c3ac8ad2332d8e59157d82c2455ea053 |
关闭
fairseq-0.12.2-cp37-cp37m-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c4877d65346797fc580a3a7e6e2364d2331a0026ef099c22eb8311441e49c2c6 |
|
MD5 | 0111c0fc9d2cdfadeeb6c18c756a9a54 |
|
BLAKE2b-256 | 7a27ddda16c37549e2c8d467669ae571d5ad78887f3bc92dc29903ac04b23086 |
关闭
fairseq-0.12.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0543905012e39f00bd8c3f3781d9f49e76ab309801eb2eb7de250f5984df0de3 |
|
MD5 | aec36794f1c8164cbd7286ba32d4a43b |
|
BLAKE2b-256 | 322e68ea3ee7008ec07a2625ddd93f3be626f7cd1115a668a2deb7fbce693cc2 |
关闭
fairseq-0.12.2-cp36-cp36m-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe65b07c5121b7cda0c7a17166994a6b0059259ce37881b6daa117b8c209b662 |
|
MD5 | 396b054b0cbda81def487a19b0ea64b0 |
|
BLAKE2b-256 | 2d0d90329be5d5ad207955fe9ba5b4924372c564d87ad929aa695f3fc3a68985 |