Mittelstufe 12 Min.Ollama

Ollama Modelfile: Erstellen und anpassen eigener Modell

Ollama kann mehr als nur bestehende Modelle herunterladen: Mit einer Textdatei aus wenigen Zeilen erstellen Sie Ihre eigenen Varianten. Ein Modelfile ist das Gegenstück zu einem Dockerfile für LLMs – es legt einen Systemprompt, Sampling-Parameter und eine Gesprächsvorlage fest. Dieser Leitfaden zeigt anhand von drei konkreten Beispielen, wie Sie Ollama mit einem Modelfile anpassen: ein Assistent, der strikt auf Französisch antwortet, ein Python-Coder und ein Übersetzer ohne zusätzliche Kommentare.

Von Mohamed Meguedmi·Aktualisierung 2026-08-31·Unter Windows, macOS und Linux getestet
i
Kurz gesagt
Ein Ollama-Modelfile ist das Gegenstück zu einem Dockerfile für LLMs: eine Textdatei, die das Verhalten eines bestehenden Modells festlegt, ohne dessen Gewichte zu verändern. · Drei Direktiven reichen für das Wesentliche aus: FROM (das Basismodell), SYSTEM (der persistente Systemprompt) und PARAMETER (Temperatur, Kontext usw.). · Sobald die Datei geschrieben ist, erstellt ollama create mon-modele -f ./Modelfile die Variante, die anschließend mit ollama run mon-modele verwendet werden kann. · Nützlich für einen Assistenten, der strikt auf Französisch antwortet, einen Python-Coder ohne Begleitkommentare oder einen Übersetzer ohne unnötiges Gerede.

#Warum ein Modelfile?

Wenn Sie ollama run qwen3.5:9b eingeben, erhalten Sie ein allgemeines Modell. Es antwortet manchmal auf eine französische Frage auf Englisch, versieht seine Code-Antworten mit endlosen Einleitungen und verhandelt, wenn Sie eine wörtliche Übersetzung verlangen. Anstatt denselben System-Prompt in jeder Sitzung zu wiederholen, legen Sie ihn einmal in einem Modelfile fest und erhalten eine wiederverwendbare Variante.

Konkret ermöglicht ein Modelfile drei Dinge: (1) dem Modell einen dauerhaften Systemprompt zuzuweisen, (2) die Generierungsparameter einzustellen (Temperatur, Kontext, Stop-Tokens), (3) optional die Chat-Vorlage zu ersetzen. Die erstellte Variante lässt sich wie jedes andere Ollama-Modell verwenden: ollama run mon-assistant.

i
Das ist kein Fine-Tuning
Ein Modelfile verändert die Modellgewichte nicht. Es konfiguriert das Verhalten des Modells auf dieser Grundlage. Um dem Modell tatsächlich einen Stil oder ein Fachgebiet beizubringen, ist Fine-Tuning (LoRA, QLoRA) nötig – das geht über die Möglichkeiten von Ollama allein hinaus.

#Voraussetzungen

Das Kit Lokale KI

Sie wissen, wie Sie ein Modell mit einem Modelfile anpassen. Das lokale KI-Kit installiert es in einem echten privaten ChatGPT für den ganzen Haushalt, mit Ollama und Open WebUI (Kap. 6), und hilft Ihnen, das passende Basismodell für Ihren Rechner auszuwählen (Kap. 3).

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Lebenslange Updates
Ollama installiert
Version 0.3 oder höher empfohlen. Überprüfen Sie die Version mit ollama --version. Der Daemon muss unter http://localhost:11434 laufen.
Ein bereits abgerufenes Basismodell
Zum Beispiel ollama pull qwen3.5:9b oder ollama pull qwen3-coder:30b. Das Modelfile erbt von diesem Modell.
Ein Texteditor
VSCode, Notepad++, vim — jeder dieser Editoren eignet sich. Eine bestimmte Dateiendung ist nicht vorgeschrieben; die Datei wird üblicherweise nach Konvention Modelfile genannt.
Etwa 5 Minuten
So lange, wie es dauert, die Datei zu erstellen und ollama create auszuführen. Kein zusätzlicher Download: Ein bereits vorhandenes Modell wird wiederverwendet.

#1. Syntax des Modelfiles

Ein Modelfile ist eine Textdatei mit Anweisungen in Großbuchstaben, jeweils eine pro Block. Die Reihenfolge spielt keine Rolle, aber üblicherweise steht FROM an erster Stelle.

