Skip to content

Modelfile là bản thiết kế để tạo và chia sẻ các mô hình tùy chỉnh bằng Ollama.

Mục lục

Định dạng

Định dạng của Modelfile như sau:

# comment
INSTRUCTION arguments
Chỉ thịMô tả
FROM (bắt buộc)Xác định mô hình cơ sở sẽ sử dụng.
PARAMETERThiết lập các tham số để Ollama chạy mô hình.
TEMPLATEMẫu prompt đầy đủ sẽ được gửi đến mô hình.
SYSTEMXác định tin nhắn hệ thống sẽ được đặt trong mẫu.
ADAPTERXác định các bộ điều hợp (Q)LoRA sẽ áp dụng cho mô hình.
LICENSEXác định giấy phép pháp lý.
MESSAGEXác định lịch sử tin nhắn.
REQUIRESXác định phiên bản Ollama tối thiểu yêu cầu cho mô hình.

Ví dụ

Modelfile cơ bản

Ví dụ về một Modelfile tạo bản thiết kế nhân vật Mario:

FROM llama3.2
# đặt nhiệt độ thành 1 [cao hơn thì sáng tạo hơn, thấp hơn thì mạch lạc hơn]
PARAMETER temperature 1
# đặt kích thước cửa sổ ngữ cảnh thành 4096, tham số này kiểm soát số lượng token mà LLM có thể sử dụng làm ngữ cảnh để tạo token tiếp theo
PARAMETER num_ctx 4096

# đặt một tin nhắn hệ thống tùy chỉnh để xác định hành vi của trợ lý trò chuyện
SYSTEM You are Mario from super mario bros, acting as an assistant.

