In diesem Tutorial startet ihr euer erstes Large Language Model (LLM) auf einem eigenen Server – ganz ohne Cloud, ohne API-Key, ohne Internetzugang. Das Modell läuft direkt auf der Hardware vor euch im Raum.
Ihr arbeitet mit Llama 3.2 1B von Meta – einem kompakten Sprachmodell mit 1 Milliarde Parametern. Es ist klein genug, um auf einem normalen Prozessor zu laufen, und trotzdem erstaunlich leistungsfähig.
Was ihr in diesem Tutorial lernt:
Im Raum steht ein Server mit zwei virtuellen Maschinen (LXCs). Jede Gruppe bekommt Zugang zu einer davon.
| Gruppe | Server | Benutzer | Passwort |
|---|---|---|---|
| Gruppe 1 | 192.168.0.195 | root | KiProjekt2026 |
| Gruppe 2 | 192.168.0.111 | root | KiProjekt2026 |
ssh root@192.168.0.195
Beim ersten Verbinden fragt SSH, ob ihr dem Server vertrauen wollt – bestätigt mit yes. Dann gebt das Passwort ein (die Eingabe ist unsichtbar, das ist normal).
hostname
free -h
nproc
hostname zeigt den Servernamen, free -h den verfügbaren Arbeitsspeicher (ca. 12 GB) und nproc die Anzahl der CPU-Kerne (8). Das ist die Hardware, auf der euer KI-Modell gleich läuft.
Ollama ist ein Werkzeug, mit dem ihr KI-Modelle lokal herunterladen und ausführen könnt – ohne Cloud-Dienst, ohne Account. Es ist bereits auf eurem Server vorinstalliert.
ollama --version
ollama list
Ihr solltet mindestens llama3.2:1b sehen – das ist das Modell, mit dem ihr gleich arbeitet. Die Spalte SIZE zeigt die Größe auf der Festplatte (ca. 1,3 GB).
Gut zu wissen: Normalerweise würde man ein Modell mit ollama pull llama3.2:1b herunterladen. Das dauert je nach Internetverbindung einige Minuten. Die Modelle sind für euch bereits vorinstalliert.
Jetzt wird es spannend – startet das Modell und chattet direkt im Terminal!
ollama run llama3.2:1b
Nach wenigen Sekunden erscheint ein Eingabeprompt (>>>). Das Modell ist bereit!
>>> Was ist maschinelles Lernen? Erklaere es in 3 Saetzen.
>>> Write a Python function that checks if a number is prime.
>>> Was ist die Hauptstadt von Burkina Faso?
>>> /bye
Tipp: Das Modell antwortet auf Englisch besser als auf Deutsch. Das liegt daran, dass die Trainingsdaten überwiegend englischsprachig sind. Probiert beide Sprachen aus und vergleicht die Qualität!
Lernt euer Modell besser kennen. Ollama zeigt euch die technischen Details.
ollama show llama3.2:1b
Wichtige Informationen in der Ausgabe:
| Feld | Bedeutung |
|---|---|
parameters | Anzahl der Parameter (1,24 Milliarden – die „Gehirnzellen“ des Modells) |
context length | Maximale Textlänge, die das Modell verarbeiten kann (131072 Tokens) |
quantization | Komprimierungsverfahren (Q8_0 = 8-Bit, spart Speicher bei minimalem Qualitätsverlust) |
embedding length | Dimension der internen Wort-Repräsentation (2048) |
Ein Systemprompt legt fest, wie sich das Modell verhalten soll – seine Rolle, seinen Stil, seine Regeln. Damit könnt ihr das gleiche Modell für völlig verschiedene Aufgaben einsetzen.
ollama run llama3.2:1b --system "Du bist ein freundlicher Erklaerbaer fuer Kinder im Grundschulalter. Erklaere alles einfach und mit Beispielen aus dem Alltag. Antworte immer auf Deutsch."
>>> Was ist maschinelles Lernen?
>>> Wie funktioniert das Internet?
>>> Warum ist der Himmel blau?
/bye) und probiert einen anderen Systemprompt:ollama run llama3.2:1b --system "You are a senior Python developer. Answer only with code and brief comments. No explanations unless asked."
>>> Create a function that reads a CSV file and returns the average of a column.
>>> Now add error handling for missing files and invalid column names.
Die Temperatur bestimmt, wie „kreativ“ oder „vorhersagbar“ das Modell antwortet:
cat <<'EOF' > Modelfile-kreativ
FROM llama3.2:1b
PARAMETER temperature 1.8
SYSTEM "Du bist ein kreativer Geschichtenerzaehler. Erzaehle fantasievolle, ueberraschende Geschichten."
EOF
ollama create kreativ-llama -f Modelfile-kreativ
ollama run kreativ-llama
>>> Erzaehle eine kurze Geschichte ueber einen Roboter, der kochen lernt.
cat <<'EOF' > Modelfile-sachlich
FROM llama3.2:1b
PARAMETER temperature 0.1
SYSTEM "Du bist ein sachlicher Assistent. Antworte praezise und faktenbasiert. Keine Ausschmueckungen."
EOF
ollama create sachlich-llama -f Modelfile-sachlich
ollama run sachlich-llama
Jedes Modell hat Grenzen. Bei einem 1B-Modell sind diese besonders deutlich. Findet sie!
>>> Wenn alle Blumen Pflanzen sind und einige Pflanzen Baeume sind, sind dann alle Blumen Baeume?
>>> Ein Bauer hat 15 Schafe. Alle bis auf 8 sterben. Wie viele Schafe hat er noch?
>>> Ich habe 3 Aepfel. Ich esse 2 und kaufe 5. Dann gebe ich die Haelfte weg. Wie viele habe ich?
>>> Wer ist der aktuelle Bundespraesident von Deutschland?
>>> Welche Version hat Python aktuell?
Das Modell kennt nur Informationen bis zu seinem Trainings-Stichtag (Knowledge Cutoff). Alles danach ist ihm unbekannt – es wird aber trotzdem antworten, möglicherweise mit erfundenen Fakten (Halluzination).
>>> Erzaehle mir ueber das beruehmte Gemaelde "Der tanzende Elefant" von Picasso.
>>> Welche wissenschaftlichen Studien belegen, dass Schokolade Krebs heilt?
Beide Fragen sind Unsinn – das Gemälde und die Studien existieren nicht. Beobachtet, ob das Modell das erkennt oder überzeugend klingende Falschinformationen generiert.
>>> Schreibe eine komplette HTML-Seite mit CSS und JavaScript fuer einen Taschenrechner.
>>> Erklaere die Relativitaetstheorie so, dass ein 5-Jaehriger es versteht. Dann erklaere sie auf Uni-Niveau.
Zum Nachdenken: Was bedeutet es für den Einsatz von KI-Tools im Alltag, wenn selbst große Modelle wie ChatGPT halluzinieren können? Wann ist es gefährlich, einer KI-Antwort blind zu vertrauen?
Entfernt die selbst erstellten Modellvarianten, damit der Server ordentlich bleibt:
ollama rm kreativ-llama
ollama rm sachlich-llama
rm Modelfile-kreativ Modelfile-sachlich
ollama list
| Modelle verwalten | |
|---|---|
ollama list | Installierte Modelle anzeigen |
ollama pull NAME | Modell herunterladen |
ollama rm NAME | Modell löschen |
ollama show NAME | Modell-Informationen anzeigen |
| Chat | |
ollama run NAME | Modell starten und chatten |
ollama run NAME --system "..." | Mit Systemprompt starten |
/bye | Chat beenden |
| Eigene Varianten | |
ollama create NAME -f Modelfile | Eigene Modellvariante erstellen |