Avant-propos
Les architectures que j’ai eu l’occasion d’utiliser professionnellement font l’objet d’articles détaillés, à savoir le GPT2 et BERT.
Néanmoins énormément d’autres architectures issues du transformer existent. Le nombre de modèles étant conséquent (plus de 4 000 modèles sur Hugging Face en novembre 2020), je ne prévois pas de faire une présentation détaillée de chacun.
L’objectif de cet article est de faire un résumé succinct de quelques-unes de ces architectures notamment les principales utilisées en langue anglaise et en langue française.
J’espère qu’après avoir lu les articles sur le transformer, le GPT2, BERT, les tokenizers et les bases de données utilisées dans les articles scientifiques, le lecteur est capable de comprendre de lui même ces autres architectures.
Diverses architectures issues du Transformer
Modèle | Description | Nb de paramètres | Taille du vocabulaire | Tokenizer utilisé |
---|---|---|---|---|
GPT-2 | Transformer unidirectionnel développé par OpenAI utilisant uniquement la partie decodeur du transformer original. | 4 versions : 124M, 355M, 774M ou 1.5 Mds | 50K | BPE |
BERT | Transformer bidirectionnel développé par Google utilisant uniquement la partie encodeur du transformer original. | Tiny : 4.4M, Mini : 11.3M, Small : 29.1M, Medium : 41.7M, Base : 110M, Large : 334M, XLarge : 1270M | 30K | WordPiece |
RoBERTa | Version optimisée de BERT développée par Facebook. | Base : 125M, Large : 355M | 50K | BPE |
CamemBERT | Modèle basé sur RoBERTa pré-entraîné sur des textes en français et développé par Facebook, l’INRIA et la Sorbonne | 110M | 32K | SentencePiece |
FlauBERT | Modèle basé sur BERT pré-entraîné sur des textes en français et développé par l’Univ. Grenoble Alpes, le CNRS et l’Univ. Paris Diderot | small-cased : 54M, base-uncased : 137M, base-cased : 138M et large-cased : 373M | 50K | FastBPE |
BARThez | Modèle basé sur BART (voir plus bas) pré-entraîné sur des textes en français et développé par une équipe de l’Ecole Polytechnique | 216 M (il existe aussi un mBARThez, un BARThez multilingue de 561 ou 866M de paramètres) | 50K | SentencePiece |
PAGnol | Modèle basé sur GPT-2 pré-entraîné sur des textes en français et développé par LightOn | S : 124M, M : 355M, L : 773M, XL : 1,5 Md | 50K | BPE |
FrALBERT | Modèle basé sur ALBERT (voir plus bas) pré-entraîné sur des textes en français et développé par Qwant | 12M | 32K | SentencePiece |
Cédille | Modèle basé sur GPT-J pré-entraîné sur des textes en français et développé par Coteries | 6Mds | 50K | BPE |
Distil* | Versions distillées (plus petites donc plus rapides) de BERT, du GPT-2 et de RoBERTa développées par Huggingface. | 66M pour DistillBERT, 82M pour DistillGPT2 et DistilRoBERTa | Identique au modèle original | Identique au modèle original |
XLNet | Transformer bidirectionnel développé par Google et la Carnegie Mellon University avec pré-entraînement autorégressif. | Identique à BERT | 32K | SentencePiece |
XLM | Transformer proposé par Facebook entrainé en en prenant en compte plusieurs langues (de 15 jusqu’à 100). Il utilise uniquement la partie encodeur. | 665M | entre 30K et 200K (varie en fonction du nombre de langues pris en compte (cf la partie II. du GitHub)) | fastBPE |
ALBERT | Transformer développé par Google utilisant uniquement la partie encodeur du transformer original. C’est une version avec moins de paramètres de BERT permettant de réduire la consommation de mémoire et augmenter la vitesse d’entraînement. | Base : 12M, Large : 18M, XLarge : 60M XXLarge : 235M | 30K | SentencePiece |
BART | Transformer développé par Facebook reprenant les parties encodeur (bidirectionnel) et decodeur (autorégressif) du transformer original. | Large : 400M | 50K | BPE |
T5 | Transformer développé par Google reprenant les parties encodeur et decodeur du transformer original. | Base : 220M, Small : 60M, Large : 770M, Très Large : 2,8Mds et 11Mds. | 32K | SentencePiece |
Conclusion
Les architectures sont régulièrement améliorées (augmentation du nombre de paramètres utilisés ou au contraire diminution dans le cadre de version distillée, etc.). On peut citer par exemple GPT-2 qui est la seconde version du GPT, RoBERTa qui est une version optimisée de BERT, etc. De nouvelles architectures font également leur apparition chaque mois (à un moment c’était pratiquement chaque semaine).
Dans le cadre d’un projet, il est important de connaître la tâche à effectuer pour appliquer le modèle le plus adéquate à votre problème (vous pouvez par exemple consulter le Github de l’équipe d’Hugging Face qui facilite grandement l’utilisation de nombreuses architectures de transformers).
Pensez également à vous tenir régulièrement informés sur les dernières nouveautés (vous pouvez pour ça par exemple consulter le classement Glue Benchmark). Procédez également à des tests pour déterminer le modèle le plus efficace pour votre problème.
Citation
@inproceedings{architectures_transformers_blog_post,
author = {Loïck BOURDOIS},
title = {Les architectures issues du Transformer},
year = {2020},
url = {https://lbourdois.github.io/blog/nlp/Les-architectures-transformers/}
}