← Retour au blog

GPT-OSS-20B : Architecture MoE & Résumé du Model Card

Résumé

GPT-OSS-20B est un grand modèle de langage (LLM) open-weight d'OpenAI (août 2025), basé sur l'architecture Mixture of Experts (MoE). L'architecture active seulement 17 % des paramètres par token, réduisant les coûts d'inférence. Le modèle excelle en mathématiques (82,4 % MATH-500, 96 % AIME avec outils) et démontre de bonnes capacités multilingues sur 14 langues testées (français: 80,2 %, swahili: 60,7 %, yoruba: 50,1 %).

1. Introduction

GPT-OSS-20B est un LLM à poids ouverts « open-weight » développé par OpenAI. Son architecture MoE permet de combiner la puissance d'un grand modèle avec l'efficacité computationnelle nécessaire pour le déployer sur du matériel accessible. L'inférence est possible depuis Google Colab avec le GPU T4.

1.1 Caractéristiques principales

Caractéristique Valeur
Paramètres totaux 20,9 milliards
Paramètres actifs / token 3,6 milliards (17 %)
Architecture Transformer MoE
Nombre de couches 24
Nombre d'experts 32 (4 actifs par token)
Dimension cachée 2 880
Têtes d'attention 64 query / 8 key-value (GQA)
Contexte max 131 072 tokens
Licence Apache 2.0

Note : Open-weight ≠ Open-source. Les poids sont publics sous licence Apache 2.0, mais certains détails d'implémentation peuvent rester propriétaires.

2. Architecture Générale

2.1 Qu'est-ce qu'un modèle MoE ?

Pour GPT-OSS-20B, imaginez une équipe de 32 experts spécialisés. Pour chaque token à traiter, le modèle :

  1. Sélectionne les 4 meilleurs experts via un routeur intelligent (12,5 % des experts)
  2. Agrège leurs réponses avec des poids différents
  3. N'active que 3,6 milliards de paramètres sur 20,9 milliards totaux
Efficacité MoE vs Dense 100% paramètres actifs Dense 20B 17% actifs → 83% économies MoE 20B

2.2 Structure en couches

Voici le flux de traitement dans une couche Transformer avec MoE :

Input Embedding ×24 couches : RMSNorm GQA Attention Residual Connection RMSNorm MoE Router (Top-4) 4 Experts Actifs RMSNorm + Output

3. Composants Techniques Clés

3.1 Le Routeur (Router)

Rôle : décide quels 4 experts activer parmi 32 pour chaque token.

Méthode :

  1. Projection linéaire : $\text{scores} = W_{\text{router}} \cdot h$ où $h \in \mathbb{R}^{2880}$
  2. Sélection top-4 via softmax restreint
  3. Normalisation des poids pour somme = 1

Formule mathématique :

$$g_i = \frac{e^{s_i}}{\sum_{j \in \text{top-4}} e^{s_j}}, \quad \text{output} = \sum_{i \in \text{top-4}} g_i \cdot \text{Expert}_i(h)$$

Innovation : le routeur peut être ajusté finement avec LoRA pour spécialiser le modèle.

3.2 Les Experts (Feed-Forward Networks)

Chaque expert utilise l'activation SwiGLU :

$$\text{Expert}(h) = W_{\text{down}} \cdot (\text{Swish}(W_{\text{gate}} \cdot h) \odot (W_{\text{up}} \cdot h))$$

Où :

  • $\odot$ = multiplication élément par élément (Hadamard)
  • $\text{Swish}(x) = x \cdot \sigma(x)$
  • $W_{\text{down}}, W_{\text{gate}}, W_{\text{up}}$ = matrices de poids

3.3 Attention par Requêtes Groupées (GQA)

Configuration :

  • 64 têtes de requête (query heads)
  • 8 têtes clé-valeur (key-value heads)
  • Ratio : 8:1 (chaque KV tête partagée par 8 query heads)
  • Dimension par tête : 45 (2880 / 64)
Grouped Query Attention (GQA) Groupe 1 Q Q Q KV Groupe 2 Q Q Q KV ... Groupe 8 Q Q Q KV 64 Query heads groupées par 8 partagent 8 Key-Value heads Réduit la mémoire KV de 87.5% tout en conservant les performances

3.4 Encodage de Position (RoPE)

$$\text{RoPE}(x, m) = \begin{pmatrix} x_1 \cos(m\theta_1) - x_2 \sin(m\theta_1) \\ x_1 \sin(m\theta_1) + x_2 \cos(m\theta_1) \\ \vdots \end{pmatrix}$$

où $m$ = position du token, $\theta_i = 10000^{-2i/d}$

