Ollama 模型文件

本文内容均由Ollama官方文档翻译,仅供个人学习,如有差异请以官网文档为准(https://ollama.com)ollama.cadn.net.cn

[!NOTE] 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 创建马里奥蓝图的示例: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>

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

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

  • Llama(包括 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) float mirostat_eta 0.1
mirostat_tau 控制输出的连贯性与多样性之间的平衡。较低的值将导致更聚焦、更连贯的文本。(默认值:5.0) float mirostat_tau 5.0
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 温度 0.7
seed 设置用于生成的随机数种子。将此值设置为特定数字将使模型对相同的提示生成相同的文本。(默认值:0) int seed 42
停止 设置用于停止生成的终止序列。当遇到此模式时,大语言模型(LLM)将停止生成文本并返回。可通过在模型文件(modelfile)中指定多个独立的 stop 参数来设置多个终止模式。 string 停止 “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) float top_p 0.9
min_p 替代 top_p 参数,旨在确保生成结果在质量与多样性之间取得平衡。参数 p 表示一个词元(token)被考虑的最低概率阈值,该阈值相对于最可能词元的概率。例如,当 p=0.05 且最可能词元的概率为 0.9 时,概率值低于 0.045 的词元将被过滤掉。(默认值:0.0) float min_p 0.05

TEMPLATE

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
"""

系统

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

SYSTEM """<system message>"""

适配器

ADAPTER 指令用于指定应应用于基础模型的微调 LoRA 适配器。该适配器的值应为绝对路径,或相对于 Modelfile 的相对路径。基础模型需通过 FROM 指令进行指定。若基础模型与适配器所微调所用的基础模型不一致,则行为将不稳定。ollama.cadn.net.cn

安全张量适配器

ADAPTER <path to safetensor adapter>

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

  • Llama(包括 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 消息的替代方式。
用户 用户可能提出的问题示例信息。
Docker容器平台 模型应如何响应的示例消息。

示例对话

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 指令排在首位,以保持其可读性。

匹配结果:""

    未找到匹配“"