Skip to content

Ollama kullanarak özelleştirilmiş modeller oluşturmak ve paylaşmak için bir Modelfile, taslak görevi görür.

Table of Contents

Format

Modelfile'ın biçimi:

# yorum
YÖNERGE argümanlar
YönergeAçıklama
FROM (gerekli)Kullanılacak temel modeli tanımlar.
PARAMETEROllama'nın modeli çalıştırması için kullanılacak parametreleri ayarlar.
TEMPLATEModele gönderilecek tam istem şablonudur.
SYSTEMŞablonda ayarlanacak sistem mesajını belirtir.
ADAPTERModele uygulanacak (Q)LoRA adaptörlerini tanımlar.
LICENSEYasal lisansı belirtir.
MESSAGEMesaj geçmişini belirtir.
REQUIRESModelin gerektirdiği minimum Ollama sürümünü belirtir.

Örnekler

Temel Modelfile

Bir Mario taslağı oluşturan bir Modelfile örneği:

FROM llama3.2
# sıcaklığı 1 olarak ayarlar [daha yüksek değer daha yaratıcı, daha düşük değer daha tutarlı olur]
PARAMETER temperature 1
# bağlam penceresi boyutunu 4096 olarak ayarlar, bu LLM'in bir sonraki jetonu üretmek için bağlam olarak kullanabileceği jeton sayısını kontrol eder
PARAMETER num_ctx 4096

# sohbet asistanının davranışını belirtmek için özel bir sistem mesajı ayarlar
SYSTEM You are Mario from super mario bros, acting as an assistant.

Bunu kullanmak için:

  1. Bir dosya olarak kaydedin (ör. Modelfile)
  2. ollama create seçtiğiniz-model-adı -f <dosyanın konumu örn. ./Modelfile>
  3. ollama run seçtiğiniz-model-adı
  4. Modeli kullanmaya başlayın!

Belirli bir modelin Modelfile'ını görüntülemek için ollama show --modelfile komutunu kullanın.

shell
ollama show --modelfile llama3.2
# Modelfile, "ollama show" tarafından oluşturuldu
# Bunun temelinde yeni bir Modelfile oluşturmak için FROM satırını şununla değiştirin:
# 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"

Yönergeler

FROM (Gerekli)

FROM yönergesi, bir model oluştururken kullanılacak temel modeli tanımlar.

FROM <model adı>:<etiket>

Mevcut bir modelden oluştur

FROM llama3.2
Temel Modeller

Kullanılabilir temel modellerin listesi

Temel Modeller

Ek modeller burada bulunabilir

Bir Safetensors modelinden oluştur

FROM <model dizini>

Model dizini, desteklenen bir mimari için Safetensors ağırlıklarını içermelidir.

Şu anda desteklenen model mimarileri:

  • Llama (Llama 2, Llama 3, Llama 3.1 ve Llama 3.2 dahil)
  • Mistral (Mistral 1, Mistral 2 ve Mixtral dahil)
  • Gemma (Gemma 1 ve Gemma 2 dahil)
  • Phi3

Bir GGUF dosyasından oluştur

FROM ./ollama-model.gguf

GGUF dosyasının konumu, mutlak bir yol olarak veya Modelfile konumuna göreceli olarak belirtilmelidir.

PARAMETER

PARAMETER yönergesi, model çalıştırıldığında ayarlanabilecek bir parametreyi tanımlar.

PARAMETER <parametre> <parametre değeri>

Geçerli Parametreler ve Değerler

