记录一下那天晚上的排查过程。把一份两万字的技术文档贴进对话,回答只覆盖了开头,界面上显示的上下文占用到顶后开始丢弃前文。

刚开始盯着「GPU 卸载层数不足,剩余显存放不下更大的 KV cache」,折腾了半个多小时,排掉了。

排查方向其实有限,先把可能性排一排。加载模型时的上下文长度默认按显存自动给,偏保守。也可能是模型本身声明的最长上下文没有被启用。

少数情况下是多轮对话历史一直累积,很快占满窗口。

上来先在加载配置里手动把上下文调到目标值

lms load qwen2.5-7b-instruct --context-length 16384

随后确认模型当前实际上下文

lms ps

显存不够时降低卸载层数或换更小模型

lms load qwen2.5-7b-instruct --gpu offload 0.7

长文档改为分段处理再汇总

python split_doc.py --size 4000 --input doc.md

怎么算真的好了,看的是同一批现象。界面显示的上下文上限变成设定值,长文档问答能引用结尾段落,不再出现前文被丢弃的提示。

上下文翻倍会让 KV cache 占用明显上涨,显卡显存吃紧时会出现加载成功但一推理就崩的情况,改完要实际跑一轮长输入验证。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189