Transformersยถ

State-of-the-art Natural Language Processing for Pytorch and TensorFlow 2.0.

๐Ÿค— Transformers (formerly known as pytorch-transformers and pytorch-pretrained-bert) provides general-purpose architectures (BERT, GPT-2, RoBERTa, XLM, DistilBert, XLNetโ€ฆ) for Natural Language Understanding (NLU) and Natural Language Generation (NLG) with over 32+ pretrained models in 100+ languages and deep interoperability between TensorFlow 2.0 and PyTorch.

This is the documentation of our repository transformers.

Featuresยถ

  • High performance on NLU and NLG tasks

  • Low barrier to entry for educators and practitioners

State-of-the-art NLP for everyone:

  • Deep learning researchers

  • Hands-on practitioners

  • AI/ML/NLP teachers and educators

Lower compute costs, smaller carbon footprint:

  • Researchers can share trained models instead of always retraining

  • Practitioners can reduce compute time and production costs

  • 8 architectures with over 30 pretrained models, some in more than 100 languages

Choose the right framework for every part of a modelโ€™s lifetime:

  • Train state-of-the-art models in 3 lines of code

  • Deep interoperability between TensorFlow 2.0 and PyTorch models

  • Move a single model between TF2.0/PyTorch frameworks at will

  • Seamlessly pick the right framework for training, evaluation, production

Experimental support for Flax with a few models right now, expected to grow in the coming months.

All the model checkpoints are seamlessly integrated from the huggingface.co model hub where they are uploaded directly by users and organizations.

Current number of checkpoints: checkpoints

Contentsยถ

The documentation is organized in five parts:

  • GET STARTED contains a quick tour, the installation instructions and some useful information about our philosophy and a glossary.

  • USING ๐Ÿค— TRANSFORMERS contains general tutorials on how to use the library.

  • ADVANCED GUIDES contains more advanced guides that are more specific to a given script or part of the library.

  • RESEARCH focuses on tutorials that have less to do with how to use the library but more about general research in transformers model

  • The three last section contain the documentation of each public class and function, grouped in:

    • MAIN CLASSES for the main classes exposing the important APIs of the library.

    • MODELS for the classes and functions related to each model implemented in the library.

    • INTERNAL HELPERS for the classes and functions we use internally.

