Přeskočit na obsah
Infrastruktura 3 min čtení

Ray 2.58 zohledňuje KV cache při směrování dotazů mezi replikami

Ray 2.58 dokončil směrování požadavků podle toho, kolik jejich prefixu už leží v KV cache jednotlivých replik. Router převádí text na tokeny jednou, sleduje bloky v paměti GPU i RAM a při výběru započítá i rozdělanou práci.

Síťový přepínač a optické moduly v serverovém stojanu
Směrování požadavků se v datovém centru odehrává mezi mnoha stroji. Foto: LSST Project/NSF/AURA, Wikimedia Commons (CC BY 4.0)

Ray vydal 23. srpna verzi 2.58.0 a v ní dokončil směrování požadavků pro jazykové modely podle KV cache a počtu tokenů. Funkce byla v předchozí verzi teprve náhledem. Hotové balíčky se stejným číslem se objevily také v registru PyPI pro Python 3.10 až 3.14.

Router hledá už spočítaný začátek dotazu

KV cache ukládá klíče a hodnoty pozornosti, které model spočítal při čtení vstupu. Když několik požadavků začíná stejným systémovým pokynem, dokumentem nebo historií chatu, může server společný začátek znovu použít. Ušetří tím část fáze prefill, tedy zpracování vstupu před prvním vygenerovaným tokenem.

V clusteru je ale podstatné, která replika příslušné bloky drží. Obyčejné kruhové směrování může poslat pokračování rozhovoru na jiný stroj a výhoda cache zmizí. Ray proto nejdřív převede text na tokeny přímo ve vstupní replice LLMRouter. Změna #64642 odstranila dřívější dotaz na rozhraní /tokenize jedné modelové repliky, který ležel v kritické cestě každého požadavku.

Vybraný server už tentýž text nemusí převádět podruhé. Router mu pošle identifikátory tokenů vedlejším kanálem přes ZMQ a běžný HTTP požadavek nese jen klíč. Návrh #65095 tuhle cestu popisuje jako best effort: pokud tokeny nedorazí včas nebo kanál není dostupný, vLLM provede tokenizaci obvyklým způsobem. Výpadek pomocné optimalizace tedy nemá shodit samotné generování.

Každý vstupní router potřebuje stejný obraz zátěže

Jedna směrovací replika by se s růstem provozu stala úzkým hrdlem. Když jich ale běží víc, každá původně viděla jen požadavky, které sama odeslala. Změna #64949 proto posílá všem vstupním replikám události o přidání požadavku, dokončení prefillingu, průběhu generování a ukončení. Jedna nedostupná replika ostatní nezastaví; chyba jejího doručení se zapíše jako varování.

Samotný výběr serveru a rezervace místa proběhnou v jednom atomickém kroku uvnitř routeru. Teprve potom se rezervace asynchronně rozešle jeho protějškům. Autoři změny #65010 tím řeší shlukování požadavků: dva routery by podle stejného starého snímku zátěže mohly současně vybrat tutéž repliku. Nejde však o globální zámek. Ostatní routery dostanou nový stav s krátkým zpožděním, takže jejich pohled je nakonec shodný, ne okamžitě totožný.

Do zásahu cache se počítá i RAM

Nová verze nevidí jen bloky v paměti GPU. Změna #65063 přidala události pro bloky odložené do paměti procesoru. Směrovač tak může poslat požadavek na repliku, která společný prefix nemá právě na GPU, ale dovede ho z RAM načíst. Zásah v RAM není stejně rychlý jako zásah v GPU; systém pouze ví, kde data leží, a může tuto informaci zahrnout do skóre spolu s rozpracovanou zátěží.

Vydání nedává jedno číslo zrychlení

Poznámky k Ray 2.58 neuvádějí přenositelné měření latence ani propustnosti. Jednotlivé návrhy obsahují grafy z vývojových zkoušek, ale ty nestačí k tvrzení, že každé nasazení zrychlí o určité procento. Výsledek závisí na tom, jak často se začátky požadavků opakují, kolik cache se vejde na GPU a jak drahé je načtení z RAM.

Smysl tohoto směru potvrzuje nezávislá práce Preble. Její autoři na dvou otevřených modelech a skutečných vzorcích provozu společně optimalizovali opakované prefixy a rozdělení výpočetní zátěže. Je to jiný systém než Ray a jeho výsledky nelze na verzi 2.58 přenést. Ukazuje ale přesně tentýž kompromis: replika s největší shodou v cache nemusí být nejlepší volbou, pokud už má plnou frontu.

Pro provozovatele je proto důležitější nový přehled o umístění bloků než slibovaná násobná zrychlení. Ray 2.58 spojuje stav cache na GPU a v RAM se stavem rozdělaných požadavků. Teprve měření na vlastním provozu ukáže, zda opakovaných prefixů přichází dost na to, aby složitější směrování přineslo úsporu.

Zdroje

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Infrastruktura

    Cisco přidá do AI infrastruktury rackové servery Supermicro

    Sestava spojí výpočetní systémy, síťové přepínače a kapalinové chlazení. Do prodeje má jít v říjnu, takže zatím stojí hlavně na slibu tří dodavatelů.

  2. Infrastruktura

    Alibaba prodává nové akcie za 10,2 miliardy dolarů na AI

    Alibaba ocenila 710 milionů nových akcií na 112,70 hongkongského dolaru za kus. Celý čistý výnos chce vložit do svého řetězce pro umělou inteligenci, zejména do…

  3. Infrastruktura

    Kubeflow splnil nejvyšší nároky CNCF, bezstarostný provoz AI to neslibuje

    Kubeflow postoupil po bezpečnostním auditu a kontrole správy projektu do nejvyšší fáze CNCF. Označení graduated snižuje riziko opuštěného projektu, negarantuje však…

  4. Infrastruktura

    Stripe se dohodl na koupi zprostředkovatele OpenRouter, cenu neuvádí ani jedno oznámení

    Stripe se 19. srpna 2026 dohodl na koupi OpenRouteru, tedy brány, přes kterou vývojáři posílají dotazy modelům desítek výrobců. Cenu neuvádí ani jedno ze dvou oznámení;…