Qwen icon indicating copy to clipboard operation
Qwen copied to clipboard

[BUG] <title>本地部署千问模型,推理时显存叠加且不释放问题

Open Gaaaaam opened this issue 1 year ago • 1 comments

是否已有关于该错误的issue或讨论? | Is there an existing issue / discussion for this?

  • [X] 我已经搜索过已有的issues和讨论 | I have searched the existing issues / discussions

该问题是否在FAQ中有解答? | Is there an existing answer for this in FAQ?

  • [X] 我已经搜索过FAQ | I have searched FAQ

当前行为 | Current Behavior

私有化部署qwen-14b-chat模型,进行推理问答。输入长度为7k-8k token的文本作为上下文进行推理,显存会激增且在推理结束后显存不会释放。首次用7k-8k的文本作为上下文进行推理时可能正常输出,但在进行2-3次问答之后模型就不输出啦!! 刚部署时显存占用情况: image 推理1次后显存占用情况: image

期望行为 | Expected Behavior

qwen模型在推理结束后,是否可以进行显存释放?类比chatglm3-6b模型在本地部署后就会进行显存释放,不会存在显存一直叠加不释放问题。

复现方法 | Steps To Reproduce

No response

运行环境 | Environment

- OS: CentOS Linux release 7.9.2009 (Core)
- Python: 3.10
- Transformers: 4.32.0
- PyTorch: 2.0
- CUDA (`python -c 'import torch; print(torch.version.cuda)'`): 12.0

备注 | Anything else?

No response

Gaaaaam avatar Dec 20 '23 08:12 Gaaaaam

怎么部署的呢?web_demo/cli_demo/openai_api/fastchat+vllm?确认下对话历史里别把好几轮的7k-8k的都放进去了。

jklj077 avatar Dec 20 '23 08:12 jklj077

怎么部署的呢?web_demo/cli_demo/openai_api/fastchat+vllm?确认下对话历史里别把好几轮的7k-8k的都放进去了。

我使用的是openai_api的方式进行部署的,然后我使用了torch.cuda.empty_cache()也并不能清除显存,问几个问题,显存很快就满了,请问该怎么修改呢?

wufxgtihub123 avatar Jan 04 '24 08:01 wufxgtihub123

用类似cli_demo的方式部署的,是分几次用大约7-8k的上下文带着对应的问题去问的模型,第一、二次还能输出,到后面显存占满之后,再输入长上下文就不输出了。因为是通过fastapi的方式做成接口提供推理能力,发现同时做一个接口,使用torch.cuda.empty_cache()清理一下显存就可以继续推理了。 @jklj077

怎么部署的呢?web_demo/cli_demo/openai_api/fastchat+vllm?确认下对话历史里别把好几轮的7k-8k的都放进去了。

Gaaaaam avatar Jan 04 '24 09:01 Gaaaaam

本repo的cli_demo/web_demo/openai_api是会在每次对话/请求处理结束后清理pytorch的cache的,不用单独写torch.cuda.empty_cache()。

多轮对话情况(≠多次单轮对话)下显存增加是正常现象。

其它情况请提供复现方法。

jklj077 avatar Jan 04 '24 10:01 jklj077