Skip to content

Een Modelfile is het blueprint om aangepaste modellen te maken en te delen met behulp van Ollama.

Inhoudsopgave

Formaat

De opmaak van de Modelfile:

# comment
INSTRUCTION arguments
InstructieBeschrijving
FROM (verplicht)Definieert het basismodel dat gebruikt moet worden.
PARAMETERStelt de parameters in waarmee Ollama het model uitvoert.
TEMPLATEDe volledige prompttemplate die naar het model wordt verzonden.
SYSTEMSpecificeert het systeembericht dat in de template wordt ingesteld.
ADAPTERDefinieert de (Q)LoRA-adapters die op het model moeten worden toegepast.
LICENSESpecificeert de juridische licentie.
MESSAGESpecificeer de berichtengeschiedenis.
REQUIRESSpecificeer de minimale vereiste Ollama-versie voor het model.

Voorbeelden

Basis-Modelfile

Een voorbeeld van een Modelfile die een Mario-blueprint maakt:

FROM llama3.2
# sets the temperature to 1 [higher is more creative, lower is more coherent]
PARAMETER temperature 1
# sets the context window size to 4096, this controls how many tokens the LLM can use as context to generate the next token
PARAMETER num_ctx 4096

# sets a custom system message to specify the behavior of the chat assistant
SYSTEM You are Mario from super mario bros, acting as an assistant.

