GHID tehnic

Servire dezagregată de precompletare și decodare

O arhitectură de servire care împarte inferența modelului de limbaj mare în două faze separate — precompletare și decodare — și le rulează pe grupuri diferite de GPU.

Prezentare generală

O arhitectură de servire care împarte inferența modelului de limbaj mare în două faze separate — precompletare și decodare — și le rulează pe grupuri diferite de GPU. Contează pentru că aceste două faze au apetite hardware opuse, iar forțarea lor pe aceleași mașini irosește capacitatea și dăunează latenței.

Servirea dezagregată de precompletare și decodare este un bloc tehnic care afectează calitatea modelului, costul infrastructurii, latența și fiabilitatea la scară.

Deep Dive

Când un LLM răspunde, funcționează în două etape. Precompletarea citește întreaga solicitare simultan și construiește memoria cache-cheie-valoare (KV); aceasta este o rafală mare, paralelă, legată de calcul, care saturează unitățile matematice ale GPU-ului. Decodificarea generează apoi token-uri pe rând, fiecare pas citind întregul cache KV - un proces de calcul ușor legat de lățimea de bandă a memoriei. Rulați împreună, o pre-umplere lungă blochează decodarea tuturor (blocarea capului de linie), iar gruparea celor două creează interferențe. Dezagregarea pune precompletarea unui grup de GPU și decodifică pe altul, transferând memoria cache KV între ele prin interconexiuni rapide precum NVLink sau InfiniBand. Fiecare grup este reglat și scalat în mod independent, îmbunătățind randamentul bun, netezind latența finală și permițând operatorilor să atingă ținte strânse de timp până la primul token și timp pe jeton de ieșire simultan.

Perspectivă tehnică

Cele două faze diferă prin blocajul lor. Prefill procesează toate jetoanele prompt în paralel, astfel încât FLOP-urile sale se scalează cu lungimea promptului și maximizează nucleele tensorului. Decodarea este autoregresivă: fiecare token nou are nevoie de o trecere înainte care recitește întregul cache KV de la HBM, astfel încât debitul este determinat de lățimea de bandă a memoriei, nu de calcul. Dezagregarea exploatează acest lucru prin dimensionarea, gruparea și chiar alegerea unui paralelism diferit pentru fiecare grup, apoi trimiterea cache-ului KV de la lucrătorii de precompletare pentru a decoda lucrătorii.

Stăpânirea pre-completare și decodare dezagregate

O arhitectură de servire care împarte inferența modelului de limbaj mare în două faze separate — precompletare și decodare — și le rulează pe grupuri diferite de GPU. Contează pentru că aceste două faze au apetite hardware opuse, iar forțarea lor pe aceleași mașini irosește capacitatea și dăunează latenței. Servirea dezagregată de precompletare și decodare este un bloc tehnic care afectează calitatea modelului, costul infrastructurii, latența și fiabilitatea la scară. Pentru a construi o înțelegere profundă, tratați Precompletarea și Servirea de decodificare dezagregată ca un model de operare, nu o singură caracteristică: definiți rezultatele dorite, clarificați ipotezele și separați ceea ce poate face sistemul în mod fiabil de ceea ce necesită încă o judecată expertă.

În practică, echipele puternice care utilizează Precompletarea dezagregată și Servirea de decodare optimizează opțiunile de arhitectură, date și infrastructură în raport cu fiabilitatea și costul. Aceștia documentează criteriile de succes explicite, testează în funcție de date și fluxuri de lucru realiste și repetă pe baza modelelor de eșec observate, mai degrabă decât a câștigurilor de referință unice. Aici înțelegerea teoretică se transformă în capacitate durabilă pentru produse, politici și operațiuni.

Deciziile de arhitectură generează performanța și costurile de operare de ani de zile. În același timp, optimizarea unui benchmark poate ascunde slăbiciuni mai largi ale sistemului. Cea mai rezistentă abordare este combinarea vitezei de experimentare cu disciplina de guvernare: desfășurați pilot, capturați dovezi, publicați jurnalele de decizie și actualizați continuu măsurile de protecție pe măsură ce comportamentul modelului, așteptările utilizatorilor și cerințele de reglementare evoluează.

Impact strategic

Deciziile de arhitectură generează performanța și costurile de operare de ani de zile.

Deciziile de arhitectură generează performanța și costurile de operare de ani de zile. În implementările de înaltă calitate, acest lucru se traduce în reguli de operare măsurabile, limite de proprietate și ritualuri de revizuire recurente, astfel încât echipele să poată mări încrederea în loc să crească ambiguitatea.

Educația tehnică ajută echipele să aleagă stiva potrivită, nu doar cea mai nouă.

Educația tehnică ajută echipele să aleagă stiva potrivită, nu doar cea mai nouă. În implementările de înaltă calitate, acest lucru se traduce în reguli de operare măsurabile, limite de proprietate și ritualuri de revizuire recurente, astfel încât echipele să poată mări încrederea în loc să crească ambiguitatea.

Opțiuni de inginerie mai bune reduc incidentele de fiabilitate în producție.

Opțiuni de inginerie mai bune reduc incidentele de fiabilitate în producție. În implementările de înaltă calitate, acest lucru se traduce în reguli de operare măsurabile, limite de proprietate și ritualuri de revizuire recurente, astfel încât echipele să poată mări încrederea în loc să crească ambiguitatea.

