tadata
← Retour à l'accueil

Petits Modèles de Langage : Pourquoi Plus Petit Est Parfois Mieux

#artificial-intelligence#llm#edge-computing#efficiency

Le récit de l'IA de pointé se concentre sur des modèles toujours plus grands, mais une révolution parallele se produit a l'autre extremite du spectre. Les petits modèles de langage (SLM) -- généralement sous 10B paramètres -- atteignent des capacites surprenantes grace a de meilleures données d'entraînement, la distillation et des innovations architecturales.

Taille du Modèle vs Performance

La plage 7-14B capture 75-85% des performances du modèle de pointé a 3-5% du cout. Un Phi-3 Medium a 14B atteint 78 au MMLU, contre 88.7 pour GPT-4o -- un écart de 12% pour une difference de cout de 40x.

Comparaison des Techniques de Compression

TechniqueRéduction de TailleImpact sur la QualitéGain de Vitesse
Quantification INT82xMinimal (<1%)1.5-2x
Quantification INT44xFaible (1-3%)2-3x
GPTQ/AWQ4xTres faible2-3x
GGUF (llama.cpp)2-8xVariable selon le niveauOptimise CPU
DistillationSur mesuréModeree (5-15%)Proportionnel a la taille
Elagage structuré1.5-3xModeree1.5-2x
tadata
float x int4 q −7 q_min −6 −4 −2 0 1 3 5 7 q_max −1.2 −0.7 −0.3 0 0.25 0.6 0.9 1.4 x −1.200 −0.700 −0.300 0.000 0.250 0.600 0.900 1.400 q = round(x/s) + z −6 −4 −2 0 1 3 5 7 x' = s·(q − z) −1.200 −0.800 −0.400 0.000 0.200 0.600 1.000 1.400 error x' − x 0.000 −0.100 −0.100 0.000 −0.050 0.000 0.100 0.000 scale s = 0.2 · zero-point z = 0 · levels 2⁴ = 16 · MSE = 0.004062 · max |error| = 0.1 (≤ s/2 = 0.1 inside the range) fp32 32 bits/value bf16 16 bits/value int4 4 bits/value: 8× smaller than fp32, 4× than bf16 plus one scale (and zero-point) per tensor, channel or group s = max|x| / (2^(b−1) − 1) = 1.4 / 7 q = clamp(round(x / s), −7, 7), z = 0 x' = s · (q − z) MSE = mean((x' − x)²) where x original float value b bits per integer code (4) s scale: float step between two integer codes z zero-point: the integer that stands for 0.0 q stored integer code x' dequantised value used in compute max, min max|x| = largest magnitude
float x int4 q −7 q_min −6 −4 −2 0 1 3 5 7 q_max −1.2 −0.7 −0.3 0 0.25 0.6 0.9 1.4 x −1.200 −0.700 −0.300 0.000 0.250 0.600 0.900 1.400 q = round(x/s) + z −6 −4 −2 0 1 3 5 7 x' = s·(q − z) −1.200 −0.800 −0.400 0.000 0.200 0.600 1.000 1.400 error x' − x 0.000 −0.100 −0.100 0.000 −0.050 0.000 0.100 0.000 scale s = 0.2 · zero-point z = 0 · levels 2⁴ = 16 · MSE = 0.004062 · max |error| = 0.1 (≤ s/2 = 0.1 inside the range) fp32 32 bits/value bf16 16 bits/value int4 4 bits/value: 8× smaller than fp32, 4× than bf16 plus one scale (and zero-point) per tensor, channel or group s = max|x| / (2^(b−1) − 1) = 1.4 / 7 q = clamp(round(x / s), −7, 7), z = 0 x' = s · (q − z) MSE = mean((x' − x)²) where x original float value b bits per integer code (4) s scale: float step between two integer codes z zero-point: the integer that stands for 0.0 q stored integer code x' dequantised value used in compute max, min max|x| = largest magnitude
Huit poids projetés sur une grille symétrique 4 bits : échelle, codes entiers, valeurs déquantifiées et erreur

Extrait de la fiche « Quantisation, Pruning and Distillation » · Demander la fiche complète

Matrice de Déploiement par Plateforme

