Ollama Modelfile 怎么写:自定义系统提示词、参数与导入 GGUF 模型

Ollama Modelfile 怎么写?本文按官方文档讲清 FROM、PARAMETER、SYSTEM、MESSAGE 等指令,给出固定系统提示词、调大上下文、导入本地 GGUF 三个可照抄的例子,以及常见报错原因。

NNathaniel bigo··原创首发·AI 辅助撰写
6 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号

适用于谁

  • 搜「ollama modelfile 怎么写」「ollama modelfile example」「ollama modelfile num_ctx」的人;
  • 想给本地模型固定一个角色或系统提示词、调大上下文,或者把从别处下载的 GGUF 文件导入 Ollama 的人。

本文根据 Ollama 官方 Modelfile 文档整理,资料核对于 2026-10-11。

结论先说

  1. Modelfile 是一份「配方」:指定用哪个基础模型,再叠加参数、系统提示词和示例对话,最后用 ollama create 生成一个有新名字的模型。
  2. 只有 FROM 是必须的,其余指令按需添加,顺序不限,指令名不区分大小写。
  3. 不会重新下载或训练模型。基于已有模型创建时,新模型复用原来的权重文件,只是多了一层配置。
  4. 想看现成的写法,执行 ollama show --modelfile 模型名,把任意已下载模型的 Modelfile 打印出来参考。

指令一览

指令作用
FROM(必须)指定基础模型:已有模型名、GGUF 文件路径或 Safetensors 模型目录
PARAMETER设置运行参数,如温度、上下文长度
SYSTEM设置系统提示词
MESSAGE预置几轮对话历史,用来示范回答方式
TEMPLATE完整的提示词模板(一般不用自己写)
LICENSE声明许可证
REQUIRES声明需要的最低 Ollama 版本

格式很简单,每行一条「指令 参数」,# 开头是注释。

步骤

例一:给模型固定一个系统提示词

新建一个名为 Modelfile 的文本文件(没有扩展名):

FROM gemma4

# 温度低一些,回答更稳定
PARAMETER temperature 0.3

SYSTEM """你是一名中文技术文档编辑。
回答一律使用简体中文;先给结论,再分点说明;
不确定的内容直接说不确定,不要编造。"""

多行文本用三个双引号包起来。然后创建并运行:

bash
ollama create doc-editor -f ./Modelfile
ollama run doc-editor

ollama ls 里会多出一个 doc-editor,之后在命令行、API 和第三方客户端里都可以直接用这个名字。

例二:调大上下文长度

FROM gemma4
PARAMETER num_ctx 32768
bash
ollama create gemma4-32k -f ./Modelfile

这个写法对接 OpenAI 兼容接口时特别有用:官方兼容文档说明,OpenAI 接口没有设置上下文长度的参数,需要用 Modelfile 把 num_ctx 固定在模型里,再用新模型名调用。上下文越大占用显存越多,创建后用 ollama ps 看一眼是否还是 100% GPU。

例三:导入本地的 GGUF 文件

从 Hugging Face 等地方下载的 .gguf 文件,可以直接作为基础模型:

FROM ./my-model.Q4_K_M.gguf

路径可以写绝对路径,也可以相对于 Modelfile 所在位置。分卷的 GGUF 要保留原始的分卷文件名,用通配符匹配全部分卷:

FROM ./model-*.gguf
bash
ollama create my-model -f ./Modelfile
ollama run my-model

如果导入后回答格式混乱、停不下来,多半是缺少对话模板或停止符。到该模型的官方说明页找到对应的模板,用 TEMPLATE 和 PARAMETER stop 补上;或者找一个 Ollama 模型库里同系列的模型,用 ollama show --modelfile 把它的模板抄过来。

用 MESSAGE 预置示例对话

MESSAGE 可以写入几轮「用户问、助手答」的例子,引导模型照着这个风格回答,相当于把少样本示例固定在模型里:

FROM gemma4
SYSTEM 你只回答「是」或「否」。
MESSAGE user 多伦多在加拿大吗?
MESSAGE assistant 是
MESSAGE user 萨克拉门托在加拿大吗?
MESSAGE assistant 否

可用的角色有 system、user、assistant 三种。

常用参数

以下默认值来自官方 Modelfile 文档的参数表:

