Ollama modelfile指令详解
上一篇文章中已经简单的介绍过了modelfile,但是有同学在后台留言说对那几个指令理解不到位,不知道该怎么使用。今天就来详解这些指令。
FROM
FROM指令定义了在创建模型时要使用的基本模型。
FROM :
使用llama3开始构建
FROM llama3
使用bin文件构建
FROM ./ollama-model.bin
注意:这个bin文件的位置应该被指定为Modelfile位置的绝对路径或相对路径。
PARAMETER
PARAMETER指令定义了一个可以在模型运行时设置的参数。
PARAMETER
这里我列出了一些对应的参数和值,供大家参考
参数 | 描述 | 值类型 | 用法示例 |
---|---|---|---|
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 | 设置用于生成下一个标记的上下文窗口的大小。(默认值: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 | 设置要使用的停止序列。当遇到此模式时,LLM将停止生成文本并返回。可以通过在模型文件中指定多个独立的停止参数来设置多个停止模式。 | string | stop “AI assistant:” |
tfs_z | 尾部自由采样用于减少输出中较不可能的标记的影响。较高的值(例如,2.0)将更多地减少影响,而1.0的值将禁用此设置。(默认值:1) | float | tfs_z 1 |
num_predict | 生成文本时预测的最大标记数量。(默认值:128,-1 = 无限生成,-2 = 填充上下文) | 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 |
TEMPLATE
这是要传递给模型的完整提示模板的,可能包括(可选的)系统消息、用户消息和来自模型的响应。
注意:语法可能是模型特定的。模板使用Go模板语法。
变量 | 描述 |
---|---|
{{ .System }} |
用于指定自定义行为的系统消息 |
{{ .Prompt }} |
用户提示信息 |
{{ .Response }} |
模型的响应。在生成响应时,该变量后面的文本将被省略 |
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
SYSTEM
SYSTEM指令指定在模板中使用的系统消息
SYSTEM """"""
ADAPTER
ADAPTER指令是一个可选指令,它指定应用于基础模型的任何LoRA适配器。此指令的值应为绝对路径或相对于Modelfile的路径,并且文件必须是GGML文件格式。适配器应从基础模型进行调整,否则行为将是未定义的。
ADAPTER ./ollama-lora.bin
LICENSE
LICENSE指令允许指定与此Modelfile一起使用的模型共享或分发的法律许可证。
LICENSE """
"""
MESSAGE
MESSAGE指令允许指定一个消息历史,供模型在响应时使用。使用MESSAGE命令的多次迭代来构建一个对话,该对话将指导模型以类似的方式进行回答。
MESSAGE
角色 | 描述 |
---|---|
system | 为模型提供SYSTEM消息的另一种方法 |
user | 用户可能会问的示例消息 |
assistant | 模型应该如何响应的示例消息 |
对话示例
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
Was this helpful?
2 / 0