Om dit te gebruiken:

  1. Sla het op als een bestand (bijv. Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. Begin met het gebruik van het model!

Om de Modelfile van een bepaald model te bekijken, gebruik je de opdracht ollama show --modelfile.

shell
ollama show --modelfile llama3.2
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this one, replace the FROM line with:
# 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"

Instructies

FROM (Verplicht)

De FROM-instructie definieert het basismodel dat gebruikt wordt bij het maken van een model.

FROM <model name>:<tag>

Bouw op basis van een bestaand model

FROM llama3.2
Basismodellen

Een lijst van beschikbare basismodellen

Basismodellen

Extra modellen zijn te vinden op

Bouw op basis van een Safetensors-model

FROM <model directory>

De modelmap moet de Safetensors-gewichten bevatten voor een ondersteunde architectuur.

Momenteel ondersteunde modelarchitecturen:

  • Llama (inclusief Llama 2, Llama 3, Llama 3.1 en Llama 3.2)
  • Mistral (inclusief Mistral 1, Mistral 2 en Mixtral)
  • Gemma (inclusief Gemma 1 en Gemma 2)
  • Phi3

Bouw op basis van een GGUF-bestand

FROM ./ollama-model.gguf

De locatie van het GGUF-bestand moet worden opgegeven als een absoluut pad of relatief ten opzichte van de locatie van de Modelfile.

PARAMETER

De PARAMETER-instructie definieert een parameter die kan worden ingesteld wanneer het model wordt uitgevoerd.

PARAMETER <parameter> <parametervalue>

Geldige parameters en waarden

ParameterBeschrijvingValue TypeExample Usage
num_ctxStelt de grootte in van het contextvenster dat wordt gebruikt om het volgende token te genereren. (Standaard: 2048)intnum_ctx 4096
repeat_last_nStelt in hoe ver het model terugkijkt om herhaling te voorkomen. (Standaard: 64, 0 = uitgeschakeld, -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyStelt in hoe sterk herhalingen worden bestraft. Een hogere waarde (bijv. 1,5) bestraft herhalingen sterker, terwijl een lagere waarde (bijv. 0,9) milder is. (Standaard: 1,1)floatrepeat_penalty 1.1
temperatureDe temperatuur van het model. Een hogere temperatuur zorgt ervoor dat het model creatiever antwoordt. (Standaard: 0,8)floattemperature 0.7
seedStelt de seed in die gebruikt wordt voor generatie. Als je dit op een specifiek getal instelt, genereert het model dezelfde tekst voor dezelfde prompt. (Standaard: 0)intseed 42
stopStelt de stopreeksen in die gebruikt moeten worden. Wanneer dit patroon wordt gevonden, stopt de LLM met het genereren van tekst en keert terug. Er kunnen meerdere stop patronen worden ingesteld door meerdere aparte stop-parameters op te geven in een modelfile.stringstop "AI assistant:"
num_predictMaximum aantal tokens dat voorspeld moet worden bij het genereren van tekst. (Standaard: -1, oneindige generatie)intnum_predict 42
draft_num_predictMaximum aantal speculatieve concepttokens dat per stap voorspeld moet worden wanneer een conceptmodel beschikbaar is. Losse conceptmodellen hebben standaard de waarde 4; ingebedde MTP-tensoren vereisen het instellen van deze parameter. Stel in op 0 om speculatieve conceptgeneratie uit te schakelen.intdraft_num_predict 4
top_kVerlaagt de kans op het genereren van onzin. Een hogere waarde (bijv. 100) geeft meer gevarieerde antwoorden, terwijl een lagere waarde (bijv. 10) conservatiever is. (Standaard: 40)inttop_k 40
top_pWerkt samen met top-k. Een hogere waarde (bijv. 0,95) leidt tot meer gevarieerde tekst, terwijl een lagere waarde (bijv. 0,5) meer gerichte en conservatieve tekst genereert. (Standaard: 0,9)floattop_p 0.9
min_pAlternatief voor topp, en heeft als doel een evenwicht tussen kwaliteit en variëteit te waarborgen. De parameter _p vertegenwoordigt de minimale waarschijnlijkheid dat een token in aanmerking wordt genomen, relatief ten opzichte van de waarschijnlijkheid van het meest waarschijnlijke token. Bijvoorbeeld, met p=0,05 en het meest waarschijnlijke token met een waarschijnlijkheid van 0,9, worden logits met een waarde lager dan 0,045 eruit gefilterd. (Standaard: 0,0)floatmin_p 0.05

TEMPLATE

TEMPLATE van de volledige prompttemplate die naar het model wordt gestuurd. Deze kan optioneel een systeembericht, een gebruikersbericht en het antwoord van het model bevatten. Opmerking: de syntaxis kan modelspecifiek zijn. Templates gebruiken de Go-template syntax.

Templatevariabelen

VariableBeschrijving
&#123;&#123;.System&#125;&#125;Het systeembericht dat gebruikt wordt om aangepast gedrag te specificeren.
&#123;&#123;.Prompt&#125;&#125;Het gebruikerspromptbericht.
&#123;&#123;.Response&#125;&#125;Het antwoord van het model. Bij het genereren van een antwoord wordt tekst na deze variabele weggelaten.
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

De SYSTEM-instructie specificeert het systeembericht dat in de template wordt gebruikt, indien van toepassing.

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

ADAPTER

De ADAPTER-instructie specificeert een fijngetuned LoRA-adapter die op het basismodel moet worden toegepast. De waarde van de adapter moet een absoluut pad zijn of een pad relatief ten opzichte van de Modelfile. Het basismodel moet worden opgegeven met een FROM-instructie. Als het basismodel niet hetzelfde is als het basismodel waarvan de adapter is getuned, zal het gedrag onvoorspelbaar zijn.

Safetensor-adapter

ADAPTER <path to safetensor adapter>

Momenteel ondersteunde Safetensor-adapters:

  • Llama (inclusief Llama 2, Llama 3 en Llama 3.1)
  • Mistral (inclusief Mistral 1, Mistral 2 en Mixtral)
  • Gemma (inclusief Gemma 1 en Gemma 2)

GGUF-adapter

ADAPTER ./ollama-lora.gguf

LICENSE

De LICENSE-instructie stelt je in staat de juridische licentie te specificeren waaronder het model dat met deze Modelfile wordt gebruikt, wordt gedeeld of verspreid.

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

MESSAGE

De MESSAGE-instructie stelt je in staat een berichtengeschiedenis te specificeren die het model gebruikt bij het antwoorden. Gebruik meerdere herhalingen van de MESSAGE-opdracht om een conversatie op te bouwen die het model zal leiden om op een vergelijkbare manier te antwoorden.

MESSAGE <role> <message>

Geldige rollen

RolBeschrijving
systemAlternatieve manier om het SYSTEM-bericht voor het model te verstrekken.
userEen voorbeeldbericht van wat de gebruiker zou hebben gevraagd.
assistantEen voorbeeldbericht van hoe het model moet antwoorden.

Voorbeeldconversatie

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

De REQUIRES-instructie stelt je in staat de minimale vereiste Ollama-versie voor het model te specificeren.

REQUIRES <version>

De versie moet een geldige Ollama-versie zijn (bijv. 0.14.0).

Opmerkingen

  • De Modelfile is niet hoofdlettergevoelig. In de voorbeelden worden instructies in hoofdletters gebruikt om het gemakkelijker te onderscheiden van argumenten.
  • Instructies kunnen in willekeurige volgorde staan. In de voorbeelden staat de FROM-instructie eerst om de leesbaarheid te behouden.