最近用 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 参数优先级(从高到低):
- API 请求的
options.num_ctx(最高) - 运行时交互式设置
- Modelfile 固化的
PARAMETER - 环境变量
OLLAMA_CONTEXT_LENGTH - 显存匹配的官方默认值
- 模型原生默认值(最低)
二、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





暂无评论内容