Design wechseln

Ollama Modelfile-Parameter im Detail: Leitfaden für eigene Modelle

Aktualisiert am 2026-06-08: Gegen die offizielle Ollama-Modelfile-Doku geprüft — es gibt 7 Anweisungen (FROM / PARAMETER / TEMPLATE / SYSTEM / ADAPTER / LICENSE / MESSAGE; kein REQUIRES). Einstiegslink korrigiert und Weiterlesen-Links derselben Serie ergänzt.

Im letzten Artikel ging es darum, Modelle zum Laufen zu bringen – aber eine Sache blieb nervig: die Antworten schwanken stark.

Mal frage ich llama3.2 eine einfache Code-Frage und bekomme drei knappe Zeilen, mal einen ganzen Aufsatz. Bei temperature 0,8 wird es „kreativ“; bei 0,1 klingt es wie auswendig Gelerntes. Am ärgerlichsten: Bei jedem Gespräch den System-Prompt neu setzen – Copy-Paste bis zum Erbrechen.

Dann entdeckte ich das Ollama-Modelfile. Kurz gesagt: ein „Persönlichkeits-Lebenslauf“ für das Modell – einmal konfigurieren, dauerhaft wirksam. In diesem Artikel fasse ich meine Stolpersteine und Tuning-Erfahrungen zusammen: Empfehlungen zu zehn Kernparametern und vier Vorlagen, die Sie direkt nutzen können.

Wenn Ollama noch nicht installiert ist, lesen Sie zuerst den Einstiegsartikel der Serie. Dieser Text ist fortgeschritten und setzt voraus, dass ollama run bereits funktioniert.

1. Was ist ein Modelfile – und warum brauchen Sie es?

Ein Modelfile ist der „Konfigurationsplan“ Ihres Modells – ähnlich wie ein Dockerfile: Sie nennen das Basismodell, setzen Parameter, definieren den System-Prompt und vergeben einen Namen. Jeder Aufruf unter diesem Namen lädt die gesamte Konfiguration automatisch.

Kurz gesagt löst es drei typische Probleme:

Problem 1: Immer wieder dieselbe Einrichtung

Terminal öffnen, ollama run llama3.2, System-Prompt tippen. Am nächsten Tag von vorn. Am übernächsten Tag wieder. Das Modelfile hält diese Einstellungen fest – einmal konfiguriert, dauerhaft gültig.

Problem 2: Instabiler Ausgabestil

Dasselbe Modell liefert je nach Parametern völlig unterschiedliche Texte. Code-Hilfe braucht Stabilität, kreatives Schreiben Vielfalt. Sie können sich nicht merken: „Diese Aufgabe temperature 0,3, jene 0,8“ – das Modelfile speichert Ihre Presets.

Problem 3: Varianten verwalten

Sie wollen eine „Code-Review-llama3.2“, eine „Schreib-llama3.2“, eine „JSON-llama3.2“. Drei Modellkopien? Unnötig. Mit dem Modelfile legen Sie drei benannte Varianten an – unten liegt dieselbe Modell-Datei, nur die Konfiguration unterscheidet sich.

Der Ablauf in drei Schritten:

# 1. Modelfile anlegen
echo 'FROM llama3.2
SYSTEM "Sie sind ein Code-Review-Experte"' > Modelfile

# 2. Neues Modell erzeugen
ollama create my-coder -f Modelfile

# 3. Direkt ausführen
ollama run my-coder

So einfach. Als Nächstes: Was im Modelfile stehen kann.

2. Modelfile-Struktur und die 7 Anweisungen

Die Syntax ist schlank: Kommentare mit #, Anweisungen mit Großbuchstaben am Anfang. Beispiel:

# Dies ist ein Kommentar
FROM llama3.2
PARAMETER temperature 0.8
SYSTEM "Sie sind ein freundlicher Assistent"

Zwei Elemente: Kommentare und Anweisungen. Es gibt sieben Anweisungstypen – zuerst die Übersicht:

AnweisungFunktionPflicht?Wann nutzen
FROMBasismodellJaIn jeder Datei
PARAMETERInferenzparameterOptionalTemperatur, Kontext usw.
TEMPLATEPrompt-VorlageOptionalEigenes Dialogformat
SYSTEMSystemnachrichtOptionalRolle und Verhalten
ADAPTERLoRA-AdapterOptionalBeim Fine-Tuning
LICENSELizenztextOptionalBeim Veröffentlichen
MESSAGEVorgegebener DialogOptionalFew-Shot-Beispiele

