facebookresearch/fairseq · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Fairseq(-py) 是一个序列建模工具包,允许研究人员和开发者为翻译、摘要、语言建模及其他文本生成任务训练自定义模型。
我们提供了各种序列建模论文的参考实现:
已实现论文列表
- 卷积神经网络 (CNN)
- Language Modeling with Gated Convolutional Networks (Dauphin et al., 2017)
- Convolutional Sequence to Sequence Learning (Gehring et al., 2017)
- Classical Structured Prediction Losses for Sequence to Sequence Learning (Edunov et al., 2018)
- Hierarchical Neural Story Generation (Fan et al., 2018)
- wav2vec: Unsupervised Pre-training for Speech Recognition (Schneider et al., 2019)
- LightConv 和 DynamicConv 模型
- 长短期记忆 (LSTM) 网络
- Effective Approaches to Attention-based Neural Machine Translation (Luong et al., 2015)
- Transformer (自注意力) 网络
- Attention Is All You Need (Vaswani et al., 2017)
- Scaling Neural Machine Translation (Ott et al., 2018)
- Understanding Back-Translation at Scale (Edunov et al., 2018)
- Adaptive Input Representations for Neural Language Modeling (Baevski and Auli, 2018)
- Lexically constrained decoding with dynamic beam allocation (Post & Vilar, 2018)
- Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context (Dai et al., 2019)
- Adaptive Attention Span in Transformers (Sukhbaatar et al., 2019)
- Mixture Models for Diverse Machine Translation: Tricks of the Trade (Shen et al., 2019)
- RoBERTa: A Robustly Optimized BERT Pretraining Approach (Liu et al., 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: Task-agnostic Video-Language Model Pre-training for Video Understanding (Xu et. al., 2021)
- 非自回归 Transformer
- Non-Autoregressive Neural Machine Translation (Gu et al., 2017)
- Deterministic Non-Autoregressive Neural Sequence Modeling by Iterative Refinement (Lee et al. 2018)
- Insertion Transformer: Flexible Sequence Generation via Insertion Operations (Stern et al. 2019)
- Mask-Predict: Parallel Decoding of Conditional Masked Language Models (Ghazvininejad et al., 2019)
- Levenshtein Transformer (Gu et al., 2019)
- 微调
新增内容:
- 2023 年 5 月 发布了 Scaling Speech Technology to 1,000+ Languages 的模型 (Pratap, et al., 2023)
- 2022 年 6 月 发布了 Towards End-to-end Unsupervised Speech Recognition 中 wav2vec-U 2.0 的代码 (Liu, et al., 2022)
- 2022 年 5 月 集成 xFormers
- 2021 年 12 月 发布了 Direct speech-to-speech translation 代码
- 2021 年 10 月 发布了 VideoCLIP 和 VLM 模型
- 2021 年 10 月 发布了多语言微调的 XLSR-53 模型
- 2021 年 9 月
master分支重命名为main. - 2021 年 7 月 发布了 DrNMT 代码
- 2021 年 7 月 发布了 Robust wav2vec 2.0 模型
- 2021 年 6 月 发布了 XLMR-XL 和 XLMR-XXL 模型
- 2021 年 5 月 发布了 Unsupervised Speech Recognition 代码
- 2021 年 3 月 添加了全参数和优化器状态分片 + CPU 卸载
- 2021 年 2 月 添加了 LASER 训练代码
- 2020 年 12 月: 添加了 Adaptive Attention Span 代码
- 2020 年 12 月: 发布了 GottBERT 模型和代码
- 2020 年 11 月: 采用了 Hydra 配置框架
- 2020 年 11 月: 发布了 fairseq 0.10.0
- 2020 年 10 月: 添加了 R3F/R4F (Better Fine-Tuning) 代码
- 2020 年 10 月: 发布了 Deep Transformer with Latent Depth 代码
- 2020 年 10 月: 添加了 CRISS 模型和代码
之前的更新
- 2020 年 9 月:添加 Linformer 代码
- 2020 年 9 月:添加 pointer-generator networks
- 2020 年 8 月:添加 lexically constrained decoding
- 2020 年 8 月:发布 wav2vec2 模型和代码
- 2020 年 7 月:发布 Unsupervised Quality Estimation 代码
- 2020 年 5 月:在 Twitter 上关注 fairseq
- 2020 年 4 月:发布 Monotonic Multihead Attention 代码
- 2020 年 4 月:发布 Quant-Noise 代码
- 2020 年 4 月:发布初始模型并行支持和 11B 参数单向 LM
- 2020 年 3 月:发布 Byte-level BPE 代码
- 2020 年 2 月:发布 mBART 模型和代码
- 2020 年 2 月:添加 back-translation 教程
- 2019 年 12 月:发布 fairseq 0.9.0
- 2019 年 11 月:发布 VizSeq(用于评估 fairseq 模型的可视分析工具包)
- 2019 年 11 月:发布 CamemBERT 模型和代码
- 2019 年 11 月:发布 BART 模型和代码
- 2019 年 11 月:发布 XLM-R 模型和代码
- 2019 年 9 月:发布 Nonautoregressive translation 代码
- 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/核采样)
- 词汇约束解码 (Post & Vilar, 2018)
- 梯度累积 即使在单个 GPU 上也能使用大型 mini-batch 进行训练
- 混合精度训练(在 NVIDIA tensor cores 上以更少的 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 教程,了解 translation 和 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 以复现特定论文的结果:
加入 fairseq 社区
- Twitter: https://twitter.com/fairseq
- Facebook page: https://www.facebook.com/groups/fairseq.users
- Google group: 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},
}