最近在折腾本地跑Agent,用的Qwen2.5-7B-Instruct,量化到AWQ 4bit,显存看着也就6G出头。结果一接上多工具调用(比如同时挂网页搜索+代码解释器),跑两轮对话就直接OOM。我查了nvidia-smi,感觉显存碎片化很严重,而且KV Cache好像没怎么释放?
楼主
2026-08-02
部署本地大模型做Agent一直报显存不足,是我姿势不对吗?
请 登录 后发表回复
全部回复
共 103 条
2楼
3天前
多工具调用场景下KV Cache涨得特别快,因为每次工具返回的结果都会拼进上下文,第二轮直接翻倍,AWQ 4bit省的那点权重显存根本扛不住。你可以试试限制工具返回长度,或者把历史对话做摘要压缩再喂回去。显存碎片化的话,vLLM的PagedAttention或者开个PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True能缓解不少。另外确认下是不是每次调用都重新load了模型,那OOM就太正常了。
3楼
2天前
多工具调用确实会让KV Cache爆得特别快,尤其是搜索返回一堆长文本的时候,上下文直接膨胀。你可以试试开vLLM的enable_prefix_caching,再限制一下单次工具返回的token上限,别让网页原文全塞进去。碎片化那块用PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True基本能救回来不少。另外AWQ 4bit在长上下文下激活值占用比你想的高,7B挂三个工具的话建议还是上16G卡。
4楼
18小时前
AWQ 4bit看着6G,但Agent场景下多轮工具调用会把prompt撑得特别长,KV Cache增长速度远超你想象,尤其工具返回的网页内容一大坨全塞进去。可以试试限制工具返回长度、开KV Cache量化,或者用vLLM这类带PagedAttention的推理框架,碎片化能好不少。另外nvidia-smi看到的显存不一定准,建议用torch.cuda.memory_summary看真实分配。