GPT-3
GPT-3 est le modèle de langage d’OpenAI doté de 175 milliards de paramètres, créé en 2020. Il a appris à réaliser des tâches à partir d’exemples fournis dans son prompt et a ouvert la voie à ChatGPT.
GPT-3 (Transformer génératif préentraîné 3) est un grand modèle de langage (LLM) de 175 milliards de paramètres qu’OpenAI a présenté en mai 2020 dans l’article Les modèles de langage sont capables d’apprendre à partir de quelques exemples. Il était plus de 100 fois plus grand que son prédécesseur GPT-2, et son résultat le plus marquant était l’apprentissage en contexte : à partir d’une description de tâche et de quelques exemples dans le prompt, le même modèle figé pouvait traduire, répondre à des questions ou effectuer des calculs sans aucun ajustement fin. OpenAI n’a jamais publié les poids et n’a proposé GPT-3 que par son API, lancée en juin 2020. Les descendants de GPT-3 ajustés sur des instructions sont devenus les modèles GPT-3.5 qui ont servi de base à ChatGPT, faisant de la famille GPT un nom familier à la fin de 2022.
Architecture et entraînement#
GPT-3 est un transformeur à décodeur seul, de même conception que GPT-2, mais à plus grande échelle. Le plus grand modèle compte 96 couches, une largeur de 12 288, 96 têtes d’attention de 128 dimensions chacune et une fenêtre de contexte de 2 048 jetons ; ses couches alternent entre attention dense et attention parcimonieuse à bande locale. Il reprend la tokenisation BPE au niveau des octets de GPT-2, avec un vocabulaire de 50 257 jetons. L’étude a entraîné huit modèles de tailles différentes, de 125 millions à 175 milliards de paramètres, chacun sur 300 milliards de jetons issus de Common Crawl filtré (60 % du mélange de données d’entraînement), de WebText2 (22 %), de deux corpus de livres (8 % chacun) et de Wikipédia en anglais (3 %), à l’aide de GPU V100 sur un cluster fourni par Microsoft. Ces hyperparamètres expliquent la taille du modèle et le coût de son entraînement :
# GPT-3 175B: layers, width, and context from the paper's Table 2.1, plus GPT-2's vocabulary
n_layers, d_model, vocab_size, context = 96, 12288, 50257, 2048
# Each decoder block holds 4 * d^2 attention weights and 8 * d^2 feed-forward weights (4x hidden width)
blocks = n_layers * 12 * d_model**2
embeddings = (vocab_size + context) * d_model # token and learned position embeddings
params = blocks + embeddings
print(f"Parameters: {params / 1e9:.1f} billion ({blocks / params:.1%} in the decoder blocks)")
# Training compute: about 6 FLOPs per parameter per token, over 300 billion training tokens
flops = 6 * params * 300e9
print(f"Training compute: {flops:.2e} FLOPs = {flops / (1e15 * 86400):,.0f} petaflop/s-days")Il affiche 174,6 milliards de paramètres, dont 99,6 % dans les blocs du décodeur, et 3.14e+23 FLOPs, soit 3 637 pétaflop/s-jours, ce qui correspond aux 174 600 millions de paramètres et aux 3.14e+23 FLOPs indiqués dans l’annexe de l’article.
Apprentissage à partir de quelques exemples et apprentissage en contexte#
L’article a évalué trois configurations de prompt. Le zéro-shot ne fournit qu’une instruction, le one-shot ajoute un seul exemple résolu et le few-shot ajoute autant d’exemples que la fenêtre de contexte peut en contenir, généralement de 10 à 100. Les performances ont augmenté avec la taille du modèle et le nombre d’exemples : sur le benchmark TriviaQA de réponse aux questions, le modèle de 175 milliards de paramètres a obtenu 64,3 % en zéro-shot, 68,0 % en one-shot et 71,2 % en few-shot ; ce dernier résultat dépassait celui des systèmes ajustés dans la même configuration sans accès aux documents. Le prompting few-shot a fait de l’ingénierie des prompts une pratique courante pour utiliser les LLM, et ces résultats ont étayé l’idée des lois d’échelle, selon laquelle les modèles plus grands apprennent davantage à partir du contexte. La même idée — utiliser des prompts plutôt que réentraîner le modèle — s’applique à la détection d’objets avec YOLOE-26, dont les prompts visuels utilisent des boîtes tracées autour d’exemples dans une image de référence pour définir une classe que le modèle retrouve ensuite dans de nouvelles images, sans mise à jour des poids.
De GPT-3 à ChatGPT#
Microsoft a obtenu une licence exclusive sur le modèle sous-jacent de GPT-3 en septembre 2020, et Codex d’OpenAI, un descendant de GPT-3 ajusté sur du code public, a alimenté la première version de GitHub Copilot en 2021. GPT-3 de base poursuivait correctement le texte, mais suivait mal les instructions ; OpenAI a donc appliqué l’ajustement aux instructions et l’apprentissage par renforcement à partir de retours humains (RLHF). Les annotateurs ont préféré les sorties du modèle InstructGPT de 1,3 milliard de paramètres à celles de GPT-3, qui en compte 175 milliards. Cette lignée a donné naissance à GPT-3.5 et à ChatGPT en novembre 2022, puis au modèle multimodal GPT-4 en mars 2023. OPT-175B de Meta et BLOOM de BigScience ont reproduit des modèles de taille comparable à GPT-3 avec des poids ouverts en 2022.
GPT-3 et modèles apparentés#
- GPT-2 : prédécesseur de 2019, doté de 1,5 milliard de paramètres, de la même architecture et du même tokenizer, mais cent fois plus petit, avec un contexte de 1 024 jetons.
- GPT-4 : successeur de 2023, qui accepte les images aussi bien que le texte et suit les instructions de manière bien plus fiable après le post-entraînement.
- BERT : modèle de Google de 2018 à encodeur uniquement, qui lit le texte dans les deux sens et convient aux tâches de classification et d’extraction.
Limites#
L’article sur GPT-3 énumère lui-même bon nombre des faiblesses du modèle. Il se répète, perd en cohérence dans les longs passages et commet des erreurs élémentaires de bon sens physique ; comme les LLM ultérieurs, il affirme avec assurance des faits faux, désormais appelés hallucinations. Les auteurs ont mesuré des biais liés au genre, à l’origine ethnique et à la religion dans ses complétions, et ont constaté que certaines données de test de benchmarks avaient fuité dans les données d’entraînement issues du Web. Sa génération de texte était également difficile à distinguer de l’écriture humaine : les évaluateurs n’ont identifié les articles d’actualité de 200 mots rédigés par le modèle de 175 milliards de paramètres que dans 52 % des cas. OpenAI a retiré les modèles API originaux ada, babbage, curie et davinci le 4 janvier 2024, et les a remplacés par babbage-002 et davinci-002.