Viitorul servirii dezagregate de precompletare și decodare

Așteptați-vă ca dezagregarea să devină implicită în stivele de producție. Sisteme precum DistServe, Splitwise și Mooncake l-au popularizat, iar vLLM și NVIDIA Dynamo oferă acum moduri dezagregate. Cercetările promovează optimizările transferului KV-cache, poolingul și reutilizarea cache-ului între solicitări, reechilibrarea dinamică a rapoartelor de pre-completare/decodare în condiții de schimbare a traficului și o integrare mai strânsă cu memorarea în cache a prefixelor și pre-completarea fragmentată. Pe măsură ce ferestrele de context cresc în milioane de jetoane, separarea acestor faze devine din ce în ce mai esențială pentru difuzarea rentabilă, cu latență redusă.

Implementare în lumea reală

Un asistent de chat direcționează solicitările de documente lungi către un cluster de pre-completare cu un număr mare de calculatoare, apoi transmite răspunsuri dintr-un cluster de decodare optimizat pentru memorie pentru a menține latența de tastare fără probleme.

NVIDIA Dynamo și vLLM le permit operatorilor să implementeze grupuri separate de precompletare și decodare de lucrători, astfel încât o explozie de solicitări lungi să nu înghețe generațiile în curs.

Mooncake (folosit de Kimi de la Moonshot AI) dezagregează pre-completarea și decodifică și adaugă un grup de cache KV distribuit pentru a reduce recalcularea promptă redundantă la scară.

Un serviciu de completare a codului dedică un mic grup de precompletare pentru solicitări scurte și un grup mare de decodare, deoarece majoritatea costurilor provin din transmiterea în flux a multor jetoane de ieșire.

Modele de implementare

Servirea dezagregată de precompletare și decodare în practică

Un asistent de chat direcționează solicitările de documente lungi către un cluster de pre-completare cu un număr mare de calculatoare, apoi transmite răspunsuri dintr-un cluster de decodare optimizat pentru memorie pentru a menține latența de tastare fără probleme.

Un asistent de chat direcționează solicitările de documente lungi către un cluster de precompletare cu o capacitate de calcul, apoi transmite răspunsuri dintr-un cluster de decodare optimizat pentru memorie pentru a menține latența de tastare fără probleme.

Servirea dezagregată de precompletare și decodare în practică

NVIDIA Dynamo și vLLM le permit operatorilor să implementeze grupuri separate de precompletare și decodare de lucrători, astfel încât o explozie de solicitări lungi să nu înghețe generațiile în curs.

NVIDIA Dynamo și vLLM le permit operatorilor să implementeze grupuri separate de precompletare și decodare, astfel încât o serie de solicitări lungi să nu înghețe generațiile în curs.

Servirea dezagregată de precompletare și decodare în practică

Mooncake (folosit de Kimi de la Moonshot AI) dezagregează pre-completarea și decodifică și adaugă un grup de cache KV distribuit pentru a reduce recalcularea promptă redundantă la scară.

Mooncake (folosit de Kimi de la Moonshot AI) dezagregează pre-completarea și decodifică și adaugă un grup de cache KV distribuit pentru a reduce recalcularea promptă redundantă la scară.

Servirea dezagregată de precompletare și decodare în practică

Un serviciu de completare a codului dedică un mic grup de precompletare pentru solicitări scurte și un grup mare de decodare, deoarece majoritatea costurilor provin din transmiterea în flux a multor jetoane de ieșire.

Un serviciu de completare a codului dedică un mic grup de precompletare pentru solicitări scurte și un grup mare de decodare, deoarece majoritatea costurilor provin din transmiterea în flux a multor jetoane de ieșire.

Riscuri și balustrade

!

Optimizarea unui punct de referință poate ascunde slăbiciunile mai largi ale sistemului.

!

Costurile de infrastructură și întreținere sunt adesea subestimate.

!

Lacunele de securitate și observabilitate pot crește pe măsură ce sistemele devin mai complexe.

Foaia de parcurs de implementare

1

Definiți obiectivele de latență, calitate și cost înainte de implementare.

Definiți obiectivele de latență, calitate și cost înainte de implementare. Tratați fiecare pas ca pe o poartă de dovezi: dacă criteriile nu sunt îndeplinite, întrerupeți lansarea, închideți decalajul și abia apoi extindeți utilizarea.

2

Benchmark în condiții realiste de încărcare și date.

Benchmark în condiții realiste de încărcare și date. Tratați fiecare pas ca pe o poartă de dovezi: dacă criteriile nu sunt îndeplinite, întrerupeți lansarea, închideți decalajul și abia apoi extindeți utilizarea.

3

Monitorizarea instrumentelor pentru erori, deriva și impactul utilizatorului.

Monitorizarea instrumentelor pentru erori, deriva și impactul utilizatorului. Tratați fiecare pas ca pe o poartă de dovezi: dacă criteriile nu sunt îndeplinite, întrerupeți lansarea, închideți decalajul și abia apoi extindeți utilizarea.

4

Pregătiți căile de retragere și răspuns la incident înainte de scalare.

Pregătiți căile de retragere și răspuns la incident înainte de scalare. Tratați fiecare pas ca pe o poartă de dovezi: dacă criteriile nu sunt îndeplinite, întrerupeți lansarea, închideți decalajul și abia apoi extindeți utilizarea.

Continuați să explorați