L’inférence des modèles open source se sépare entre lecture et génération chez Prime Intellect

Prime Intellect ouvre Prime Inference, son infrastructure d’inférence pour modèles open source, avec endpoints serverless et capacité réservée. Pour GLM-5.3 sur NVIDIA GB200 NVL72, l’entreprise sépare le prefill du decode et optimise le KV cache afin de maintenir des agents à faible latence sur de longs contextes.

Une infrastructure issue des propres workloads de Prime

Près d’un billion de tokens sont déjà traités chaque jour en interne par l’infrastructure qui se trouve derrière Prime Inference. Elle était utilisée pour les rollouts de reinforcement learning, la génération de données synthétiques, les évaluations et les agents de code avant son ouverture comme service d’inférence.

Prime Intellect indique également servir des déploiements clients en production depuis janvier. Prime Inference propose désormais des endpoints serverless pour les charges variables et de la capacité réservée pour les usages continus, répartis sur plusieurs datacenters.

Les endpoints restent compatibles avec l’API OpenAI. L’infrastructure actuelle utilise des GPU NVIDIA Blackwell, avec Vera Rubin inscrit à la roadmap de Prime. Séparer la lecture du prompt de la génération

Les agents qui conservent de longues conversations posent un problème particulier. Dans le workload étudié par Prime, un tour ajoute environ 6 000 tokens à un prompt pouvant déjà atteindre 140 000 tokens, dont une grande partie a déjà été calculée lors des échanges précédents.

Sur des GPU partagés, le traitement d’un nouveau prompt long peut ralentir la génération des sessions déjà actives. Prime sépare donc le prefill, consacré au traitement du contexte, et le decode, chargé de générer les nouveaux tokens, sur des groupes de GPU distincts.

NVIDIA Dynamo orchestre et route les requêtes tandis que vLLM exécute le modèle. Une fois le prefill terminé, le KV cache calculé est transféré vers le groupe chargé du decode via NIXL. Dans les tests de Prime, cette séparation réduit de près de 40 % la latence p90 entre deux tokens. Conserver plutôt que recalculer le contexte

Le routeur KV-aware de Dynamo cherche en priorité un worker qui possède déjà une partie du prompt dans son cache. Les sessions restent également sur le même décodeur entre deux tours lorsque cela favorise la réutilisation du KV.

Mooncake ajoute un second niveau de cache dans la DRAM de l’hôte. Des préfixes sortis de la mémoire GPU peuvent ainsi être récupérés sans être entièrement recalculés.

Sur GLM-5.3 exécuté avec des GB200 NVL72, Prime vise 100 tokens de bout en bout par seconde et par utilisateur. Dans sa configuration testée, un ratio d’un groupe de prefill pour quatre groupes de decode atteint 101 tokens/s/utilisateur avec 66 sessions simultanées par groupe de prefill. Compresser le KV cache en quatre bits

La quantité de contexte conservable en mémoire devient rapidement une contrainte. Prime compresse donc la partie latente MLA du KV cache avec NVFP4, soit quatre bits par valeur accompagnés d’une échelle FP8 par groupe de 16 valeurs.

Chaque ligne de cache passe ainsi de 576 à 352 octets. À budget mémoire identique, la capacité totale mesurée par Prime progresse d’environ 50 %, de 1,09 à 1,63 million de tokens mis en cache par décodeur.

Un kernel sparse-MLA spécifique décompresse ensuite les données directement pendant le calcul de l’attention, sans passer par un buffer FP8 intermédiaire en mémoire GPU. Prime indique conserver une vitesse comparable par utilisateur avec le prefix caching activé. Réduire les transferts entre GPU

La séparation entre prefill et decode crée toutefois un autre problème : déplacer efficacement le KV cache entre les workers.

Sur une première configuration NVLink, une requête de 200 000 tokens pouvait provoquer 32 000 copies sur un seul rank TP4. Prime a adopté le layout mémoire BLHNC développé par la communauté vLLM, qui regroupe davantage de données contiguës avant leur transfert.

Dans un test TP8, le nombre de descripteurs est passé de 19 559 à environ 1 940, tandis que le temps moyen de transfert est descendu de 146 à 78 ms. Ces mesures correspondent à la configuration testée par Prime et ne constituent pas des performances garanties pour tous les workloads. Les tool calls sont contrôlés pendant le décodage

Les optimisations concernent également les agents qui manipulent des outils. Prime avait observé des appels vers des fonctions inexistantes, des arguments manquants ou des types incorrects lors de l’utilisation de GLM-5.3 à grande échelle.

Une contribution à NVIDIA Dynamo convertit désormais les définitions des outils en contraintes structurelles. vLLM et xgrammar bloquent pendant le décodage les tokens qui produiraient un nom ou des arguments incompatibles avec le schéma attendu.

Prime Inference combine aujourd’hui NVIDIA Dynamo, vLLM, Mooncake et FlashInfer, avec des contributions reversées aux projets open source. Les prochaines étapes annoncées comprennent l’inférence batch et asynchrone, ainsi que des déploiements dédiés de modèles fine-tunés sur de la capacité réservée.