Im Alltag reichen in etwa 90 % der Fälle FROM, PARAMETER und SYSTEM. Den Rest schauen Sie bei Bedarf an.

FROM – drei Varianten

FROM ist die einzige Pflichtanweisung:

Variante 1: Modellname (häufigste)

FROM llama3.2
FROM llama3.2:3b
FROM mistral:latest

Modellname wie in Ollama; nach dem Doppelpunkt ein Tag, ohne Angabe latest.

Variante 2: lokale GGUF-Datei

FROM ./my-model.gguf

Für von außen geladene GGUF-Dateien.

Variante 3: Safetensors-Verzeichnis

FROM ./my-safetensors-dir

Seltener – oft Hugging-Face-Originalformat.

Struktur erledigt – jetzt die PARAMETER.

3. PARAMETER im Detail

Der praxisreichste Teil: Stolpersteine aus dem Tuning und eine Tabelle zum Abgreifen.

ParameterStandardTypWirkungTuning-Tipp
temperature0.8floatZufälligkeit – höher = „freier“Code 0,3, kreativ 1,0
num_ctx2048intKontextfensterlange Texte 4096–8192
top_k40intnur Top-K-Tokensmeist Standard lassen
top_p0.9floatNucleus-Samplingmit temperature kombinieren
min_p0.0floatfiltert unwahrscheinliche TokensQualität: 0,05
seed0intfester Zufall für ReproduzierbarkeitTests: 42
stopkeinestringStopp bei Sequenzmehrere stop möglich
num_predict-1intmax. Ausgabelänge, -1 = unbegrenztz. B. 100–500
repeat_penalty1.1floatbestraft Wiederholungenlange Texte: 1,5
repeat_last_n64intFenster für Wiederholungserkennungmit repeat_penalty

Die wichtigsten im Detail.

temperature: Kreativität vs. Stabilität

Hoch (z. B. 1,0): das Modell wählt auch weniger wahrscheinliche, kreativere Tokens. Niedrig (z. B. 0,1): konservativ, nur die wahrscheinlichsten – stabilere Ausgabe.

Frage: Wie liest man in Python eine Datei?

  • temperature 0,1: Lehrbuchantwort, nur Standardlösung
  • 0,5: praktische Hinweise, z. B. Encoding
  • 0,8: mehrere Methoden, Beispiele
  • 1,0: stark variierend, manchmal themenfremd

Erfahrung:

  • Code, technische Q&A: ca. 0,3
  • Kreativ, Brainstorming: 0,8–1,0
  • JSON, festes Format: 0,1–0,2

num_ctx: Kontextfenster

Legt fest, wie viel das Modell „im Kopf“ behält. Standard 2048 Tokens – grob 1500–2000 chinesische Zeichen bzw. entsprechend weniger bei langen deutschen Texten.

Langer Artikel zum Zusammenfassen? 2048 reicht oft nicht. Vergisst das Modell frühere Turns? Oft zu kleines num_ctx.

Wichtig: Größeres num_ctx braucht mehr RAM. Bei llama3.2 stieg der Verbrauch von 2048 auf 8192 mehr als verdoppelt. Mit 8 GB RAM: eher bis 4096.

Erfahrung:

  • kurze Chats: 2048 Standard
  • Code-Review, Technik: 4096 angenehm
  • lange Dokumente: 8192 (wenn RAM reicht)

stop: Stopp-Sequenzen

Sagt dem Modell: „Bei dieser Sequenz aufhören.“

JSON-Ausgabe ohne Zusatztext:

PARAMETER stop "\n\n"
PARAMETER stop "```"

Mehrere stop-Zeilen sind erlaubt – das wissen viele nicht.

repeat_penalty: gegen Leerläufe

Modelle wiederholen gern Phrasen. repeat_penalty bestraft das. Standard 1,1 reicht mir oft nicht; bei langen Texten setze ich 1,3–1,5 – weniger „wie bereits erwähnt“ und „zusammenfassend“.

Parameter nach Szenario

Szenariotemperaturenum_ctxWeitere Tipps
Code-Assistent0.34096stop ”```”, seed 42
Kreatives Schreiben1.02048top_p 0.95, repeat_penalty 1.5
Technische Q&A0.54096min_p 0.05
JSON-Ausgabe0.12048stop “\n\n”, stop ”```”

Damit haben Sie ein Gefühl für die Parameter. Als Nächstes: vier fertige Modelfiles.

4. Praxis: vier vollständige Modelfiles

Theorie reicht – hier Vorlagen, die ich getestet habe. Kopieren, anpassen, ollama create.