The library currently contains PyTorch, Tensorflow and Flax implementations, pretrained model weights, usage scripts and conversion utilities for the following models:

  1. ALBERT (from Google Research and the Toyota Technological Institute at Chicago) released with the paper ALBERT: A Lite BERT for Self-supervised Learning of Language Representations, by Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut.

  2. BART (from Facebook) released with the paper BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension by Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov and Luke Zettlemoyer.

  3. BARThez (from ร‰cole polytechnique) released with the paper BARThez: a Skilled Pretrained French Sequence-to-Sequence Model by Moussa Kamal Eddine, Antoine J.-P. Tixier, Michalis Vazirgiannis.

  4. BERT (from Google) released with the paper BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding by Jacob Devlin, Ming-Wei Chang, Kenton Lee and Kristina Toutanova.

  5. BERT For Sequence Generation (from Google) released with the paper Leveraging Pre-trained Checkpoints for Sequence Generation Tasks by Sascha Rothe, Shashi Narayan, Aliaksei Severyn.

  6. BigBird-RoBERTa (from Google Research) released with the paper Big Bird: Transformers for Longer Sequences by Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Amr Ahmed.

  7. Blenderbot (from Facebook) released with the paper Recipes for building an open-domain chatbot by Stephen Roller, Emily Dinan, Naman Goyal, Da Ju, Mary Williamson, Yinhan Liu, Jing Xu, Myle Ott, Kurt Shuster, Eric M. Smith, Y-Lan Boureau, Jason Weston.

  8. BlenderbotSmall (from Facebook) released with the paper Recipes for building an open-domain chatbot by Stephen Roller, Emily Dinan, Naman Goyal, Da Ju, Mary Williamson, Yinhan Liu, Jing Xu, Myle Ott, Kurt Shuster, Eric M. Smith, Y-Lan Boureau, Jason Weston.

  9. BORT (from Alexa) released with the paper Optimal Subarchitecture Extraction For BERT by Adrian de Wynter and Daniel J. Perry.

  10. CamemBERT (from Inria/Facebook/Sorbonne) released with the paper CamemBERT: a Tasty French Language Model by Louis Martin*, Benjamin Muller*, Pedro Javier Ortiz Suรกrez*, Yoann Dupont, Laurent Romary, ร‰ric Villemonte de la Clergerie, Djamรฉ Seddah and Benoรฎt Sagot.

  11. ConvBERT (from YituTech) released with the paper ConvBERT: Improving BERT with Span-based Dynamic Convolution by Zihang Jiang, Weihao Yu, Daquan Zhou, Yunpeng Chen, Jiashi Feng, Shuicheng Yan.

  12. CTRL (from Salesforce) released with the paper CTRL: A Conditional Transformer Language Model for Controllable Generation by Nitish Shirish Keskar*, Bryan McCann*, Lav R. Varshney, Caiming Xiong and Richard Socher.

  13. DeBERTa (from Microsoft) released with the paper DeBERTa: Decoding-enhanced BERT with Disentangled Attention by Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen.

  14. DeBERTa-v2 (from Microsoft) released with the paper DeBERTa: Decoding-enhanced BERT with Disentangled Attention by Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen.

  15. DialoGPT (from Microsoft Research) released with the paper DialoGPT: Large-Scale Generative Pre-training for Conversational Response Generation by Yizhe Zhang, Siqi Sun, Michel Galley, Yen-Chun Chen, Chris Brockett, Xiang Gao, Jianfeng Gao, Jingjing Liu, Bill Dolan.

  16. DistilBERT (from HuggingFace), released together with the paper DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter by Victor Sanh, Lysandre Debut and Thomas Wolf. The same method has been applied to compress GPT2 into DistilGPT2, RoBERTa into DistilRoBERTa, Multilingual BERT into DistilmBERT and a German version of DistilBERT.

  17. DPR (from Facebook) released with the paper Dense Passage Retrieval for Open-Domain Question Answering by Vladimir Karpukhin, Barlas OฤŸuz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen, and Wen-tau Yih.

  18. ELECTRA (from Google Research/Stanford University) released with the paper ELECTRA: Pre-training text encoders as discriminators rather than generators by Kevin Clark, Minh-Thang Luong, Quoc V. Le, Christopher D. Manning.

  19. FlauBERT (from CNRS) released with the paper FlauBERT: Unsupervised Language Model Pre-training for French by Hang Le, Loรฏc Vial, Jibril Frej, Vincent Segonne, Maximin Coavoux, Benjamin Lecouteux, Alexandre Allauzen, Benoรฎt Crabbรฉ, Laurent Besacier, Didier Schwab.

  20. Funnel Transformer (from CMU/Google Brain) released with the paper Funnel-Transformer: Filtering out Sequential Redundancy for Efficient Language Processing by Zihang Dai, Guokun Lai, Yiming Yang, Quoc V. Le.

  21. GPT (from OpenAI) released with the paper Improving Language Understanding by Generative Pre-Training by Alec Radford, Karthik Narasimhan, Tim Salimans and Ilya Sutskever.

  22. GPT-2 (from OpenAI) released with the paper Language Models are Unsupervised Multitask Learners by Alec Radford*, Jeffrey Wu*, Rewon Child, David Luan, Dario Amodei** and Ilya Sutskever**.

  23. GPT Neo (from EleutherAI) released in the repository EleutherAI/gpt-neo by Sid Black, Stella Biderman, Leo Gao, Phil Wang and Connor Leahy.

  24. I-BERT (from Berkeley) released with the paper I-BERT: Integer-only BERT Quantization by Sehoon Kim, Amir Gholami, Zhewei Yao, Michael W. Mahoney, Kurt Keutzer

  25. LayoutLM (from Microsoft Research Asia) released with the paper LayoutLM: Pre-training of Text and Layout for Document Image Understanding by Yiheng Xu, Minghao Li, Lei Cui, Shaohan Huang, Furu Wei, Ming Zhou.

  26. LED (from AllenAI) released with the paper Longformer: The Long-Document Transformer by Iz Beltagy, Matthew E. Peters, Arman Cohan.

  27. Longformer (from AllenAI) released with the paper Longformer: The Long-Document Transformer by Iz Beltagy, Matthew E. Peters, Arman Cohan.

  28. LXMERT (from UNC Chapel Hill) released with the paper LXMERT: Learning Cross-Modality Encoder Representations from Transformers for Open-Domain Question Answering by Hao Tan and Mohit Bansal.

  29. M2M100 (from Facebook) released with the paper Beyond English-Centric Multilingual Machine Translation by by Angela Fan, Shruti Bhosale, Holger Schwenk, Zhiyi Ma, Ahmed El-Kishky, Siddharth Goyal, Mandeep Baines, Onur Celebi, Guillaume Wenzek, Vishrav Chaudhary, Naman Goyal, Tom Birch, Vitaliy Liptchinsky, Sergey Edunov, Edouard Grave, Michael Auli, Armand Joulin.

  30. MarianMT Machine translation models trained using OPUS data by Jรถrg Tiedemann. The Marian Framework is being developed by the Microsoft Translator Team.

  31. MBart (from Facebook) released with the paper Multilingual Denoising Pre-training for Neural Machine Translation by Yinhan Liu, Jiatao Gu, Naman Goyal, Xian Li, Sergey Edunov, Marjan Ghazvininejad, Mike Lewis, Luke Zettlemoyer.

  32. MBart-50 (from Facebook) released with the paper Multilingual Translation with Extensible Multilingual Pretraining and Finetuning by Yuqing Tang, Chau Tran, Xian Li, Peng-Jen Chen, Naman Goyal, Vishrav Chaudhary, Jiatao Gu, Angela Fan.

  33. MPNet (from Microsoft Research) released with the paper MPNet: Masked and Permuted Pre-training for Language Understanding by Kaitao Song, Xu Tan, Tao Qin, Jianfeng Lu, Tie-Yan Liu.

  34. MT5 (from Google AI) released with the paper mT5: A massively multilingual pre-trained text-to-text transformer by Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, Colin Raffel.

  35. Pegasus (from Google) released with the paper PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization> by Jingqing Zhang, Yao Zhao, Mohammad Saleh and Peter J. Liu.

  36. ProphetNet (from Microsoft Research) released with the paper ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training by Yu Yan, Weizhen Qi, Yeyun Gong, Dayiheng Liu, Nan Duan, Jiusheng Chen, Ruofei Zhang and Ming Zhou.

  37. Reformer (from Google Research) released with the paper Reformer: The Efficient Transformer by Nikita Kitaev, ลukasz Kaiser, Anselm Levskaya.

  38. RoBERTa (from Facebook), released together with the paper a Robustly Optimized BERT Pretraining Approach by Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov.

  39. SpeechToTextTransformer (from Facebook), released together with the paper fairseq S2T: Fast Speech-to-Text Modeling with fairseq by Changhan Wang, Yun Tang, Xutai Ma, Anne Wu, Dmytro Okhonko, Juan Pino.

  40. SqueezeBert released with the paper SqueezeBERT: What can computer vision teach NLP about efficient neural networks? by Forrest N. Iandola, Albert E. Shaw, Ravi Krishna, and Kurt W. Keutzer.

  41. T5 (from Google AI) released with the paper Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer by Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu.

  42. TAPAS (from Google AI) released with the paper TAPAS: Weakly Supervised Table Parsing via Pre-training by Jonathan Herzig, Paweล‚ Krzysztof Nowak, Thomas Mรผller, Francesco Piccinno and Julian Martin Eisenschlos.

  43. Transformer-XL (from Google/CMU) released with the paper Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context by Zihang Dai*, Zhilin Yang*, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov.

  44. Vision Transformer (ViT) (from Google AI) released with the paper An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale by Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby.

  45. Wav2Vec2 (from Facebook AI) released with the paper wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations by Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli.

  46. XLM (from Facebook) released together with the paper Cross-lingual Language Model Pretraining by Guillaume Lample and Alexis Conneau.

  47. XLM-ProphetNet (from Microsoft Research) released with the paper ProphetNet: Predicting Future N-gram for Sequence-to-Sequence Pre-training by Yu Yan, Weizhen Qi, Yeyun Gong, Dayiheng Liu, Nan Duan, Jiusheng Chen, Ruofei Zhang and Ming Zhou.

  48. XLM-RoBERTa (from Facebook AI), released together with the paper Unsupervised Cross-lingual Representation Learning at Scale by Alexis Conneau*, Kartikay Khandelwal*, Naman Goyal, Vishrav Chaudhary, Guillaume Wenzek, Francisco Guzmรกn, Edouard Grave, Myle Ott, Luke Zettlemoyer and Veselin Stoyanov.

  49. XLNet (from Google/CMU) released with the paper โ€‹XLNet: Generalized Autoregressive Pretraining for Language Understanding by Zhilin Yang*, Zihang Dai*, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le.

  50. XLSR-Wav2Vec2 (from Facebook AI) released with the paper Unsupervised Cross-Lingual Representation Learning For Speech Recognition by Alexis Conneau, Alexei Baevski, Ronan Collobert, Abdelrahman Mohamed, Michael Auli.

