Ollama er blevet den mest udbredte måde at køre AI-kodemodeller lokalt på egen maskine, uden at sende en linje kode til en cloud-tjeneste. Værktøjet er oppe i version 0.40.0 i skrivende stund, og biblioteket af kodemodeller er vokset markant i 2026, fra Qwen2.5-Coder og det nyere Qwen3-Coder til DeepSeek-Coder-V2, Codestral, StarCoder2 og CodeGemma. Denne guide tager dig gennem hele opsætningen i 14 konkrete trin, fra installation til et færdigt, kørende projekt.

Du ender med en lokal kodeassistent, der svarer på forespørgsler via et REST-API, kan kobles til VS Code, og som kører helt uden internetforbindelse, når modellen først er hentet. Vi bygger samtidig et konkret eksempelprojekt, en lille kommandolinje-assistent der skriver git commit-beskeder for dig ud fra dine faktiske kodeændringer, så du ikke bare læser teori, men ser modellen arbejde på rigtig kode.

Guiden er skrevet til udviklere, der allerede kender terminalen, men som ikke har kørt en lokal LLM før. Du behøver ikke en kraftig gaming-maskine for at komme i gang. Vi viser dig, hvordan du vælger en model, der faktisk matcher din hardware, i stedet for at downloade den største model og ende med en computer, der fryser fast.

Vi dækker både den hurtige vej (en kommando, en model, et svar i terminalen) og den mere grundige opsætning, hvor du kører Ollama som en delt tjeneste, kobler den til din editor, og bygger et rigtigt værktøj ovenpå API’et. Undervejs får du to tabeller til at vælge model og hardware ud fra, en komplet liste med fejlfindingsscenarier, og en gennemgang af, hvad du skal overveje omkring datahåndtering, hvis du arbejder i en dansk virksomhed med compliance-krav.

Hvad er Ollama, og hvorfor skal du køre kodemodeller lokalt?

Ollama er et open source-værktøj, der pakker store sprogmodeller ind i en simpel kommandolinje-oplevelse. I stedet for selv at håndtere Python-miljøer, CUDA-biblioteker og modelvægte i forskellige formater, giver Ollama dig en enkelt kommando til at hente og køre en model, plus en lokal server, der eksponerer modellen via et REST-API på http://localhost:11434. Projektet er open source og ligger offentligt på GitHub, hvor du også kan følge med i, hvornår nye versioner lander.

Den store motivation for at køre kodemodeller lokalt er tredelt. Først er der privatliv: din kildekode forlader aldrig maskinen, hvilket betyder noget, hvis du arbejder med forretningshemmeligheder, uudgivne features eller kunders data i testmiljøer. Dernæst er der pris. Når modellen kører på din egen GPU eller CPU, betaler du strøm, ikke en pris pr. token eller et abonnement. Til sidst er der kontrol: du vælger selv model, kontekstvindue og systemprompt, og du er ikke afhængig af, at en tjeneste er nede, eller at en leverandør ændrer vilkårene.

Det betyder ikke, at lokale modeller slår cloud-baserede assistenter som GitHub Copilot eller Claude Code på rå kodekvalitet, især ikke på svære, flertrins-opgaver. Men til autocomplete, kodeforklaring, commit-beskeder, dokumentation og mange daglige opgaver er forskellen ofte mindre, end man tror, og fordelen ved at have kontrol over egen infrastruktur vejer tungt for mange teams og enkeltudviklere. Ollama er samtidig blevet standardvalget, netop fordi det gør skiftet mellem modeller til en étlinjes-kommando i stedet for et helt nyt opsætningsprojekt.

Det, der for alvor har gjort lokale kodemodeller brugbare i 2026, er ikke kun Ollama selv, men væksten i åbne modelvægte fra forskere og selskaber som Alibaba (Qwen-serien), DeepSeek, Mistral (Codestral) og BigCode (StarCoder2). Disse modeller udgives med vægte, alle kan downloade og køre selv, i modsætning til lukkede modeller der kun er tilgængelige via et API. Ollama fungerer som limen mellem de åbne modelvægte og din maskine, og pakker alt det tekniske setup (quantisering, GPU-offloading, tokenisering) ind i kommandoer, der føles lige så simple som at installere en almindelig app.

Forudsætninger: hardware, styresystem og software-versioner

Før du installerer noget, bør du afklare hvilken model du realistisk kan køre. Det er den enkeltstående faktor, der afgør, om oplevelsen bliver flydende eller frustrerende langsom. Ollama kører på Linux, macOS og Windows, og kræver ingen GPU for at fungere, men en GPU gør en enorm forskel i hastighed.

