Aan de Slag met Ollama

Introductie

Ollama is de eenvoudigste manier om Large Language Models (LLMs) lokaal uit te voeren. Denk eraan als "Docker voor LLMs" — het handelt modeldownloads, opslag en inferentie af met een schone command-line interface. Geen complexe setup, geen afhankelijkheidsproblemen — één commando om te installeren, één commando om te beginnen met chatten.

In deze module leer je:

  • Ollama op je Jetson-apparaat installeren
  • Je eerste LLM downloaden en uitvoeren
  • Verschillende modellen en hun mogelijkheden verkennen
  • Een webgebaseerde chatinterface instellen met Open WebUI

ollama-banner

ollama-prompt

Waarom Ollama?

FunctieBeschrijving
Eén-regel installatieEnkel commando om te starten
Automatisch modelbeheerDownloadt en beheert automatisch modelbestanden
Eenvoudige commando'sollama run modelnaam om te beginnen met chatten
REST APIIngebouwde HTTP-server voor integratie
Meerdere modellenVerschillende modellen parallel uitvoeren
OpenAI-compatibelAPI compatibel met OpenAI-interface

Systeemvereisten

Voordat je Ollama installeert, zorg ervoor dat je Jetson-apparaat aan deze vereisten voldoet:

VereisteMinimumAanbevolen
JetPack5.1+6.0+
RAM8GB16GB+
Opslag10GB vrij50GB+ (voor meerdere modellen)
Swap8GB16GB

Eerste gebruikers: Als je nog geen swap-ruimte op je Jetson hebt ingesteld, bekijk dan Hoofdstuk 3: Swap-configuratie

Ollama Installeren

Methode 1: Directe Installatie (Aanbevolen)

Open een terminal op je Jetson-apparaat en voer uit:

bash
# Ollama downloaden en installeren
curl -fsSL https://ollama.com/install.sh | sh

Het installatiescript zal:

  1. Je systeemarchitectuur detecteren (ARM64)
  2. De juiste Ollama-binary downloaden
  3. De systemd-service instellen
  4. De installatie verifiëren

Installatie Verifiëren

bash
# Ollama-versie controleren
ollama --version

# Controleren of de service draait
systemctl status ollama

Je Eerste LLM-interactie

Laten we nu je eerste LLM uitvoeren. Ollama zal het model automatisch downloaden bij de eerste keer draaien.

Je kunt de ondersteunde modellen van Ollama hier vinden. Selecteer het model dat je op je apparaat wilt deployen.

Een Model Uitvoeren

bash
# Bijvoorbeeld
ollama run qwen3.5:2b

Zodra gedownload, zie je een chat-prompt:

bash
What is NVIDIA Jetson?

Nuttige Chat-commando's

CommandoBeschrijving
/?Hulp weergeven
/byeGesprek beëindigen
Ctrl+DGesprek beëindigen
/clearConversatiegeschiedenis wissen
/historyConversatiegeschiedenis weergeven

Verschillende Modellen Verkennen

Vision-Language Models (Multimodaal)

bash
# Qwen3.5 - Afbeeldingen en tekst begrijpen
ollama run qwen3.5:2b
#Je kunt een afbeelding specificeren en het model de inhoud ervan laten beschrijven.
What can you see in /home/seeed/test.jpg

qwen_v

De REST API Gebruiken

Ollama draait een lokale HTTP-server op poort 11434, waardoor integratie met andere applicaties gemakkelijk wordt.

Een Chat-verzoek Verzenden

bash
# Eenvoudige tekstgeneratie
curl http://localhost:11434/api/generate -d '{
  "model": "qwen3.5:2b",
  "prompt": "What is edge computing?",
  "stream": false
}'

curl_test

Python-integratie

python
import requests

def chat_with_ollama(prompt, model="qwen3.5:2b"):
    """Een prompt naar Ollama sturen en een antwoord krijgen."""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

# Voorbeeldgebruik
response = chat_with_ollama("Write a simple Python function to calculate factorial")
print(response)

OpenAI-compatibele API

bash
# openai sdk installeren
pip install openai

Ollama biedt een OpenAI-compatibel eindpunt, waardoor je bestaande OpenAI-clientbibliotheken kunt gebruiken:

python
from openai import OpenAI

# Verbinding maken met lokale Ollama
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="not-needed"  # Ollama heeft geen API-sleutel nodig
)

response = client.chat.completions.create(
    model="qwen3.5:4b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in simple terms."}
    ]
)

print(response.choices[0].message.content)

