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 :
- Sélectionne les 4 meilleurs experts via un routeur intelligent (12,5 % des experts)
- Agrège leurs réponses avec des poids différents
- N'active que 3,6 milliards de paramètres sur 20,9 milliards totaux
2.2 Structure en couches
Voici le flux de traitement dans une couche Transformer avec MoE :
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 :
- Projection linéaire : $\text{scores} = W_{\text{router}} \cdot h$ où $h \in \mathbb{R}^{2880}$
- Sélection top-4 via softmax restreint
- 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)
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
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 :
- Chain of Thought (CoT) — raisonnement intermédiaire
- Tool Use — navigation web, exécution Python, appels de fonctions
- 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
- Langues locales — Fine-tuning LoRA du routeur pour wolof, pulaar, diola. Création de datasets annotés (5 000-10 000 exemples de qualité).
- Éducation — Tuteur IA accessible sur GPU 16 Go VRAM. Assistant mathématiques, physique, programmation.
- Recherche — Expérimentation sans cloud coûteux. Contribution aux benchmarks multilingues africains (MMMLU-African).
- 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.