Ollama 模型文件

[!注意]Modelfile语法正在开发中ollama.cadn.net.cn

模型文件是创建和与 Ollama 共享模型的蓝图。ollama.cadn.net.cn

目录

格式

Modelfile:ollama.cadn.net.cn

# comment
INSTRUCTION arguments
指令 描述
FROM(必填) 定义要使用的基础模型。
PARAMETER 设置 Ollama 如何运行模型的参数。
TEMPLATE 要发送到模型的完整提示模板。
SYSTEM 指定将在模板中设置的系统消息。
ADAPTER 定义要应用于模型的 (Q)LoRA 适配器。
LICENSE 指定合法许可证。
MESSAGE 指定消息历史记录。

示例

基本Modelfile

一个Modelfile创建 Mario 蓝图:ollama.cadn.net.cn

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.

要使用它:ollama.cadn.net.cn

  1. 将其另存为文件(例如Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. 开始使用该模型!

要查看给定模型的 Modelfile,请使用ollama show --modelfile命令。ollama.cadn.net.cn

ollama show --modelfile llama3.2

输出ollama.cadn.net.cn

# 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 """<|start_header_id|>system<|end_header_id|>

<|eot_id|><|start_header_id|>user<|end_header_id|>

<|eot_id|><|start_header_id|>assistant<|end_header_id|>

<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"

指令

FROM (必填)

FROM指令 定义创建模型时要使用的基本模型。ollama.cadn.net.cn

FROM <model name>:<tag>

从现有模型构建

FROM llama3.2

可用基本型号列表:https://github.com/ollama/ollama#model-library 其他型号可在以下位置找到:https://ollama.com/libraryollama.cadn.net.cn

从 Safetensors 模型构建

FROM <model directory>

model 目录应包含受支持架构的 Safetensors 权重。ollama.cadn.net.cn

当前支持的模型架构:ollama.cadn.net.cn

  • ParLlama(包括 Llama 2、Llama 3、Llama 3.1 和 Llama 3.2)
  • Mistral (包括 Mistral 1、Mistral 2 和 Mixtral)
  • Gemma(包括 Gemma 1 和 Gemma 2)
  • PHI3

从 GGUF 文件构建

FROM ./ollama-model.gguf

GGUF 文件位置应指定为绝对路径或相对于Modelfile位置。ollama.cadn.net.cn

参数

PARAMETER指令 定义一个参数,该参数可以在模型运行时设置。ollama.cadn.net.cn

PARAMETER <parameter> <parametervalue>

有效参数和值

参数 描述 值类型 示例用法
mirostat 启用 Mirostat 采样以控制困惑度。(默认值:0、0 = 禁用、1 = Mirostat、2 = Mirostat 2.0) int Mirostat 0 系列
mirostat_eta 影响算法响应生成文本的反馈的速度。较低的学习率将导致较慢的调整,而较高的学习率将使算法的响应速度更快。(默认值:0.1) mirostat_eta 0.1
mirostat_tau 控制输出的连贯性和多样性之间的平衡。较低的值将导致文本更集中、更连贯。(默认值:5.0) mirostat_tau 5.0
num_ctx 设置用于生成下一个标记的上下文窗口的大小。(默认值: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) repeat_penalty 1.1
temperature 模型的温度。提高温度会使模型更有创意地回答。(默认值:0.8) 温度 0.7
seed 设置用于生成的随机数种子。将此设置为特定数字将使模型为同一提示生成相同的文本。(默认值:0) int 种子 42
stop 设置要使用的停止序列。遇到此模式时,LLM 将停止生成文本并返回。可以通过指定多个单独的stop参数。 字符串 停止 “AI 助手:”
num_predict 生成文本时要预测的最大令牌数。(默认值:-1,无限生成) int num_predict 42
top_k 降低产生无意义的可能性。较高的值(例如 100)将给出更多样化的答案,而较低的值(例如 10)将更保守。(默认值:40) int top_k 40
top_p 与 top-k 一起使用。较高的值(例如 0.95)将导致文本更加多样化,而较低的值(例如 0.5)将生成更集中和保守的文本。(默认值:0.9) top_p 0.9
min_p 替代top_p,旨在确保质量和多样性的平衡。参数 p 表示相对于最可能标记的概率,考虑标记的最小概率。例如,当 p=0.05 且最可能的标记的概率为 0.9 时,将筛选掉值小于 0.045 的 logit。(默认值:0.0) min_p 0.05

模板

TEMPLATE的完整提示模板。它可能包括(可选)系统消息、用户消息和来自模型的响应。注意:语法可能特定于模型。模板使用 Go 模板语法ollama.cadn.net.cn

模板变量

变量 描述
`` 用于指定自定义行为的系统消息。
`` 用户提示消息。
`` 来自模型的响应。生成响应时,将省略此变量后的文本。
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""

系统

SYSTEMinstruction 指定要在模板中使用的系统消息(如果适用)。ollama.cadn.net.cn

SYSTEM """<system message>"""

适配器

ADAPTER指令 指定应应用于基本模型的微调 LoRA 适配器。适配器的值应该是绝对路径或相对于 Modelfile 的路径。基本模型应使用FROM指令。如果基本模型与调整适配器的基本模型不同,则行为将不稳定。ollama.cadn.net.cn

Safetensor 适配器

ADAPTER <path to safetensor adapter>

当前支持的 Safetensor 适配器:ollama.cadn.net.cn

  • ParLlama(包括 Llama 2、Llama 3 和 Llama 3.1)
  • Mistral (包括 Mistral 1、Mistral 2 和 Mixtral)
  • Gemma(包括 Gemma 1 和 Gemma 2)

GGUF 适配器

ADAPTER ./ollama-lora.gguf

许可证

LICENSE指令允许您指定共享或分发与此 Modelfile 一起使用的模型的合法许可证。ollama.cadn.net.cn

LICENSE """
<license text>
"""

消息

MESSAGE指令允许您为模型指定响应时使用的消息历史记录。使用 MESSAGE 命令的多次迭代来构建对话,这将指导模型以类似的方式回答。ollama.cadn.net.cn

MESSAGE <role> <message>

有效角色

角色 描述
系统 为模型提供 SYSTEM 消息的另一种方法。
用户 用户可能询问的内容的示例消息。
助理 模型应如何响应的示例消息。

示例对话

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

笔记

  • Modelfile不区分大小写.在示例中,使用大写指令来更容易将其与参数区分开来。
  • 说明可以按任何顺序排列。在示例中,FROM指令首先要保持它易于阅读。

结果 匹配 ”"

    没有匹配 “ 的结果"