Transformers: State-of-the-Art Natural Language Processing

作者/机构: Thomas Wolf, Lysandre Debut, Victor Sanh, Julien Chaumond, Clement Delangue, Anthony Moi, Pierric Cistac, Tim Rault, Remi Louf, Morgan Funtowicz, Joe Davison, ´ Sam Shleifer, Patrick von Platen, Clara Ma, Yacine Jernite, Julien Plu, Canwen Xu, Teven Le Scao, Sylvain Gugger, Mariama Drame, Quentin Lhoest, Alexander M. Rush

机构: Hugging Face, Brooklyn, USA


A1 主要贡献

本文介绍了 Transformers,一个旨在向更广泛的机器学习社区开放自然语言处理(NLP)领域最新进展的开源库。

图1: 2019年10月至2020年5月,下载量最高的预训练模型的日均独立下载量。
图1: 2019年10月至2020年5月,下载量最高的预训练模型的日均独立下载量。

A3 背景知识与相关工作

A2 方法细节

4. 模型中心(Community Model Hub)

from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_cased")
model = AutoModelWithLMHead.from_pretrained("flaubert/flaubert_base_cased")

5. 部署

A4 实验

实验环境

本文作为一篇系统性论文,并未提供一个统一的、标准的实验环境配置。相关配置信息散布在不同章节的描述中。
- 数据集: 论文未指定用于库本身性能基准测试的数据集。但提及了社区模型所使用的数据集,例如 SciBERT 使用 PubMed 数据集进行训练。
- 模型: 库支持多种 Transformer 架构,包括 BERT, GPT-2, RoBERTa, DistilBERT, SciBERT, FlauBERT, BART 等。
- 硬件配置: 未明确提及。
- 软件配置:
- 核心框架: 支持 PyTorch 和 TensorFlow,并具备两者之间的互操作性。
- 高性能组件: Tokenizer 部分使用了以 Rust 语言编写的 tokenizers 库来提升性能。
- 部署工具: 支持 TorchScript, TorchServing, TensorFlow Serving, ONNX, JAX/XLA, TVM, 以及用于移动端的 CoreML

实验结果

本文的实验结果主要体现在库的采用率、社区活跃度以及部署性能上。
- 模型流行度与社区采纳 (图 1):
- 实验内容: 统计了2019年10月至2020年5月期间,模型中心中最受欢迎的预训练模型的日均独立下载量。
- 实验结果: 图表显示 BERT, GPT-2 等核心模型以及库原生开发的 DistilBERT 模型下载量持续增长,证明了该库和模型中心在社区中的巨大吸引力和实用价值。
- 分析结论: Transformers 库成功地促进了 SOTA 模型的传播和使用,其社区模型中心已经成为获取预训练 NLP 模型的重要资源,拥有超过2097个社区贡献的模型。

A5 结论

随着 Transformer 架构和预训练技术在自然语言处理(NLP)中扮演越来越重要的角色,让研究人员和最终用户能够方便地接触和使用这些模型变得至关重要。Transformers 是一个开源库和社区,旨在帮助用户访问大规模预训练模型,在其基础上进行构建和实验,并以最先进的性能将它们部署到下游任务中。自发布以来,Transformers 获得了显著的自然增长,并已准备好继续提供核心基础设施,同时帮助促进对新模型的访问。