Minimales Grundgerüst
FROM qwen3.5:9b

SYSTEM """
Tu es un assistant utile et concis.
"""

PARAMETER temperature 0.7
PARAMETER num_ctx 4096

Hauptanweisungen:

FROM
Basismodell. Erforderlich. Akzeptiert einen Ollama-Namen (qwen3.5:9b, qwen3.8:27b) oder einen lokalen Pfad zu einer GGUF-Datei.
SYSTEM
Der Systemprompt, der in jede Konversation eingefügt wird. Verwenden Sie dreifache Anführungszeichen für mehrzeilige Texte.
PARAMETER
Sampling- und Kontexteinstellungen. Eine Anweisung pro Parameter. Die nützlichsten: temperature, top_p, top_k, num_ctx, repeat_penalty, num_predict, stop.
TEMPLATE
Vollständiges Prompt-Format (selten). Nur ändern, wenn Sie wissen, was Sie tun — jede Modellfamilie hat ihre eigene Vorlage.
MESSAGE
Few-shot-Beispiele. Mit dem Präfix MESSAGE user oder MESSAGE assistant. Nützlich, um einen Stil zu fixieren.
ADAPTER
Pfad zu einem LoRA-GGUF, der auf das mit FROM angegebene Modell angewendet werden soll. Für fortgeschrittene Benutzer.
LICENSE
Freier Text, zur Nachverfolgbarkeit. Beeinflusst die Ausführung nicht.
→
Die wirklich wichtigen Parameter
In 90 % der Fälle benötigen Sie nur SYSTEM + temperature + num_ctx. Sie müssen nicht alles konfigurieren: Ollama verwendet sinnvolle Standardwerte (temperature 0.8, num_ctx 2048, repeat_penalty 1.1).

#2. Das eigene erste Modell erstellen

Der Workflow ist immer gleich: Man schreibt ein Modelfile, führt ollama create aus und testet mit ollama run.

  1. 01
    Datei erstellen
    In einem Arbeitsordner erstellen Sie eine Datei namens Modelfile (ohne Erweiterung) und fügen die Definition Ihrer Variante hinzu.
  2. 02
    Erstellung starten
    Aus demselben Verzeichnis: ollama create mon-modele -f ./Modelfile. Ollama prüft die Syntax, übernimmt die Gewichte des mit FROM angegebenen Modells und speichert einen neuen Eintrag. Das geschieht sofort; es wird nichts erneut heruntergeladen.
  3. 03
    Prüfen
    ollama list zeigt Ihr neues Modell neben den anderen. Die angezeigte Größe ist identisch mit der des Basismodells – es handelt sich um eine Referenz, nicht um eine Kopie.
  4. 04
    Testen
    ollama run mon-modele. Der System-Prompt und die Parameter sind bereits angewendet. Sie können auch eine Benutzeroberfläche (Open WebUI, LM Studio) über die API auf diese Variante verweisen.
Vollständiger Zyklus
# Dans le dossier qui contient le Modelfile
ollama create assistant-fr -f ./Modelfile
ollama list
ollama run assistant-fr
!
Der Modellname ist endgültig
Um ein Modelfile zu ändern, bearbeiten Sie die Datei und führen Sie ollama create erneut mit DEMSELBEN Namen aus — die Variante wird ersetzt. Wenn Sie den Namen ändern, sammeln sich Referenzen an. ollama rm <nom> entfernt eine nicht mehr benötigte Variante.

#3. Beispiel: französischsprachiger Assistent mit knappen Antworten

Ziel: ein Assistent, der stets auf Französisch antwortet, ohne Einleitung wie „Bien sûr, voici…“, ohne Entschuldigungsfloskeln und mit einer abgestimmten Antwortlänge.

Modelfile-assistant-fr
FROM qwen3.5:9b

SYSTEM """
Tu es un assistant francophone précis et concis.

Règles strictes :
- Réponds toujours en français, jamais en anglais, même si l'utilisateur écrit en anglais.
- Pas de préambule ("Bien sûr", "Voici", "Absolument"). Va directement au fait.
- Pas d'excuses ni de disclaimers sauf si l'information est réellement incertaine.
- Réponses courtes par défaut (3-5 phrases). Détaille uniquement si on te le demande explicitement.
- Si tu ne sais pas, dis-le en une phrase. N'invente pas.
"""

