THUDM / GLM-4

GLM-4 series: Open Multilingual Multimodal Chat LMs | 开源多语言多模态对话模型
Apache License 2.0
3.28k stars 235 forks source link

temperature<0.4时,大模型会卡住,gpu的利用率一直在95%以上,但是显存保持不变 #230

Closed YanyuanAIMR closed 6 days ago

YanyuanAIMR commented 1 week ago

System Info / 系統信息

cuda 12.0 transformers 4.41.2 torch 2.3.0 xinference 0.12.2

Who can help? / 谁可以帮助到您?

Information / 问题信息

我使用的模型是glm4-9b-chat-1m,目前输入的seq_len=3w, 生成的token的seq_len大概500。 请教大佬们一个问题,当运行glm4时,当temperature<0.4时,大模型就卡住了,然后gpu的利用率就长时间的保持在97%的高位,一直不退出;当temperature>=0.4, 大模型时有输出的。

初步怀疑是大模型重复输出了,但是设置repeat_penalty为1.05和1.1都不起作用 image

Reproduction / 复现过程

import openai
from xinference.client import Client

# 创建Client实例,指定Xinference服务的URL
client = Client("ip")
client = openai.Client(api_key="not empty", base_url="ip")
result = client.chat.completions.create(
    model='glm4-9b-1m-nx',
    messages=[
        {
            "content": prompt,
            "role": "user",
        }
    ],
    max_tokens=31296,
    temperature=stable,
    extra_body={'repetition_penalty': 1.1},
)
print(f'result: {result}')
print(result)
res = {}
res['response'] = str(result.choices[0].message.content)
# print(f'prompt:{prompt}')
print(f'res: {res}')
return res

Expected behavior / 期待表现

基于xinference部署的glm4,然后遇到上面的问题,期望给出合理的解释和解决办法

YanyuanAIMR commented 6 days ago

@zRzRzRzRzRzRzR 今天把temperature去掉后,重新运行程序,发现也遇到了大模型长时间不反应的问题,如下图所示: image gpu在这个状态超过了20分钟了,然后这次测试的文本长度为3万字

zRzRzRzRzRzRzR commented 6 days ago

30K长度吗,你这个是分到两张卡运行了吧,那非常非常慢,basic demo 中readme有提到首响应的时间,由于切了模型,这个过程通常很慢,但是超过20分钟实在是有点久了,我的建议是长文本都是用vLLM的底座进行推理,然后先测试10K的长度是否正常,在慢慢往上加,我没有遇到这个问题,所以我只能根据经验给出这个建议

YanyuanAIMR commented 6 days ago

@zRzRzRzRzRzRzR 我这个是放到一张卡,然后两张卡确实很慢; 再请教一个问题,就是用vLLM的时候,发现还没有启动模型,VLLM就占满了,比如我的显存是40G,加载完成就到了37.5G 的样子,因为我们的需求是长文本,所以不能支持太长的文本长度了,无论切多少张卡显存的占用都是这个程度,请问您知道怎么设置vllm降低这个显存的占用吗

zRzRzRzRzRzRzR commented 6 days ago

这个是很正常的啊 vLLM默认占用你90%的显存尽管你用不到,你改这个就好了

image