Setup: Dein eigenes LLM mit Ollama
Ab jetzt wird es praktisch. In den folgenden Kapiteln lernst du Prompting-Techniken nicht nur kennen, sondern probierst jede einzelne selbst aus - auf deinem eigenen Laptop, ohne Account, ohne Kreditkarte, ohne dass deine Daten das Gerät verlassen.
Dafür nutzen wir Ollama: ein kleines Programm, das Sprachmodelle lokal ausführt. Du brauchst dafür keine Programmierkenntnisse - alles läuft über ein Terminalfenster.
Warum wir absichtlich schlechte Modelle verwenden
Die Modelle, die du gleich installierst, sind winzig - teilweise 1000-mal kleiner als GPT-5. Sie machen Fehler, schweifen ab und ignorieren Anweisungen.
Genau das ist der Punkt. 🎯
Ein starkes Modell wie ChatGPT versteht auch einen schlampigen Prompt und liefert trotzdem etwas Brauchbares. Dabei lernst du nichts - dein Prompt wird nie geprüft. Ein winziges Modell ist gnadenlos ehrlich: Es liefert nur dann ein gutes Ergebnis, wenn dein Prompt wirklich gut ist.
Wer auf einem 1-Milliarden-Parameter-Modell saubere Ergebnisse erzeugt, kann Prompt Engineering. Alles Größere ist danach ein Kinderspiel.1
Brauche ich Python?
Nein. Der gesamte Kurs ist so aufgebaut, dass du alle Übungen im Terminal erledigen kannst.
Zusätzlich findest du in jedem Kapitel einen eingeklappten Block 🐍 Optional (Python). Er zeigt, wie sich dieselbe Aufgabe automatisieren lässt. Wer mag, probiert es aus. Wer nicht, überspringt es ohne Verlust.
Ollama installieren
Die Installation läuft auf jedem Betriebssystem etwas anders - Ollama beschreibt sie für Windows, macOS und Linux selbst und hält die Anleitung aktuell. Deshalb verweisen wir hier bewusst dorthin, statt eine zweite Version zu pflegen, die irgendwann veraltet:
Folge dort einfach der Anleitung für dein System. Danach läuft Ollama im Hintergrund - erkennbar am 🦙-Symbol in der Taskleiste (Windows) bzw. Menüleiste (macOS).
Reicht mein Laptop?
Für die Modelle in diesem Kurs brauchst du mindestens 8 GB RAM. Eine eigene Grafikkarte ist nicht erforderlich - die Modelle sind bewusst klein gewählt.
Terminal öffnen und Installation prüfen
Wo finde ich das Terminal?
- Windows: Win+R drücken,
cmdeingeben, Enter. (Oder Startmenü → Terminal.) - macOS: Cmd+Leertaste,
Terminaleingeben, Enter. - Linux: Strg+Alt+T.
Tippe im Terminal:
ollama --version
ollama version is 0.6.2
Wenn eine Versionsnummer erscheint, hat alles geklappt. 🎉
Es erscheint „Befehl nicht gefunden" / „is not recognized"
- Terminal neu öffnen. Der Suchpfad wird erst in neuen Fenstern aktualisiert.
- Läuft Ollama überhaupt? Suche das 🦙-Symbol in Taskleiste/Menüleiste. Falls nicht vorhanden: Ollama aus dem Startmenü bzw. Programme-Ordner starten.
- Linux: In einem zweiten Terminal
ollama servelaufen lassen.
Modelle herunterladen
Ein Modell wird einmal heruntergeladen und liegt danach lokal auf deiner Festplatte. Für den gesamten Kurs brauchst du genau ein Modell:
-
gemma3:1b
~815 MB · 1 Mrd. Parameter
Unser Standardmodell für alle Labore. Klein genug, um schlechte Prompts abzustrafen - groß genug, um bei guten Prompts sauber zu liefern.
Modellnamen lesen: was bedeutet 1b?
Der Teil nach dem Doppelpunkt gibt die Anzahl der Parameter an - also wie viele einstellbare Zahlen im Modell stecken. Sie sind das, was beim Training „gelernt" wird.
1b steht also für 1 billion (englisch) = 1 Milliarde (deutsch) - also eine Milliarde einstellbare Parameter.
Achtung, falscher Freund: Englisch billion ist die deutsche Milliarde (10⁹), nicht die Billion (10¹²).
Faustregel: Mehr Parameter = mehr implizit gespeichertes Wissen und feinere Nuancen - aber auch mehr Speicherbedarf, mehr Rechenzeit und höhere Kosten.
Zum Installieren genügt ein Befehl im Terminal:
ollama pull gemma3:1b
Prüfe anschließend, ob es angekommen ist:
ollama list
NAME ID SIZE MODIFIED
gemma3:1b 8648f39daa8f 815 MB 2 minutes ago
Das war's - damit haben wir unser erstes lokales LLM installiert.
Optional: zwei Modelle zum Vergleichen
In einigen Kapiteln gibt es freiwillige Zusatzübungen, die denselben Prompt auf einem kleineren und einem größeren Modell ausprobieren. Wenn du dort mitmachen möchtest, lade dir diese beiden dazu:
ollama pull gemma3:270m
ollama pull gemma3:4b
| Modell | Größe | Wozu |
|---|---|---|
gemma3:270m |
~290 MB | Der Extremtest. Knapp viermal kleiner. Vergisst Anweisungen, erfindet Fakten, driftet ab. Was hier funktioniert, funktioniert überall. |
gemma3:4b |
~3,3 GB | Das Kontrastmodell. Viermal größer - und weil alle drei aus derselben Familie stammen, ist der Unterschied wirklich die Größe und nicht die Trainingsdaten. Zeigt, wie viel Größe einen guten Prompt ersetzt: weniger, als man denkt. |
Du kannst sie auch später jederzeit nachladen. Ein Modell wieder loswerden: ollama rm gemma3:270m
Dein erster Prompt
Für einen einzelnen Prompt hängst du ihn direkt an den Befehl an:
ollama run gemma3:1b "Nenne drei Risiken eines Bio-Lieferdienstes."
Hier sind drei Risiken, die mit dem Betrieb eines Bio-Lieferdienstes verbunden sind:
1. **Hohe Kosten und Margen:** Bio-Produkte sind oft teurer als konventionelle
Produkte. Dies kann zu hohen Produktionskosten führen, was sich in geringeren
Gewinnmargen für den Lieferdienst auswirken kann.
2. **Lieferkettenprobleme und -risiken:** Der Bio-Sektor ist anfällig für
Lieferkettenunterbrechungen aufgrund von Wetterbedingungen, Transportproblemen
oder Schäden an Produkten während des Transports.
3. **Nachhaltigkeits- und ethische Fragen:** Der Bio-Sektor ist oft mit
Umweltfragen verbunden, etwa der Notwendigkeit, nachhaltige Anbaumethoden
zu gewährleisten.
Diese Risiken können für Bio-Lieferdienste eine Herausforderung darstellen, da sie
die Rentabilität und Glaubwürdigkeit des Unternehmens beeinträchtigen können.
Deine Ausgabe wird anders aussehen
Alle Ausgaben in diesem Kurs sind Beispiele. Sprachmodelle antworten nicht jedes Mal gleich - schon derselbe Prompt liefert beim zweiten Aufruf einen anderen Text.
Wer daraus einzelne Durchläufe verallgemeinert, zieht schnell falsche Schlüsse - ein Muster, das sich bei Prompting-Neulingen regelmäßig nachweisen lässt.2
Achte deshalb nie auf den exakten Wortlaut, sondern auf Muster: Ist die Antwort auf Deutsch? Hält sie das Format ein? Ist sie konkret oder allgemein? Genau darum geht es in den Laboren.
Der Chat-Modus
Ohne Prompt am Ende des ollama Aufrufs startet ein fortlaufender Chat:
ollama run gemma3:1b
Was ist ein Business Model Canvas?
Das Modell antwortet - Wort für Wort, genau wie in Station 5 beschrieben. Der Chat merkt sich dabei den bisherigen Verlauf (dein Kontextfenster).
Die wichtigsten Befehle im Chat
/bye- Chat beenden und zurück ins Terminal/clear- Kontextfenster leeren, bei null anfangen/set system "Du bist ein Unternehmensberater."- eine Systemrolle setzen (mehr dazu in Rollenbasiertes Prompting)/set parameter temperature 0.2- die Kreativität einstellen (siehe unten)/show info- technische Daten des Modells anzeigen"""- mehrzeilige Eingabe starten und beenden
Mehrzeilige Prompts eingeben
Das brauchst du ab Kapitel 2 ständig - gute Prompts sind selten einzeilig. Tippe im Chat drei Anführungszeichen, dann deinen Text über mehrere Zeilen, dann wieder drei Anführungszeichen:
"""
... # ROLLE
... Du bist Risikokapitalgeberin mit 15 Jahren Erfahrung.
...
... # AUFGABE
... Nenne die drei größten Risiken eines Bio-Lieferdienstes.
... """
Erst nach dem schließenden """ beginnt das Modell zu antworten.
Noch bequemer: Prompt in einer Datei schreiben
Lange Prompts tippt niemand gern im Terminal. Schreibe sie stattdessen in einem Texteditor und kopiere sie zwischen die """.
Genau dafür richtest du gleich im Ollama-Lab einen Ordner prompt-labor ein - dort sammelst du im Lauf des Kurses in deinem Laborbuch alle Prompts, die funktioniert haben. Am Ende hast du damit deine eigene, erprobte Prompt-Sammlung.
Die Stellschrauben
Zwei Einstellungen verändern das Verhalten des Modells spürbar. Du setzt sie im Chat-Modus mit /set parameter:
Es gibt noch mehr Stellschrauben
Ollama kennt eine ganze Reihe weiterer Parameter - etwa top_k, top_p, repeat_penalty oder num_ctx (die Größe des Kontextfensters). Für den Kurs brauchst du sie nicht, aber wer tiefer einsteigen will, findet die vollständige Liste mit Wertebereichen hier: Valid Parameters and Values (englisch)
Dieselbe Frage, zwei verschiedene Antworten
Sprachmodelle antworten nicht reproduzierbar. Wenn du zwei Prompts vergleichst, kann der Unterschied also auch reiner Zufall sein. Zwei Ursachen kannst du selbst ausschalten:
1. Der Chatverlauf. Fragst du im selben Chat zweimal dasselbe, steht beim zweiten Mal die erste Antwort mit im Kontext - die Ausgangslage ist gar nicht dieselbe.
2. Die Temperatur. Bei jedem Wert über 0 würfelt das Modell bei der Wortauswahl mit.
👉 Für einen fairen Vergleich also beides setzen:
/set parameter temperature 0
/clear
Auch damit bleibt eine Restunschärfe: Fließkomma-Berechnungen auf CPU und GPU sind nicht bit-genau wiederholbar, gelegentlich weicht eine Antwort trotzdem ab. Verlass dich deshalb nie auf einen einzelnen Durchlauf - führe jeden Vergleich mehrfach aus und achte auf das Muster, nicht auf den Wortlaut.
🔬 Ollama-Lab
So arbeitest du in allen Labs
Ab hier endet jedes Kapitel mit einem Ollama-Lab. Die Übungen bauen aufeinander auf - mach sie deshalb der Reihe nach.
Dein Arbeitsordner. Damit wir am Ende unseres Labors auch eine schöne Dokumentation haben, werden wir die wichtigesten Informationen immer niederschreiben. Dafür brauchst du genau zwei Dateien - lege dir jetzt einen Ordner prompt-labor an und darin:
📁 prompt-labor
├── 📄 idee.md # Deine Geschäftsidee
└── 📄 lab_log.md # Dein Laborbuch
Das Laborbuch hat pro Kapitel einen Abschnitt, und in jedem stehen Prompts, Ergebnisse, Notizen und Erkenntnisse. Lege dir das Gerüst gleich an, gefüllt wird es Kapitel für Kapitel:
# Laborbuch
## 00 Setup ← Ollama Setup
## 01 Beschreibung ← Anatomie
## 02a Canvas (Few-Shot) ← Shot Prompting
## 02b Canvas (iteriert) ← Iteratives Prompting
## 03 Canvas strukturiert ← Strukturierte Ausgaben
## 04 Rollen ← Rollenbasiertes Prompting
## 05 Kette ← Prompt Chaining
## 06 Kritik ← Kritisches Prompting
Übung 1: Der Realitätscheck
Stelle demselben Modell zweimal dieselbe Sache - einmal schlampig, einmal präzise.
ollama run gemma3:1b "Schreib was über mein Café"
ollama run gemma3:1b "Schreibe genau 3 Sätze Werbetext für ein veganes Café in Innsbruck. Zielgruppe: Studierende. Ton: locker, ohne Superlative."
Vergleiche den Output. Was fällt dir auf?
Übung 2: Temperatur erfühlen
Starte den Chat-Modus und probiere denselben Prompt bei verschiedenen Temperaturen:
ollama run gemma3:1b
/clear
/set parameter temperature 0.0
Erfinde einen Namen für ein veganes Café in Innsbruck.
/clear
/set parameter temperature 0.7
Erfinde einen Namen für ein veganes Café in Innsbruck.
/clear
/set parameter temperature 1.5
Erfinde einen Namen für ein veganes Café in Innsbruck.
Auch hier wieder: Was fällt dir auf? Probiere ruhig weitere Werte und trage die drei Namen in dein lab_log.md ein.
Was du beobachten solltest
Bei 0.0 bekommst du bei jedem Aufruf praktisch denselben, oft biederen Namen - das Modell nimmt immer das wahrscheinlichste Wort.
Bei 1.5 wird es originell, aber auch schief: erfundene Wörter, gebrochene Grammatik, gelegentlich Unsinn.
0.7 ist der Grund, warum dieser Wert in fast allen Chat-Oberflächen voreingestellt ist: abwechslungsreich, aber noch verlässlich. Merke dir 0.7 als Standard und 0.2 für alles, was vergleichbar sein soll.
Übung 3: Das Kontextfenster zum Überlaufen bringen
Diese Übung macht greifbar, was im Kapitel Halluzinationen und Kontextfenster steht: Ein Modell hat kein Gedächtnis, sondern ein Fenster - und was hinausfällt, ist weg.
Verkleinere das Fenster künstlich und gib dem Modell eine Regel, an die es sich halten soll:
/set parameter num_ctx 512
Du antwortest ausschließlich auf Französisch.
Erzähl mir etwas über Innsbruck.
Jetzt füttere den Chat: Stelle sechs, acht, zehn weitere Fragen, die lange Antworten provozieren („Erzähl mir mehr über die Geschichte der Stadt."). Zähle, nach wie vielen Runden die Regel bricht - ab wann also wieder Deutsch kommt.
Danach dasselbe mit /set parameter num_ctx 4096.
Was du beobachten solltest
Mit 512 Tokens hält die Systemregel oft nur zwei bis vier Runden durch. Sie steht ganz am Anfang des Kontextes - und der Anfang fällt zuerst hinaus, wenn neue Tokens nachrücken.
Das Modell merkt davon nichts. Es kündigt nicht an „ich habe deine Anweisung vergessen", es antwortet einfach wieder auf Deutsch. Genauso verhält sich jedes Modell in jedem langen Chat - nur später.
👉 Das erklärt zwei Beobachtungen, die dir im Kurs noch begegnen: warum sehr kleine Modelle ihre Rolle vergessen, und warum es bei langen Sitzungen besser ist, mit einer Zusammenfassung neu zu starten, statt weiterzureden.
Übung 4: Der Modell-Vergleich (optional)
Für diese Übung brauchst du die beiden Vergleichsmodelle aus dem Abschnitt Modelle herunterladen. Schicke denselben schlechten Prompt an alle drei:
ollama run gemma3:270m "Schreib was über mein Café"
ollama run gemma3:1b "Schreib was über mein Café"
ollama run gemma3:4b "Schreib was über mein Café"
Wiederhole das Ganze mit dem guten Prompt aus Übung 1.
Was du beobachten solltest
Beim schlechten Prompt sind alle drei Modelle schwach - das größere ist nur etwas eloquenter im Danebenliegen.
Beim guten Prompt springt die Qualität bei allen Modellen deutlich nach oben. Der Sprung durch den besseren Prompt ist meist größer als der Sprung durch das größere Modell.
👉 Das ist die zentrale Botschaft dieses Kurses: Ein guter Prompt ersetzt oft ein größeres Modell.
🐍 Optional: Ollama aus Python steuern
Diesen Abschnitt kannst du überspringen - für den Kurs brauchst du ihn nicht. Er lohnt sich, wenn du viele Varianten systematisch vergleichen willst: zehn Prompts, drei Modelle, fünf Wiederholungen. Von Hand wird das mühsam.
🐍 Einrichtung und erstes Skript
Bibliothek installieren:
pip install ollama
Datei erster_prompt.py anlegen:
import ollama
antwort = ollama.chat(
model="gemma3:1b",
messages=[
{"role": "user", "content": "Nenne drei Risiken eines Bio-Lieferdienstes."}
],
)
print(antwort["message"]["content"])
Ausführen mit python erster_prompt.py:
1. Hohe Logistikkosten durch gekühlten Transport.
2. Verderbliche Ware führt zu Verlusten bei schwankender Nachfrage.
3. Starke Konkurrenz durch etablierte Supermärkte mit Lieferservice.
Zur messages-Liste: Ein Chat ist technisch nur eine Liste von Nachrichten mit je einer role - system (Grundsatz-Anweisung), user (deine Eingaben), assistant (bisherige Antworten). Das Modell hat kein Gedächtnis: Bei jedem Aufruf schickst du die komplette Liste erneut mit. Genau deshalb füllt sich das Kontextfenster.
🐍 Der Werkzeugkasten llm.py
Diese Datei wird in den optionalen Python-Blöcken der folgenden Kapitel immer wieder importiert. Lege sie einmal an:
"""Kleiner Helfer für die optionalen Python-Übungen."""
import ollama
KURSMODELL = "gemma3:1b"
# temperatur=0 -> Antworten sind weitgehend wiederholbar.
# Genau das willst du beim Vergleichen von Prompts.
def frage(prompt, system=None, model=KURSMODELL, temperatur=0.0):
"""Schickt einen einzelnen Prompt an das Modell und gibt den Text zurück."""
messages = []
if system:
messages.append({"role": "system", "content": system})
messages.append({"role": "user", "content": prompt})
antwort = ollama.chat(
model=model,
messages=messages,
options={"temperature": temperatur},
)
return antwort["message"]["content"]
Verwendung:
from llm import frage
print(frage("Was ist ein Business Model Canvas?"))
print(frage("Bewerte diese Idee: veganes Café.",
system="Du bist ein skeptischer Investor."))
Das Business Model Canvas ist ein Werkzeug zur Darstellung eines
Geschäftsmodells auf einer Seite. Es besteht aus neun Feldern ...
Der Markt für vegane Gastronomie wächst, ist aber in Städten bereits
dicht besetzt. Entscheidend wären für mich die Mietkosten pro
Quadratmeter und der durchschnittliche Bon pro Gast ...
Quellen
Zur Ausarbeitung wurden generative Tools unterstützend eingesetzt.
Werkzeug-Dokumentation
- Ollama: https://github.com/ollama/ollama/blob/main/README.md
- Ollama Python Library: https://github.com/ollama/ollama-python
- Modell-Bibliothek: https://ollama.com/library
Zur Ausarbeitung wurden generative Tools unterstützend eingesetzt.
-
T. B. Brown, B. Mann, N. Ryder, et al., "Language models are few-shot learners," arXiv:2005.14165, 2020. ↩
-
J. D. Zamfirescu-Pereira, R. Y. Wong, B. Hartmann, and Q. Yang, "Why Johnny can't prompt: How non-AI experts try (and fail) to design LLM prompts," in Proc. CHI Conf. Human Factors in Computing Systems (CHI '23), 2023, pp. 1-21, doi: 10.1145/3544548.3581388. ↩