raatools/

Estimateur d'inférence ML

Estimez la latence d'inférence et les FPS pour les modèles ML sur appareils en périphérie.

Latence

150 ms

FPS max

6.7 FPS

Practical Note: Les FPS réels peuvent être inférieurs en raison de la surcharge de prétraitement et du chargement du modèle.

Comparaison de latence (tous les appareils)

Pi 4 (4GB)
150ms
Pi 5 (8GB)
50ms
Pi 5 + Coral TPU
5ms

Détails du modèle

MobileNet V2: Lightweight image classification. Good for real-time inference on edge devices.

Qu'est-ce que l'inférence ML ?

L'inférence en machine learning désigne le processus consistant à utiliser un modèle entraîné pour faire des prédictions sur de nouvelles données. C'est l'étape de production, par opposition à l'entraînement (training) qui crée le modèle. L'inférence doit être rapide et économe en ressources pour être utilisable en temps réel.

Cet outil démontre comment exécuter des modèles ML directement dans le navigateur grâce à des bibliothèques comme TensorFlow.js, ONNX Runtime ou Transformers.js. L'inférence locale préserve la vie privée (données jamais envoyées au serveur) et offre une faible latence.

Comment utiliser cet outil

Choisissez un modèle pré-entraîné (classification d'images, reconnaissance de texte, détection d'objets). Téléversez votre donnée d'entrée. L'inférence s'exécute localement et affiche les prédictions avec leur score de confiance. Aucune donnée ne quitte votre appareil.

Concepts clés

  • Paramètres — les poids appris dans un modèle. Davantage de paramètres signifie généralement une meilleure qualité, mais des besoins en ressources plus élevés.
  • Précision — FP32 utilise 4 octets par paramètre, FP16/BF16 utilise 2 octets, INT8 utilise 1 octet. Une précision plus faible réduit la mémoire et augmente la vitesse avec une perte de qualité minimale.
  • Taille de lot (batch size) — traiter plusieurs entrées simultanément améliore le débit mais nécessite plus de mémoire.
  • Cache KV — pour les modèles transformeurs, le cache clé-valeur croît avec la longueur de la séquence et consomme une mémoire supplémentaire importante.

Matériel d'inférence courant

GPU grand public : RTX 3090 (24 Go), RTX 4090 (24 Go) — adaptés aux modèles jusqu'à 13 milliards de paramètres en INT8. Professionnels : A100 (40/80 Go), H100 (80 Go) — requis pour les modèles plus grands. Options cloud : AWS, GCP et Azure proposent des instances GPU à l'heure. Pour l'inférence sur CPU : possible pour les petits modèles mais 10 à 100 fois plus lente que sur GPU. Les puces Apple M offrent une mémoire unifiée capable de faire tourner des modèles étonnamment grands.

Exemple concret

Un modèle de langage à 7 milliards de paramètres en précision 16 bits nécessite 7 000 000 000 × 2 octets = 14 Go rien que pour les poids. Le quantifier en 4 bits ramène cela à environ 3,5 Go, ce qui lui permet de tenir sur un GPU grand public. Si le GPU offre 300 Go/s de bande passante mémoire, lire 3,5 Go par jeton plafonne le débit vers 85 jetons par seconde.

Erreurs courantes

Une erreur courante est de juger la vitesse d'inférence au seul calcul (FLOPS) ; pour les grands modèles, c'est souvent la bande passante mémoire qui limite la génération de jetons, non le calcul brut. Une autre est d'ignorer la différence entre latence (temps jusqu'au premier jeton) et débit (jetons par seconde sur un lot). Oublier que regrouper de nombreuses requêtes augmente le débit au prix de la latence par requête est aussi fréquent.

Questions fréquentes

L'inférence locale est-elle aussi précise que sur serveur ?

Pour les modèles équivalents, oui — la précision dépend du modèle, pas de l'environnement d'exécution. Cependant, sur navigateur on utilise souvent des modèles plus petits (par contrainte de taille téléchargeable), ce qui peut réduire la précision face à un GPT-4 hébergé en cloud.

Mes données sont-elles partagées ?

Non. Tout se passe dans votre navigateur. C'est l'avantage majeur de l'inférence locale par rapport aux API cloud où vos données transitent par les serveurs du fournisseur.

Pourquoi la quantification accélère-t-elle l'inférence ?

La quantification stocke les poids sur moins de bits — 8 bits ou 4 bits au lieu de 16 — il y a donc moins de données à déplacer de la mémoire pour chaque jeton. Comme l'inférence des grands modèles est généralement limitée par la bande passante mémoire, diviser par deux les octets par poids double environ le débit de jetons, avec une perte de précision faible et souvent acceptable.