ParametreAçıklamaDeğer TürüÖrnek Kullanım
num_ctxBir sonraki jetonu üretmek için kullanılan bağlam penceresinin boyutunu ayarlar. (Varsayılan: 2048)intnum_ctx 4096
repeat_last_nTekrarı önlemek için modelin ne kadar geriye bakacağını ayarlar. (Varsayılan: 64, 0 = devre dışı, -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyTekrarları ne kadar şiddetle cezalandıracağını ayarlar. Daha yüksek bir değer (ör. 1.5) tekrarları daha şiddetle cezalandırırken, daha düşük bir değer (ör. 0.9) daha toleranslı olur. (Varsayılan: 1.1)floatrepeat_penalty 1.1
temperatureModelin sıcaklığı. Sıcaklığı artırmak, modelin daha yaratıcı cevaplar vermesini sağlar. (Varsayılan: 0.8)floattemperature 0.7
seedÜretim için kullanılacak rastgele sayı tohumunu ayarlar. Bunu belirli bir sayıya ayarlamak, modelin aynı istem için aynı metni üretmesini sağlar. (Varsayılan: 0)intseed 42
stopKullanılacak durdurma dizilerini ayarlar. Bu desenle karşılaşıldığında LLM metin üretmeyi durdurur ve döner. Bir Modelfile'da birden fazla ayrı stop parametresi belirterek birden fazla durdurma desenleri ayarlanabilir.stringstop "AI assistant:"
num_predictMetin üretirken tahmin edilecek maksimum jeton sayısı. (Varsayılan: -1, sonsuz üretim)intnum_predict 42
draft_num_predictBir taslak model mevcut olduğunda her adımda tahmin edilecek spekülatif taslak jetonlarının maksimum sayısı. Ayrı taslak modellerin varsayılan değeri 4'tür; gömülü MTP tensörleri bu parametrenin ayarlanmasını gerektirir. Spekülatif taslamayı devre dışı bırakmak için 0 olarak ayarlayın.intdraft_num_predict 4
top_kAnlamsız metin üretme olasılığını azaltır. Daha yüksek bir değer (ör. 100) daha çeşitli cevaplar verirken, daha düşük bir değer (ör. 10) daha muhafazakâr olur. (Varsayılan: 40)inttop_k 40
top_pTop-k ile birlikte çalışır. Daha yüksek bir değer (ör. 0,95) daha çeşitli metinler üretirken, daha düşük bir değer (ör. 0,5) daha odaklı ve muhafazakâr metinler üretir. (Varsayılan: 0.9)floattop_p 0.9
min_ptop*p'ye alternatif olarak, kalite ve çeşitlilik arasında bir denge sağlamayı amaçlar. p parametresi, en olası jetonun olasılığına göre, bir jetonun değerlendirilmesi için minimum olasılığı temsil eder. Örneğin, p=0,05 ve en olası jetonun olasılığı 0,9 olduğunda, 0,045'ten daha düşük değere sahip logitler filtrelenir. (Varsayılan: 0.0)floatmin_p 0.05

TEMPLATE

Modele iletilmesi gereken tam istem şablonunun TEMPLATE'i. İsteğe bağlı olarak bir sistem mesajı, kullanıcının mesajı ve modelden gelen yanıtı içerebilir. Not: sözdizimi modele özgü olabilir. Şablonlar, Go şablon sözdizimini kullanır.

Şablon Değişkenleri

DeğişkenAçıklama
&#123;&#123;.System&#125;&#125;Özel davranışı belirtmek için kullanılan sistem mesajı.
&#123;&#123;.Prompt&#125;&#125;Kullanıcının istem mesajı.
&#123;&#123;.Response&#125;&#125;Modelden gelen yanıt. Bir yanıt üretilirken bu değişkenden sonraki metin çıkarılır.
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

SYSTEM yönergesi, uygulanabilirse şablonda kullanılacak sistem mesajını belirtir.

SYSTEM """<sistem mesajı>"""

ADAPTER

ADAPTER yönergesi, temel modele uygulanması gereken ince ayarlanmış bir LoRA adaptörünü belirtir. Adaptörün değeri, mutlak bir yol veya Modelfile'a göreceli bir yol olmalıdır. Temel model, bir FROM yönergesi ile belirtilmelidir. Temel model, adaptörün ayarlandığı temel model ile aynı değilse davranış düzensiz olur.

Safetensor adaptör

ADAPTER <safetensor adaptör yolu>

Şu anda desteklenen Safetensor adaptörleri:

  • Llama (Llama 2, Llama 3 ve Llama 3.1 dahil)
  • Mistral (Mistral 1, Mistral 2 ve Mixtral dahil)
  • Gemma (Gemma 1 ve Gemma 2 dahil)

GGUF adaptör

ADAPTER ./ollama-lora.gguf

LİSANS

LICENSE yönergesi, bu Modelfile ile kullanılan modelin paylaşıldığı veya dağıtıldığı yasal lisansı belirtmenizi sağlar.

LICENSE """
<lisans metni>
"""

MESSAGE

MESSAGE yönergesi, modelin yanıt verirken kullanması için bir mesaj geçmişi belirtmenizi sağlar. Modeli benzer şekilde cevaplamaya yönlendirecek bir konuşma oluşturmak için MESSAGE komutunu birden fazla kez kullanın.

MESSAGE <rol> <mesaj>

Geçerli roller

RolAçıklama
systemModel için SYSTEM mesajını sağlamanın alternatif yoludur.
userKullanıcının sorabileceği örnek bir mesaj.
assistantModelin nasıl yanıt vermesi gerektiğine dair örnek bir mesaj.

Örnek konuşma

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

REQUIRES yönergesi, modelin gerektirdiği minimum Ollama sürümünü belirtmenizi sağlar.

REQUIRES <sürüm>

Sürüm, geçerli bir Ollama sürümü olmalıdır (ör. 0.14.0).

Notlar

  • Modelfile büyük/küçük harfe duyarlı değildir. Örneklerde, argümanlardan ayırt etmeyi kolaylaştırmak için yönergeler büyük harfle kullanılmıştır.
  • Yönergeler herhangi bir sırada olabilir. Örneklerde, kolay okunabilirliği sağlamak için FROM yönergesi ilk sırada yer alır.