Skip to content

Ein Modelfile ist die Blaupause zum Erstellen und Teilen von angepassten Modellen mithilfe von Ollama.

Inhaltsverzeichnis

Format

Das Format des Modelfile:

# Kommentar
INSTRUCTION arguments
InstructionDescription
FROM (required)Definiert das zu verwendende Basismodell.
PARAMETERLegt die Parameter fest, mit denen Ollama das Modell ausführt.
TEMPLATEDie vollständige Prompt-Vorlage, die an das Modell gesendet wird.
SYSTEMGibt die Systemnachricht an, die in der Vorlage festgelegt wird.
ADAPTERDefiniert die (Q)LoRA-Adapter, die auf das Modell angewendet werden sollen.
LICENSEGibt die rechtliche Lizenz an.
MESSAGEGibt den Nachrichtenverlauf an.
REQUIRESGibt die vom Modell erforderliche Mindestversion von Ollama an.

Beispiele

Grundlegendes Modelfile

Ein Beispiel für ein Modelfile, das eine Mario-Blaupause erstellt:

FROM llama3.2
# Legt die Temperatur auf 1 fest [höher ist kreativer, niedriger ist kohärenter]
PARAMETER temperature 1
# Legt die Größe des Kontextfensters auf 4096 fest, dies steuert, wie viele Token das LLM als Kontext zur Generierung des nächsten Tokens verwenden kann
PARAMETER num_ctx 4096

# Legt eine benutzerdefinierte Systemnachricht fest, um das Verhalten des Chat-Assistenten zu definieren
SYSTEM You are Mario from super mario bros, acting as an assistant.

