GUIDE Technique

Service de pré-remplissage et de décodage désagrégé

Une architecture de service qui divise l'inférence de grands modèles de langage en deux phases distinctes (pré-remplissage et décodage) et les exécute sur différents pools de GPU.

Aperçu

Une architecture de service qui divise l'inférence de grands modèles de langage en deux phases distinctes (pré-remplissage et décodage) et les exécute sur différents pools de GPU. C'est important car ces deux phases ont des appétits matériels opposés, et les forcer sur les mêmes machines gaspille de la capacité et nuit à la latence.

Le pré-remplissage et le décodage désagrégés sont un élément technique qui affecte la qualité du modèle, le coût de l'infrastructure, la latence et la fiabilité à grande échelle.

Plongée profonde

Lorsqu'un LLM répond, cela fonctionne en deux étapes. Prefill lit l'intégralité de l'invite en même temps et crée le cache clé-valeur (KV) ; il s'agit d'une grosse rafale parallèle liée au calcul qui sature les unités mathématiques du GPU. Decode génère ensuite les jetons un par un, chaque étape lisant l’intégralité du cache KV – un filet de calcul léger, limité à la bande passante mémoire. Exécutés ensemble, un long pré-remplissage bloque le décodage de tout le monde (blocage en tête de ligne) et le regroupement des deux crée des interférences. La désagrégation place le pré-remplissage sur un pool GPU et le décodage sur un autre, transférant le cache KV entre eux via des interconnexions rapides comme NVLink ou InfiniBand. Chaque pool est réglé et mis à l'échelle indépendamment, améliorant ainsi le bon rendement, lissant la latence de queue et permettant aux opérateurs d'atteindre simultanément des objectifs serrés de délai d'obtention du premier jeton et de temps par jeton de sortie.

Aperçu technique

Les deux phases diffèrent par leurs goulots d'étranglement. Prefill traite tous les jetons d'invite en parallèle, de sorte que ses FLOP évoluent en fonction de la longueur de l'invite et qu'il maximise les cœurs de tenseur. Le décodage est autorégressif : chaque nouveau jeton nécessite une passe avant qui relit l'intégralité du cache KV de HBM, de sorte que le débit est limité par la bande passante mémoire et non par le calcul. La désagrégation exploite cela en dimensionnant, en regroupant et même en choisissant un parallélisme différent pour chaque pool, puis en envoyant le cache KV des nœuds de pré-remplissage aux nœuds de décodage.

Maîtriser le pré-remplissage et le décodage désagrégés

Une architecture de service qui divise l'inférence de grands modèles de langage en deux phases distinctes (pré-remplissage et décodage) et les exécute sur différents pools de GPU. C'est important car ces deux phases ont des appétits matériels opposés, et les forcer sur les mêmes machines gaspille de la capacité et nuit à la latence. Le pré-remplissage et le décodage désagrégés sont un élément technique qui affecte la qualité du modèle, le coût de l'infrastructure, la latence et la fiabilité à grande échelle. Pour acquérir une compréhension approfondie, traitez le pré-remplissage et le décodage désagrégés comme un modèle opérationnel et non comme une fonctionnalité unique : définissez les résultats souhaités, clarifiez les hypothèses et séparez ce que le système peut faire de manière fiable de ce qui nécessite encore un jugement d'expert.

Dans la pratique, des équipes solides utilisant le pré-remplissage désagrégé et le service de décodage optimisent les choix d'architecture, de données et d'infrastructure en fonction de la fiabilité et des coûts. Ils documentent des critères de réussite explicites, testent par rapport à des données et des flux de travail réalistes et itèrent en fonction des modèles d'échec observés plutôt que des victoires de référence ponctuelles. C’est là que la compréhension théorique se transforme en capacité durable au niveau des produits, des politiques et des opérations.

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années. Dans le même temps, l’optimisation d’un benchmark peut masquer des faiblesses plus larges du système. L'approche la plus résiliente consiste à combiner vitesse d'expérimentation et discipline de gouvernance : exécuter des projets pilotes, capturer des preuves, publier des journaux de décision et mettre à jour en permanence les protections à mesure que le comportement du modèle, les attentes des utilisateurs et les exigences réglementaires évoluent.

Impact stratégique

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années.

Les décisions en matière d'architecture déterminent les performances et les coûts d'exploitation pendant des années. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente.

La formation technique aide les équipes à choisir la bonne pile, pas seulement la plus récente. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production.

De meilleurs choix d’ingénierie réduisent les incidents de fiabilité en production. Dans les déploiements de haute qualité, cela se traduit par des règles de fonctionnement mesurables, des limites de propriété et des rituels d'examen récurrents afin que les équipes puissent accroître la confiance au lieu de l'ambiguïté.

L'avenir du service de pré-remplissage et de décodage désagrégé

