Ollama cacher modellmetadata, halverer tid til første token
Hopp over GGUF-lesingen ved hver forespørsel: Ollama v0.32.15-rc1 cacher modellmetadata og kutter tid til første token kraftig.
Der Ollama tidligere brukte 995 millisekunder i snitt på å levere første token, bruker den nå 524 i utviklerens egen måling. Medianen faller enda skarpere, fra 552 til 284 millisekunder. Årsaken er ikke raskere inferens, men at serveren slutter å gjøre det samme arbeidet om igjen.
«Add a model metadata cache to reduce Ollama's per-request overhead» - utgivelsesnotatet for v0.32.15-rc1
Før endringen leste en chat- eller generate-forespørsel GGUF-metadataen flere ganger i hvert eneste inferenskall. I pull request 17752 på GitHub anslår bidragsyteren gaugarg-nv at dette alene kostet rundt 300 millisekunder per kall.
«Previously, a chat or generate request read GGUF metadata multiple time in every inference call.» - gaugarg-nv, pull request 17752
Løsningen cacher oppløst metadata og modellkapabiliteter, invaliderer automatisk når modellmanifestet endres, og bruker singleflight for å hindre at samtidige forespørsler laster den samme modellen parallelt. Cachen returnerer kopier per forespørsel slik at én forespørsel ikke kan mutere tilstand for en annen, og et duplisert GetModel-kall i planleggingen av runneren er fjernet. Endringen treffer generate, chat og embeddings.
Les tallene med et blikk på hva som ikke endret seg. Inter-token-latensen ligger på 9,49 mot 9,47 millisekunder før og etter, og gjennomstrømningen per bruker står stille rundt 105 tokens i sekundet. Gevinsten ligger utelukkende i oppstarten av forespørselen, ikke i selve dekodingen. Målingen er dessuten gjort av bidragsyteren selv med verktøyet aiperf mot qwen3.6:35b-a3b-mtp-q4_K_M, ti forespørsler og samtidighet 1. De to kjøringene fikk ulik inputlengde i snitt, 1338 mot 832 tokens, så sammenligningen er ikke perfekt kontrollert. Retningen er likevel troverdig når mekanismen er kjent arbeidsbesparelse.
Utgivelsen er en forhåndsversjon og inneholder fire endringer over v0.32.14: oppdatert llama.cpp, metadata-cachen, en MLX-oppdatering og et CI-triks. De to siste henger sammen. Ollama bærer midlertidig en upublisert patch fra mlx-c, og måtte føre den videre gjennom docker-byggestegene for at containerbyggene skulle fungere. Det er forklaringen på de to kryptiske utgivelsestitlene mange så i feeden.
Hva bør du gjøre?
- Vent på den stabile v0.32.15 hvis du kjører Ollama i produksjon. Dette er en rc, og v0.32.14 fra 15. august er nyeste stabile.
- Mål din egen gevinst med din egen modell. Effekten er størst når du sender mange korte forespørsler mot samme modell, og nær null når du kjører få og lange generasjoner.
- Sjekk om du har bygd egne omgåelser rundt kaldstart, som å holde modellen varm med jevnlige tomme kall. Med cachen på plass kan de være unødvendige.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.