fairseq:Facebook FAIR 的序列建模工具集

fairseq 在 GitHub 上已经拿到 32.2K Star 了。

Facebook AI Research 开源了这个序列建模工具包,专门干一件事:让研究人员和开发者能快速训练翻译、摘要、语言建模等文本生成模型。RoBERTa、BART、wav2vec 2.0、mBART 这些 NLP 和语音领域的知名模型,全是在 fairseq 上跑出来的。

1、这个东西是干嘛的

fairseq 是一个序列建模框架,核心覆盖翻译、摘要、语言建模、语音识别等文本生成任务。但它真正被大规模使用的原因,不在于自己做了什么,而在于它支撑了多少顶会论文的复现。

从 CNN 到 LSTM 到 Transformer,从自回归到非自回归解码,从语音的 wav2vec 到多语言的 XLM-R、mBART,fairseq 几乎囊括了 NLP 和语音领域过去几年所有重要架构的参考实现。论文列表拉出来有 40 多篇,每篇都对应一个可复现的训练流程。

正文顶部截图

2、能拿来干什么

最直接的价值是预训练模型。一行代码就能加载 WMT19 英德翻译模型:

en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')
en2de.translate('Hello world', beam=5)
# 'Hallo Welt'

翻译、RoBERTa 文本理解、wav2vec 语音识别,都有现成的 torch.hub 接口,拿来就能用。

但真正的核心用户是那些需要复现论文或做模型研究的人。fairseq 把多 GPU 分布式训练、混合精度、梯度累积、beam search 这些工程细节全都封装好了。你只需要注册新的模型结构或损失函数,框架帮你搞定训练和推理。2023 年 5 月还更新了支持 1000 多种语言的 MMS 模型,语音方向的能力一直在扩展。

README区域截图

3、它跟别的框架有什么不同

很多深度学习框架要么太底层,需要手写训练循环,要么太高层,只支持特定模型。fairseq 卡在一个很舒服的中间位置:提供了完整的训练基础设施(多机多卡、混合精度、参数分片、CPU offloading),但通过可插拔的模型、任务、优化器注册机制保留了充分的扩展空间。

从 0.10.0 版本开始采用 Hydra 配置框架,代码、命令行、配置文件三种方式可以混合使用,同一个实验参数的调整非常灵活。生成阶段的多种搜索策略(beam search、diverse beam search、top-k/top-p sampling、约束解码)也都内置好了,不用自己实现。

4、适合哪些人用

  • 做 NLP 或语音方向的研究者,需要快速复现某个经典方法的 baseline
  • 做机器翻译、语音识别的工程师,想在一个成熟的框架上做二次开发
  • 需要直接用 RoBERTa、BART、wav2vec 等预训练模型做下游任务的开发者

MIT 协议开源,预训练模型同样适用。

2vec 等预训练模型做下游任务的开发者

MIT 协议开源,预训练模型同样适用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