PARAMETER temperature 0.6
PARAMETER top_p 0.9
PARAMETER num_ctx 8192
PARAMETER repeat_penalty 1.15

Erstellung und Test:

Terminal
ollama create assistant-fr -f ./Modelfile-assistant-fr
ollama run assistant-fr "Quels sont les avantages d'un LLM local ?"

repeat_penalty auf 1.15 (statt des Standardwerts 1.1) unterbindet ständige Wiederholungen des Modells. num_ctx auf 8192 ermöglicht es, etwas längere Dokumente einzufügen, ohne am standardmäßigen Kontextlimit von 2048 zu scheitern.

→
Die Wirkung des Systemprompts testen
Vergleichen Sie ollama run qwen3.5:9b und ollama run assistant-fr nebeneinander mit derselben Frage. Ohne Modelfile beginnt Qwen 3.5 oft mit „Bien sûr,“. Mit Ihrer Variante beginnt es direkt mit der Antwort. Das ist der konkrete Unterschied.

#4. Beispiel: Python-Code ohne Lautsprecher

Ziel: ein Code-Partner, der Python-Code zum direkten Einfügen liefert, mit möglichst wenig Begleittext. Ideal für Workflows, bei denen die Ausgabe per Pipe an einen Editor oder ein Skript weitergeleitet werden soll.

Modelfile-coder-py
FROM qwen3-coder:30b

SYSTEM """
Tu es un assistant de code Python expert. Tu suis ces règles :

1. Réponds uniquement avec du code Python valide, dans un bloc fenced ```python.
2. Pas d'explication avant ou après le code, sauf si l'utilisateur demande explicitement une explication.
3. Le code doit être complet, exécutable, avec les imports nécessaires en haut.
4. Privilégie la stdlib quand c'est possible. Si une dépendance externe est nécessaire, mets un commentaire en tête : # pip install <package>.
5. Type hints quand c'est raisonnable (Python 3.10+).
6. Si la demande est ambiguë, choisis l'interprétation la plus probable et code-la, sans poser de questions.
"""

PARAMETER temperature 0.2
PARAMETER top_p 0.95
PARAMETER num_ctx 16384
PARAMETER stop "```\n\n"

Einige bemerkenswerte technische Entscheidungen:

FROM qwen3-coder:30b
Auf Code spezialisiertes Modell aus dem Jahr 2026 (MoE 30B-A3B, nur 3B aktive Parameter, 256k Kontext, ~19 GB in Q4). Auf einer Karte mit 24 GB (RTX 4090) oder einem Mac mit 32 GB läuft es dank seiner 3B aktiven Parameter mit 50–80 Tokens pro Sekunde. Wenn Sie nur 16 GB VRAM haben, ersetzen Sie es durch gpt-oss:20b (14 GB) oder devstral:24b.
temperature 0.2
Für Code eine niedrige Temperatur wählen. Bei 0,7 (Standard) improvisiert das Modell Variablennamen und erfindet manchmal APIs. Bei Code ist deterministisches Verhalten erwünscht.
num_ctx 16384
Erweitertes Kontextfenster zur Analyse ganzer Dateien. Achtung: Vervielfacht den durch den Kontext verursachten VRAM-Verbrauch.
stop
Das Modell stoppt nach dem ersten Codeblock. Dadurch werden Erklärungen nach dem Code vermieden, die die Ausgabe verunreinigen.
Anwendungsbeispiel
ollama create coder-py -f ./Modelfile-coder-py
ollama run coder-py "Lire un CSV avec pandas et retourner la moyenne de la colonne 'prix'"
i
Anpassen an Ihre Bedürfnisse
Wenn Sie auch systematische pytest-Tests generieren möchten, fügen Sie eine Regel im SYSTEM hinzu: "7. Erstellen Sie zusätzlich einen minimalen pytest-Testblock nach dem Hauptcode." Solange die Anweisung klar und widerspruchsfrei ist, folgt das Modell der Anweisung.

#5. Beispiel: strenger Übersetzer EN→FR

Ziel: Ein Übersetzer, der AUSSCHLIESSLICH die Übersetzung zurückgibt, ohne Anführungszeichen, ohne "Übersetzung:", ohne stilistische Variation. Typischer Anwendungsfall: Integration in eine n8n-Pipeline oder ein Bash-Skript, in dem die Ausgabe unverändert weiterverarbeitet wird.

Modelfile-translator
FROM qwen3.5:9b