VLM vindt objecten in afbeelding

bash
pip install ollama
git clone https://github.com/Seeed-Projects/reComputer-Jetson-for-Beginners
cd reComputer-Jetson-for-Beginners/5-Offline-Large-Model-Development/code
python vlm_object_detector.py

wacht een minuut en je kunt het resultaat in de img-map zien

vlm_find_obj

Open WebUI Instellen

Open WebUI (voorheen Ollama WebUI) biedt een ChatGPT-achtige interface voor interactie met je lokale modellen.

Installatie via Docker

bash
# Open WebUI-image ophalen
docker pull ghcr.io/open-webui/open-webui:main

# Datamap maken
sudo mkdir -p /opt/seeed/open-webui/data

# Container uitvoeren
docker run -d \
  --restart always \
  --name open-webui \
  --network host \
  -v /opt/seeed/open-webui/data:/app/backend/data \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  ghcr.io/open-webui/open-webui:main

# Containerstatus controleren
docker logs -f open-webui

Toegang tot Open WebUI

Zodra de container draait:

  1. Open een browser op je Jetson (of een ander apparaat op hetzelfde netwerk)
  2. Navigeer naar http://localhost:8080 (of http://<jetson-ip>:8080)
  3. Maak een admin-account aan bij de eerste toegang
  4. Selecteer je model uit het dropdown-menu en begin met chatten!

web_ui

Functies van Open WebUI

  • Modelbeheer: Schakelen tussen verschillende Ollama-modellen
  • Conversatiegeschiedenis: Chatgeschiedenissen opslaan en doorzoeken
  • Multi-user ondersteuning: Accounts aanmaken voor verschillende gebruikers
  • RAG-ondersteuning: Documenten uploaden en ermee chatten
  • Afbeeldinggeneratie: Integreren met afbeeldinggeneratiemodellen
  • Plugin-systeem: Functionaliteit uitbreiden met community-plugins

Tips voor Betere Prestaties

  1. Gebruik geschikte modelgroottes: Begin met 1B-3B-modellen op Jetson Orin Nano
  2. Vergroot swap-ruimte: Voeg meer swap toe voor grotere modellen
  3. Sluit onnodige applicaties: Maak GPU-geheugen vrij
  4. Gebruik gekwantiseerde modellen: GGUF-gekwantiseerde modellen (Q4_K_M) bieden de beste snelheid/kwaliteit-afweging
  5. Monitor temperatuur: Jetson kan thermisch vertragen onder aanhoudende belasting — zorg voor voldoende koeling

Veelvoorkomende Problemen en Oplossingen

Probleem 1: Modeldownload Mislukt

Probleem: Error: pull model manifest: Get https://registry.ollama.ai/...

Oplossing:

bash
# Internetverbinding controleren
ping google.com

# Opnieuw proberen met uitgebreide output
OLLAMA_DEBUG=1 ollama pull llama3.2:3b

Probleem 2: Geen Geheugen

Probleem: Error: model requires more system memory (8.0 GiB) than is available (6.0 GiB)

Oplossing:

bash
# Beschikbaar geheugen controleren
free -h

# Swap vergroten (als nog niet geconfigureerd)
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# Een kleiner model gebruiken
ollama run qwen3.5:2b

Probleem 3: Trage Responstijden

Probleem: Zeer trage token-generatie (< 5 tokens/seconde)

Oplossing:

bash
# Een kleiner model gebruiken
ollama run qwen3.5:0.8b

# Contextvenster verkleinen
ollama run qwen3.5:0.8b --num-ctx 2048

# Controleren of GPU wordt gebruikt (nvidia-smi controleren tijdens inferentie)

Probleem 4: Ollama-service Start Niet

Probleem: System has not been booted with systemd as init system

Oplossing (voor Docker-omgevingen):

bash
# Ollama handmatig starten
ollama serve &

# Of op de achtergrond draaien
nohup ollama serve > ollama.log 2>&1 &

Oefening

Voltooi deze stappen om je setup te verifiëren:

  1. Installeer Ollama en verifieer de installatie
  2. Voer een model uit: ollama run qwen3.5:2b
  3. Voer een gesprek: Vraag het over Jetson-platforms
  4. Probeer een ander model: Schakel naar qwen3:4b
  5. Gebruik de API: Stuur een verzoek via curl
  6. Optioneel: Stel Open WebUI in en open het vanuit een browser

Referenties


Volgende: Ga door naar Module 5.3: LLMs Uitvoeren met llama.cpp om lichtgewicht LLM-inferentie te verkennen!