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.