Actualités
Notre configuration expérimentale : un modèle d'environ 83,6 Go fonctionnant localement sur une RTX 3060 économique
Qwen3.8-Flash-Next IQ3_S sur un RTX 3060 12 Go avec seulement 48 Go de RAM système. Aucune inférence de nuage. Juste du matériel grand public abordable.

C'est incroyable !
Qwen3.8-Flash-Next IQ3_S (~ 83,6 Go) fonctionnant localement sur un budget RTX 3060 12 Go avec seulement 48 Go de RAM système !
Décodage jusqu'à 68 jetons/s, traitement d'invite d'environ 916 jetons/s et traitement d'invite de 30 000 jetons en seulement 34 secondes.
Propulsé par Strata par coldniko. Aucune inférence de nuage. Juste du matériel grand public abordable !
Benchmarks complets, spécifications matérielles, optimisations et compromis ci-dessous.
Vous pouvez passer directement aux principaux points à retenir dans la dernière section.
Le matériel derrière ces résultats
Pas de GPU de centre de données, pas de serveur multi-GPU coûteux et pas de configuration RAM massive.
L’ensemble de l’expérience a été réalisé sur un PC grand public/poste de travail assez ordinaire.

CPU
- Intel Core Ultra 7 265 (Arrow Lake)
- 20 cœurs / 20 threads
- Jusqu'à 5,3 GHz
- 30 Mo de cache L3
- Prise en charge AVX-VNNI/BF16 ; pas d'AVX-512
Carte mère
- ASUS Pro Q870I-C
- Jeu de puces Intel Q870, LGA1851
- Facteur de forme Mini-ITX
Mémoire
- 48 GB DDR5-5600 (2 × 24 GB Micron)
- Environ 46 Gio utilisables
GPU
- NVIDIA GeForce RTX 3060 12 GB
- GA106, capacité de calcul 8.6
- PCIe 4.0 ×16
- Limite de puissance configurée à 170 W
Stockage
- Lexar NM1090 PRO 2 TB
- PCIe 5.0 ×4 NVMe
OS
- Ubuntu 24.04.5 LTS
- Noyau Linux 7.0.0-38
- Pilote NVIDIA 615.71.10
Réseau
- Intel 1 GbE Ethernet
Le détail crucial : le modèle est bien plus grand que la VRAM et la RAM disponibles réunies.
C’est exactement ce qui rend cette expérience intéressante.
Architecture du modèle, du moteur et de la mémoire
Modèle
Qwen3.8-Flash-Next-GSQ-RCO-IQ3_S
Deux fragments GGUF :
- 54.82 GB
- 28.80 GB
- Total : 83,62 Go (77,87 Gio)
Composants supplémentaires
- Poids denses emballés : ~ 1,5 Gio
- Rédacteur de décodage spéculatif MTP
- Adaptateur de vision BF16 : ~866 Mo
- Encodeur de vision basé sur CPU (12 threads)
Moteur d'inférence
- Strata engine 0.1.52
- Moteur CUDA 13.0
- Architecture CUDA sm_86
Allocation de mémoire réelle
- VRAM GPU : 11,14 Gio utilisés
- Experts résidents en RAM système : 24 Gio
- Données expertes restantes diffusées depuis NVMe
- Aucune activité d'échange pendant l'inférence normale
Paramètres de configuration importants
--expert-cache auto
--prefill 4096
--spec 4
--spec-min-p 0.5
--mtp mtp/rt
--max-context 32768
--kv int8
--kv-grow
--kv-resident 32768
--vision
--vram-reserve-mib 960
--pool-workers 12
--conversation-cache-mib 1536
--prompt-cache-tail
--prompt-cache-spread
--resident-experts
--resident-budget-gib 24
Il ne s’agit pas d’une configuration conventionnelle « charger l’intégralité du modèle dans la mémoire GPU ».
Strata utilise ensemble la mémoire GPU, la RAM système, la mise en cache experte et le stockage NVMe.
L'optimisation importante consiste à minimiser les transferts d'experts coûteux tout en gardant le GPU productif.
De vrais résultats de référence
Même modèle, même matériel, deux configurations de routage.
Mode A : routage expert rapide et axé sur la résidence (priorité = 1,5)
| Contexte | Préremplir | Décodage à froid | Décodage chaleureux |
|---|---|---|---|
| 1K | 285 tok/s | 42 tok/s | 61 tok/s |
| 4K | 804 tok/s | 50 tok/s | 65 tok/s |
| 8K | 819 tok/s | 61 tok/s | 68 tok/s |
| 16K | 916 tok/s | 60 tok/s | 68 tok/s |
| 30K | 890 tok/s | 58 tok/s | 61 tok/s |
Temps froid jusqu'au premier jeton :
- 1K: 3.7 s
- 4K: 4.9 s
- 8K: 9.7 s
- 16K: 17.3 s
- 30K: 33.9 s
À titre de comparaison, le mode B désactive le routage basé sur la résidence (prior = 0) :
| Contexte | Préremplir | Décodage à froid | Décodage chaleureux |
|---|---|---|---|
| 1K | 282 tok/s | 24 tok/s | 27 tok/s |
| 4K | 781 tok/s | 29 tok/s | 26 tok/s |
| 8K | 789 tok/s | 30 tok/s | 32 tok/s |
| 16K | 889 tok/s | 30 tok/s | 29 tok/s |
| 30K | 878 tok/s | 26 tok/s | 27 tok/s |
Génération de 500 jetons :
- Rapide : 62 tok/s, 7,1 s au total
- Précis : 21 tok/s, 20,8 s au total
Les mesures de vitesse ont été recoupées avec les horaires de streaming côté client.
Observation principale :
La désactivation du routage basé sur le cache peut réduire la vitesse de décodage d'environ 2 à 2,4×.
Mais il existe une raison importante de ne pas laisser le routage agressif activé pour chaque charge de travail. Plus d’informations à ce sujet dans la section suivante.
Vitesse vs qualité du modèle : le compromis caché
Sur cette version du moteur Strata, les GPU avec ≤ 13 Go de VRAM utilisent automatiquement le routage basé sur la résidence :
STRATA_ROUTE_PRIOR=1.5
Cela favorise les experts déjà disponibles dans la mémoire rapide au lieu de toujours sélectionner les experts que le routeur d'origine préférerait.
Le bénéfice est spectaculaire :
- Taux de réussite du cache expert : 97,2 % en mode rapide
- Sans le biais : 65,3%
- Lectures de stockage pendant la charge de travail comparée : 5,5 Gio contre 46 Gio
- Vitesse de décodage : environ 2 fois plus rapide
Mais ce n'est PAS une optimisation gratuite.
La modification de la sélection des experts peut modifier le comportement du modèle, augmenter la divergence par rapport au modèle d'origine et affecter les longs raisonnements ou les flux de travail des agents.
D’après l’évaluation du développeur sur 10 tâches d’agent :
- Routage antérieur à 1.5 : 4,5/10
- Routage avant 0 : 5,6/10
Les résultats de base eux-mêmes variaient d’une exécution à l’autre ; il s’agit donc d’un résultat directionnel et non d’une mesure de qualité définitive.
Mes six brefs contrôles d'agent ont été réussis dans les deux modes.
Cependant, une analyse de stress d'unicité distincte a exposé la répétition :
- Mode rapide : 205 lignes, 96 doublons
- Mode précis : 209 lignes, 79 doublons
La conclusion est simple :
- Routage rapide pour le chat, l'utilisation interactive et les tâches courtes.
- Routage original pour des flux de travail d'agent plus longs et sensibles à la qualité.
Et la vitesse de référence ne doit jamais être confondue avec la qualité du modèle.
La mise en cache rapide change tout
L’un des résultats les plus impressionnants n’est pas la vitesse de décodage. Il s'agissait du temps de réponse aux demandes répétées utilisant la même invite.
Avec une invite entièrement mise en cache :
| Contexte | TTFT à froid | TTFT en cache |
|---|---|---|
| 1K | 3.7 s | 0.08 s |
| 4K | 4.9 s | 0.08 s |
| 8K | 9.7 s | 0.27 s |
| 16K | 17.3 s | 0.34 s |
| 30K | 33.9 s | 0.44 s |
Cela représente environ 45 à 90 fois moins de temps pour obtenir le premier jeton dans ces exécutions.
Le cache d'invites fait une énorme différence lors de l'interrogation répétée du même long document ou du maintien d'une conversation avec un contexte stable.
Le moteur est également configuré pour la mise en cache des conversations :
- Budget de cache de 1 536 Mio
- Minimum 4 096 jetons pour le stationnement
- Seuil minimum de mémoire libre : 1 536 Mio
Il y a un hic : ces résultats concernent des invites identiques avec un cache entièrement réutilisable.
Cela ne signifie pas que de nouvelles invites arbitraires de jetons de 30 000 seront traitées en une demi-seconde.
Mais pour l’IA locale interactive, un cache chaud change la donne.
Le mystère du SSD : PCIe 5.0 n’est pas le goulot d’étranglement
Au début, le lecteur NVMe semblait étrangement lent. Nous avons étudié la liaison PCIe, la topologie de stockage et le comportement réel des E/S.
Le lecteur : Lexar NM1090 PRO 2 To, PCIe 5.0×4.
Connexion PCIe vérifiée :
- Liaison actuelle : 32,0 GT/s ×4
- Liaison maximale : 32,0 GT/s ×4
- Port racine du processeur : 32,0 GT/s ×4
Le disque fonctionne donc à sa vitesse de liaison PCIe 5.0 maximale.
Benchmarks de lecture directe non mis en cache :
- Flux unique, blocs de 1 à 4 Mio : 2,9 à 3,4 Go/s
- Quatre flux parallèles : 10,94 Go/s
- Quatre flux, blocs de 64 Ko : 2,25 Go/s
- Quatre flux, blocs de 4 Ko : 0,26 Go/s (~ 63 000 IOPS)
Ce résultat parallèle de 10,94 Go/s est particulièrement important : il dépasse la bande passante pratique du PCIe 4.0 ×4.
Pourquoi le débit d’un flux unique est-il beaucoup plus faible ?
Parce que la bande passante PCIe n’est pas la même chose que le débit au niveau des applications.
La profondeur de la file d’attente, la taille des E/S, le parallélisme des demandes et la latence sont tous importants.
Le modèle de chargement expert de Strata est beaucoup plus proche du cas de faible concurrence que d’un benchmark synthétique à débit maximum.
Débit de stockage moteur observé :
- Routage rapide : ~0,3 Go/s
- Routage d'origine : ~2,4 Go/s
La différence vient du nombre d’experts qui doivent être récupérés, et non d’un déclassement PCIe.
Encore un détail utile : le RTX 3060 lui-même est un appareil PCIe 4.0. Voir son lien tomber vers Gen1 alors qu'il est inactif est un comportement normal de gestion de l'alimentation.
Vérifiez toujours quel appareil vous mesurez avant de diagnostiquer un problème PCIe.
Une leçon importante : ne laissez pas Linux mettre en cache un modèle de 83,6 Go sur une machine de 48 Go
Nous avons rencontré un sérieux problème lors du démarrage initial.
La première configuration permettait le chargement en mémoire tampon des fichiers de modèle.
Le modèle fait environ 83,6 Go, alors que le système ne dispose que de 48 Go de RAM physique.
Sous cette charge de travail, Linux a été soumis à une forte pression de récupération de mémoire. La machine ne répondait presque plus, y compris la connectivité SSH, et nécessitait un redémarrage forcé.
La solution consistait à modifier la stratégie de chargement et à introduire des sauvegardes de mémoire.
Paramètres actuels :
- STRATA_UNBUFFERED_LOAD=1
- STRATA_RESIDENT_HEADROOM_GIB=10
- Budget expert résident de 24 Gio
- Disponibilité de la mémoire vérifiée avant le lancement
- Marge de sécurité supplémentaire de 12 Gio dans la politique de lancement
Après ces changements :
- Aucune activité d'échange pendant l'inférence normale
- Environ 34,6 Gio de RAM utilisés au point observé
- Environ 12,7 Gio disponibles
- Génération stable sous charge
La leçon :
Il est possible d'exécuter un modèle plus grand que votre mémoire physique, mais la comptabilité de la mémoire est absolument essentielle.
La pression du cache de pages, les données de modèle épinglées, les experts résidents et le cache KV doivent être pris en compte ensemble.
Ne copiez pas aveuglément les indicateurs de performances maximales à partir de machines dotées de configurations de RAM beaucoup plus importantes.
Consommation d'énergie, thermiques et coût d'inférence
C'est une autre agréable surprise.
Puissance des composants mesurée :
Inactif avec le modèle chargé :
- CPU: ~5.8 W
- GPU: 15–18 W
Pendant la génération :
- CPU: ~62.8 W
- GPU: 152–167 W
- Bref, le GPU culmine autour de 174 W
Puissance totale estimée du système au niveau du mur (non mesurée à l'aide d'un compteur mural) :
- Au repos : ~54 W
- Génération : ~280 W
Températures observées :
- GPU sous charge : 62–68°C
- GPU au ralenti : ~40°C
- NVMe: 38–47°C
Aucune limitation thermique observée.
Pour un prix de l'électricité supposé de 0,25 €/kWh :
- 24h d'inactivité : ~0,32€
- 30 jours d'inactivité continue : ~9,72 €
- Une heure de génération active : ~0,07€
Il est donc tout à fait réaliste d’exploiter à la maison un point de terminaison d’IA local capable et préservant la confidentialité.
Bien entendu, il s’agit de coûts d’électricité estimés et non du coût total de possession. La dépréciation du matériel, le refroidissement et la maintenance sont exclus.
Là où la configuration du RTX 3060 n’a plus de sens
Cette configuration est excellente pour les requêtes interactives courtes, mais elle a des limites.
Le plus important :
- Contexte maximum : 32 768 jetons
- Une invite proche de 32 Ko laisse un espace insuffisant pour la génération
- Le plafond de référence pratique était d'environ 30 165 jetons d'entrée.
- La réflexion/le raisonnement peut consommer des centaines de jetons générés supplémentaires
- Les sessions d'agent de longue durée deviennent rapidement limitées
A titre de comparaison, j'ai exécuté le même modèle sur un système local plus puissant avec un GPU de 24 Go.
Performances mesurées sur ce système :
- Pré-remplissage de l'invite 4K : 1 339 tok/s
- Décodage 4K : 94 tok/s
- Pré-remplissage d'invite 16 000 : 2 956 tok/s
- Décodage 16K : 125 tok/s
- Contexte maximum : 262 144 jetons
- 15 threads de travail
Le système RTX 3060 offre un débit de préremplissage bien inférieur et environ la moitié du débit de décodage dans des cas comparables, avec un huitième du contexte disponible.
Cependant, la carte de 12 Go est bien plus accessible et reste incroyablement utile.
Mon approche actuelle :
- Matériel plus puissant pour les agents complexes à exécution longue
- GPU abordables de 12 Go pour le chat, les flux de travail courts, les expériences et l'inférence de sauvegarde
Il ne s’agit pas de prétendre qu’un GPU bon marché remplace une machine haut de gamme.
Le fait est de savoir dans quelle mesure l’IA locale utile peut déjà fonctionner sur du matériel peu coûteux.
Qu’est-ce qui pourrait encore être optimisé ?
Le système fonctionne déjà bien, mais il existe quelques pistes intéressantes pour de nouvelles expériences.
Inférence simultanée
L'option --slots 2 pourrait améliorer le débit total avec deux conversations simultanées.
Un débit global estimé de +10 à 12 % est possible pour cette charge de travail, mais il doit être validé.
Cela ne signifie pas qu’une seule conversation devient 12 % plus rapide.
Des lots de pré-remplissage plus importants
Actuel: --prefill 4096
Candidat: --prefill auto:16384
Des fenêtres de pré-remplissage plus grandes pourraient améliorer le traitement des invites longues, mais la VRAM disponible est déjà limitée.
Avec environ 11,14 Gio sur les 12 Gio du GPU occupés, le comportement de la mémoire doit être mesuré avec soin.
Plus de RAM système
L'utilisation de --ple-io ram pourrait apporter davantage de données de modèle dans la mémoire système et réduire les lectures de stockage.
La documentation du développeur suggère :
- +16 à 31 % de performances de pré-remplissage
- +3 à 11 % de performances de décodage
Mais cette configuration nécessiterait beaucoup plus de RAM, environ 72+ Gio pour la disposition mesurée.
Ce n'est pas pratique sur la configuration actuelle de 48 Go.
Décodage spéculatif
Le décodage spéculatif MTP est déjà activé.
Acceptation observée : ~33 à 41 jetons acceptés sur 50 à 60 rédigés, soit environ 65 à 70 %.
Contexte plus long
La limite actuelle de 32 Ko est une limite de configuration opérationnelle et ne prouve pas que le modèle lui-même ne prend en charge que 32 Ko.
L'augmenter nécessite de revérifier la capacité de la mémoire, le comportement du cache KV, la latence et la stabilité.
Pour cette charge de travail, la réduction des lectures expertes coûteuses et l’amélioration des modèles d’accès peuvent être plus importantes que l’augmentation de la bande passante séquentielle maximale du disque.
Comme toujours : évaluez la charge de travail réelle, et pas seulement les chiffres marketing du matériel.
Réflexions finales
Voici ce que démontre cette expérience.
Un modèle MoE quantifié d'environ 83,6 Go peut être exécuté localement sur :
- RTX 3060 12 GB
- 48 GB DDR5 RAM
- Processeur Intel grand public
- PCIe 5.0 NVMe SSD
- Ubuntu + Strata
Avec des résultats mesurés jusqu'à :
- Décodage à chaud à 68 tok/s
- Traitement rapide de 916 tok/s
- Invite à froid de 30 000 jetons en ~ 34 secondes
- Invite 30 Ko entièrement mise en cache : ~0,44 s jusqu'au premier jeton
- Pas d'échange dans des conditions normales d'exploitation
Mais il y a des mises en garde importantes.
- Le contexte configuré maximum est de 32 Ko
- Le routage expert rapide modifie le comportement du modèle
- La vitesse la plus élevée n’est pas nécessairement la meilleure qualité
- Les performances de stockage dépendent des modèles d'accès
- La gestion de la mémoire nécessite un réglage minutieux
- Les agents qui s'exécutent depuis longtemps bénéficient d'un matériel plus puissant
Je suis particulièrement intéressé par l’économie pratique de l’IA locale.
Non seulement la référence maximale sur un système à 10 000 €, mais aussi les performances utiles réalisables sur des machines grand public et des configurations abordables à partir d'environ 1 000 €.
La confidentialité, l’indépendance, les coûts d’exploitation contrôlés et l’utilité réelle comptent bien plus que la seule recherche de chiffres de référence impressionnants.
Il s'agit toujours d'une expérience en évolution et je continuerai à partager les mesures, les échecs, les modifications de configuration et les améliorations.
L’avenir de l’IA locale devient déjà étonnamment abordable.
Ajouts ultérieurs
Oh, j'ai oublié de mentionner que le GPU fonctionne avec NVIDIA Unlock, sorti il y a quelques jours à peine, la semaine dernière.
J'ai maintenant demandé à mon agent IA d'exécuter les mêmes benchmarks sans déverrouillage, nous pourrons donc comparer les résultats en 15 à 20 minutes environ.
Dans les prochains jours, mais pas aujourd’hui, j’installerai ce GPU dans un système coûtant moins de 1 000 $ et verrai comment il fonctionne là-bas.