Beispiel 1: Rollenspiel – Zhu-Bajie-Assistent

Ein spaßiges Modell im Stil von Zhu Bajie aus „Die Reise in den Westen“:

# Zhu-Bajie-Assistent Modelfile
FROM llama3.2

SYSTEM """Du bist Zhu Bajie aus „Die Reise in den Westen“. Sprich humorvoll und bodenständig.
Bei Antworten:
- Beschwere dich gelegentlich, dass der Meister zu nörgelig ist
- Werde begeistert, wenn Essen erwähnt wird
- Sage von dir „Ich, der alte Zhu“
- Bei Schwierigkeiten: „Lasst uns auflösen und getrennte Wege gehen"""

PARAMETER temperature 0.8
PARAMETER num_ctx 2048

Warum so:

temperature 0,8 gibt der Figur Charakter ohne Starre. Im SYSTEM stehen konkrete Regeln – Essen, Selbstbezeichnung – das macht die Rolle lebendig.

ollama create pig-bajie -f Modelfile
ollama run pig-bajie

Fragen Sie z. B.: „Wie lerne ich gut programmieren?“

Beispiel 2: Python-Code-Review

Meine Alltags-Konfiguration für Code-Review:

# Python Code-Review Modelfile
FROM llama3.2:3b

SYSTEM """Sie sind ein erfahrener Python-Entwickler. Beim Review achten Sie auf:
1. Typsicherheit – potenzielle Typfehler
2. Exception Handling – Randfälle abgedeckt?
3. Performance – unnötige Schleifen oder Redundanz
4. Sicherheit – sensible Daten exponiert?

Antwortformat:
Problem → Auswirkung → Empfehlung → Codebeispiel"""

PARAMETER temperature 0.3
PARAMETER num_ctx 8192
PARAMETER seed 42

Warum so:

temperature 0,3 für stabile Reviews ohne „Kreativität“. num_ctx 8192 für lange Dateien. seed 42 für reproduzierbare Vergleiche.

Hunderte Zeilen Python rein – Ausgabe im Format Problem → Auswirkung → Empfehlung → Beispiel.

Beispiel 3: strukturierte JSON-Ausgabe

Für Downstream-Programme ist JSON praktisch:

# JSON-Ausgabe Modelfile
FROM llama3.2

SYSTEM """Ihre Ausgabe muss gültiges JSON sein.
Format:
{"result": "Analyseinhalt", "confidence": 0-100, "tags": ["Tag1", "Tag2"]}

Kein anderer Text, keine Codeblock-Markierungen."""

PARAMETER temperature 0.1
PARAMETER num_ctx 2048
PARAMETER stop "\n\n"
PARAMETER stop "```"

MESSAGE user Analysiere die Sicherheitsrisiken dieses Codes
MESSAGE assistant {"result": "SQL-Injection-Risiko, Nutzereingabe ungefiltert", "confidence": 85, "tags": ["Sicherheit", "SQL"]}

Warum so:

