Ollama 创建自定义 Modelfile 如何指定系统提示词和停止符参数

文章导读
在 Ollama 中创建自定义模型时,通过 Modelfile 里的 SYSTEM 指令固化系统提示词,并用 PARAMETER stop 设置停止符,是最稳定且长期生效的配置方式。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 参考来源
A A

在 Ollama 中创建自定义模型时,通过 Modelfile 里的 SYSTEM 指令固化系统提示词,并用 PARAMETER stop 设置停止符,是最稳定且长期生效的配置方式。

先说结论:适合需要固定角色行为或控制生成结束条件的场景,修改配置文件后需重新构建模型才能生效。

  • 适合:长期固定的角色扮演、格式约束或特定停止条件。
  • 先准备:确保基础模型已本地下载,新建文本文件编写 Modelfile。
  • 验收:使用 ollama run 运行新模型,观察是否自动加载提示词并在指定词处停止。

命令速用版

# Modelfile 示例内容
FROM llama3:8b
SYSTEM """
你是一个乐于助人的助手,回答简洁且专业。
如果问题超出知识范围,明确告知用户。
"""
PARAMETER temperature 0.7
PARAMETER stop "<|endoftext|>"

保存为 Modelfile 后,执行以下命令构建:

Ollama 创建自定义 Modelfile 如何指定系统提示词和停止符参数
ollama create my-custom-model -f ./Modelfile

为什么会这样

Modelfile 是 Ollama 定义和构建自定义模型的配置文件,类似于 Dockerfile。它允许你在模型层面固化行为,而不是每次对话都手动输入提示词。SYSTEM 指令会在每次会话加载时注入系统级指令,而 PARAMETER stop 则告诉模型在生成文本遇到特定字符时强制结束,防止无限生成或格式错误。

分步处理

  1. 新建文件:创建一个文本文件(如 my-model.Modelfile)。
  2. 编写配置:第一行必须是 FROM 指令指定基础模型,随后添加 SYSTEM 和 PARAMETER 指令。注意停止符需要用引号包裹,多行系统提示建议用三引号。
  3. 构建模型:在终端运行 ollama create <模型名> -f <文件路径>
  4. 运行测试:使用 ollama run <模型名> 启动对话。

怎么验证是否生效

运行模型后,直接发送问题,观察模型是否自动遵循预设的角色设定(无需再次输入系统提示)。对于停止符,可以尝试触发该关键词,看模型是否在该处截断输出。也可以通过 ollama show <模型名> 查看模型配置详情。

常见坑

  • FROM 指定的基础模型必须已存在于本地,否则构建会失败或触发自动下载。
  • 停止符参数需严格匹配模型输出的 token 格式,大小写敏感。
  • SYSTEM 指令内容建议用三引号包裹多行文本,避免换行符导致解析错误。

参考来源

  • ollama/docs/modelfile.mdx at main · ollama/ollama · GitHub