本地跑模型,这个默认值坑了不少人!模型卡写 128k,机器却只给 4k?Ollama 这段源码把上下文偷偷砍没了
一位开发者在 Dev.to 拆解 Ollama 源码发现:上下文窗口不是模型文件说了算,而是加载时按显存档位自动挑,没人指定就默认 4096。
大白话很多人以为模型卡上写 128k,跑起来就是 128k。这位作者一开始也这么想,去翻 GGUF 文件头,结果发现方向错了。模型文件只能把上下文往下压,真正决定数字的是加载模型那台机器:Ollama 会看显存,47 GiB 以上给 262144,23 GiB 以上给 32768,其余一律 4096。而且显存算的是扣掉开销后的值,24 GiB 的卡被吃掉 1 GiB 就掉进 4k 档。只有请求、模型配置、环境变量三处都没说话时,这个自动档才生效。
对你意味着本地跑大模型的人几乎都会踩这个坑:以为上下文够用,结果早期对话被悄悄截掉,还不报错。
原文:Your model card says 128k. The machine serving it picked 4k.
打开巨象雷达,看今天全部 AI 动态