最近在做一个多工具调用的Agent项目,用PyTorch 2.1跑Qwen-2.5-7B。推理时我把历史对话、工具返回结果都拼进上下文,用generate()流式输出。现在发现每跑完一个工具调用,显存就涨几百MB,连续跑十几个工具后直接OOM。我已经试过torch.cuda.empty_cache(),也把梯度关了(with torch.no_grad()),甚至把历史序列截断到4096,但占用还是只增不减。奇怪的是,单次推理后显存会回落一点,但基线就是比刚开始高。有没有大佬遇到过类似情况?是KV cache没释放,还是streamer对象持有张量?或者单纯就是PyTorch的显存碎片化,需要定时重置torch.cuda.memory._record_memory_history()?希望有实战经验的朋友指点一下,谢谢。