目录
格式
Modelfile 的格式
| 指令 | 描述 |
|---|---|
FROM (必填) | 定义要使用的基础模型。 |
PARAMETER (参数) | 设置 Ollama 运行模型时的参数。 |
TEMPLATE (模板) | 发送给模型的完整提示词模板。 |
SYSTEM (系统) | 指定将在模板中设置的系统消息。 |
ADAPTER (适配器) | 定义要应用于模型的 (Q)LoRA 适配器。 |
LICENSE (许可证) | 指定法律许可证。 |
MESSAGE (消息) | 指定消息历史记录。 |
REQUIRES (需求) | 指定模型所需的最低 Ollama 版本。 |
示例
基础 Modelfile
一个创建 mario 蓝图的 Modelfile 示例
- 将其另存为文件(例如
Modelfile) ollama create 选择一个模型名称 -f <文件路径,例如 ./Modelfile>ollama run 选择一个模型名称- 开始使用模型!
ollama show --modelfile 命令。
指令
FROM (必填)
FROM 指令定义了创建模型时要使用的基础模型。
从现有模型构建
基础模型
可用基础模型列表
基础模型
更多模型可以在这里找到:
从 Safetensors 模型构建
- Llama (包括 Llama 2, Llama 3, Llama 3.1, 和 Llama 3.2)
- Mistral (包括 Mistral 1, Mistral 2, 和 Mixtral)
- Gemma (包括 Gemma 1 和 Gemma 2)
- Phi3
从 GGUF 文件构建
Modelfile 的相对路径。
PARAMETER (参数)
PARAMETER 指令定义了运行模型时可以设置的参数。
有效参数及取值
| 参数 | 描述 | 值类型 | 使用示例 |
|---|---|---|---|
| num_ctx | 设置用于生成下一个 token 的上下文窗口大小。(默认值:2048) | int (整数) | num_ctx 4096 |
| repeat_last_n | 设置模型向后查看多远以防止重复。(默认值:64,0 = 禁用,-1 = num_ctx) | int (整数) | repeat_last_n 64 |
| repeat_penalty | 设置惩罚重复的强度。较高的值(例如 1.5)会更强烈地惩罚重复,而较低的值(例如 0.9)会更宽松。(默认值:1.1) | float (浮点数) | repeat_penalty 1.1 |
| temperature | 模型的温度。提高温度会使模型的回答更有创意。(默认值:0.8) | float (浮点数) | temperature 0.7 |
| seed | 设置用于生成的随机数种子。将其设置为特定数字将使模型为相同的提示生成相同的文本。(默认值:0) | int (整数) | seed 42 |
| stop | 设置要使用的停止序列。当遇到此模式时,大语言模型将停止生成文本并返回。通过在 Modelfile 中指定多个独立的 stop 参数,可以设置多个停止模式。 | string | stop “AI assistant:“ |
| num_predict | 生成文本时要预测的最大 token 数。(默认值:-1,无限生成) | int (整数) | num_predict 42 |
| top_k | 降低生成胡言乱语的概率。较高的值(例如 100)会给出更多样化的答案,而较低的值(例如 10)会更保守。(默认值:40) | int (整数) | top_k 40 |
| top_p | 与 top-k 配合使用。较高的值(例如 0.95)将导致文本更多样化,而较低的值(例如 0.5)将生成更集中且保守的文本。(默认值:0.9) | float (浮点数) | top_p 0.9 |
| min_p | top_p 的替代方案,旨在平衡质量和多样性。参数 p 代表 token 被考虑的最小概率,相对于最可能 token 的概率。例如,当 p=0.05 且最可能的 token 概率为 0.9 时,值小于 0.045 的 logits 将被过滤掉。(默认值:0.0) | float (浮点数) | min_p 0.05 |
TEMPLATE (模板)
传递给模型的完整提示词模板TEMPLATE。它可以(可选地)包含系统消息、用户消息和模型响应。注意:语法可能因模型而异。模板使用 Go template 语法。
模板变量
| 变量 | 描述 |
|---|---|
{{ .System }} | 用于指定自定义行为的系统消息。 |
{{ .Prompt }} | 用户提示消息。 |
{{ .Response }} | 模型的响应。在生成响应时,此变量之后的文本将被忽略。 |
SYSTEM (系统)
SYSTEM 指令指定要在模板中使用的系统消息(如果适用)。
ADAPTER (适配器)
ADAPTER 指令指定应应用于基础模型的微调 LoRA 适配器。适配器的值应为绝对路径或相对于 Modelfile 的路径。基础模型应通过 FROM 指令指定。如果基础模型与适配器微调时所用的基础模型不同,其行为将会不稳定。
Safetensor 适配器
- Llama (包括 Llama 2, Llama 3, 和 Llama 3.1)
- Mistral (包括 Mistral 1, Mistral 2, 和 Mixtral)
- Gemma (包括 Gemma 1 和 Gemma 2)
GGUF 适配器
LICENSE (许可证)
LICENSE 指令允许你指定与此 Modelfile 一起使用的模型在共享或分发时所遵循的法律许可证。
MESSAGE (消息)
MESSAGE 指令允许你指定模型在响应时使用的消息历史记录。多次使用 MESSAGE 命令来构建对话,从而引导模型以类似的方式回答。
有效角色
| 角色 | 描述 |
|---|---|
| system | 为模型提供 SYSTEM 消息的另一种方式。 |
| user | 用户可能提问的示例消息。 |
| assistant | 模型应该如何响应的示例消息。 |
对话示例
REQUIRES (需求)
REQUIRES 指令允许你指定模型所需的最低 Ollama 版本。
注意事项
Modelfile不区分大小写。在示例中,使用大写指令是为了更容易地将其与参数区分开来。- 指令可以按任何顺序排列。在示例中,
FROM指令排在第一位是为了保持易读性。