PlateformeTaille MaxLatenceCas d'Usage
Smartphone~3B (4-bit)20-50 tok/sAssistant embarque
Navigateur~3B (4-bit)10-30 tok/sApps privées, demos
Edge (RPi, Jetson)~7B (4-bit)5-20 tok/sIoT, traitement local
Laptop (CPU)~13B (4-bit)15-40 tok/sDev local, hors ligne
Laptop (GPU)~30B (4-bit)30-80 tok/sDéveloppement
Serveur (1 GPU)~70B (4-bit)50-150 tok/sInférence production
API CloudIllimite50-200 tok/sTous
tadata
RTX 4060 Ti 16GB 16 GB · 288 GB/s RTX 4090 24 GB 24 GB · 1008 GB/s RTX 5090 32 GB 32 GB · 1792 GB/s RTX PRO 6000 96GB 96 GB · 1792 GB/s DGX Spark 128GB 128 GB · 273 GB/s model \ device 8B model int4 · 4 GB → 4.8 GB ✓ fits, 30 % used ≤ 72 tokens/s ✓ fits, 20 % used ≤ 252 tokens/s ✓ fits, 15 % used ≤ 448 tokens/s ✓ fits, 5 % used ≤ 448 tokens/s ✓ fits, 4 % used ≤ 68.2 tokens/s 8B model bf16 · 16 GB → 19.2 GB ✗ needs 2 devices does not fit on o… ✓ fits, 80 % used ≤ 63 tokens/s ✓ fits, 60 % used ≤ 112 tokens/s ✓ fits, 20 % used ≤ 112 tokens/s ✓ fits, 15 % used ≤ 17.1 tokens/s 32B model int4 · 16 GB → 19.2 GB ✗ needs 2 devices does not fit on o… ✓ fits, 80 % used ≤ 63 tokens/s ✓ fits, 60 % used ≤ 112 tokens/s ✓ fits, 20 % used ≤ 112 tokens/s ✓ fits, 15 % used ≤ 17.1 tokens/s 70B model int4 · 35 GB → 42 GB ✗ needs 3 devices does not fit on o… ✗ needs 2 devices does not fit on o… ✗ needs 2 devices does not fit on o… ✓ fits, 44 % used ≤ 51.2 tokens/s ✓ fits, 33 % used ≤ 7.8 tokens/s 117B MoE (gpt-oss-120b) fp4 · 58.5 GB → 70.2 GB ✗ needs 5 devices does not fit on o… ✗ needs 3 devices does not fit on o… ✗ needs 3 devices does not fit on o… ✓ fits, 73 % used ≤ 30.6 tokens/s ✓ fits, 55 % used ≤ 4.67 tokens/s W = N × b need = W × (1 + o) fits when need ≤ M, else devices = ceil(need / M) decode tokens/s ≤ BW / W (batch 1, memory-bound) where N parameters (billions) b bytes per parameter: fp32 4, bf16/fp16 2, fp8/int8 1, int4 0.5 W weight bytes (GB = 10⁹ bytes) o overhead for KV cache, activations, buffers: 20 % M device memory (GB = 10⁹ bytes) BW device memory bandwidth (GB/s = 10⁹ bytes/s) tokens/s upper bound: each token reads every weight once; KV-cachereads, compute and multi-device links ignored
RTX 4060 Ti 16GB 16 GB · 288 GB/s RTX 4090 24 GB 24 GB · 1008 GB/s RTX 5090 32 GB 32 GB · 1792 GB/s RTX PRO 6000 96GB 96 GB · 1792 GB/s DGX Spark 128GB 128 GB · 273 GB/s model \ device 8B model int4 · 4 GB → 4.8 GB ✓ fits, 30 % used ≤ 72 tokens/s ✓ fits, 20 % used ≤ 252 tokens/s ✓ fits, 15 % used ≤ 448 tokens/s ✓ fits, 5 % used ≤ 448 tokens/s ✓ fits, 4 % used ≤ 68.2 tokens/s 8B model bf16 · 16 GB → 19.2 GB ✗ needs 2 devices does not fit on o… ✓ fits, 80 % used ≤ 63 tokens/s ✓ fits, 60 % used ≤ 112 tokens/s ✓ fits, 20 % used ≤ 112 tokens/s ✓ fits, 15 % used ≤ 17.1 tokens/s 32B model int4 · 16 GB → 19.2 GB ✗ needs 2 devices does not fit on o… ✓ fits, 80 % used ≤ 63 tokens/s ✓ fits, 60 % used ≤ 112 tokens/s ✓ fits, 20 % used ≤ 112 tokens/s ✓ fits, 15 % used ≤ 17.1 tokens/s 70B model int4 · 35 GB → 42 GB ✗ needs 3 devices does not fit on o… ✗ needs 2 devices does not fit on o… ✗ needs 2 devices does not fit on o… ✓ fits, 44 % used ≤ 51.2 tokens/s ✓ fits, 33 % used ≤ 7.8 tokens/s 117B MoE (gpt-oss-120b) fp4 · 58.5 GB → 70.2 GB ✗ needs 5 devices does not fit on o… ✗ needs 3 devices does not fit on o… ✗ needs 3 devices does not fit on o… ✓ fits, 73 % used ≤ 30.6 tokens/s ✓ fits, 55 % used ≤ 4.67 tokens/s W = N × b need = W × (1 + o) fits when need ≤ M, else devices = ceil(need / M) decode tokens/s ≤ BW / W (batch 1, memory-bound) where N parameters (billions) b bytes per parameter: fp32 4, bf16/fp16 2, fp8/int8 1, int4 0.5 W weight bytes (GB = 10⁹ bytes) o overhead for KV cache, activations, buffers: 20 % M device memory (GB = 10⁹ bytes) BW device memory bandwidth (GB/s = 10⁹ bytes/s) tokens/s upper bound: each token reads every weight once; KV-cachereads, compute and multi-device links ignored
Cinq appareils face à cinq modèles (poids + 20 % de surcoût). Les barres montrent la mémoire utilisée ; le chiffre en tokens/s est le plafond à batch 1 : bande passante ÷ octets de poids

Extrait de la fiche « Consumer and Workstation GPUs for Local AI » · Demander la fiche complète

tadata
GPT-3 175B (2020)1.7
Chinchilla 70B (2022)20
Llama 2 70B (2023)29
Llama 3 70B (2024)214
Llama 3 8B (2024)1875
Tokens par paramètre de modèles documentés (tokens d'entraînement / paramètres)

Extrait de la fiche « Scaling Laws and Compute » · Demander la fiche complète

Quand Choisir Petit vs Grand

Choisir un SLM quand : tâche unique bien définie, latence critique, cout par requête minimal, confidentialite imposant le on-device, volume élevé, domaine spécifique avec bonnes données de fine-tuning.

Choisir un grand modèle quand : raisonnement multi-étapes complexe requis, connaissances larges nécessaires, types de tâches imprevisibles, qualité primordiale.

Pattern hybride (de plus en plus courant) : SLM pour le routage/classification, grand modèle pour les cas complexes. Le grand modèle généré les données d'entraînement, le SLM sert en production.

Ressources

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.