Skip to content

Modelfile adalah rancangan untuk membuat dan berbagi model yang disesuaikan menggunakan Ollama.

Daftar Isi

Format

Format dari Modelfile:

# comment
INSTRUCTION arguments
InstructionDescription
FROM (wajib)Menentukan model dasar yang akan digunakan.
PARAMETERMengatur parameter yang akan menentukan cara Ollama menjalankan model.
TEMPLATETemplate prompt lengkap yang akan dikirim ke model.
SYSTEMMenentukan pesan sistem yang akan disetel di dalam template.
ADAPTERMenentukan adapter (Q)LoRA yang akan diterapkan ke model.
LICENSEMenentukan lisensi hukum yang berlaku.
MESSAGEMenentukan riwayat pesan.
REQUIRESMenentukan versi minimum Ollama yang dibutuhkan oleh model.

Contoh

Modelfile Dasar

Contoh Modelfile yang membuat rancangan model mario:

FROM llama3.2
# mengatur suhu (temperature) ke 1 [lebih tinggi = lebih kreatif, lebih rendah = lebih koheren]
PARAMETER temperature 1
# mengatur ukuran jendela konteks ke 4096, ini mengontrol berapa banyak token yang dapat digunakan LLM sebagai konteks untuk menghasilkan token berikutnya
PARAMETER num_ctx 4096

# mengatur pesan sistem kustom untuk menentukan perilaku asisten chat
SYSTEM You are Mario from super mario bros, acting as an assistant.

