Ollama eller llama.cpp: standardinställningen kan avgöra om modellen ryms

|Författare: QUASA:s redaktion|5 min läsning
Ollama eller llama.cpp: standardinställningen kan avgöra om modellen ryms

Välj Ollama om du vill starta en lokal modell med ett färdigt API och låta verktyget sköta modellhanteringen. Välj llama.cpp om du vill ange modellfil och körparametrar mer direkt. På en dator med begränsat minne kan verktygens standardinställningar avgöra om samma modell går att ladda.

För en rättvis hastighetsjämförelse räcker det därför inte att välja samma modellnamn. Använd samma fil och jämförbar kontextlängd, parallellitet och antal trådar. Annars mäter du även skillnader i hur Ollama och llama-server har konfigurerats, vilket kan påverka både minnesbehov och väntan på första token.

Installation och API: vad får du färdigt?

Ollama ger en kort väg från installerad modell till lokal server. Ollamas API-introduktion anger lokala adresser för både det egna API:t och ett OpenAI-kompatibelt gränssnitt. Lokal inferens kräver ingen API-nyckel; molnanrop är en separat tjänst som kräver nyckel. Det gör Ollama praktiskt när en applikation snabbt behöver kunna anropa en modell på samma dator.

OpenAI-kompatibiliteten omfattar ett urval av API:t, inte varje funktion i en OpenAI-klient. I Ollamas kompatibilitetsdokumentation framgår också att en klient kan kräva ett värde i nyckelfältet trots att den lokala servern ignorerar det. För en befintlig applikation är den avgörande frågan därför vilka anrop den faktiskt gör.

llama.cpp erbjuder också en lokal HTTP-server med OpenAI-kompatibla anrop. llama.cpp:s serverdokumentation beskriver både API:et och flaggor för modellfil, kontext, parallella platser och trådar. API-behovet utesluter alltså inte llama.cpp. Skillnaden ligger främst i hur mycket av modellens hämtning, laddning och serverkonfiguration du vill hantera själv.

Vad CPU-testet visar om fart, minne och kallstart

I AI Tool Labs CPU-mätning användes samma Q4_K_M-kvantiserade GGUF-filer för Qwen 2.5 1.5B och Llama 3.2 3B i Ollama 0.40.3 och llama.cpp b11554. Datorn hade två CPU-kärnor och ingen GPU. Med Ollamas motsvarande serverflaggor och två trådar blev medianen för generering 14,62 mot 14,69 token per sekund med Qwen och 6,81 mot 7,06 med Llama, i ordningen Ollama och llama-server. Varje konfiguration fick en uppvärmningskörning följd av fem uppmätta körningar.

Med standardvärden ändrades minnesutfallet betydligt. Den testade llama-server-versionen reserverade fyra parallella platser och en stor gemensam kontextcache; körningen med Llama 3.2 3B stoppades under en pålagd minnesgräns på 6 GB. Ollamas inferensprocess mättes till 2 768 MiB med samma modellfil. Det är ett konkret exempel på att en modell kan fungera i den ena standardkonfigurationen men inte i den andra, trots att den underliggande modellfilen är densamma.

Testet skilde också mellan varm generering och laddning från oladdat läge. När modellfilen redan fanns i operativsystemets filcache tog Qwen-körningen 2,68–2,74 sekunder till första token med Ollama och 2,16–2,26 sekunder med llama-server. För en modell som ligger kvar laddad mellan anrop spelar den skillnaden mindre roll än för en modell som ofta måste startas om. Siffrorna gäller denna bärbara dator, dessa filer och de redovisade versionerna; de är ingen generell rangordning för GPU-körning.

Varför kontext och parallellitet ändrar minnesbehovet

En längre kontext ger modellen tillgång till mer av en prompt eller samtalshistorik, men kräver också mer minne. Ollamas dokumentation om kontextlängd anger att standardvalet beror på tillgängligt grafikminne och att större kontext ökar minnesbehovet. En kortare kontext kan alltså hjälpa modellen att rymmas, samtidigt som den begränsar uppgifter med långa dokument eller omfattande historik.

Parallella serverplatser påverkar hur många förfrågningar som kan behandlas samtidigt och hur kontextutrymmet reserveras. I den publicerade CPU-körningen valde Ollama en kort kontext och en plats, medan den fristående serverns dåvarande standardvärden gav en betydligt större reservation. Den aktuella serverdokumentationen anger däremot automatiskt val av antal platser och en funktion som kan anpassa osatta parametrar till tillgängligt minne. Räkna därför inte med att ett uppmätt standardvärde från en viss byggversion gäller i en annan.

Även sättet att läsa in modellfilen påverkar minnestalet. När llama-server i testet använde minnesmappning räknades filstödda sidor in i processens uppmätta minne; sådana sidor kan operativsystemet frigöra under minnestryck. Med samma inläsningsläge som Ollama hamnade processernas uppmätta minne nära varandra. För frågan om modellen faktiskt ryms bör du därför väga ett enskilt minnestal mot laddningens högsta förbrukning och om processen klarar datorns minnesgräns.

Så gör du jämförelsen användbar på din dator

Utgå från exakt samma GGUF-fil, inte bara samma modellnamn eller kvantiseringstyp. Ange kontextlängd, antal parallella platser, CPU-trådar och eventuell GPU-avlastning i båda körningarna. Dokumentera även versionerna: Ollama kan innehålla en annan byggversion av llama.cpp än den fristående installationen. Om målet i stället är att jämföra verktygen direkt efter installation ska deras standardvärden lämnas orörda och redovisas som en del av resultatet.

Skicka samma prompt och håll svarslängd, temperatur och chattmall lika. En chattmall kan lägga till text som inte syns i din ursprungliga prompt, medan en sparad prompt kan göra senare anrop billigare än det första. Skilj därför på tiden för promptbearbetning, genererade token per sekund och tiden från en oladdad modell till första token. Flera körningar behövs för att små skillnader inte ska misstolkas som en varaktig fördel.

För snabb lokal API-start är Ollama ett rimligt förstaval. Om kontexten måste vara lång eller flera förfrågningar ska köras samtidigt behöver dess minnesinställningar ändå anpassas till uppgiften. Välj llama.cpp när en bestämd modellfil, explicita serverflaggor eller fin kontroll över inläsningen väger tyngre. På en dator med knappt arbetsminne bör kontext och parallellitet sättas medvetet innan du bedömer om modellen får plats; det publicerade CPU-testet ger inget stöd för att förvänta sig en stor skillnad i genereringshastighet när körningarna väl har matchats.

Läs också:

Dela:

Prenumerera på vårt nyhetsbrev

Få de senaste nyheterna om Web3, AI och krypto direkt i din inkorg.

0