The table below represents the current support in the library for each of those models, whether they have a Python tokenizer (called โ€œslowโ€). A โ€œfastโ€ tokenizer backed by the ๐Ÿค— Tokenizers library, whether they have support in PyTorch, TensorFlow and/or Flax.

Model

Tokenizer slow

Tokenizer fast

PyTorch support

TensorFlow support

Flax Support

ALBERT

โœ…

โœ…

โœ…

โœ…

โŒ

BART

โœ…

โœ…

โœ…

โœ…

โŒ

BERT

โœ…

โœ…

โœ…

โœ…

โœ…

Bert Generation

โœ…

โŒ

โœ…

โŒ

โŒ

BigBird

โœ…

โŒ

โœ…

โŒ

โŒ

Blenderbot

โœ…

โŒ

โœ…

โœ…

โŒ

BlenderbotSmall

โœ…

โŒ

โœ…

โœ…

โŒ

CTRL

โœ…

โŒ

โœ…

โœ…

โŒ

CamemBERT

โœ…

โœ…

โœ…

โœ…

โŒ

ConvBERT

โœ…

โœ…

โœ…

โœ…

โŒ

DPR

โœ…

โœ…

โœ…

โœ…

โŒ

DeBERTa

โœ…

โŒ

โœ…

โŒ