KomponentMinimumAnbefalet til kodemodeller
StyresystemLinux, macOS 13+, Windows 10/11Nyeste stabile version
Systemhukommelse (RAM)8 GB32 GB eller mere
Diskplads10 GB fri plads100 GB+ (flere modeller fylder hurtigt)
GPUIngen (CPU-only virker)Nvidia-GPU med 12-24 GB VRAM eller Apple Silicon med 16 GB+ unified memory
Ollama-version0.40.0 eller nyereAltid nyeste stabile build

Har du en Nvidia-GPU, bør du have en opdateret driver installeret, så Ollama automatisk kan finde og bruge CUDA. Har du en Mac med Apple Silicon (M-serie), bruger Ollama Metal-acceleration automatisk, og den unified memory-arkitektur betyder, at CPU og GPU deler den samme hukommelsespulje, hvilket gør det muligt at køre overraskende store modeller på en bærbar. AMD-GPU’er understøttes via ROCm på udvalgte kort og Linux-distributioner. Tjek kompatibiliteten på AMD’s ROCm-dokumentation, før du forventer GPU-acceleration på et AMD-kort.

Du behøver desuden en terminal (Bash, Zsh eller PowerShell), og hvis du vil følge projektdelen senere i guiden, skal du have Git installeret. Resten af forudsætningerne, selve modellerne, henter vi undervejs, så du ikke downloader noget, du ikke ender med at bruge.

Det er også værd at afsætte lidt tid, før du går videre. Selve installationen af Ollama tager typisk under fem minutter, men hvis du skal hente en 30b-klasse model på en almindelig fiberforbindelse, kan downloadet alene tage 15-30 minutter. Planlægger du at følge hele guiden fra start til slut, inklusive VS Code-integrationen og det afsluttende projekt, bør du afsætte omkring 60-70 minutter i alt, afhængigt af din internethastighed og hvor mange modeller du vælger at teste undervejs.

Trin 1-2: Installer Ollama på Linux, macOS og Windows

Installationen er bevidst gjort enkel, uanset platform. På Linux bruger du det officielle installationsscript direkte fra terminalen:

# Linux: officiel installation
curl -fsSL https://ollama.com/install.sh | sh

# Bekræft at det virkede
ollama --version

På macOS downloader du Ollama-applikationen fra ollama.com og flytter den til din Programmer-mappe, ligesom med enhver anden Mac-app. Foretrækker du en pakkehåndtering, kan du i stedet bruge Homebrew:

# macOS via Homebrew
brew install --cask ollama

# Bekræft version
ollama --version
ollama run qwen2.5-coder:7b

På Windows henter du den officielle installer fra samme hjemmeside og kører den som enhver anden .exe-installation. Bagefter åbner du PowerShell og tjekker, at kommandolinje-klienten er tilgængelig:

# Windows PowerShell
ollama --version
ollama run qwen2.5-coder:7b

Uanset platform installerer Ollama sig selv som en baggrundstjeneste, så du ikke behøver at starte en server manuelt hver gang du genstarter maskinen. Det eneste, du typisk selv skal gøre bagefter, er at hente de modeller, du vil bruge, hvilket vi gør i trin 4.

Trin 3: Start serveren og bekræft installationen

Som standard lytter Ollama på port 11434, og i de fleste installationer starter serveren automatisk som en baggrundsproces. Hvis den ikke gør, eller hvis du har afinstalleret autostart, kan du starte den manuelt:

# Start Ollama-serveren manuelt, hvis den ikke allerede kører
ollama serve

Åbn en ny terminal (lad ollama serve køre i den gamle, hvis du startede den manuelt), og test forbindelsen:

curl http://localhost:11434/api/tags

Et korrekt svar ligner dette, med en liste over de modeller du allerede har installeret (tom, hvis det er første gang):

{
  "models": []
}

Får du i stedet en fejl som “connection refused”, er serveren ikke startet, eller en firewall blokerer localhost-trafik. Vi kommer tilbage til præcis den fejl i fejlfindings-afsnittet senere i guiden.

Trin 4-5: Vælg og hent den rigtige kodemodel til din hardware

Det vigtigste valg i hele opsætningen er, hvilken model du starter med. Ollamas modelbibliotek har flere familier målrettet specifikt kodning, og de adskiller sig markant i størrelse, hukommelsesbehov og kontekstvindue.

