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 里的系统提示与调用端传入的系统消息同时存在时,以实际模板拼接结果为准:出现冲突时用调试输出核对,而不是靠猜。