# Faire tourner l'IA sur un processeur : quantification, ONNX et pourquoi les petits modèles gagnent

> Pas toujours besoin d'un GPU. Comment la quantification int8, ONNX Runtime et la bonne taille font répondre un modèle en millisecondes sur CPU.

Source: https://www.vigimod.com/fr/learn/running-ai-on-a-cpu · VigiMod (https://www.vigimod.com) · mis à jour le 2026-11-11 · 7 min

## En bref

- Un modèle, c'est surtout des multiplications de nombres ; moins de nombres et plus petits, c'est plus de vitesse.
- La quantification stocke les poids en entiers 8 bits au lieu de flottants 32 bits : environ 4 fois plus petit, souvent 2 à 4 fois plus rapide.
- ONNX Runtime exécute efficacement les modèles sur processeur grâce à ses instructions vectorielles (AVX-512, AMX).
- Après la quantification, il faut revérifier les seuils : les scores bougent un peu.

## Pourquoi la vitesse compte

Une API de modération de discussions doit répondre pendant que l'utilisateur regarde encore l'écran : quelques centaines de millisecondes au plus. Les GPU sont rapides mais chers ; les serveurs ordinaires ont des processeurs. Rendre un modèle rapide sur CPU, c'est ce qui rend un service de modération abordable.

## Ce que calcule un modèle

Un réseau de neurones, c'est surtout des **multiplications de matrices** : les nombres qui représentent le texte sont multipliés par les poids du modèle, couche après couche. La vitesse dépend du nombre de multiplications (la taille du modèle et la longueur du texte) et de la rapidité de chacune.

## La quantification

Les poids sont normalement stockés en nombres à virgule flottante de 32 bits. La **quantification** les stocke en entiers de 8 bits (int8), avec un facteur d'échelle par ligne ou par canal :

| Format | Taille d'un modèle de 560 millions de paramètres | Vitesse typique sur CPU |
|---|---|---|
| float32 | environ 2,2 Go | référence |
| int8 | environ 0,6 Go | souvent 2 à 4 fois plus rapide |

Les processeurs modernes ont des instructions qui multiplient beaucoup de nombres de 8 bits à la fois (VNNI, AVX-512, Intel AMX) : c'est de là que vient la vitesse.

Le prix est une infime perte de précision. Avec la **quantification dynamique par canal**, un bon classificateur ne perd en général presque rien de mesurable, mais les scores se décalent légèrement. C'est pourquoi il faut **réaligner** les seuils après la quantification : chaque seuil est déplacé pour que le modèle quantifié signale la même part de messages que l'original sur un jeu de calibration.

## ONNX et ONNX Runtime

**ONNX** est un format ouvert pour enregistrer un modèle comme un graphe d'opérations, indépendamment du framework qui a servi à l'entraîner. **ONNX Runtime** exécute ce graphe et il est optimisé pour les processeurs : il fusionne les opérations, utilise tous les cœurs et choisit les instructions les plus rapides disponibles.

## Un exemple réel

VigiMod 1.2.1 compte environ 560 millions de paramètres. Sur 4 cœurs de processeur :

| Version | Temps par paire message–catégorie |
|---|---|
| Pleine précision | environ 113 ms |
| ONNX int8 | **environ 32 ms** (3,5 fois plus rapide) |

Après réalignement des seuils, la perte de qualité mesurée sur les données de validation était inférieure à 0,005 de F1, dans le bruit.

## D'autres astuces

- **Des entrées plus courtes :** limitez le contexte aux derniers messages utiles.
- **Le traitement par lots :** notez plusieurs messages à la fois quand ils arrivent ensemble.
- **Mettre en cache la partie fixe** de l'entrée (par exemple une longue politique) dans les modèles qui le permettent.
- **Un modèle plus petit, de meilleures données :** un petit modèle entraîné sur les bons exemples bat souvent un grand modèle généraliste, pour une fraction du coût.

## Quand il faut vraiment un GPU

Pour l'entraînement, et pour faire tourner de très grands modèles qui génèrent de longues réponses. Une conception courante est la **cascade** : un petit modèle rapide sur chaque message, un plus grand seulement sur les rares cas incertains.

## Quiz

1. Que change la quantification int8 ?
   Réponse: Les poids sont stockés en entiers 8 bits au lieu de flottants 32 bits. Des nombres plus petits donnent un modèle plus petit et plus rapide.
2. Pourquoi faut-il revérifier les seuils après la quantification ?
   Réponse: Les scores se décalent légèrement. Le réalignement garde la même part de messages signalés que l'original.
3. Qu'est-ce qu'ONNX Runtime ?
   Réponse: Un moteur qui exécute efficacement les modèles, y compris sur CPU. Il exécute le graphe du modèle avec les instructions CPU les plus rapides.
4. Qu'est-ce qu'une cascade ?
   Réponse: Un modèle rapide sur chaque message, un grand seulement sur les cas incertains. Elle garde la plupart des requêtes rapides et peu coûteuses.