ModelStørrelserCa. hukommelsesbehovBedst til
Qwen2.5-Coder0.5b – 32b1 GB (0.5b) til 24 GB+ (32b)Alsidig kodning, bred størrelsesrækkevidde
Qwen3-Coder30b (ca. 19 GB download)24 GB VRAM / 32-48 GB RAMStore repositories, 256K kontekstvindue
DeepSeek-Coder-V216b, 236b12-16 GB VRAM (16b)Lang kontekst på en enkelt GPU
Codestral22b (ca. 13 GB)16 GB+ VRAMMistral-baseret kodegenerering, 32K kontekst
StarCoder23b, 7b, 15b4-24 GBÅbent trænet, bred sprogstøtte
CodeGemma2b, 7b4-12 GBLet autocomplete på svag hardware

En kort forklaring på tallene i tabellen: “7b” betyder, at modellen har omkring 7 milliarder parametre. Flere parametre betyder generelt bedre forståelse af nuancer og sjældnere fejl, men også et markant større hukommelsesforbrug og langsommere svar. De fleste modeller i Ollamas bibliotek er desuden quantiserede, det vil sige komprimerede til et lavere præcisionsniveau, så de fylder mindre og kører hurtigere, mod en lille, ofte umærkelig, kvalitetsomkostning. Det er grunden til, at en “7b”-model kan fylde under 5 GB i stedet for de 28 GB, den ville fylde i fuld præcision.

Har du en bærbar uden dedikeret GPU og 16 GB RAM, start med qwen2.5-coder:7b eller codegemma:7b. Har du 24 GB VRAM eller mere, kan du gå direkte efter qwen3-coder:30b, som ifølge Ollamas eget bibliotek understøtter op til 256.000 tokens i kontekst, nyttigt når du vil fodre modellen en hel kodefil eller flere filer på én gang. Hent modellen med:

# Hent en mellemstor, alsidig kodemodel
ollama pull qwen2.5-coder:7b

# Eller en større model, hvis du har GPU-kapaciteten til det
ollama pull qwen3-coder:30b

Download-tiden afhænger naturligvis af din internetforbindelse. En 7b-model er typisk 4-5 GB, mens 30b-klassen ligger omkring 19 GB. Når downloadet er færdigt, kan du altid se, hvilke modeller du har liggende lokalt:

Står du mellem DeepSeek-Coder-V2 og Qwen2.5-Coder på nogenlunde samme størrelse, er en praktisk tommelfingerregel at teste begge på dine egne typiske opgaver, frem for at stole blindt på generelle benchmarks. DeepSeek-Coder-V2:16b er interessant, hvis du arbejder med meget lange filer eller flere filer i samme prompt, fordi kontekstvinduet rækker langt uden at kræve en 30b-klasse models hukommelsesforbrug. Codestral er et naturligt valg, hvis dit team allerede bruger andre Mistral-værktøjer og ønsker en konsistent “stemme” i den genererede kode.

ollama list

# Eksempel på output:
# NAME                     ID              SIZE      MODIFIED
# qwen2.5-coder:7b         a1b2c3d4e5f6    4.7 GB    2 minutes ago

Trin 6: Kør din første kodegenerering i terminalen

Nu hvor modellen er hentet, kan du teste den direkte i terminalen, uden nogen ekstra opsætning. Kør:

ollama run qwen2.5-coder:7b

Du lander i en interaktiv prompt, hvor du kan skrive direkte til modellen. Prøv for eksempel:

>>> Skriv en Python-funktion der fjerner dubletter fra en liste uden at ændre den oprindelige rækkefølge

def remove_duplicates(items):
    seen = set()
    result = []
    for item in items:
        if item not in seen:
            seen.add(item)
            result.append(item)
    return result

Du forlader den interaktive session med /bye eller Ctrl+D. Hastigheden, du oplever her, afgør om modellen reelt er brugbar i din daglige arbejdsgang. Hvis svartiden føles håbløs langsom, er det næsten altid et tegn på, at modellen er for stor til din hardware, og det er værd at skifte til en mindre variant, inden du går videre til API-integrationen.

Trin 7-8: Brug Ollamas REST-API til kodegenerering

Den interaktive terminal er god til at teste en model, men den egentlige værdi kommer, når du kan kalde modellen programmatisk fra dine egne scripts, editorer eller byggepipelines. Ollama eksponerer et REST-API med to centrale endpoints: /api/generate til enkeltstående prompts og /api/chat til samtalebaserede forløb med flere beskeder.

curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5-coder:7b",
  "prompt": "Skriv en funktion i JavaScript der sammenlægger overlappende tidsintervaller",
  "stream": false
}'

