
Frågan ”llama.cpp eller Ollama?” ställs ofta som om det gällde två konkurrerande modeller. Men modellen är densamma: en GGUF-fil som båda verktygen kan läsa. Det du väljer är hur mycket av lagret runt modellen du vill äga själv: vilket bygge som räknar, varifrån filen kommer, vilket API klienten pratar med, hur ofta programvaran byts ut och vem som håller tjänsten igång.
Står du i stället mellan Ollama och LM Studio som skrivbordsval finns den jämförelsen i Ollama eller LM Studio. Här handlar det om lagret under.
Motor och paket: hur de hänger ihop
llama.cpp beskriver sig som LLM-inferens i C/C++ med målet att köra modeller med minimal uppsättning på bred hårdvara. Projektet levererar flera verktyg. De två du möter först är en terminalchatt och en HTTP-server. README:ns snabbstart använder numera det samlade kommandot llama cli och llama serve efter installation via llama.app, medan serverns egen dokumentation och releasearkivens exempel använder llama-server.
Ollama lägger ett annat lager ovanpå: ett modellbibliotek du hämtar från med ollama pull, en Modelfile som binder ihop vikter, parametrar och systemprompt, en bakgrundstjänst och ett eget API. Ollamas README på GitHub listar llama.cpp under rubriken ”Supported backends”, och Windowsdokumentationen beskriver ett separat MLX-paket. Mer än så säger de källor vi har kontrollerat inte om hur arbetet fördelas. Räkna därför inte med att en nyhet i llama.cpp redan finns i din Ollama-version.
Beslutstabellen: fem frågor
| Fråga | Pekar mot llama.cpp | Pekar mot Ollama |
|---|---|---|
| Backend: vill du välja bygge själv? | Ja. Releasesidan har separata arkiv per backend, till exempel CPU, CUDA, Vulkan, ROCm, SYCL och OpenVINO för Windows, och du kan bygga själv med egna flaggor. | Nej. Installationen följer med GPU-bibliotek; på Windows packar du vid behov upp tilläggspaket för AMD eller MLX i samma katalog. |
| Modellkälla: var ligger filen? | GGUF direkt från Hugging Face med -hf, eller en lokal fil med -m. | Ollamas bibliotek, eller en egen GGUF som importeras via Modelfile. |
| API: vad förväntar sig klienten? | OpenAI-kompatibla vägar för chatt, responses och embeddings, Anthropic Messages samt serverns egna vägar. | Ollamas eget API under /api, plus OpenAI- och Anthropic-kompatibilitet. |
| Versionstakt: hur ofta vill du byta? | Numrerade byggen flera gånger per dag; du pinnar ett byggnummer. | Färre, versionsnumrerade utgåvor; appen på Windows och macOS laddar ner uppdateringar själv. |
| Drift: vem håller tjänsten igång? | Du: startkommando, port, tjänsteinpackning och eventuell API-nyckel. | Appen kör i bakgrunden; modeller laddas per namn. |
Tabellen visar tendenser, inte gränser. Båda kan köras som tjänst, båda tar emot OpenAI-liknande anrop och båda kan köra en GGUF du laddat ner själv.
Vad Ollama sköter åt dig och vad det kostar
Enligt Windowsdokumentationen körs Ollama i bakgrunden efter installationen och API:t svarar på http://localhost:11434. Du skriver ett modellnamn, inte en sökväg. Det är bekvämt, men några beslut fattas då åt dig.
Kontextlängden är det tydligaste exemplet. Ollamas sida om kontextlängd anger standardvärden efter grafikminne: 4k under 24 GiB VRAM, 32k mellan 24 och 48 GiB och 256k från 48 GiB. llama-server läser i stället kontextstorleken ur modellen om du inte anger -c. Samma fil kan alltså få olika kontext i de två verktygen utan att någon har ändrat något. Hur kontext och minne hänger ihop i Ollama står i artikeln om kontext och minnesgräns.
Uppdateringarna är det andra. FAQ:n säger att Ollama på macOS och Windows laddar ner uppdateringar automatiskt, medan Linux uppdateras genom att installationsskriptet körs igen.
Vad du styr själv i llama-server
Serverns README listar varje flagga med tillhörande miljövariabel. De som avgör en jämförelse är -m eller -hf för modellen, -c för kontext, -ngl för hur många lager som läggs i VRAM (standard auto), --host och --port samt --api-key om fler än du ska nå servern.
Två detaljer är lätta att missa. Standardporten i den aktuella README:n är 9931, men README:ns Docker-exempel och äldre skript använder 8080. Ange därför porten uttryckligen. Och med -hf väljs kvantiseringen Q4_K_M om du inte anger någon annan; finns den inte tas den första filen i repot. Skriv ut kvantiseringen, eftersom valet påverkar både minne och kvalitet. Bakgrunden står i artikeln om att välja kvantisering.
Startar du llama-server utan modell hamnar den i ett routerläge som laddar och lastar ur modeller dynamiskt, från cachen eller från en katalog med --models-dir. Det är det närmaste llama.cpp kommer Ollamas modellhantering, men katalogen, presetfilen och omstarterna är fortfarande dina.
Modellkälla: bibliotek, Modelfile eller Hugging Face
Med llama.cpp pekar du på filen eller på repot. Med Ollama går en egen GGUF in via en Modelfile med FROM och ollama create. Importsidan säger uttryckligen att Ollama inte kvantiserar GGUF-modeller vid import och hänvisar till llama.cpp:s llama-quantize. Delade GGUF-filer importeras med ett jokertecken som matchar alla delar. Steg för steg, inklusive kontrollen med ollama show --modelfile, finns i guiden om att importera en GGUF med Modelfile.
API: vad klienten faktiskt pratar med
Ollamas API-introduktion listar tre bas-URL:er för den lokala servern: /api för det egna API:t, /v1 för OpenAI-kompatibilitet och roten för Anthropic-klienter. Dokumentationen påpekar att kompatibiliteten täcker en delmängd av originalet. Ett exempel är att OpenAI-formatet saknar sätt att ange kontextstorlek, så kompatibilitetssidan hänvisar till num_ctx i en Modelfile.
llama-server har /v1/chat/completions, /v1/responses, /v1/embeddings och /v1/messages, men också egna vägar som /completion, som README:n uttryckligen kallar inte OpenAI-kompatibel. README:n gör inga starka anspråk på full kompatibilitet. Avgör därför valet efter vad din klient skickar, inte efter etiketten ”OpenAI-kompatibel”.
Versionstakt och att backa en uppdatering
Vid kontrollen 26 okt 2026 hade llama.cpp publicerat 100 numrerade byggen mellan 20 och 26 oktober, alla markerade som pre-release. Ollama hade publicerat elva versioner, v0.40.1 till v0.40.11, mellan 7 och 24 oktober. Det är två olika rytmer. Med llama.cpp får du ändringar snabbt men behöver pinna ett byggnummer. Med Ollama kommer de buntade, och ofta automatiskt.
Båda kan gå sönder vid en uppdatering. När llama.cpp tog bort tre laddningsflaggor slutade gamla startskript att fungera, vilket beskrivs i nyheten om --load-mode. Hur du läser av versionen och sätter tillbaka den som fungerade står i guiden om att backa Ollama eller llama.cpp.
Jämförelseprov: samma fil, prompt och budget
Provet är ditt eget. Redaktionen har inte kört det och påstår ingenting om vilket verktyg som svarar bäst eller snabbast. Använd en GGUF-fil som du själv har laddat ner och vars licens du har läst, och anteckna dess SHA-256. Båda servrarna får samma kontext: 4096 tokens.
# Windows PowerShell 5.1. Byt filnamn mot din egen fil.
Set-Location C:\modeller
Get-FileHash .\modell-Q4_K_M.gguf -Algorithm SHA256
# llama.cpp: kör i ett eget fönster
llama-server -m .\modell-Q4_K_M.gguf -c 4096 --port 9931
# Ollama: importera samma fil med samma kontext
Set-Content -Path .\Modelfile -Encoding ASCII -Value 'FROM ./modell-Q4_K_M.gguf', 'PARAMETER num_ctx 4096'
ollama create prov-gguf -f .\Modelfile
Modelfilen skrivs som ASCII, eftersom -Encoding UTF8 i PowerShell 5.1 lägger till en BOM i början av filen. Anropet nedan går till den OpenAI-kompatibla chattvägen i båda. Bara bas-URL:en skiljer sig. Modellnamnet är detsamma; README:ns eget exempel skickar ett godtyckligt namn till en server där bara en modell är laddad, men kontrollera med /v1/models vad din server rapporterar.
$prompt = 'Förklara på svenska, i exakt tre meningar, vad en kvantiserad modell är.'
function Invoke-Prov {
param([string]$Bas, [string]$Fil)
$anrop = @{
model = 'prov-gguf'
messages = @(@{ role = 'user'; content = $prompt })
max_tokens = 200
temperature = 0
seed = 42
stream = $false
}
$bytes = [System.Text.Encoding]::UTF8.GetBytes(($anrop | ConvertTo-Json -Depth 6))
$svar = Invoke-WebRequest -UseBasicParsing -Method Post -Uri ($Bas + '/v1/chat/completions') `
-ContentType 'application/json; charset=utf-8' -Body $bytes -TimeoutSec 300
$text = [System.Text.Encoding]::UTF8.GetString($svar.RawContentStream.ToArray())
Set-Content -Path $Fil -Value $text -Encoding UTF8
$json = $text | ConvertFrom-Json
$json.choices[0].finish_reason
$json.choices[0].message.content
}
Invoke-Prov -Bas 'http://127.0.0.1:9931' -Fil '.\svar-llama-server.json'
Invoke-Prov -Bas 'http://127.0.0.1:11434' -Fil '.\svar-ollama.json'
Svaret avkodas som UTF-8 från råbytena, så att å, ä och ö inte blir fel i PowerShell 5.1. Spara skriptet som UTF-8 med BOM om du kör det som .ps1-fil, annars läser PowerShell 5.1 det med systemets teckentabell.
Bedöm tre saker. Uppfyller svaret beställningen, alltså tre meningar på svenska? Slutade det av sig självt eller på budgeten, enligt finish_reason? Och om svaren skiljer sig mycket: misstänk först promptmallen och de parametrar du inte skickade, inte motorn. Hur Ollama lägger på sin mall står i artikeln om Ollamas promptmall. Lika svar betyder att lagret runt modellen inte förändrade resultatet i just det här provet, inget mer.
Välj det lager du kan sköta
Välj llama.cpp när du vill välja backend, pinna byggen, hämta GGUF direkt från Hugging Face eller köra serverns egna vägar. Välj Ollama när namngivna modeller, en bakgrundstjänst och en Modelfile i repot väger tyngre än kontrollen. Det är också rimligt att använda båda: Ollama i vardagen och llama-server när du behöver en flagga som Ollama inte exponerar.
Källor och metod
- llama.cpp README – projektbeskrivning, installationsvägar, snabbstart och backendtabell.
- llama.cpp server README – flaggor, standardport, API-vägar och routerläge.
- llama.cpp releases och Ollama releases – byggen, arkiv per backend och versionstakt.
- Ollama README – rubriken Supported backends.
- Ollama-dokumentationen: import, API-introduktion, OpenAI-kompatibilitet, kontextlängd, Windows och FAQ.
Källorna kontrollerades 26 okt 2026 mot README-filerna på huvudgrenarna, docs.ollama.com och båda projektens releasesidor. Kommandon, standardport och standardvärden ändras mellan versioner; kontrollera med llama-server --help och ollama --version på din egen maskin. Provet är ett läsarprov. Inga hastighets- eller kvalitetsjämförelser har gjorts. Nästa kontroll senast 26 nov 2026.