Lokale LLM's draaien op Linux

Een complete gids voor het opzetten van Ollama en llama.cpp op Linux, inclusief GPU-configuratie en headless installaties.

Als je serieus aan de slag wilt met het lokaal draaien van Large Language Models (LLM's), is Linux het absolute topbesturingssysteem. Waar Windows via WSL2 of macOS via Metal zeker capabel zijn, biedt Linux directe en ongefilterde toegang tot je hardware. Dit betekent dat je maximale prestaties uit je grafische kaart (GPU) haalt, minder systeemgeheugen verliest aan achtergrondprocessen, en eenvoudig een oude gaming-pc in een meterkast kunt ombouwen tot een krachtige AI-server.

In deze uitgebreide gids bespreken we alles wat je moet weten om lokaal aan de slag te gaan. We behandelen het installeren van de juiste drivers voor zowel NVIDIA als AMD, en bekijken twee van de populairste methodes om modellen te draaien: de gebruiksvriendelijke Ollama en de flexibele llama.cpp.

1. Systeemvoorbereiding en Hardware Check

Voordat we software installeren, is het essentieel om te weten met welke hardware we werken. Voor lokale AI-modellen is de hoeveelheid VRAM (Video RAM) op je grafische kaart de belangrijkste beperkende factor. Lees meer over de ideale hardware-eisen in ons artikel over hardware voor lokale LLM's.

Begin met het updaten van je systeem, bij voorkeur op een schone installatie van Ubuntu 22.04 LTS of Debian 12:

sudo apt update && sudo apt upgrade -y

Controleer vervolgens welke grafische kaart door het systeem wordt herkend met het volgende commando:

lspci | grep -i vga

Dit vertelt je direct of je systeem een NVIDIA, AMD of ingebouwde Intel-chip registreert. Noteer dit, want dit bepaalt je volgende stap bij het installeren van de stuurprogramma's.

2. Grafische Drivers Installeren (GPU Acceleratie)

Een model puur op de processor (CPU) draaien is mogelijk, maar pijnlijk traag. Om acceptabele generatiesnelheden (tokens per seconde) te bereiken, moet het model geheel of gedeeltelijk naar de GPU worden verplaatst. Hiervoor heb je de juiste computationele drivers nodig: CUDA voor NVIDIA, of ROCm voor AMD.

NVIDIA (CUDA Toolkit)

NVIDIA is momenteel de industriestandaard voor AI. Het installeren van de juiste drivers op Ubuntu is tegenwoordig gelukkig eenvoudig via de ingebouwde drivermanager.

  1. Installeer de propriëtaire NVIDIA-drivers (kies versie 535 of nieuwer):
    sudo ubuntu-drivers autoinstall
  2. Herstart je machine: sudo reboot
  3. Installeer vervolgens de NVIDIA CUDA toolkit, zodat software zoals llama.cpp direct met de Tensor-cores kan communiceren:
    sudo apt install nvidia-cuda-toolkit
  4. Verifieer de installatie door de status op te vragen:
    nvidia-smi

Als je nvidia-smi draait, zie je een tabel. De belangrijkste waarde voor LLM's staat in de kolom "Memory-Usage" (bijvoorbeeld: 0MiB / 24576MiB). Hoe meer VRAM je vrij hebt, hoe groter het model is dat je kunt inladen.

AMD (ROCm)

AMD-kaarten (vooral de RX 6000 en 7000 series) zijn uitstekende, goedkopere alternatieven, maar de software-stack is complexer. Hiervoor gebruiken we ROCm (Radeon Open Compute).

Download het ROCm installatiescript van de officiële AMD-website voor jouw specifieke Ubuntu-versie. Let erop dat je de amdgpu-install tool installeert met specifieke use-cases:

amdgpu-install --usecase=rocm,hip,mivisionx

Een cruciaal onderdeel bij AMD op Linux is de permissiestructuur. Voeg je huidige gebruiker toe aan de video en render groepen, anders kan de software de GPU niet aanspreken:

sudo usermod -a -G video $USER
sudo usermod -a -G render $USER

3. Methode 1: Ollama Installeren (De makkelijke route)

Als je snel resultaat wilt en niet zelf wilt compileren, is Ollama de beste keuze. Ollama bundelt llama.cpp en alle benodigde afhankelijkheden in een simpel systeem dat aanvoelt als Docker, maar dan specifiek voor lokale AI.

Installatie via het script

Je installeert Ollama met één simpel curl-commando in je terminal:

curl -fsSL https://ollama.com/install.sh | sh

Dit script detecteert automatisch of je een NVIDIA of AMD GPU hebt, downloadt de juiste binaire bestanden, en stelt Ollama direct in als een achtergrondservice via `systemd`. Dit betekent dat Ollama altijd op de achtergrond draait zodra je server opstart.

Je eerste model draaien

Zodra de installatie is voltooid, kun je direct een model downloaden en starten. Meta's Llama 3 is momenteel een uitstekende keuze voor algemeen gebruik:

ollama run llama3

Tijdens de eerste keer draaien zal Ollama het modelbestand downloaden (enkele gigabytes, afhankelijk van het model). Zodra dit klaar is, krijg je een prompt in je terminal waar je direct vragen kunt stellen.

Ollama configureren voor netwerktoegang (Headless Server)

Standaard luistert Ollama alleen naar verbindingen op de lokale machine (localhost/127.0.0.1 op poort 11434). Als je Linux-machine ergens in een kast staat zonder beeldscherm (headless), en je de AI wilt benaderen vanaf je laptop, moet je de systemd-configuratie aanpassen.

  1. Open de systemd-editor voor Ollama:
    sudo systemctl edit ollama.service
  2. Voeg de volgende regels toe in de editor, wat aangeeft dat Ollama op alle netwerkinterfaces moet luisteren:
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0"
  3. Herlaad de systemd-daemon en herstart Ollama:
    sudo systemctl daemon-reload
    sudo systemctl restart ollama

Nu kun je Ollama bereiken via het IP-adres van je server op je thuisnetwerk (bijv. http://192.168.1.50:11434).

4. Methode 2: Llama.cpp Installeren (Voor maximale controle)

Hoewel Ollama fantastisch is voor beginners, biedt het niet altijd de nieuwste features of volledige controle over inferentie-parameters. Voor de puristen is het direct draaien van llama.cpp aan te raden. Dit pakket is geschreven in pure C/C++ en is extreem efficiënt.

Compileren vanaf de broncode

Omdat elke Linux-installatie net iets andere hardware heeft, is het aan te raden llama.cpp zelf te compileren op jouw machine. Hiervoor hebben we build-essential en git nodig.

sudo apt install build-essential git cmake
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

Nu moeten we het project compileren. Let goed op: Het standaard make commando bouwt een CPU-only versie. Om GPU-acceleratie in te schakelen, moet je specifieke vlaggen meegeven.

Voor NVIDIA (CUDA):

make LLAMA_CUDA=1

Voor AMD (ROCm/HIP):

make LLAMA_HIPBLAS=1

Het compileren kan enkele minuten duren. Na voltooiing vind je een bestand genaamd llama-server in de map.

Een GGUF-model downloaden en draaien

Llama.cpp gebruikt het GGUF-bestandsformaat. Dit is een speciaal bestandsformaat waarin het model is "gekwantiseerd" (gecomprimeerd) zodat het in het RAM en VRAM van consumentenhardware past. Voor meer diepgang hierover raden we aan ons artikel kwantisatie uitgelegd te lezen.

Je kunt modellen downloaden via platforms zoals Hugging Face. Zodra je een .gguf bestand hebt (bijvoorbeeld mistral-7b-v0.1.Q4_K_M.gguf), kun je de server starten:

./llama-server -m mistral-7b-v0.1.Q4_K_M.gguf -c 4096 -ngl 99 --host 0.0.0.0

5. Gebruik en Integratie in je Workflow

Een draaiend model in je terminal of als achtergrondservice is indrukwekkend, maar niet erg gebruiksvriendelijk. Gelukkig zijn er talloze manieren om met je lokale LLM te praten.

Webinterfaces (Grafische UI)

De meest populaire methode is het opzetten van een webinterface die lijkt op ChatGPT. De absolute aanrader hiervoor is Open WebUI. Deze interface draait als een Docker-container en maakt naadloos verbinding met je Ollama-installatie of llama.cpp server. Je kunt er documenten in uploaden, gespreksgeschiedenis opslaan en verschillende modellen naast elkaar vergelijken. Lees onze stap-voor-stap gids over Open WebUI opzetten voor de volledige instructies.

API-integraties en RAG

Omdat zowel Ollama als de llama-server een OpenAI-compatibele API blootstellen, kun je je lokale model gebruiken als brein voor andere applicaties. Als je bijvoorbeeld programmeert in Python, kun je scripts schrijven die je lokale model gebruiken om data te analyseren of documenten te doorzoeken via Retrieval-Augmented Generation. Voor een goed begrip van deze programmeerconcepten, kun je kijken naar onze gids over RAG voor beginners.

6. Probleemoplossing en Optimalisatie

Werken met lokale AI op Linux kan soms tot frustraties leiden, vooral op oudere hardware. Hier zijn de meest voorkomende problemen en hun oplossingen:

Conclusie

Linux is zonder twijfel het krachtigste fundament voor het draaien van lokale LLM's. Of je nu kiest voor de plug-and-play eenvoud van Ollama via een simpele systemd-service, of de chirurgische precisie van een zelfgecompileerde llama.cpp-instantie; je hebt nu de volledige controle over je eigen, private AI zonder afhankelijk te zijn van cloud-providers. Experimenteer met verschillende modellen, monitor je VRAM-gebruik, en ontdek de ongekende mogelijkheden van lokaal gehoste AI.