Bemærk feltet "stream": false. Ollama streamer svar som standard, token for token, hvilket er fint til en chatgrænseflade, men ofte uhåndterligt i et script der forventer ét samlet JSON-svar. Et typisk svar ser sådan ud:

{
  "model": "qwen2.5-coder:7b",
  "response": "function mergeIntervals(intervals) {\n  ...\n}",
  "done": true
}

Til samtaler med kontekst, hvor modellen skal huske, hvad der blev sagt tidligere, bruger du i stedet /api/chat med en liste af beskeder, inklusive en valgfri systemprompt der sætter rollen:

curl http://localhost:11434/api/chat -d '{
  "model": "qwen2.5-coder:7b",
  "messages": [
    { "role": "system", "content": "Du er en præcis kodeassistent, der svarer kort." },
    { "role": "user", "content": "Forklar denne fejl og foreslå en minimal løsning: TypeError: cannot read properties of undefined" }
  ],
  "stream": false
}'

Begge endpoints kan desuden bede om struktureret output via et format-felt med et JSON-schema, hvilket er nyttigt, hvis dit script forventer et fast dataformat i stedet for fritekst. Understøttelsen varierer dog fra model til model, så test altid med den konkrete model, du planlægger at bruge i produktion, før du bygger videre på den.

Forskellen mellem de to endpoints er mere end teknisk bogholderi. /api/generate passer til engangsopgaver, hvor du sender al kontekst i én samlet prompt, for eksempel “forklar denne funktion” eller “skriv en test til denne klasse”. /api/chat passer bedre til værktøjer, der skal føre en løbende dialog, hvor modellen skal huske tidligere spørgsmål i samme session, for eksempel en chatbot i din editor, hvor du stiller opfølgende spørgsmål til det samme stykke kode. Vælger du det forkerte endpoint til opgaven, ender du typisk med at skrive unødigt meget bogholderikode for at simulere den funktionalitet, det andet endpoint allerede giver dig gratis.

Trin 9: Byg din egen tilpassede model med en Modelfile

Når standardmodellen svarer korrekt, men i en tone eller stil der ikke passer dig, kan du lave din egen variant med en Modelfile, uden at træne noget selv. En Modelfile er en simpel tekstfil, der tager udgangspunkt i en eksisterende model og lægger systemprompt, temperatur og andre parametre på toppen.

# Modelfile
FROM qwen2.5-coder:7b

PARAMETER temperature 0.2
PARAMETER num_ctx 16384

SYSTEM """
Du er en erfaren softwareudvikler.
Foretræk små, testbare ændringer.
Returner kørbar kode og forklar vigtige antagelser.
Opfind aldrig API'er, der ikke findes.
"""

Lav derefter din egen navngivne model ud fra filen, og kør den som enhver anden model:

# Byg din tilpassede model
ollama create local-coder -f Modelfile

# Kør den
ollama run local-coder

Den lave temperatur (0.2) gør svarene mere forudsigelige og mindre “kreative”, hvilket typisk er ønskværdigt til kodegenerering, hvor du vil have konsistente, deterministiske svar frem for varierende forslag hver gang. Vil du have mere variation i forslag til navngivning eller arkitektur, kan du skrue temperaturen op mod 0.7-0.9 i en separat Modelfile til det formål.

Trin 10: Integrer Ollama med VS Code via Continue

Den mest praktiske brug af en lokal kodemodel er inline-forslag direkte i editoren, og her er Continue en af de mest brugte broer til Ollama. Continue er open source under Apache 2.0-licens og kører helt lokalt, uden at kontakte nogen server, selv efter at den hostede Hub-tjeneste blev lukket i juli 2026 i forbindelse med, at Cursor-udvikleren Anysphere overtog teamet bag projektet. Udvidelsen selv fungerer upåvirket af det, fordi den aldrig har krævet en cloud-afhængighed for at tale med en lokal model som Ollama.

Installer Continue fra VS Code’s Extensions-panel (søg efter “Continue”), og rediger derefter konfigurationsfilen, som typisk ligger under ~/.continue/config.yaml:

name: Lokal Ollama-kodning
version: 0.0.1
schema: v1

models:
  - name: Qwen2.5 Coder 7B
    provider: ollama
    model: qwen2.5-coder:7b
    apiBase: http://localhost:11434

  - name: CodeGemma Autocomplete
    provider: ollama
    model: codegemma:7b
    apiBase: http://localhost:11434
    roles:
      - autocomplete

