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

发表回复 0

Your email address will not be published.