参数含义默认值
num_ctx上下文窗口大小(token 数)2048
temperature温度,越高越发散,越低越稳定0.8
top_k取值越大回答越多样,越小越保守40
top_p与 top_k 配合,越大越多样0.9
repeat_penalty重复惩罚,越大越不容易重复1.0(关闭)
repeat_last_n往回看多少 token 来判断重复64
seed随机种子,固定后同样的输入得到同样的输出0
num_predict最多生成多少 token-1(不限制)
stop停止符,遇到就停止生成,可以写多行设置多个—

需要注意的是,参数表里 num_ctx 写的默认值是 2048,而官方「Context length」文档又说明服务会按显存大小自动选择默认上下文(4k / 32k / 256k)。两处说法并存,实际分配了多少以 ollama ps 的 CONTEXT 一列为准。

常见问题

Q:改了 Modelfile 之后怎么生效?

重新执行一次 ollama create 同一个名字 -f Modelfile,会覆盖原来的配置。正在运行的对话要退出重进。

Q:创建的自定义模型会占用双倍硬盘吗?

基于已有模型(FROM 模型名)创建时不会,新模型引用的是同一份权重文件。从 ollama show --modelfile 的输出里能看到,FROM 实际指向的是模型目录里的一个 blob 文件。

Q:TEMPLATE 需要自己写吗?

基于 Ollama 模型库里的模型创建时不需要,会继承原模型的模板。只有导入外部 GGUF 且模板缺失时才要处理。模板里用到的变量有 {{ .System }}、{{ .Prompt }}、{{ .Response }}。

Q:怎么关掉模型的思考过程?

这取决于具体模型,不是 Modelfile 的通用指令。先看该模型在 Ollama 模型库页面上的说明,以官方文档为准。

Q:创建时报找不到文件?

检查 -f 后面的路径,以及 FROM 里的相对路径是不是相对于 Modelfile 所在的文件夹。Windows 上路径里有空格时用引号包起来。

延伸阅读

系统提示词写什么更有效,可以参考站内《系统提示词怎么写》,或到提示词库(/prompts)挑一条合适的放进 SYSTEM。

参考资料

  • Ollama 文档:Modelfile Reference — https://docs.ollama.com/modelfile
  • CLI Reference — https://docs.ollama.com/cli
  • OpenAI compatibility(设置本地上下文长度)— https://docs.ollama.com/api/openai-compatibility

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    MinerU 是什么、怎么用:把 PDF 等文档解析成 Markdown(4.0 的安装、四档解析与命令)

    MinerU 是什么、怎么安装使用?按官方中文 README 讲清 4.0 版本的定位、支持的输入与输出格式、flash / basic / standard / advanced 四档解析各适合什么、pip 安装命令、mineru-kit 与 mineru 两个命令的分工和常用写法,以及从旧版升级要注意什么。

    其他 AI 工具0
  2. 02

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  3. 03

    即梦首尾帧怎么用:两张图生成过渡视频(在哪里、提示词、不能用怎么办)

    即梦首尾帧在哪里、怎么用?本文讲清首尾帧入口、哪些模型支持、两张图的比例要求、过渡提示词怎么写,以及「首尾帧不见了 / 不能用了」「画面跳变」的原因和解决办法。

    其他 AI 工具0
  4. 04

    DeepSeek怎么用:网页版与手机App入门(深度思考、智能搜索、上传文件)

    DeepSeek怎么用?本文从官方入口和登录方式讲起,说清输入框里的「深度思考」「智能搜索」和上传附件各管什么,历史对话怎么改名、置顶、分享和导出,以及手机上使用的注意点。

    其他 AI 工具0
  5. 05

    文心一言网页版怎么用:改名「文心」后的入口、对话与工作任务、PPT生成

    文心一言现在叫什么、网页版入口在哪、怎么用?本文按百度文心官网和 App Store 官方页面讲清「文心」的新入口、对话与工作两种模式、图片生成和帮我写作、任务托管与 AIPPT、知识库和定时任务从哪开始。

    其他 AI 工具0
  6. 06

    Trae 规则与 MCP 配置教程:.trae/rules 四种生效方式、导入 AGENTS.md、添加 MCP Server

    Trae rules 怎么配置、Trae 怎么用 MCP?按 TRAE 官方中文文档讲清全局规则与项目规则的位置、四种生效方式、子目录与多层嵌套、导入 AGENTS.md / CLAUDE.md、提交信息规则,以及从市场添加和手动配置 MCP Server、项目级 mcp.json。

    其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~