So verwenden Sie diese:

  1. Speichern Sie sie als Datei (z. B. Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. Beginnen Sie mit der Nutzung des Modells!

Um das Modelfile eines bestimmten Modells anzuzeigen, verwenden Sie den Befehl ollama show --modelfile.

shell
ollama show --modelfile llama3.2
# Modelfile generiert von "ollama show"
# Um ein neues Modelfile auf Basis dieses zu erstellen, ersetzen Sie die FROM-Zeile durch:
# FROM llama3.2:latest
FROM /Users/pdevine/.ollama/models/blobs/sha256-00e1317cbf74d901080d7100f57580ba8dd8de57203072dc6f668324ba545f29
TEMPLATE """{{ if .System }}&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;

{{ .System }}&lt;|eot_id|&gt;{{ end }}{{ if .Prompt }}&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;

{{ .Prompt }}&lt;|eot_id|&gt;{{ end }}&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;

{{ .Response }}&lt;|eot_id|&gt;"""
PARAMETER stop "&lt;|start_header_id|&gt;"
PARAMETER stop "&lt;|end_header_id|&gt;"
PARAMETER stop "&lt;|eot_id|&gt;"
PARAMETER stop "&lt;|reserved_special_token"

Anweisungen

FROM (Erforderlich)

Die FROM-Anweisung definiert das Basismodell, das beim Erstellen eines Modells verwendet wird.

FROM <model name>:<tag>

Aus vorhandenem Modell erstellen

FROM llama3.2
Basismodelle

Eine Liste der verfügbaren Basismodelle

Basismodelle

Weitere Modelle finden Sie unter

Aus einem Safetensors-Modell erstellen

FROM <model directory>

Das Modellverzeichnis sollte die Safetensors-Gewichte für eine unterstützte Architektur enthalten.

Derzeit unterstützte Modellarchitekturen:

  • Llama (einschließlich Llama 2, Llama 3, Llama 3.1 und Llama 3.2)
  • Mistral (einschließlich Mistral 1, Mistral 2 und Mixtral)
  • Gemma (einschließlich Gemma 1 und Gemma 2)
  • Phi3

Aus einer GGUF-Datei erstellen

FROM ./ollama-model.gguf

Der Speicherort der GGUF-Datei sollte als absoluter Pfad oder relativ zum Speicherort des Modelfile angegeben werden.

PARAMETER

Die PARAMETER-Anweisung definiert einen Parameter, der beim Ausführen des Modells festgelegt werden kann.

PARAMETER <parameter> <parametervalue>

Gültige Parameter und Werte

ParameterDescriptionValue TypeExample Usage
num_ctxLegt die Größe des Kontextfensters fest, das zur Generierung des nächsten Tokens verwendet wird. (Standard: 2048)intnum_ctx 4096
repeat_last_nLegt fest, wie weit das Modell zurückblickt, um Wiederholungen zu vermeiden. (Standard: 64, 0 = deaktiviert, -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyLegt fest, wie stark Wiederholungen bestraft werden. Ein höherer Wert (z. B. 1,5) bestraft Wiederholungen stärker, während ein niedrigerer Wert (z. B. 0,9) nachsichtiger ist. (Standard: 1,1)floatrepeat_penalty 1.1
temperatureDie Temperatur des Modells. Eine Erhöhung der Temperatur führt dazu, dass das Modell kreativer antwortet. (Standard: 0,8)floattemperature 0.7
seedLegt den Zufallsstartwert fest, der für die Generierung verwendet wird. Wenn Sie diesen auf eine bestimmte Zahl setzen, generiert das Modell für denselben Prompt immer denselben Text. (Standard: 0)intseed 42
stopLegt die zu verwendenden Stop-Sequenzen fest. Wenn dieses Muster auftritt, stoppt das LLM die Generierung von Text und gibt das Ergebnis zurück. Mehrere Stop-Muster können festgelegt werden, indem mehrere separate stop-Parameter in einem Modelfile angegeben werden.stringstop "AI assistant:"
num_predictMaximale Anzahl von Tokens, die bei der Textgenerierung vorhergesagt werden sollen. (Standard: -1, unendliche Generierung)intnum_predict 42
draft_num_predictMaximale Anzahl von spekulativen Entwurfs-Tokens, die pro Schritt vorhergesagt werden sollen, wenn ein Entwurfsmodell verfügbar ist. Separate Entwurfsmodelle verwenden standardmäßig 4; eingebettete MTP-Tensoren erfordern die Festlegung dieses Parameters. Setzen Sie ihn auf 0, um die spekulative Generierung zu deaktivieren.intdraft_num_predict 4
top_kReduziert die Wahrscheinlichkeit, unsinnigen Text zu generieren. Ein höherer Wert (z. B. 100) liefert vielfältigere Antworten, während ein niedrigerer Wert (z. B. 10) konservativer ist. (Standard: 40)inttop_k 40
top_pFunktioniert zusammen mit Top-K. Ein höherer Wert (z. B. 0,95) führt zu vielfältigerem Text, während ein niedrigerer Wert (z. B. 0,5) fokussierteren und konservativeren Text generiert. (Standard: 0,9)floattop_p 0.9
min_pAlternative zu Top-P und zielt darauf ab, ein Gleichgewicht zwischen Qualität und Vielfalt zu gewährleisten. Der Parameter p repräsentiert die Mindestwahrscheinlichkeit, die ein Token haben muss, um berücksichtigt zu werden, relativ zur Wahrscheinlichkeit des wahrscheinlichsten Tokens. Beispiel: Bei p=0,05 und einer Wahrscheinlichkeit von 0,9 für das wahrscheinlichste Token werden Logits mit einem Wert unter 0,045 herausgefiltert. (Standard: 0,0)floatmin_p 0.05

TEMPLATE

TEMPLATE der vollständigen Prompt-Vorlage, die an das Modell übergeben wird. Sie kann optional eine Systemnachricht, eine Benutzernachricht und die Antwort des Modells enthalten. Hinweis: Die Syntax kann modellspezifisch sein. Vorlagen verwenden die Go-Template-Syntax.

Template-Variablen

VariableDescription
&#123;&#123;.System&#125;&#125;Die Systemnachricht, die zur Festlegung benutzerdefinierten Verhaltens verwendet wird.
&#123;&#123;.Prompt&#125;&#125;Die Benutzer-Prompt-Nachricht.
&#123;&#123;.Response&#125;&#125;Die Antwort des Modells. Bei der Generierung einer Antwort wird Text nach dieser Variable weggelassen.
TEMPLATE """{{ if .System }}&lt;|im_start|&gt;system
{{ .System }}&lt;|im_end|&gt;
{{ end }}{{ if .Prompt }}&lt;|im_start|&gt;user
{{ .Prompt }}&lt;|im_end|&gt;
{{ end }}&lt;|im_start|&gt;assistant
"""

SYSTEM

Die SYSTEM-Anweisung gibt die Systemnachricht an, die in der Vorlage verwendet werden soll, falls zutreffend.

SYSTEM """&lt;system message&gt;"""

ADAPTER

Die ADAPTER-Anweisung gibt einen fein abgestimmten LoRA-Adapter an, der auf das Basismodell angewendet werden soll. Der Wert des Adapters sollte ein absoluter Pfad oder ein Pfad relativ zum Modelfile sein. Das Basismodell sollte mit einer FROM-Anweisung angegeben werden. Wenn das Basismodell nicht mit dem Basismodell übereinstimmt, von dem der Adapter abgestimmt wurde, ist das Verhalten inkonsistent.

Safetensor-Adapter

ADAPTER <path to safetensor adapter>

Derzeit unterstützte Safetensor-Adapter:

  • Llama (einschließlich Llama 2, Llama 3 und Llama 3.1)
  • Mistral (einschließlich Mistral 1, Mistral 2 und Mixtral)
  • Gemma (einschließlich Gemma 1 und Gemma 2)

GGUF-Adapter

ADAPTER ./ollama-lora.gguf

LICENSE

Die LICENSE-Anweisung ermöglicht es Ihnen, die rechtliche Lizenz anzugeben, unter der das mit diesem Modelfile verwendete Modell geteilt oder verteilt wird.

LICENSE """
&lt;license text&gt;
"""

MESSAGE

Die MESSAGE-Anweisung ermöglicht es Ihnen, einen Nachrichtenverlauf anzugeben, den das Modell bei der Antwortgenerierung verwenden soll. Verwenden Sie mehrere Iterationen des MESSAGE-Befehls, um einen Dialog aufzubauen, der das Modell dazu leitet, auf ähnliche Weise zu antworten.

MESSAGE <role> <message>

Gültige Rollen

RoleDescription
systemAlternative Möglichkeit, die SYSTEM-Nachricht für das Modell bereitzustellen.
userEine Beispielnachricht für das, was der Benutzer gefragt haben könnte.
assistantEine Beispielnachricht für die Art und Weise, wie das Modell antworten soll.

Beispielkonversation

MESSAGE user Is Toronto in Canada?
MESSAGE assistant yes
MESSAGE user Is Sacramento in Canada?
MESSAGE assistant no
MESSAGE user Is Ontario in Canada?
MESSAGE assistant yes

REQUIRES

Die REQUIRES-Anweisung ermöglicht es Ihnen, die vom Modell erforderliche Mindestversion von Ollama anzugeben.

REQUIRES <version>

Die Version sollte eine gültige Ollama-Version sein (z. B. 0.14.0).

Hinweise

  • Das Modelfile ist nicht case-sensitive. In den Beispielen werden großgeschriebene Anweisungen verwendet, um sie einfacher von Argumenten unterscheiden zu können.
  • Anweisungen können in beliebiger Reihenfolge angegeben werden. In den Beispielen steht die FROM-Anweisung zuerst, um die Lesbarkeit zu erhöhen.