Tiered KV Cache suurille kielimalleille Amazon SageMaker HyperPodissa Curvinen kanssa
Amazon Web Services
Meta
DeepSeek
vLLM
Tämä artikkeli kuvaa tiered KV cache -arkkitehtuurin Amazon SageMaker HyperPodissa, joka laajentaa cache-hierarkian GPU:sta CPU:lle ja jaettuun NVMe-levypooliin Curvine-hajautetun cache-tiedostojärjestelmän avulla. Tämä mahdollistaa KV cache -tietojen uudelleenkäytön eri replikoiden välillä, saavuttaen jopa 100 prosentin cross-Pod cache-osumaprosentin ja jopa 2,7-kertaisen parannuksen TTFT:ssä (time to first token). Ratkaisu vähentää infrastruktuurikustannuksia, koska työmäärät voidaan ajaa edullisemmilla G6e-instansseilla P5-instanssien sijaan.
Suurten kielimallien (LLM) inferenssin skaalaaminen pakottaa tyypillisesti KV-välimuistin kompromissiin: joko maksetaan ylisuurista GPU-instansseista kasvavan KV-välimuistin vuoksi tai hyväksytään hidas aika ensimmäiseen tokeniin (TTFT), kun identtiset kehotteet lasketaan uudelleen joka pyynnössä. Tiimeille, jotka käyttävät laajaa valikoimaa julkisesti saatavilla olevia perusmalleja (FM), kuten Qwen, Llama, DeepSeek ja muita, eri liiketoimintalinjojen päätepisteissä, Retrieval Augmented Generation (RAG) -putkissa tai monivuoroisissa keskustelusovelluksissa, tämä kompromissi tarkoittaa suoraan korkeampia infrastruktuurikustannuksia ja heikentynyttä käyttökokemusta. Perimmäinen syy on, että generoinnin aikana vLLM tallentaa huomion avaimet ja arvot jokaiselle tokenille KV-välimuistiin, ja etuliitevälimuisti käyttää tätä välimuistia uudelleen pyynnöissä, joilla on yhteisiä alkutokeneita. Kustannustehokkailla instansseilla, kuten ml.g6e.4xlarge (48 Gt GPU:ta kohti), muisti, joka jää etuliitevälimuistille, on rajallinen, ja välimuistin osumataso laskee pitkillä kehotteilla, identtiset järjestelmäkehotteet esitäytetään joka pyynnössä, ja vaakasuunnassa skaalatut vLLM-replikat ylläpitävät eristettyjä välimuisteja. Ratkaisu rakentaa kolmitasoisen välimuistihierarkian: L0 (GPU-etuliitevälimuisti), L1 (CPU-muistin offload) ja L2 (jaettu hajautettu NVMe-allas Curvinen kautta). L0 on vLLM:n natiivi sivutettu huomiokerros, L1 käyttää LMCachea siirtämään poistetut GPU-lohkot isäntä-DRAMiin, ja L2 yhdistää paikalliset NVMe-asemat jaettuun nimiavaruuteen Curvinen kautta, joka on liitetty ReadWriteMany-PVC:nä jokaiseen inferenssi-Podiin. HyperPodin älykäs reititys ohjaa pyynnöt replikoihin, joilla on todennäköisimmin asiaankuuluvat KV-lohkot, ja strategioihin kuuluvat etuliitetietoinen, KV-tietoinen ja round-robin. Nettovaikutus: vain täydellisellä ohituksella järjestelmä esitäyttää alusta alkaen, mikä vähentää merkittävästi TTFT:tä työmäärillä, joissa on kohtalainen tai korkea kehotteiden päällekkäisyys. Testikäyttöönotossa tämä saavutti jopa 100 %:n ristiin-Pod-välimuistin osumatason, jopa 2,7-kertaisen TTFT-parannuksen ja noin 56 ms:n ristiin-solmun L2-lukuvasteen noin 1 900 tokenin kehotteelle. Tällä arkkitehtuurilla työmäärät, jotka aiemmin vaativat P5-instansseja, voivat toimia halvemmilla G6e-instansseilla, mikä vähentää päätepistekohtaisia kustannuksia. Toteutus vaatii SageMaker HyperPodin, jossa on Tiered Storage käytössä, EKS-klusterin sekä Inference Operatorin ja Curvinen asennuksen. Artikkeli käy läpi viisi vaihetta: Tiered Storagen käyttöönotto, Inference Operatorin ja riippuvuuksien asennus, Curvinen asennus, Inference Operatorin paikkaus tiedostopohjaista L2:ta varten sekä suorituskykytestaus.
Lähde: AWS ML blog —
Alkuperäinen