Untuk menggunakan ini:

  1. Simpan sebagai file (misalnya Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. Mulai menggunakan model!

Untuk melihat Modelfile dari model tertentu, gunakan perintah ollama show --modelfile.

shell
ollama show --modelfile llama3.2
# Modelfile yang dihasilkan oleh "ollama show"
# Untuk membuat Modelfile baru berdasarkan yang ini, ganti baris FROM dengan:
# 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"

Instruksi

FROM (Wajib)

Instruksi FROM menentukan model dasar yang akan digunakan saat membuat model.

FROM <model name>:<tag>

Buat dari model yang sudah ada

FROM llama3.2
Model Dasar

Daftar model dasar yang tersedia

Model Dasar

Model tambahan dapat ditemukan di

Buat dari model Safetensors

FROM <model directory>

Direktori model harus berisi bobot Safetensors untuk arsitektur yang didukung.

Arsitektur model yang saat ini didukung:

  • Llama (termasuk Llama 2, Llama 3, Llama 3.1, dan Llama 3.2)
  • Mistral (termasuk Mistral 1, Mistral 2, dan Mixtral)
  • Gemma (termasuk Gemma 1 dan Gemma 2)
  • Phi3

Buat dari file GGUF

FROM ./ollama-model.gguf

Lokasi file GGUF harus ditentukan sebagai path absolut atau relatif terhadap lokasi Modelfile.

PARAMETER

Instruksi PARAMETER menentukan parameter yang dapat diatur saat model dijalankan.

PARAMETER <parameter> <parametervalue>

Parameter dan Nilai yang Valid

ParameterDescriptionValue TypeExample Usage
num_ctxMengatur ukuran jendela konteks yang digunakan untuk menghasilkan token berikutnya. (Default: 2048)intnum_ctx 4096
repeat_last_nMengatur seberapa jauh model akan melihat ke belakang untuk mencegah pengulangan. (Default: 64, 0 = dinonaktifkan, -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyMengatur seberapa kuat penalti untuk pengulangan. Nilai yang lebih tinggi (misalnya 1,5) akan memberikan penalti pengulangan lebih kuat, sementara nilai yang lebih rendah (misalnya 0,9) akan lebih toleran. (Default: 1,1)floatrepeat_penalty 1.1
temperatureSuhu (temperature) model. Meningkatkan suhu akan membuat model menjawab lebih kreatif. (Default: 0,8)floattemperature 0.7
seedMengatur seed angka acak yang digunakan untuk generasi. Mengatur ini ke angka tertentu akan membuat model menghasilkan teks yang sama untuk prompt yang sama. (Default: 0)intseed 42
stopMengatur urutan penghentian (stop sequences) yang akan digunakan. Ketika pola ini ditemukan, LLM akan berhenti menghasilkan teks dan mengembalikan hasil. Beberapa pola penghentian dapat diatur dengan menentukan beberapa parameter stop terpisah dalam modelfile.stringstop "AI assistant:"
num_predictJumlah maksimum token yang akan diprediksi saat menghasilkan teks. (Default: -1, generasi tak terbatas)intnum_predict 42
draft_num_predictJumlah maksimum token draf spekulatif yang akan diprediksi per langkah saat model draf tersedia. Model draf terpisah secara default menggunakan 4; tensor MTP tertanam memerlukan pengaturan parameter ini. Atur ke 0 untuk menonaktifkan drafting spekulatif.intdraft_num_predict 4
top_kMengurangi probabilitas menghasilkan teks yang tidak bermakna. Nilai yang lebih tinggi (misalnya 100) akan memberikan jawaban yang lebih beragam, sementara nilai yang lebih rendah (misalnya 10) akan lebih konservatif. (Default: 40)inttop_k 40
top_pBekerja sama dengan top-k. Nilai yang lebih tinggi (misalnya 0,95) akan menghasilkan teks yang lebih beragam, sementara nilai yang lebih rendah (misalnya 0,5) akan menghasilkan teks yang lebih fokus dan konservatif. (Default: 0,9)floattop_p 0.9
min_pAlternatif untuk top*p, dan bertujuan untuk memastikan keseimbangan antara kualitas dan keragaman. Parameter p mewakili probabilitas minimum untuk sebuah token untuk dipertimbangkan, relatif terhadap probabilitas token yang paling mungkin. Misalnya, dengan p=0,05 dan token yang paling mungkin memiliki probabilitas 0,9, logits dengan nilai kurang dari 0,045 akan difilter. (Default: 0,0)floatmin_p 0.05

TEMPLATE

TEMPLATE adalah template prompt lengkap yang akan diteruskan ke model. Ini dapat mencakup (opsional) pesan sistem, pesan pengguna, dan respons dari model. Catatan: sintaksnya dapat berbeda tergantung model. Template menggunakan sintaks template Go.

Variabel Template

VariableDescription
&#123;&#123;.System&#125;&#125;Pesan sistem yang digunakan untuk menentukan perilaku kustom.
&#123;&#123;.Prompt&#125;&#125;Pesan prompt dari pengguna.
&#123;&#123;.Response&#125;&#125;Respons dari model. Saat menghasilkan respons, teks setelah variabel ini akan diabaikan.
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

Instruksi SYSTEM menentukan pesan sistem yang akan digunakan di dalam template, jika berlaku.

SYSTEM """<system message>"""

ADAPTER

Instruksi ADAPTER menentukan adapter LoRA yang telah di-fine-tune yang akan diterapkan ke model dasar. Nilai adapter harus berupa path absolut atau path relatif terhadap Modelfile. Model dasar harus ditentukan dengan instruksi FROM. Jika model dasar tidak sama dengan model dasar yang digunakan untuk melatih adapter, perilaku akan menjadi tidak stabil.

Adapter Safetensor

ADAPTER <path to safetensor adapter>

Adapter Safetensor yang saat ini didukung:

  • Llama (termasuk Llama 2, Llama 3, dan Llama 3.1)
  • Mistral (termasuk Mistral 1, Mistral 2, dan Mixtral)
  • Gemma (termasuk Gemma 1 dan Gemma 2)

Adapter GGUF

ADAPTER ./ollama-lora.gguf

LICENSE

Instruksi LICENSE memungkinkan Anda untuk menentukan lisensi hukum yang berlaku untuk model yang digunakan dengan Modelfile ini saat dibagikan atau didistribusikan.

LICENSE """
<license text>
"""

MESSAGE

Instruksi MESSAGE memungkinkan Anda untuk menentukan riwayat pesan yang akan digunakan model saat memberikan respons. Gunakan beberapa perulangan perintah MESSAGE untuk membangun percakapan yang akan memandu model untuk menjawab dengan cara yang serupa.

MESSAGE <role> <message>

Peran yang Valid

RoleDescription
systemCara alternatif untuk memberikan pesan SYSTEM ke model.
userContoh pesan yang mungkin diajukan oleh pengguna.
assistantContoh pesan yang harus diberikan sebagai respons oleh model.

Contoh Percakapan

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

Instruksi REQUIRES memungkinkan Anda untuk menentukan versi minimum Ollama yang dibutuhkan oleh model.

REQUIRES <version>

Versi harus berupa versi Ollama yang valid (misalnya 0.14.0).

Catatan

  • Modelfile tidak peka huruf besar/kecil. Pada contoh-contoh, instruksi dengan huruf besar digunakan untuk memudahkan pembedaan dengan argumen.
  • Instruksi dapat berada dalam urutan apa pun. Pada contoh-contoh, instruksi FROM ditempatkan di awal agar mudah dibaca.