Bemærk, at vi har tildelt en separat, lettere model til rollen autocomplete. Inline-forslag skal komme hurtigt, mens du skriver, så en stor chat-model ofte er for langsom til formålet. Brug derfor gerne en mindre model til løbende forslag, og gem den større model til chat-baserede spørgsmål og større refaktoreringer.

Genstart VS Code efter ændringen, og tjek at forbindelsen virker, før du begynder at stole på forslagene i en rigtig kodebase:

curl http://localhost:11434/api/tags

Fejler denne kommando, vil Continue heller ikke kunne forbinde, uanset hvordan konfigurationsfilen ser ud. Se mere om Continues konfigurationsformat i den officielle Continue-dokumentation.

Trin 11: Aktiver GPU-acceleration (CUDA, ROCm og Metal)

Ollama forsøger automatisk at bruge din GPU, hvis den finder en kompatibel driver, men det er værd at bekræfte, at accelerationen faktisk er aktiv, især hvis svartiderne føles langsommere end forventet.

Har du en Nvidia-GPU, skal du have en opdateret driver installeret. Bekræft at GPU’en er synlig for systemet, og at Ollama kan finde CUDA:

# Tjek at Nvidia-driveren og GPU'en er synlige
nvidia-smi

Se den officielle Nvidia CUDA-dokumentation, hvis nvidia-smi ikke virker, eller hvis du er i tvivl om, hvilken driverversion din GPU kræver. Ollama bruger CUDA automatisk, når driveren er på plads. Der er typisk intet ekstra at konfigurere i Ollama selv.

På AMD-GPU’er under Linux skal ROCm være installeret og din GPU-model understøttet. Tjek status med:

# Tjek ROCm og AMD-GPU'en
rocminfo

Ikke alle AMD-kort er understøttet af alle ROCm-versioner, så tjek kompatibilitetslisten i AMDs ROCm-dokumentation, før du fejlsøger videre i Ollama selv.

Har du en Mac med Apple Silicon, bruges Metal-acceleration automatisk uden ekstra konfiguration, via Apples Metal-API. Her er den vigtige detalje unified memory: CPU og GPU deler den samme hukommelsespulje, så en Mac med 16 GB samlet hukommelse har mindre reel kapacitet til en stor model, end tallet 16 GB umiddelbart antyder, fordi styresystemet og andre programmer også skal bruge af den samme pulje.

En praktisk konsekvens af unified memory er, at du bør lukke tunge applikationer som browservinduer med mange faneblade eller andre AI-værktøjer, før du tester en stor model på en Mac. Modsat en dedikeret GPU med egen VRAM, hvor andre programmer ikke konkurrerer om den samme hukommelse, mærker du på en Mac direkte, hvis resten af systemet også lægger beslag på den samme pulje, modellen forsøger at bruge.

Trin 12-13: Byg et komplet projekt, en lokal commit-besked-assistent

Nu samler vi det, du har lært, i et færdigt, brugbart projekt: et lille script, der læser dine stagede Git-ændringer og bruger din lokale model til at skrive et forslag til en commit-besked. Det er et realistisk eksempel på, hvordan kodegenerering bruges i praksis, uden at sende en linje kode uden for din maskine.

Opret en fil kaldet ai-commit.sh i et vilkårligt Git-repository:

#!/usr/bin/env bash
# ai-commit.sh - genererer en commit-besked ud fra stagede ændringer via lokal Ollama

DIFF=$(git diff --staged)

if [ -z "$DIFF" ]; then
  echo "Ingen stagede ændringer. Kør 'git add' først."
  exit 1
fi

