Ollama 本地模型始终 32K 上下文?3 秒解决!

最近用 Ollama 跑本地大模型时,老是遇到过这个问题:

不管是运行哪个模型,使用ollama ps的时候,就只显示 32K 上下文。

通过查询资料,找到了解决办法,贴出来留做笔记。

一、为什么会这样?

1. 硬件触发 Ollama 官方默认规则(90% 情况)

这是最根本的原因:我的是 24G 显存的显卡,正好落在 Ollama 0.15.5 及以上版本的”24-48 GiB 显存”档位,官方默认上下文就是 32768(32K)

Ollama 会根据显存大小自动设置保守的默认上下文,规则如下:

显存大小 官方默认上下文
<24 GiB 4096(4K)
24-48 GiB 32768(32K)
≥48 GiB 262144(256K)

2. 没用更高优先级的方式覆盖

Ollama 的 num_ctx 参数优先级(从高到低):

  1. API 请求的 options.num_ctx(最高)
  2. 运行时交互式设置
  3. Modelfile 固化的 PARAMETER
  4. 环境变量 OLLAMA_CONTEXT_LENGTH
  5. 显存匹配的官方默认值
  6. 模型原生默认值(最低)

二、3 种解决方法

方法 1:运行时临时修改(最快)

# 启动模型
ollama run qwen3.6:27b-instruct-q4_K_M

# 在交互式界面修改为 64K
/set parameter num_ctx 65536

# 验证
/set parameter

# 永久保存
/save qwen3.6:27b-64k

方法 2:API 调用强制指定

curl http://localhost:11434/api/chat -d '{"model":"qwen3.6:27b-instruct-q4_K_M","messages":[{"role":"user","content":"你好"}],"options":{"num_ctx":65536}}'

方法 3:重建模型永久生效

FROM qwen3.6:27b-instruct-q4_K_M
PARAMETER num_ctx 65536
PARAMETER num_gpu 99

ollama create qwen3.6:27b-64k -f Modelfile_qwen36_64k

三、验证是否生效

ollama ps

CONTEXT 列是否是你设置的值。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容