โŒ

DeBERTa-v2

โœ…

โŒ

โœ…

โŒ

โŒ

DistilBERT

โœ…

โœ…

โœ…

โœ…

โŒ

ELECTRA

โœ…

โœ…

โœ…

โœ…

โŒ

Encoder decoder

โŒ

โŒ

โœ…

โŒ

โŒ

FairSeq Machine-Translation

โœ…

โŒ

โœ…

โŒ

โŒ

FlauBERT

โœ…

โŒ

โœ…

โœ…

โŒ

Funnel Transformer

โœ…

โœ…

โœ…

โœ…

โŒ

GPT Neo

โŒ

โŒ

โœ…

โŒ

โŒ

I-BERT

โŒ

โŒ

โœ…

โŒ

โŒ

LED

โœ…

โœ…

โœ…

โœ…

โŒ

LXMERT

โœ…

โœ…

โœ…

โœ…

โŒ

LayoutLM

โœ…

โœ…

โœ…

โœ…

โŒ

Longformer

โœ…

โœ…

โœ…

โœ…

โŒ

M2M100

โœ…

โŒ

โœ…

โŒ

โŒ

MPNet

โœ…

โœ…

โœ…

โœ…

โŒ

Marian

โœ…

โŒ

โœ…

โœ…

โŒ

MobileBERT

โœ…

โœ…

โœ…

โœ…

โŒ

OpenAI GPT

โœ…

โœ…

โœ…

โœ…

โŒ

OpenAI GPT-2

โœ…

โœ…

โœ…

โœ…

โŒ

Pegasus

โœ…

โœ…

โœ…

โœ…

โŒ

ProphetNet

โœ…

โŒ

โœ…

โŒ

โŒ

RAG

โœ…

โŒ

โœ…

โœ…

โŒ

Reformer

โœ…

โœ…

โœ…

โŒ

โŒ

RetriBERT

โœ…

โœ…

โœ…

โŒ

โŒ

RoBERTa

โœ…

โœ…

โœ…

โœ…

โœ…

Speech2Text

โœ…

โŒ

โœ…

โŒ

โŒ

SqueezeBERT

โœ…

โœ…

โœ…

โŒ

โŒ

T5

โœ…

โœ…

โœ…

โœ…

โŒ

TAPAS

โœ…

โŒ

โœ…

โŒ

โŒ

Transformer-XL

โœ…

โŒ

โœ…

โœ…

โŒ

ViT

โŒ

โŒ

โœ…

โŒ

โŒ

Wav2Vec2

โœ…

โŒ

โœ…

โŒ

โŒ

XLM

โœ…

โŒ

โœ…

โœ…

โŒ

XLM-RoBERTa

โœ…

โœ…

โœ…

โœ…

โŒ

XLMProphetNet

โœ…

โŒ

โœ…

โŒ

โŒ

XLNet

โœ…

โœ…

โœ…

โœ…

โŒ

mBART

โœ…

โœ…

โœ…

โœ…

โŒ

mT5

โœ…

โœ…

โœ…

โœ…

โŒ

Advanced guides

Main Classes

Models