Extension de contexte : 131 072 tokens via YaRN (facteur d'extension : 24×)

4. Quantification MXFP4

MXFP4 (Microscaling Floating-Point 4-bit) :

  • Poids compressés de FP16 (16 bits) à 4,25 bits par paramètre
  • Taille finale : 12,8 Go (au lieu de ~42 Go en FP16)
  • Impact : exécution possible sur GPU grand public avec 16 Go de VRAM
FP16 42 Go 69.5% réduction MXFP4 12.8 Go Déploiement sur GPU 16GB possible ✓

5. Entraînement

5.1 Pré-entraînement

  • Volume : plusieurs trillions de tokens
  • Sources : STEM, code, connaissances générales, web, livres
  • Cutoff des connaissances : juin 2024
  • Infrastructure : NVIDIA H100 GPUs
  • Compute : ~210 000 heures-H100
  • Coût estimé : ~$400-500K USD (~224-280 millions FCFA)
  • Objectif : next-token prediction sur un corpus massif

5.2 Post-entraînement

Reinforcement Learning similaire à OpenAI o3 :

  1. Chain of Thought (CoT) — raisonnement intermédiaire
  2. Tool Use — navigation web, exécution Python, appels de fonctions
  3. Niveaux d'effort : low, medium, high

Méthode : RLHF + Process Supervision

6. Format de Chat Harmony

Hiérarchie des instructions : System > Developer > User > Assistant > Tool

Exemple de structure JSON :

{
  "messages": [
    {
      "role": "system",
      "content": "Tu es un assistant GPT-OSS-20B spécialisé en mathématiques."
    },
    {
      "role": "user",
      "content": "Quelle est la racine carrée de 2 ?"
    },
    {
      "role": "assistant",
      "channels": {
        "analysis": "Je vais calculer √2 avec haute précision...",
        "final": "√2 ≈ 1.4142135623730951"
      }
    }
  ]
}

7. Performances

7.1 Benchmarks Académiques

Benchmark GPT-OSS-20B GPT-OSS-120B o4-mini
MATH-500 82,4 % 92,0 % 96,2 %
AIME (sans outils) 51,7 % 72,0 % 86,7 %
AIME (avec outils) 96,0 %
MMLU 71,0 % 80,5 % 85,1 %
GPQA Diamond 43,4 % 60,6 % 70,9 %

7.2 Performance Multilingue (MMMLU)

Langue GPT-OSS-20B GPT-OSS-120B o4-mini
Français 80,2 % 85,1 % 88,4 %
Swahili 60,7 % 67,4 % 76,8 %
Yoruba 50,1 % 57,5 % 67,4 %
Moyenne (14 langues) 75,7 % 81,3 % 85,2 %

7.3 HealthBench

Performance remarquable : 82,6 % sur questions consensuelles, mais seulement 10,8 % sur cas ambigus/rares.

⚠️ Limitation importante : Ne doit PAS remplacer un professionnel de santé.

8. Applications pour l'Afrique

  1. Langues locales — Fine-tuning LoRA du routeur pour wolof, pulaar, diola. Création de datasets annotés (5 000-10 000 exemples de qualité).
  2. Éducation — Tuteur IA accessible sur GPU 16 Go VRAM. Assistant mathématiques, physique, programmation.
  3. Recherche — Expérimentation sans cloud coûteux. Contribution aux benchmarks multilingues africains (MMMLU-African).
  4. Santé — Assistant pré-diagnostic pour zones rurales (avec supervision médicale obligatoire).

9. Notebook Google Colab

Exemple de code pour charger et utiliser le modèle :

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

MODEL_NAME = "papasega/gpt-oss-20b-mxfp4-HF4-Multilingual-Thinking"

print("Chargement du modèle...")
model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME,
    dtype="auto",
    device_map="cuda",
)
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)

print("Modèle chargé avec succès !")
if torch.cuda.is_available():
    print(f"Mémoire GPU utilisée : {torch.cuda.memory_allocated() / 1e9:.2f} Go")

10. Ressources & Bibliographie

Fondamentaux

  • Vaswani et al. (2017) : "Attention is All You Need"
  • Shazeer et al. (2017) : "Outrageously Large Neural Networks: The Sparsely-Gated MoE Layer"
  • Hu et al. (2021) : "LoRA: Low-Rank Adaptation of Large Language Models"

Avancé

  • Fedus et al. (2021) : "Switch Transformers: Scaling to Trillion Parameter Models"
  • Peng et al. (2023) : "YaRN: Efficient Context Window Extension of Large Language Models"
  • Darvish Rouhani et al. (2023) : "Microscaling Data Formats for Deep Learning"
  • Dao et al. (2022) : "FlashAttention: Fast and Memory-Efficient Exact Attention"

Outils

  • Hugging Face Transformers
  • llama.cpp (inférence CPU)
  • vLLM (serveur d'inférence)
  • PEFT (LoRA / QLoRA)

11. Conclusion

GPT-OSS-20B démontre qu'un modèle efficace, accessible et performant est possible via l'architecture MoE. Son caractère open-weight ouvre des opportunités : reproductibilité scientifique, adaptation linguistique et culturelle, innovation collaborative sans barrières économiques.

Appel à l'action : Créez des datasets en langues locales, publiez des benchmarks africains, développez des applications d'impact social.

Glossaire

FLOPs
Floating Point Operations per Second — nombre d'opérations arithmétiques effectuées par seconde.
VRAM
Video Random-Access Memory — mémoire du GPU utilisée pour stocker modèles, activations et gradients.
Token
Unité de texte (mot, caractère ou sous-mot) traitée par le modèle. GPT-OSS-20B utilise un tokenizer BPE.
Inference
Phase de génération/prédiction où le modèle produit des tokens, contrairement à l'entraînement.
Fine-tuning
Adaptation d'un modèle pré-entraîné à une tâche spécifique avec un petit dataset.
Hallucination
Génération de contenu faux ou invérifiable par le modèle (confident mais incorrect).
Open-weight
Les paramètres du modèle sont publiquement disponibles (mais pas forcément le code d'entraînement).
Embedding
Représentation vectorielle dense d'un token ou texte dans un espace continu.
Context window
Nombre maximal de tokens que le modèle peut traiter en une seule requête (131K pour GPT-OSS-20B).
LoRA
Low-Rank Adaptation — technique de fine-tuning efficient ajoutant de petites matrices adaptables.
RLHF
Reinforcement Learning from Human Feedback — technique d'alignement utilisant des retours humains.
CoT
Chain of Thought — technique encourageant le modèle à montrer son raisonnement étape par étape.