Ollama Modelfile 入门:给本地模型固定系统提示词和参数
如果你在本地用 Ollama 跑模型,经常要重复输入“你是一个翻译助手,只输出译文”之类的设定,可以用 Modelfile 把系统提示词和参数固定下来,创建一个自己的模型变体,之后直接 ollama run 这个名字即可。
Modelfile 是什么
Modelfile 是 Ollama 用来定义模型的配置文件,类似 Dockerfile。常用指令:
FROM:基于哪个已下载的模型SYSTEM:系统提示词PARAMETER:生成参数,如temperature、num_ctx(上下文长度)TEMPLATE:提示模板(一般不需要改)
第一步:确认基础模型已下载
ollama list
如果没有,先拉取一个你想用的模型,例如:
ollama pull llama3.2
第二步:编写 Modelfile
新建一个名为 Modelfile 的文本文件:
FROM llama3.2
PARAMETER temperature 0.3
PARAMETER num_ctx 4096
SYSTEM """
你是中英翻译助手。
规则:
- 用户输入中文就翻译成英文,输入英文就翻译成中文
- 只输出译文,不解释
- 专有名词保留原文
"""
低温度让翻译结果更稳定;num_ctx 根据你的内存情况设置,越大越占内存。
第三步:创建并运行
ollama create translator -f Modelfile
ollama run translator
之后每次 ollama run translator 都会自动带上这些设定。用 API 调用时,把模型名写成 translator 即可。
查看和修改
查看某个模型当前的 Modelfile:
ollama show translator --modelfile
修改后重新执行 ollama create 同名覆盖即可。创建变体不会重复复制基础模型的权重文件,占用空间很小。
常用模板
会议纪要整理:
FROM llama3.2
PARAMETER temperature 0.2
SYSTEM """把用户提供的会议记录整理为:结论、待办(负责人+截止时间)、未决问题。不要添加记录中没有的信息。"""
代码解释助手:
FROM qwen2.5-coder
PARAMETER temperature 0.2
SYSTEM """用中文逐段解释用户提供的代码,指出潜在问题,但不要重写全部代码。"""
基础模型名请换成你本地实际下载的模型。
排错
ollama create报错找不到模型:FROM后的名字要与ollama list中完全一致,包括标签。- 系统提示词似乎没生效:确认运行的是新模型名而不是基础模型;小模型对复杂指令的遵循能力有限,规则尽量简短明确。
- 内存不足:调小
num_ctx,或换更小的量化版本。
延伸阅读:Ollama 本地大模型入门、本地模型量化格式 FAQ,以及 Ollama 本地部署指南。