PROMPT=$(cat <

Gør scriptet eksekverbart, stage nogle ændringer, og kør det:

chmod +x ai-commit.sh
git add .
./ai-commit.sh

# Eksempel på output:
# Ret null-tjek i login-funktionen og tilføj fejlbesked

Vil du gå et skridt videre, kan du koble scriptet til git commit som en prepare-commit-msg-hook, så forslaget automatisk fyldes ind, hver gang du laver en commit, og du blot skal bekræfte eller redigere det i din editor. Det er præcis den slags småværktøj, hvor en lokal model giver mest værdi: hurtigt, gratis efter opsætningen, og uden at din kode eller dine commit-historikker forlader maskinen.

Trin 14: Hold styr på diskplads og opdater dine modeller

Modeller fylder, og det er let at ende med 100+ GB brugt på forsøg, du ikke længere har brug for. Se regelmæssigt, hvad du har liggende, og fjern det du ikke bruger:

# Se installerede modeller og deres størrelse
ollama list

# Fjern en model, du ikke bruger længere
ollama rm starcoder2:15b

# Se hvilke modeller der aktuelt er indlæst i hukommelsen
ollama ps

Hold samtidig selve Ollama opdateret. Nye versioner bringer ofte hastighedsforbedringer og understøttelse af nyere modelarkitekturer, uden at du behøver at ændre noget i din egen opsætning. På Linux kører du installationsscriptet igen for at opdatere. På macOS og Windows tjekker applikationen typisk selv for opdateringer.

Kør Ollama i en Docker-container

Foretrækker du at holde Ollama isoleret fra resten af dit system, eller skal den køre på en server, du allerede administrerer med containere, findes der et officielt Ollama-image på Docker Hub. Det er særligt nyttigt, hvis du vil køre Ollama på en delt udviklingsserver uden at installere noget direkte på værtsmaskinen, eller hvis du vil kunne nulstille hele opsætningen med én kommando.

# Start Ollama i en container med persistent lagring af modeller
docker run -d \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  ollama/ollama

# Hent en model inde i containeren
docker exec -it ollama ollama pull qwen2.5-coder:7b

# Test API'et udefra, som hvis Ollama kørte native
curl http://localhost:11434/api/tags

Volumet ollama:/root/.ollama sikrer, at dine hentede modeller overlever, selv hvis du genstarter eller opdaterer containeren. Uden det volume starter du fra bunden med tomme modeller, hver gang containeren genskabes, hvilket typisk ikke er det, du vil, givet hvor meget tid download af en stor model kan tage.

Har du en Nvidia-GPU og vil have containeren til at bruge den, skal du have Nvidias container-værktøjer installeret på værtsmaskinen og tilføje --gpus=all til kommandoen ovenfor. Uden det flag kører containeren fint, men falder tilbage til CPU, uanset hvor kraftig din GPU er, fordi Docker som standard isolerer containeren fra værtsmaskinens hardware-acceleration.

Databeskyttelse: hvad betyder lokal kodning for danske virksomheder?

For danske og nordiske virksomheder, især i brancher med skærpede krav til databehandling som finans, sundhed og den offentlige sektor, er privatlivsargumentet for Ollama ofte det, der afgør beslutningen, mere end selve kodekvaliteten. Når en model kører lokalt, forlader hverken kildekode, interne API-nøgler eller kommentarer i koden din infrastruktur, hvilket fjerner en hel kategori af spørgsmål om databehandleraftaler og tredjelandsoverførsler, som ellers følger med cloud-baserede AI-tjenester.

Det er særligt relevant, hvis din organisation arbejder med lovpligtig logning, revisionsspor eller kildekode, der i sig selv er underlagt tavshedspligt, for eksempel i den finansielle sektor under reglerne for operationel robusthed. En lokalt kørende model kan i disse tilfælde gøre det markant simplere at dokumentere, hvor data befinder sig, fordi svaret altid er "på vores egen maskine eller server", uanset hvilken model eller prompt der bruges.

Det fritager dig dog ikke fra almindelig sikker praksis. Hold stadig hemmeligheder, adgangskoder og personfølsomme testdata ude af kildekoden og ud af de prompts, du sender til modellen, uanset om modellen kører lokalt eller i skyen. Logger du selv prompts og svar til fejlsøgning eller forbedring af din opsætning, så behandl de logs med samme omhu, som du ville behandle enhver anden intern logfil med potentielt følsomt indhold.

5 almindelige faldgruber, du skal undgå

De fleste frustrationer med Ollama handler ikke om selve værktøjet, men om forkert matchede forventninger til hardware og modelstørrelse. Mange af disse faldgruber er nemme at undgå, hvis du kender dem på forhånd, men de kan koste en hel aften med fejlsøgning, hvis du rammer dem blindt midt i et projekt. Her er de fem, der går igen oftest, baseret på de spørgsmål, der dukker op igen og igen blandt udviklere, der er nye til lokale LLM'er.

  • At vælge den største model først. En 32b- eller 30b-model på en bærbar uden GPU bliver smertefuldt langsom. Start altid med en 7b-variant, og skalér kun op, hvis hardwaren faktisk følger med.
  • At glemme "stream": false i API-kald. Uden det felt streamer Ollama svaret i mange små JSON-fragmenter, hvilket får simple scripts til at fejle, fordi de forventer ét samlet svar.
  • At bruge en chat-optimeret model til autocomplete. Store, samtalefokuserede modeller er ofte for langsomme til inline-forslag, mens du skriver. Brug en lettere model specifikt til den rolle.
  • At ignorere kontekstvinduet. Hvis du fodrer en model en hel, stor kodebase uden at tjekke dens num_ctx, bliver svaret ofte afkortet eller upræcist, uden en tydelig fejl.
  • At lade for mange modeller ligge installeret. Hver model optager flere gigabyte, og det er let at løbe tør for diskplads, hvis du tester fem-seks familier uden at rydde op bagefter.

Fejlfinding: 8 almindelige problemer og løsninger

Her er de problemer, der oftest dukker op i de første uger, samlet ud fra de spørgsmål, der går igen i forums og chatgrupper omkring lokale LLM'er.

  • "bind: address already in use" på port 11434. En anden Ollama-instans kører allerede. Find processen med lsof -i :11434 (Linux/macOS) eller Get-NetTCPConnection -LocalPort 11434 (PowerShell), og luk den i stedet for at starte en ny server.
  • "connection refused" ved API-kald. Serveren kører ikke. Tjek med curl http://localhost:11434/api/tags, og start den manuelt med ollama serve, hvis den ikke svarer.
  • "CUDA out of memory" eller lignende hukommelsesfejl. Modellen er for stor til din VRAM. Skift til en mindre størrelse, eller sænk num_ctx i en Modelfile for at reducere hukommelsesforbruget.
  • Håbløst langsom inferens på CPU. Hvis modellen ikke passer i VRAM, falder Ollama tilbage til delvis eller fuld CPU-kørsel, hvilket er markant langsommere. Vælg en mindre model, eller reducér kontekstlængden.
  • "model not found" ved kørsel af en kommando. Modelnavnet er tag-specifikt. Kør ollama list for at se det eksakte navn, og hent modellen med ollama pull, hvis den ikke findes lokalt endnu.
  • Scriptet modtager ufuldstændigt eller fragmenteret JSON. Du har glemt "stream": false i dit API-kald. Tilføj feltet for at få ét samlet svar i stedet for en strøm af dele.
  • VS Code/Continue kan ikke forbinde til Ollama. Tjek tre ting i rækkefølge: at curl http://localhost:11434/api/tags svarer, at ollama list viser den rigtige model, og at apiBase i din Continue-konfiguration peger på den korrekte port.
  • GPU'en bruges slet ikke (alt kører på CPU). Bekræft at driveren er korrekt installeret med nvidia-smi eller rocminfo, og at du har genstartet maskinen efter en driveropdatering. Ollama vælger automatisk GPU, men kan ikke bruge en driver, systemet ikke selv kan se.

Avancerede tips til produktionsbrug

Når grundopsætningen kører stabilt, er der en række justeringer, der gør daglig brug markant bedre, især hvis du deler opsætningen med et team eller kører den på en server frem for din egen bærbare.

  • Kør ollama serve på en delt server, og sæt OLLAMA_HOST=0.0.0.0:11434, så dit team kan dele samme GPU og samme hentede modeller i stedet for at duplikere downloads på hver maskine.
  • Brug separate Modelfiles til forskellige opgaver, en med lav temperatur til kodegenerering, en med højere temperatur til idégenerering eller navngivningsforslag.
  • Sæt et fast, lavt kontekstvindue til autocomplete-rollen for at holde svartiden nede, og reservér et større kontekstvindue til chat-rollen, hvor du rent faktisk har brug for det.
  • Overvåg GPU-hukommelsen løbende under tung brug, især hvis flere modeller er indlæst samtidig. Kommandoen ollama ps viser dig hvilke modeller der aktuelt optager hukommelse.
  • Automatisér oprydning af gamle modelversioner med et simpelt cron-job, der kører ollama list og fjerner modeller, der ikke er brugt i f.eks. 30 dage.
  • Kør flere mindre modeller side om side til forskellige roller (en til autocomplete, en til chat, en til commit-beskeder) i stedet for at tvinge én stor model til at løse alle opgaver lige godt.
  • Versionér dine Modelfiles i samme Git-repository som resten af projektet, så hele teamet bruger den samme systemprompt og de samme parametre, i stedet for at hver udvikler sidder med sin egen lokale variant.

Ollama og lokale modeller sammenlignet med cloud-baserede kodeassistenter

Det er værd at have et realistisk billede af, hvornår en lokal model er det rigtige valg, og hvornår en cloud-baseret assistent giver mere værdi for pengene. De to tilgange udelukker sjældent hinanden i praksis. Mange udviklere ender med at bruge begge, afhængigt af opgaven.

EgenskabOllama (lokal)Cloud-baseret assistent
PrisGratis efter hardware-anskaffelseTypisk abonnement pr. måned
PrivatlivKoden forlader aldrig maskinenKode sendes til leverandørens servere
Rå kodekvalitet på svære opgaverVarierer, typisk under topmodellerOfte stærkere på komplekse, flertrins-opgaver
Offline-brugJa, når modellen er hentetNej, kræver internetforbindelse
OpsætningstidKræver egen hardware og konfigurationKlar til brug efter login

En praktisk tommelfingerregel: brug en lokal model til autocomplete, commit-beskeder, dokumentationsudkast og opgaver hvor data-følsomhed vejer tungt, og brug en cloud-baseret assistent til de sværeste refaktoreringsopgaver, hvor den ekstra kvalitet retfærdiggør prisen og det faktum, at koden forlader din maskine.

I praksis ser vi flest teams lande på en hybrid model: Ollama kører som standard-værktøjet til den daglige, høj-frekvens brug (autocomplete, hurtige spørgsmål, interne scripts), mens en cloud-baseret assistent trækkes ind som et ekstra lag, når en opgave er stor, tværgående eller kritisk nok til at retfærdiggøre både prisen og den ekstra ventetid, det tager at sende koden ud af huset. Den tilgang holder det samlede AI-forbrug nede, uden at du går glip af den ekstra kraft, de største cloud-modeller kan tilføre på de virkelig svære opgaver.

Ofte stillede spørgsmål

Kræver Ollama en GPU for at virke?
Nej. Ollama kører fint på CPU alene, men mindre modeller (3b-7b) er nødvendige for en brugbar hastighed uden GPU. Større modeller bliver hurtigt uanvendeligt langsomme på ren CPU-kørsel.

Kan jeg bruge Ollama helt offline?
Ja, så snart en model er hentet første gang, kører både den interaktive terminal og API'et fuldstændig uden internetforbindelse.

Hvilken model skal jeg vælge, hvis jeg kun må vælge én?
Qwen2.5-Coder:7b er et solidt, alsidigt udgangspunkt for de fleste almindelige bærbare computere. Har du 24 GB VRAM eller mere, er Qwen3-Coder:30b et naturligt opgraderingsvalg på grund af det store kontekstvindue.

Er Continue stadig et godt valg, nu hvor firmaet bag det er blevet opkøbt?
Ja. Selve udvidelsen er open source under Apache 2.0-licens og kører lokalt uden afhængighed af den lukkede Hub-tjeneste, så funktionaliteten er upåvirket af ejerskabsændringen.

Kan flere personer dele samme Ollama-installation?
Ja, hvis du sætter OLLAMA_HOST til at lytte på alle netværksinterfaces i stedet for kun localhost, kan et team dele den samme server og de samme hentede modeller over det lokale netværk.

Hvorfor er mit API-svar opdelt i mange små stykker?
Ollama streamer svar som standard. Tilføj "stream": false i dit request-body for at få ét samlet JSON-svar i stedet.

Hvor meget diskplads skal jeg afsætte til modeller?
Afsæt mindst 50-100 GB, hvis du planlægger at teste flere modelfamilier. En enkelt 30b-klasse model fylder typisk omkring 19 GB, og det løber hurtigt op, hvis du ikke rydder op i modeller, du ikke længere bruger.

Kan jeg finjustere (fine-tune) en model i Ollama?
Ollama er primært bygget til at køre, ikke træne modeller. Du kan tilpasse adfærd via en Modelfile med systemprompt og parametre, men en egentlig finjustering på eget data kræver andre værktøjer uden for Ollama selv.

Virker kodemodellerne i Ollama godt med dansk tekst og kommentarer?
De fleste moderne kodemodeller, inklusive Qwen2.5-Coder og DeepSeek-Coder-V2, er trænet på flersprogede datasæt og klarer danske kommentarer og prompts rimeligt, men den faglige styrke ligger stadig primært i selve koden og engelsksprogede mønstre. Skriver du prompten på dansk, som i commit-besked-eksemplet, bør du altid tjekke outputtet, især ved mere nuancerede formuleringer.

Er der en grænse for, hvor lang en prompt kan være?
Grænsen sættes af modellens kontekstvindue, parameteren num_ctx i en Modelfile eller API-kald. Overskrider din prompt og det forventede svar tilsammen den grænse, bliver ældre dele af samtalen skåret væk, eller svaret bliver afkortet. Qwen3-Coder:30b har et af de største kontekstvinduer i biblioteket med op til 256.000 tokens, mens mindre modeller typisk ligger på nogle tusinde til et par titusinder tokens som standard.