Để sử dụng mẫu này:

  1. Lưu nó dưới dạng tệp (ví dụ: Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. Bắt đầu sử dụng mô hình!

Để xem Modelfile của một mô hình cụ thể, hãy sử dụng lệnh ollama show --modelfile.

shell
ollama show --modelfile llama3.2
# Modelfile được tạo bởi lệnh "ollama show"
# Để xây dựng một Modelfile mới dựa trên mẫu này, hãy thay thế dòng FROM bằng:
# 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"

Hướng dẫn

FROM (Bắt buộc)

Chỉ thị FROM xác định mô hình cơ sở sẽ sử dụng khi tạo một mô hình.

FROM <model name>:<tag>

Xây dựng từ mô hình có sẵn

FROM llama3.2
Mô hình cơ sở

Danh sách các mô hình cơ sở có sẵn

Mô hình cơ sở

Các mô hình bổ sung có thể được tìm thấy tại

Xây dựng từ mô hình Safetensors

FROM <model directory>

Thư mục mô hình phải chứa các trọng số Safetensors cho kiến trúc được hỗ trợ.

Các kiến trúc mô hình được hỗ trợ hiện tại:

  • Llama (bao gồm Llama 2, Llama 3, Llama 3.1 và Llama 3.2)
  • Mistral (bao gồm Mistral 1, Mistral 2 và Mixtral)
  • Gemma (bao gồm Gemma 1 và Gemma 2)
  • Phi3

Xây dựng từ tệp GGUF

FROM ./ollama-model.gguf

Vị trí tệp GGUF phải được chỉ định là đường dẫn tuyệt đối hoặc đường dẫn tương đối so với vị trí của Modelfile.

PARAMETER

Chỉ thị PARAMETER xác định một tham số có thể được thiết lập khi chạy mô hình.

PARAMETER <parameter> <parametervalue>

Các tham số và giá trị hợp lệ

Tham sốMô tảKiểu giá trịVí dụ sử dụng
num_ctxThiết lập kích thước của cửa sổ ngữ cảnh được sử dụng để tạo token tiếp theo. (Mặc định: 2048)intnum_ctx 4096
repeat_last_nThiết lập khoảng cách ngược mà mô hình sẽ kiểm tra để ngăn ngừa lặp lại. (Mặc định: 64, 0 = tắt, -1 = num_ctx)intrepeat_last_n 64
repeat_penaltyThiết lập mức độ phạt đối với các lần lặp lại. Giá trị cao hơn (ví dụ: 1.5) sẽ phạt các lần lặp lại mạnh hơn, trong khi giá trị thấp hơn (ví dụ: 0.9) sẽ thoáng hơn. (Mặc định: 1.1)floatrepeat_penalty 1.1
temperatureNhiệt độ của mô hình. Tăng nhiệt độ sẽ khiến mô hình trả lời sáng tạo hơn. (Mặc định: 0.8)floattemperature 0.7
seedThiết lập hạt giống số ngẫu nhiên để sử dụng cho quá trình tạo văn bản. Đặt giá trị này thành một số cụ thể sẽ khiến mô hình tạo ra văn bản giống nhau cho cùng một prompt. (Mặc định: 0)intseed 42
stopThiết lập các chuỗi dừng sẽ sử dụng. Khi gặp mẫu này, LLM sẽ ngừng tạo văn bản và trả về. Có thể đặt nhiều chuỗi dừng bằng cách chỉ định nhiều tham số stop riêng biệt trong một modelfile.stringstop "AI assistant:"
num_predictSố lượng token tối đa sẽ dự đoán khi tạo văn bản. (Mặc định: -1, tạo văn bản vô hạn)intnum_predict 42
draft_num_predictSố lượng token nháp suy luận tối đa sẽ dự đoán cho mỗi bước khi có mô hình nháp. Các mô hình nháp riêng biệt có giá trị mặc định là 4; các tensor MTP nhúng yêu cầu thiết lập tham số này. Đặt thành 0 để tắt chức năng suy luận nháp.intdraft_num_predict 4
top_kGiảm xác suất tạo ra nội dung vô nghĩa. Giá trị cao hơn (ví dụ: 100) sẽ đưa ra câu trả lời đa dạng hơn, trong khi giá trị thấp hơn (ví dụ: 10) sẽ thận trọng hơn. (Mặc định: 40)inttop_k 40
top_pHoạt động cùng với top-k. Giá trị cao hơn (ví dụ: 0.95) sẽ tạo ra văn bản đa dạng hơn, trong khi giá trị thấp hơn (ví dụ: 0.5) sẽ tạo ra văn bản tập trung và thận trọng hơn. (Mặc định: 0.9)floattop_p 0.9
min_pPhương thức thay thế cho topp, nhằm đảm bảo sự cân bằng giữa chất lượng và sự đa dạng. Tham số _p thể hiện xác suất tối thiểu để một token được xem xét, so với xác suất của token có khả năng cao nhất. Ví dụ, với p=0.05 và token có khả năng cao nhất có xác suất 0.9, các logits có giá trị nhỏ hơn 0.045 sẽ bị lọc ra. (Mặc định: 0.0)floatmin_p 0.05

TEMPLATE

TEMPLATE là mẫu prompt đầy đủ sẽ được truyền vào mô hình. Nó có thể bao gồm (tùy chọn) tin nhắn hệ thống, tin nhắn của người dùng và phản hồi từ mô hình. Lưu ý: cú pháp có thể phụ thuộc vào từng mô hình. Các mẫu này sử dụng cú pháp mẫu Go.

Các biến mẫu

BiếnMô tả
&#123;&#123;.System&#125;&#125;Tin nhắn hệ thống được sử dụng để xác định hành vi tùy chỉnh.
&#123;&#123;.Prompt&#125;&#125;Tin nhắn prompt của người dùng.
&#123;&#123;.Response&#125;&#125;Phản hồi từ mô hình. Khi tạo phản hồi, văn bản sau biến này sẽ bị bỏ qua.
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

Chỉ thị SYSTEM xác định tin nhắn hệ thống sẽ được sử dụng trong mẫu, nếu có.

SYSTEM """<system message>"""

ADAPTER

Chỉ thị ADAPTER xác định bộ điều hợp LoRA được tinh chỉnh sẽ áp dụng cho mô hình cơ sở. Giá trị của bộ điều hợp phải là đường dẫn tuyệt đối hoặc đường dẫn tương đối so với Modelfile. Mô hình cơ sở phải được chỉ định bằng chỉ thị FROM. Nếu mô hình cơ sở không giống với mô hình cơ sở mà bộ điều hợp được tinh chỉnh từ đó, hành vi sẽ trở nên không ổn định.

Bộ điều hợp Safetensor

ADAPTER <path to safetensor adapter>

Các bộ điều hợp Safetensor được hỗ trợ hiện tại:

  • Llama (bao gồm Llama 2, Llama 3 và Llama 3.1)
  • Mistral (bao gồm Mistral 1, Mistral 2 và Mixtral)
  • Gemma (bao gồm Gemma 1 và Gemma 2)

Bộ điều hợp GGUF

ADAPTER ./ollama-lora.gguf

LICENSE

Chỉ thị LICENSE cho phép bạn xác định giấy phép pháp lý theo đó mô hình được sử dụng với Modelfile này được chia sẻ hoặc phân phối.

LICENSE """
<license text>
"""

MESSAGE

Chỉ thị MESSAGE cho phép bạn xác định lịch sử tin nhắn để mô hình sử dụng khi trả lời. Sử dụng nhiều lần lặp lại của lệnh MESSAGE để xây dựng một cuộc trò chuyện, giúp hướng dẫn mô hình trả lời theo cách tương tự.

MESSAGE <role> <message>

Vai trò hợp lệ

Vai tròMô tả
systemCách thay thế để cung cấp tin nhắn SYSTEM cho mô hình.
userMột tin nhắn ví dụ về điều người dùng có thể đã hỏi.
assistantMột tin nhắn ví dụ về cách mô hình nên trả lời.

Ví dụ cuộc trò chuyện

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

Chỉ thị REQUIRES cho phép bạn xác định phiên bản Ollama tối thiểu yêu cầu cho mô hình.

REQUIRES <version>

Phiên bản phải là phiên bản Ollama hợp lệ (ví dụ: 0.14.0).

Lưu ý

  • Modelfile không phân biệt chữ hoa chữ thường. Trong các ví dụ, các chỉ thị được viết in hoa để dễ phân biệt với các đối số.
  • Các chỉ thị có thể được sắp xếp theo bất kỳ thứ tự nào. Trong các ví dụ, chỉ thị FROM được đặt đầu tiên để dễ đọc hơn.