引用文献汇总

  1. 【Ashish Vaswani et al., Attention is all you need, 2017, NIPS】
    • 引用位置:A1 主要贡献
    • 引用描述:指出 Transformer 已迅速成为自然语言处理的主导架构。
  2. 【Bryan McCann et al., Learned in translation: Contextualized word vectors, 2017, NIPS】
    • 引用位置:A1 主要贡献
    • 引用描述:作为模型预训练的早期代表工作之一被引用。
  3. 【Jeremy Howard and Sebastian Ruder, Universal language model fine-tuning for text classification, 2018, ACL】
    • 引用位置:A1 主要贡献
    • 引用描述:作为模型预训练的代表工作之一被引用。
  4. 【Matthew E Peters et al., Deep contextualized word representations, 2018】
    • 引用位置:A1 主要贡献
    • 引用描述:作为模型预训练的代表工作之一被引用。
  5. 【Jacob Devlin et al., BERT: Pre-training of deep bidirectional transformers for language understanding, 2018, NAACL】
    • 引用位置:A1 主要贡献, A3 背景知识与相关工作
    • 引用描述:作为模型预训练的代表工作之一被引用;Transformers 的结构受到了其原始源代码的启发。
  6. 【Ashish Vaswani et al., Tensor2tensor for neural machine translation, 2018, CoRR】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:Transformers 的结构受到了该库的启发。
  7. 【Matt Gardner et al., AllenNLP: A deep semantic natural language processing platform, 2018】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:预训练模型缓存的概念源自 AllenNLP。
  8. 【Myle Ott et al., fairseq: A fast, extensible toolkit for sequence modeling, 2019】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为相关的神经翻译和语言建模系统之一被提及。
  9. 【Guillaume Klein et al., OpenNMT: Open-source toolkit for neural machine translation, 2017, ACL】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为相关的神经翻译和语言建模系统之一被提及。
  10. 【Zhiting Hu et al., Texar: A modularized, versatile, and extensible toolkit for text generation, 2018】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为相关的神经翻译和语言建模系统之一被提及。
  11. 【Mohammad Shoeybi et al., Megatron-lm: Training multi-billion parameter language models using gpu model parallelism, 2019, arXiv】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为相关的神经翻译和语言建模系统之一被提及。
  12. 【Marcin Junczys-Dowmunt et al., Marian: Fast neural machine translation in c++, 2018】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为相关的神经翻译和语言建模系统之一被提及,Transformers 提供了使用其模型进行推理的工具。
  13. 【Edward Loper and Steven Bird, NLTK: The natural language toolkit, 2002】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为历史悠久的通用NLP库被提及。
  14. 【Christopher D Manning et al., The stanford CoreNLP natural language processing toolkit, 2014, ACL】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为历史悠久的通用NLP库被提及。
  15. 【Matthew Honnibal and Ines Montani, spacy 2: Natural language understanding with bloom embeddings, convolutional neural networks and incremental parsing, 2017】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为现代通用NLP库被提及,现已使用 Transformers 作为底层框架。
  16. 【Alan Akbik et al., Flair: An easy-to-use framework for state-of-the-art nlp, 2019, NAACL】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为现代通用NLP库被提及,现已使用 Transformers 作为底层框架。
  17. 【Peng Qi et al., Stanza: A python natural language processing toolkit for many human languages, 2020】
    • 引用位置:A3 背景知识与相关工作
    • 引用描述:作为现代通用NLP库被提及,现已使用 Transformers 作为底层框架。
  18. 【Margaret Mitchell et al., Model cards for model reporting, 2018】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:模型中心使用“模型卡片”来提供模型元数据。
  19. 【Benjamin Hoover et al., exBERT: A visual analysis tool to explore learned representations in transformers models, 2019】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:模型页面可链接到 exBERT 这样的可视化工具。
  20. 【Hendrik Strobelt et al., Lstmvis: A tool for visual analysis of hidden state dynamics in recurrent neural networks, 2017, IEEE transactions on visualization and computer graphics】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:引用其对架构师、训练者和最终用户的分类。
  21. 【Iz Beltagy et al., SciBERT: A pretrained language model for scientific text, 2019, EMNLP-IJCNLP】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为模型架构师使用模型中心的案例,AllenAI 开发并分发了 SciBERT。
  22. 【Yada Pruksachatkun et al., jiant: A software toolkit for research on general-purpose text understanding models, 2020, arXiv】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为任务训练者使用 Transformers API 的案例,纽约大学的研究人员在 Jiant 框架中使用了它。
  23. 【Ian Tenney et al., Bert rediscovers the classical nlp pipeline, 2019, ACL】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为纽约大学研究工作的成果被引用。
  24. 【James Bradbury et al., JAX: composable transformations of Python+NumPy programs, 2018】
    • 引用位置:A2 方法细节 (部署)
    • 引用描述:作为团队正在试验的有前景的中间格式之一被提及。
  25. 【Tianqi Chen et al., {TVM}: An automated end-to-end optimizing compiler for deep learning, 2018, OSDI】
    • 引用位置:A2 方法细节 (部署)
    • 引用描述:作为团队正在试验的有前景的中间格式之一被提及。
  26. 【Victor Sanh et al., DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter, 2019】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为一个为本库开发的、被社区广泛下载的专门模型。
  27. 【Hang Le et al., Flaubert: Unsupervised language model pre-training for french, 2020, LREC】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为从模型中心加载模型的代码示例。
  28. 【Mike Lewis et al., BART: Denoising Sequence-to-Sequence pre-training for natural language generation, translation, and comprehension, 2019】
    • 引用位置:A2 方法细节 (模型中心)
    • 引用描述:作为模型中心自动推理小部件的示例。