Qwen local : que valent 500 tps sur un M1 Ultra ?
локальный инференсQwenApple Silicon
Ce que montrent réellement les mesures utilisateur
Je lirais ces chiffres comme le résultat d'une pile logicielle précise, et non comme la vitesse officielle du M1 Ultra. Dans la discussion, un utilisateur rapporte environ 500 tps en préremplissage et jusqu'à 100 tps en génération de code sur un M1 Ultra doté de 64 cœurs GPU, avec MTPLX et Qwen3.8-Flash-Next. Pour l'inférence locale, c'est un repère solide, mais uniquement pour cette configuration.
La comparaison avec Nvidia reste incomplète. Un autre participant exécute Qwen3.6 27B sur une A6000, sans indiquer le débit de cette combinaison. Il ne s'agit pas d'un test Apple contre Nvidia, mais de deux témoignages distincts. Sans modèle, quantification, longueur de prompt, taille de batch et mode de parallélisme identiques, un chiffre impressionnant peut facilement induire en erreur.
La documentation de mlx-serve cite Qwen3.6-27B et Qwen3.8-27B parmi les modèles pris en charge, y compris des paquets MLX avec têtes de décodage spéculatif. Les notes de version d'oMLX pour le M3 Ultra indiquent environ 91 tps sans MTP et 134 tps avec MTP ; après optimisation du déchargement des experts, le préremplissage sur 32K a atteint environ 636 tps. Cela rend la plage annoncée crédible, sans pour autant transposer directement les résultats des puces Apple récentes au M1 Ultra.
La pile compte autant que le matériel. mlx-serve fournit une couche serveur orientée MLX, oMLX ajoute la gestion des modèles et des accélérations spécialisées, tandis que Strata vise surtout les systèmes CUDA, dont l'A6000. Au 8 novembre 2026, il est plus juste de considérer ces chiffres comme des résultats propres à une configuration que comme des caractéristiques universelles des appareils.
Quand l'inférence locale change réellement la donne
Le bénéfice pratique est réel : les données privées peuvent être traitées localement, sans payer un fournisseur externe pour chaque token. Cette approche convient particulièrement aux charges séquentielles avec un ou quelques utilisateurs.
- Transcription et analyse : l'enregistrement d'un appel, sa transcription, l'extraction de faits et une synthèse structurée peuvent rester dans l'environnement local.
- Documents médicaux : le modèle peut normaliser la terminologie et préparer des brouillons, mais le résultat exige toujours une validation clinique.
- Agents et code : une forte vitesse sur un flux unique rend l'assistant local réactif, mais ne dit rien des performances avec des dizaines de requêtes simultanées.
Sur Apple Silicon, je vérifierais d'abord l'usage mémoire et la stabilité des longs préremplissages. Pour l'A6000, le profil de batching, les requêtes concurrentes et le coût de la quantification sur la qualité comptent davantage. La vraie question n'est pas de savoir si 100 tps sont atteignables, mais combien restent disponibles en charge réelle.