故障排查 / 装不下
刚装上好好的,聊十几轮就崩或开始忘事
本站未复现 推导 影响:全部 全版本 · Windows / Linux / macOS
报错原文
Requested tokens ... exceeds context size ... | llama_new_context_with_model: context size ... too small
这段字符串可以直接粘到 站内搜索 或外部搜索引擎里找。
现象
前几轮正常,越聊越慢,然后要么报错退出,要么模型开始『忘记』你最早说的话,或者答话重复。
原因
上下文是『输入 + 系统提示词 + 历史对话 + 正在生成的部分』的总和,它是一路涨上去的。容量表告诉你的是总预算,不是每轮的预算。涨满之后有的框架截断最早的内容(表现为忘事),有的直接报错(表现为崩溃)。
按这个顺序处理
- 确认你的上下文预算够不够:按本站推算,16G 卡跑 14B Q6_K 剩约 1.6G,可开约 10.7K token,中文大约 6000–8000 字的总预算——多轮聊天很容易用完。
- 开启历史截断/滚动窗口:把保留轮数限制在 6–12 轮,或者只保留最近 N token。
- 系统提示词能短则短:一个 2000 字的 system prompt 会直接从你的预算里扣掉,每一轮都扣。
- 长任务改为『分段总结再汇总』,不要指望一个 16K 窗口装下整本书。
- 如果任务确实需要长记忆:选 KV 便宜的模型(GLM-4-9B 只有 2 个 KV 头,4K 花 0.16G;gpt-oss-20B 一半层用 128 token 滑窗,4K 花 0.097G),或者把 KV 量化到 q4_0。
怎么确认解决了
连续聊 20 轮不报错且框架日志里没有 exceeds context size;如果你能看 token 计数,让它停在预算的 70% 以下再触发截断比较安全。
来源与可信度
条目性质本站依据容量与速度公式推导撰写
是否已在本站机器复现否——请把这条当线索而不是结论
- https://docs.ollama.com/context-length — Ollama 官方:增大上下文会递增显存占用,需显存足够的前提下增大上下文
- https://github.com/ollama/ollama/issues/9890 — issue:大上下文把多层推送到系统 RAM 导致不可用,对应'压上下文'处置
相关条目
上下文(ctx)到底是什么?8K 能装多少字?上下文是模型一次能『看见』的总字数预算,输入和它的回答共用这个预算。8K token 大约相当于中文 4000–5500 字。文档比显存允许的上下文还长怎么办?三条路:换滑窗架构模型、把 KV 量化到 q4、或者分块检索只把相关段落塞进去。别指望把 -c 调到 128K 就解决了。