Attendez-vous à ce que la désagrégation devienne un défaut dans les piles de production. Des systèmes comme DistServe, Splitwise et Mooncake l'ont popularisé, et vLLM et NVIDIA Dynamo proposent désormais des modes désagrégés. La recherche pousse à l'optimisation du transfert de cache KV, au regroupement et à la réutilisation du cache entre les requêtes, au rééquilibrage dynamique des ratios de pré-remplissage/décodage en cas de déplacement du trafic et à une intégration plus étroite avec la mise en cache des préfixes et le pré-remplissage fragmenté. À mesure que les fenêtres contextuelles se comptent en millions de jetons, la séparation de ces phases devient de plus en plus essentielle pour un service rentable et à faible latence.

Mise en œuvre dans le monde réel

Un assistant de discussion achemine les invites de documents longues vers un cluster de pré-remplissage gourmand en calcul, puis diffuse les réponses à partir d'un cluster de décodage à mémoire optimisée pour maintenir une latence de frappe fluide.

NVIDIA Dynamo et vLLM permettent aux opérateurs de déployer des groupes de travail de pré-remplissage et de décodage distincts afin qu'une rafale de longues invites ne gèle pas les générations en cours.

Mooncake (utilisé par Kimi de Moonshot AI) désagrège le pré-remplissage et le décodage et ajoute un pool de cache KV distribué pour réduire le recalcul d'invite redondant à grande échelle.

Un service de complétion de code consacre un petit pool de pré-remplissage aux invites courtes et un grand pool de décodage, car la plupart des coûts proviennent de la diffusion en continu de nombreux jetons de sortie.

Modèles de mise en œuvre

Le pré-remplissage et le décodage désagrégés en pratique

Un assistant de discussion achemine les invites de documents longues vers un cluster de pré-remplissage gourmand en calcul, puis diffuse les réponses à partir d'un cluster de décodage à mémoire optimisée pour maintenir une latence de frappe fluide.

Un assistant de discussion achemine les invites de documents longs vers un cluster de pré-remplissage gourmand en calcul, puis diffuse les réponses à partir d'un cluster de décodage à mémoire optimisée pour maintenir une latence de frappe fluide. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, maintiennent un chemin d'escalade humaine pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le pré-remplissage et le décodage désagrégés en pratique

NVIDIA Dynamo et vLLM permettent aux opérateurs de déployer des groupes de travail de pré-remplissage et de décodage distincts afin qu'une rafale de longues invites ne gèle pas les générations en cours.

NVIDIA Dynamo et vLLM permettent aux opérateurs de déployer des groupes de travail de pré-remplissage et de décodage distincts afin qu'une rafale de longues invites ne gèle pas les générations en cours. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, maintiennent un chemin d'escalade humain pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le pré-remplissage et le décodage désagrégés en pratique

Mooncake (utilisé par Kimi de Moonshot AI) désagrège le pré-remplissage et le décodage et ajoute un pool de cache KV distribué pour réduire le recalcul d'invite redondant à grande échelle.

Mooncake (utilisé par Kimi de Moonshot AI) désagrège le pré-remplissage et le décodage et ajoute un pool de cache KV distribué pour éliminer les recalculs rapides redondants à grande échelle. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, maintiennent un chemin d'escalade humain pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Le pré-remplissage et le décodage désagrégés en pratique

Un service de complétion de code consacre un petit pool de pré-remplissage aux invites courtes et un grand pool de décodage, car la plupart des coûts proviennent de la diffusion en continu de nombreux jetons de sortie.

Un service de complétion de code consacre un petit pool de pré-remplissage aux invites courtes et un grand pool de décodage, car la plupart des coûts proviennent du streaming de nombreux jetons de sortie. Les équipes obtiennent généralement de meilleurs résultats lorsqu'elles définissent des seuils de qualité à l'avance, conservent un chemin d'escalade humain pour les cas extrêmes et suivent à la fois les gains de productivité et les coûts d'erreur au fil du temps.

Risques et garde-fous

!

L’optimisation d’un benchmark peut masquer des faiblesses plus larges du système.

!

Les coûts d’infrastructure et de maintenance sont souvent sous-estimés.

!

Les lacunes en matière de sécurité et d’observabilité peuvent se creuser à mesure que les systèmes deviennent plus complexes.

Feuille de route de mise en œuvre

1

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre.

Définissez les objectifs de latence, de qualité et de coût avant la mise en œuvre. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

2

Benchmark dans des conditions de charge et de données réalistes.

Benchmark dans des conditions de charge et de données réalistes. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

3

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur.

Surveillance des instruments pour détecter les erreurs, la dérive et l'impact sur l'utilisateur. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

4

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle.

Préparez les chemins de restauration et de réponse aux incidents avant la mise à l’échelle. Traitez chaque étape comme une porte de preuves : si les critères ne sont pas remplis, suspendez le déploiement, comblez l'écart, puis étendez l'utilisation.

Continuez à explorer