Hopp til innholdet
Norsk journal om kunstig intelligens 254 artikler Oslo --:--
TokenPrat
[ Verktøy ] 2 min lesetid Av TokenPrat-redaksjonen

LMCache: Slik slipper språkmodellen å lese den samme lange prompten om og om igjen

Bruker du vLLM med lange systemprompter, RAG eller agenter, regner modellen ut det samme på nytt ved hver forespørsel. LMCache lagrer mellomregningen i RAM og på disk, og kan kutte ventetiden før svaret starter kraftig. Men bare hvis promptene dine faktisk gjentar seg.

Bibliotekskap der flere skuffer lyser innenfra

Problemet: samme arbeid, gang på gang

Når en språkmodell leser en prompt, regner den ut en mellomregning for hvert token – KV-cachen. Vi forklarte den i artikkelen om DeepSeek V4.1 Flash, som er bygget for å gjøre den mindre. Det er denne innlesingen som gjør at du må vente før de første ordene kommer.

I mange oppsett er store deler av prompten den samme hver gang: en lang systemprompt, et dokument du stiller flere spørsmål om, eller en agent som sender hele samtalehistorikken på nytt for hvert steg. vLLM har allerede innebygd gjenbruk av starten på prompten, men den holder cachen bare i grafikkortets minne. Når det fylles opp, eller serveren startes på nytt, forsvinner den – og modellen må regne alt fra bunnen igjen.

Hva LMCache gjør

LMCache er et lag mellom vLLM og lagringen som flytter KV-cachen ut av grafikkortet når det trengs: først til vanlig RAM, så til lokal SSD, og i større oppsett til delt lagring som Redis eller S3. Når den samme teksten dukker opp igjen, hentes mellomregningen fram i stedet for å regnes ut på nytt. Den kan også gjenbruke deler som ikke står først i prompten, gjennom en teknikk de kaller CacheBlend.

Prosjektet er åpen kildekode under Apache 2.0, har nesten 12 000 stjerner på GitHub og er i bruk hos blant andre IBM og CoreWeave. Det støtter grafikkort fra både Nvidia og AMD.

Hvor mye raskere?

Ifølge LMCache-teamets egen tekniske rapport får chat- og RAG-oppsett 3,7 til 6,8 ganger kortere tid før første token, og opptil 15 ganger høyere kapasitet. Med veldig lange prompter blir forskjellen størst: En systemprompt på 128 000 tokens kan gå fra rundt 11 sekunder til halvannet når mellomregningen allerede ligger klar.

Men det er en viktig forutsetning: Promptene må overlappe. Sender du helt unike forespørsler hver gang – klassifisering, embeddings, engangsspørsmål – får du ingen gevinst, og i verste fall litt ekstra arbeid.

Hvem bør bruke det?

LMCache gir mest mening hvis du kjører vLLM og har en av disse situasjonene:

  • En agent eller kodeassistent som sender lang historikk ved hvert steg.
  • RAG der mange spørsmål går mot de samme dokumentene.
  • En lang, fast systemprompt som alle forespørsler deler.
  • Flere vLLM-instanser som bør dele cache.

Bruker du Ollama eller LM Studio hjemme, er dette ikke for deg – de bygger på llama.cpp, som har sin egen prompt-cache. LMCache er laget for vLLM, og i noe grad SGLang.

Slik kommer du i gang

LMCache installeres med pip i samme miljø som vLLM:

pip install lmcache

Den enkleste varianten lagrer cachen i vanlig RAM. Du slår det på med miljøvariabler og et ekstra flagg til vLLM:

export LMCACHE_USE_EXPERIMENTAL=True
export LMCACHE_LOCAL_CPU=True
export LMCACHE_MAX_LOCAL_CPU_SIZE=20   # GB RAM til cache

vllm serve <modell> \
  --kv-transfer-config '{"kv_connector":"LMCacheConnectorV1","kv_role":"kv_both"}'

Vil du også bruke disk, finnes tilsvarende variabler for en lokal mappe og maksstørrelse. En rask NVMe-disk gir mest igjen.

To råd fra dem som har brukt det i drift: Lås versjonene av vLLM og LMCache sammen, fordi koblingen mellom dem endrer seg mellom utgivelser. Og mål før og etter – med din egen arbeidsmengde – i stedet for å stole på andres tall.

Om råteksten

Denne artikkelen startet som en generell oppfordring om å utforske åpne prosjekter på GitHub, med LMCache og OpenCV som eksempler. OpenCV er et over 20 år gammelt bibliotek for bildeanalyse, og ingen nyhet. LMCache derimot løser et konkret problem mange som kjører egne modeller faktisk har – derfor fikk den hele plassen.

Ressurser

Mer om

Alle →
Trekosser i pastellfarger satt sammen til et lite grensesnitt med hjul og glidebryter
· Verktøy

ChatGPT Intelligent UI: Svarene er ikke lenger tekst – slik bygger modellen grensesnittet mens den skriver

Siden 7. oktober har ChatGPT kunnet svare med knapper, skjemaer, diagrammer og små kalkulatorer i stedet for ren tekst. Det interessante er ikke at det ser pent ut, men hvordan det er løst: modellen skriver ikke kode, den setter sammen ferdige byggeklosser.

Hvitt VR-headset med kontroller på et bord, med en holografisk galakse svevende over
· Verktøy

Mario Galaxy i VR og PS5-spill på PC: Mennesker dekompilerer, AI bygger porten

En VR-versjon av Super Mario Galaxy for Meta Quest er skrevet hundre prosent av Claude. Et åpent prosjekt kjører PS5-spill på PC uten emulator. Men den harde jobben under, og de juridiske spørsmålene rundt, er fortsatt menneskenes.

Fargerike 3D-former som svever ut av en landingsside på en laptop
· Verktøy

3D på nettsiden uten å kunne Three.js: Spline v2 lar kodeagenten jobbe rett i scenen

Det er lettere enn noen gang å legge interaktiv 3D på en nettside. Spline v2 har fått sin egen AI-agent og en MCP-server som lar Claude Code, Cursor og Antigravity bygge og endre 3D-scener direkte. Men noen ting bør du vite før du fyller forsiden med flytende objekter.