temperature 0,1 für stabiles JSON. stop filtert Leerzeilen und ```. MESSAGE als Few-Shot-Vorlage.

In Automatisierung: Logs rein, strukturierte Analyse raus.

Beispiel 4: langer Kontext – Dokumentenzusammenfassung

Für lange Artikel braucht es ein großes Fenster:

# Dokumentenzusammenfassung Modelfile
FROM llama3.2

SYSTEM """Sie sind Experte für Zusammenfassungen. Anforderungen:
- maximal 5 Kernpunkte
- jeder Punkt unter 50 Wörtern
- zuerst Kernaussage, dann Details
- Ausgabe auf Deutsch"""

PARAMETER temperature 0.5
PARAMETER num_ctx 8192
PARAMETER num_predict 300

Warum so:

temperature 0,5 – stabil, aber nicht zu starr (sonst Chronik statt Summary). num_ctx 8192 für lange Texte. num_predict 300 begrenzt die Länge.

3000-Wörter-Artikel rein, fünf kurze Punkte raus – deutlich effizienter lesbar.

Kurzfassung

Vier typische Szenarien abgedeckt. SYSTEM und Parameter anpassen, ollama create erneut ausführen – geringe Debug-Kosten.

5. TEMPLATE und MESSAGE – Fortgeschritten

In den Beispielen fehlte TEMPLATE – das ist Fortgeschrittenes, wenn Sie das Dialogformat fein steuern wollen.

TEMPLATE – Go-Template-Syntax

Ollama nutzt Go-Templates. Drei Variablen:

  • {{ .System }} – Inhalt von SYSTEM
  • {{ .Prompt }} – Nutzereingabe
  • {{ .Response }} – Modellausgabe (Formatdefinition)

Einfaches Beispiel:

FROM llama3.2

TEMPLATE """{{ .System }}

Nutzerfrage: {{ .Prompt }}

Antwort: {{ .Response }}"""

SYSTEM "Sie sind Technik-Experte"

Struktur: SYSTEM, dann Frage, dann Antwortplatz.

Meist reicht Ollamas Standard-Template. Anpassen lohnt sich, wenn:

Szenario 1: Integration in andere Tools

Ein Chat-System verlangt ein spezielles Eingabeformat – TEMPLATE als Adapter.

Szenario 2: spezielles Dialogformat

Präfixe wie [AI] / [USER] pro Zeile – über TEMPLATE abbildbar.

MESSAGE: vorgegebener Dialog

MESSAGE zeigt dem Modell Beispiele – wie im JSON-Fall:

MESSAGE user Analysiere die Sicherheitsrisiken dieses Codes
MESSAGE assistant {"result": "SQL-Injection-Risiko", "confidence": 85}

Few-Shot: „Bei solchen Fragen antworten Sie so.“

Mehrere Turns möglich:

MESSAGE user Hallo
MESSAGE assistant Hallo, womit kann ich helfen?
MESSAGE user Wie ist das Wetter?
MESSAGE assistant Ich kenne kein Live-Wetter – nutzen Sie eine Wetter-App.

Beim Start „erinnert“ sich das Modell an diesen Stil.

Modelfile eines Modells anzeigen

ollama show --modelfile llama3.2

Lange Ausgabe mit allen Defaults – kopieren, anpassen, eigenes Custom-Modell bauen. Praktisch, wenn eine Community-Variante gut wirkt: exportieren und von der Konfiguration lernen.

6. FAQ und typische Fallen

Parameter-Tuning bedeutet Stolpersteine. Die häufigsten – und wie Sie sie vermeiden.

Fall 1: temperature zu niedrig – wie auswendig gelernt

„Niedriger = stabiler“ – ich dachte das auch und setzte den Code-Assistenten auf 0,05.

Ergebnis: Antworten wie aus dem Lehrbuch, ohne Praxishinweise. „Python-Datei lesen?“ – drei Standardmethoden, null Tipps.

Lesson: Nicht immer tiefer. Code-Review: 0,3 reicht. Unter 0,2 wird es starr. JSON braucht niedrige Werte; normaler Chat nicht.

Fall 2: num_ctx zu groß – RAM voll

Einmal auf 16384 gesetzt – lange Dokumente! Minuten später Swap, System eingefroren.

16 GB RAM, llama3.2:3b ~2 GB, num_ctx 2048 → 16384: Speicher sprang auf über 8 GB plus andere Apps.

Lesson:

  • 8 GB: num_ctx max. 4096
  • 16 GB: bis 8192
  • 32 GB+: 16384 testbar

Fall 3: SYSTEM und MESSAGE verwechseln

  • SYSTEM: dauerhafte Rolle, jedes Gespräch
  • MESSAGE: Few-Shot-Beispiele im Dialogverlauf

Code-Review: Rolle in SYSTEM, Antwortstil in MESSAGE. Nur SYSTEM – das Modell „weiß“, wer es ist, aber nicht, wie es antworten soll. Ein paar MESSAGE-Beispiele verbessern die Qualität spürbar.

Fall 4: Konfiguration nach Erstellung ändern

Einfach Modelfile bearbeiten und erneut erstellen:

# Erstes Mal
ollama create my-coder -f Modelfile

# Geändert? Nochmal – überschreibt
ollama create my-coder -f Modelfile

Anderen Namen, wenn Sie die alte Version behalten wollen:

ollama create my-coder-v2 -f Modelfile

Fall 5: fremdes Modelfile nachbauen

Gutes Community-Modell gesehen?

ollama pull someone-elses-model
ollama show --modelfile someone-elses-model > learned-modelfile
cat learned-modelfile

Damit habe ich viel über Parameter-Tuning gelernt.

Weiterführend

Zusammenfassung

Kernbotschaft: Konfiguration festhalten, kein manuelles Nachstellen bei jedem Lauf.

Drei Dinge zum Sofort-Ausprobieren:

1. Rollenspiel-Modell

Zhu-Bajie-Vorlage oder eine andere Figur (Doraemon, Iron Man …). Ein paar Runden chatten und den Effekt von temperature spüren.

2. Parameter vergleichen

Dieselbe Frage mit temperature 0,3 und 0,8 – Unterschiede beobachten. Ich mache das oft; es lohnt sich.

3. Ihr Alltagsszenario

Code-Review, Zusammenfassung, kreatives Schreiben – eine Vorlage anpassen, ein paar Iterationen, dann ein persönliches Custom-Modell.

Als Nächstes in der Serie: Ollama-API-Integration – lokales Modell in Ihre Anwendung, OpenAI-kompatible Schnittstelle. Mit fertigem Modelfile wird der API-Aufruf stabiler: Parameter nicht mehr im Code, sondern im Custom-Modell.

Fragen gerne in die Kommentare – vielleicht erspare ich Ihnen ein paar der Fehler, die ich gemacht habe.

Ollama-Custom-Modell erstellen

Eigenes Modell mit Modelfile konfigurieren und anlegen

⏱️ Estimated time: 10 min

  1. 1

    Step 1: Modelfile-Datei anlegen

    Legen Sie eine Textdatei namens Modelfile an und schreiben Sie die Basis-Konfiguration hinein:

    • FROM llama3.2 (Basismodell)
    • SYSTEM „Ihr System-Prompt“ (Rolle definieren)
    • PARAMETER temperature 0.3 (Temperatur setzen)
  2. 2

    Step 2: Custom-Modell erzeugen

    Im Terminal den Erstellungsbefehl ausführen:

    ```bash
    ollama create my-model -f Modelfile
    ```

    my-model ist der Name Ihres Modells – frei wählbar.
  3. 3

    Step 3: Ausführen und testen

    Das erstellte Modell direkt starten:

    ```bash
    ollama run my-model
    ```

    Stellen Sie ein paar Fragen und prüfen Sie, ob die Ausgabe Ihren Erwartungen entspricht.
  4. 4

    Step 4: Iterativ optimieren

    Wenn die Ausgabe nicht passt:

    • temperature anpassen (Code 0,3 / kreativ 0,8)
    • SYSTEM-Prompt ändern
    • MESSAGE-Beispiele ergänzen

    Nach Änderungen erneut `ollama create my-model -f Modelfile` ausführen – überschreibt das Modell.

FAQ

Was ist der Unterschied zwischen Modelfile und direkter Parameterübergabe?
Das Modelfile legt die Konfiguration fest – einmal erstellen, dauerhaft gültig. Direkte Parameter (z. B. bei `ollama run`) müssen jedes Mal neu gesetzt werden; komplexe Einstellungen wie SYSTEM-Prompts lassen sich so nicht speichern.
Welchen Wert soll ich für temperature wählen?
Je nach Szenario:

• Code-Review, technische Q&A: ca. 0,3 – stabile Ausgabe
• Kreatives Schreiben, Brainstorming: 0,8–1,0 – mehr Vielfalt
• JSON-Ausgabe, festes Format: 0,1–0,2 – maximale Präzision

Unter 0,2 wird die Ausgabe starr, über 1,0 kann sie vom Thema abdriften.
Wie viel Speicher verbraucht ein größeres num_ctx?
Abhängig von Modellgröße und num_ctx, grobe Orientierung:

• 8 GB RAM: num_ctx maximal 4096
• 16 GB RAM: num_ctx bis 8192
• 32 GB und mehr: 16384 möglich

Schrittweise anpassen und mit Ihrem tatsächlichen RAM testen.
Wie sehe ich das Modelfile eines vorhandenen Modells?
Mit `ollama show --modelfile Modellname` exportieren Sie die vollständige Modelfile-Konfiguration – zum Lernen oder Anpassen.
Was ist der Unterschied zwischen SYSTEM und MESSAGE?
Unterschiedliche Aufgaben:

• SYSTEM: Rolle und Verhaltensregeln – gilt in jedem Gespräch
• MESSAGE: vorgegebener Dialogverlauf für Few-Shot-Beispiele

Beides kombinieren: SYSTEM für die Rolle, MESSAGE für ein paar Q&A-Beispiele.
Wie ändere ich Parameter nach der Erstellung?
Modelfile bearbeiten und erneut `ollama create Modellname -f Modelfile` ausführen – überschreibt das gleichnamige Modell ohne Löschen. Für eine separate Version einfach einen anderen Modellnamen wählen.

8 Min. Lesezeit · Veröffentlicht am: 5. Apr. 2026 · Aktualisiert am: 9. Juli 2026

Kommentare

Melde dich mit GitHub an, um einen Kommentar zu hinterlassen

Easton BlogEaston Blog