SYSTEM """
Tu es un traducteur professionnel anglais → français.

Règles ABSOLUES :
- Tu reçois un texte en anglais. Tu retournes UNIQUEMENT la traduction française.
- Pas de préfixe ("Traduction :", "Voici :"), pas de guillemets autour de ta réponse, pas de commentaire.
- Conserve la mise en forme exacte du texte source (sauts de ligne, listes, ponctuation).
- Conserve les noms propres, marques, URLs et identifiants techniques tels quels.
- Si le texte est déjà en français, renvoie-le inchangé.
- Si le texte est dans une autre langue que l'anglais, renvoie : ERREUR_LANGUE_NON_SUPPORTÉE
"""

PARAMETER temperature 0.3
PARAMETER num_ctx 4096
PARAMETER num_predict 2048

Das Hinzufügen von MESSAGE, um das Format durch Few-Shot-Beispiele zu verankern, macht das Verhalten noch vorhersehbarer:

Erweiterte Version mit few-shot
FROM qwen3.5:9b

SYSTEM """
Tu traduis de l'anglais vers le français. Tu renvoies UNIQUEMENT la traduction, sans préfixe ni guillemets.
"""

MESSAGE user "The meeting starts at 3 PM."
MESSAGE assistant "La réunion commence à 15 heures."

MESSAGE user "Please check the attached document."
MESSAGE assistant "Merci de consulter le document ci-joint."

PARAMETER temperature 0.3

Verwendung in einer Pipeline:

Shell-Pipe
echo "The deployment is scheduled for tomorrow morning." | ollama run translator-en-fr
→
Direkter Aufruf über die API
Für die Integration in ein Skript ist die HTTP-API praktischer: curl http://localhost:11434/api/generate -d '{"model":"translator-en-fr","prompt":"Your text here","stream":false}'. Die JSON-Antwort enthält die Übersetzung im Feld response.

#6. Personalisierte Modelle verwalten

Im Laufe der Zeit werden Sie mehrere Varianten sammeln. Einige nützliche Befehle, um die Kontrolle zu behalten:

Bestandsaufnahme und Bereinigung
# Lister tous les modèles (originaux + variantes)
ollama list

# Voir le Modelfile d'une variante (utile pour récupérer un Modelfile perdu)
ollama show --modelfile assistant-fr

# Voir les paramètres effectifs
ollama show --parameters assistant-fr

# Voir le system prompt seul
ollama show --system assistant-fr

# Supprimer une variante (libère uniquement l'entrée, pas les poids du modèle de base)
ollama rm assistant-fr
i
Die eigenen Modelfiles in Git versionieren
Modelfiles sind Text. Speichern Sie sie in einem separaten Git-Repository. So behalten Sie die Historie der funktionierenden Prompts, und jede Maschine mit Ollama und dem richtigen Basismodell kann alle Ihre Varianten innerhalb weniger Sekunden wiederherstellen.

#7. Welches Basismodell sollte man wählen?

Jedes Modelfile beginnt mit FROM: Die Wahl des Basismodells bestimmt 90 % des Endergebnisses. Ein perfekter Systemprompt kann niemals ein Basismodell ausgleichen, das für Ihren Einsatzzweck ungeeignet oder für Ihren VRAM zu groß ist.

Allgemeiner Assistent
Ein aktuelles Modell mit 8 bis 14 Milliarden Parametern (aus der Qwen- oder Gemma-Familie) in Q4: reagiert schnell, ist gut auf Französisch und lässt Spielraum für den Kontext.
Code
Ein auf Code spezialisiertes Modell — MoE-Modelle wie Qwen3-Coder 30B-A3B sind schon ab 20 GB Speicher sehr schnell; darunter bleibt ein auf Code spezialisiertes 7–9B-Modell sinnvoll.
Gehobenes Französisch / Schreiben
Die Mistral-Modelle (Nemo, Magistral) behalten bei gleicher Größe ihren Vorteil im Französischen.
Kleine Konfiguration (8 GB VRAM)
Bleiben Sie bei Modellen mit 4 bis 9 Milliarden Parametern in Q4: Ein Modell, das teilweise in den Arbeitsspeicher ausgelagert wird, ruiniert die Reaktionsgeschwindigkeit, unabhängig vom Modelfile.

Um die Basismodelle nach VRAM, Lizenz und Nutzung zu vergleichen, filtert das QuelLLM-Katalog die mit Ihrem Gerät kompatiblen Modelle — jede Eintragsseite gibt den Befehl ollama run exacte für Ihre FROM-Anweisung bereit.

