首页/AI/大模型部署与运维速查/Ollama Modelfile 固化参数
部署形态与选型43 条

Ollama Modelfile 固化参数

Modelfile 把基础模型、系统提示与默认采样参数打包成自定义模型;其中 num_ctx 决定上下文窗口,是排查「上下文被截断」问题的起查点。

Modelfile 的作用

Modelfile 把基础模型、系统提示与默认采样参数打包成一个自定义模型:构建一次之后按新名字调用,参数就固定下来了。它最实用的地方是固化上下文窗口(num_ctx),这个值不显式设置时随版本变化,长文档场景容易被静默截断,表现为「模型看漏了内容」而不是报错。

Modelfile 示例

Modelfile 示例
FROM qwen2.5:7b
PARAMETER num_ctx 8192        # 上下文窗口,决定能看多长的输入
PARAMETER temperature 0.7     # 采样温度
PARAMETER top_p 0.9           # 核采样阈值
PARAMETER repeat_penalty 1.1  # 轻微抑制重复
SYSTEM 你是一个简洁的技术助手,回答控制在三句话以内。

常用参数项

参数作用
num_ctx上下文窗口,长文档场景必须显式设置
temperature采样温度,越低输出越稳定
top_p核采样阈值,控制候选词范围
top_k候选词数量截断,部分实现默认关闭
repeat_penalty重复惩罚,缓解复读
num_predict单次生成的 token 上限
stop停止词,命中后立即结束生成

构建与运行

构建与运行
# 按 Modelfile 构建自定义模型
ollama create my-assistant -f Modelfile
# 运行并确认参数生效
ollama run my-assistant
ollama show my-assistant        # 查看参数与模板
# 改参数时先复制一份,避免直接覆盖原模型
ollama cp my-assistant my-assistant-v2

典型使用场景

  • 固化系统提示:把角色设定写进模型,调用端不必重复传参
  • 固定上下文窗口:避免默认值变化导致长文档被截断
  • 统一采样参数:团队共用一套参数,输出风格保持一致
  • 多版本对比:复制成不同名字,参数差异一目了然
  • 交付内网:把配置随模型一起下发,减少现场配置出错
上下文窗口调大会直接增加 KV 显存占用:显存不足时程序会把部分层卸载到 CPU,表现为速度骤降而不是报错,要结合显存与生成速度一起判断。
Modelfile 里的系统提示与调用端传入的系统消息同时存在时,以实际模板拼接结果为准:出现冲突时用调试输出核对,而不是靠猜。

易错点

  • 不显式设置上下文窗口:默认值随版本变化,长输入被静默截断且不会报错
  • 系统提示冲突:模板拼接顺序与预期不同,模型表现与设定不一致
  • 直接覆盖原模型:参数改坏后无法对比,先复制再改更稳妥
  • 窗口开得过大:显存不足触发卸载到 CPU,速度断崖式下降
  • 构建后不验证:ollama show 只看参数不跑一次请求,模板问题仍会漏过

数据来源与参考

  • Ollama 官方文档:Modelfile Reference(docs.ollama.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