#Fehlerbehebung

Das Modell ignoriert den System-Prompt
Stellen Sie sicher, dass Sie tatsächlich Ihre Variante (ollama run mon-modele) starten und nicht das Basismodell. Überprüfen Sie dies mit ollama show --system mon-modele.
Abgeschnittene Antworten
Erhöhen Sie num_predict (Standardwert 128 in einigen Konfigurationen) auf 2048 oder höher. Oder fügen Sie PARAMETER num_predict -1 hinzu, um die Grenze zu deaktivieren.
Das Modell hält sich nicht an eine strikte Regel
Formulieren Sie die Regel in Großbuchstaben neu, fügen Sie „UNBEDINGT“ oder „NIEMALS“ hinzu und ergänzen Sie ein Beispiel über MESSAGE. Kleine Modelle (unter etwa 10B) haben Schwierigkeiten mit isolierten Verneinungen.
Fehler „Error: invalid model reference“
Das FROM-Modell ist nicht lokal installiert. Führen Sie ollama pull <modele> vor ollama create aus.
VRAM nach der Erstellung vollständig belegt
Ein hoher Wert für num_ctx vervielfacht den Speicherbedarf. Wenn Sie von 2048 auf 16384 erhöhen, rechnen Sie je nach Modellgröße mit 1 bis 3 GB zusätzlichem VRAM. Gehen Sie auf 8192 zurück, wenn der Speicher knapp wird.

#Weiterführende Informationen

Das Modelfile ist der Grundbaustein, um Ollama zu spezialisieren, ohne die Gewichte zu verändern. Drei naheliegende Richtungen, die Sie anschließend weiter erkunden können:

Systemprompts noch fundierter beherrschen
Der Leitfaden zu Systemprompts erläutert, wie Sie Rollen, Vorgaben und Beispiele strukturieren, um wirklich zuverlässiges Verhalten zu erzielen – hilfreich, sobald Ihr SYSTEM-Eintrag mehr als 5 Zeilen umfasst.
Temperatur, top-p und top-k einstellen
Bevor Sie Änderungen am Modell vornehmen, hilft es, genau zu verstehen, was jeder Sampling-Parameter verändert. Das erspart viel Hin und Her. Der Leitfaden zu diesem Thema behandelt alle nützlichen Einstellungen.
Ihre Varianten über Open WebUI bereitstellen
Sobald Ihre benutzerdefinierten Modelle erstellt sind, listet Open WebUI sie automatisch auf. Sie können in der Benutzeroberfläche mit einem Klick zwischen assistant-fr, coder-py und translator-en-fr wechseln.
Häufige Fragen zu Ollama-Modellen
Wie lassen sich die installierten Ollama-Modelle auflisten?+
ollama list zeigt alle auf der Festplatte vorhandenen Modelle an (Name, Tag, Größe, Datum). ollama ps zeigt die derzeit im Speicher geladenen Modelle mit der CPU/GPU-Verteilung – das ist der erste Schritt, wenn eine Antwort ungewöhnlich langsam erscheint.
Wo werden Ollama-Modelle gespeichert?+
In ~/.ollama/models unter macOS und Linux sowie in C:\Users\<Sie>\.ollama\models unter Windows. Um sie zu verschieben (z. B. auf ein anderes Laufwerk), stellen Sie die Umgebungsvariable OLLAMA_MODELS vor dem Start des Daemons ein.
Wie entferne ich ein Modell, um Speicherplatz freizugeben?+
ollama rm nom:tag löscht die Referenz. Die Gewichte selbst (Blobs) werden nur dann tatsächlich gelöscht, wenn kein anderes Modell sie gemeinsam verwendet – das Löschen eines benutzerdefinierten Modells, das auf einer erhaltenen Basis aufbaut, gibt daher nur wenige Kilobyte frei.
Verbraucht ein benutzerdefiniertes Modell doppelt so viel Speicher auf der Festplatte?+
Nein. Ollama speichert die Gewichte als inhaltsadressierte Blobs: Ihr benutzerdefiniertes Modell verweist auf dieselben Blobs wie sein Basismodell. Nur das Modelfile, der Systemprompt und die Parameter werden hinzugefügt — erstellen Sie so viele Varianten, wie Sie möchten; der zusätzliche Speicherplatzbedarf auf der Festplatte ist vernachlässigbar.
Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.