fastllm icon indicating copy to clipboard operation
fastllm copied to clipboard

chatglm2运行llm.from_hf报错Error: cublas error

Open shancq opened this issue 1 year ago • 25 comments

cuda11.7 cudnn8 运行llm.from_hf转换chatglm2-6B模型报 convert ( 200 / 200 ) Warmup... status = 15 1 16 128 Error: cublas error. Aborted

shancq avatar Jul 05 '23 11:07 shancq

这个问题原因还不太确定,有时候是显存爆了导致的

ztxz16 avatar Jul 05 '23 11:07 ztxz16

这个问题原因还不太确定,有时候是显存爆了导致的

大佬可以提供转换好的chatglm2-6B模型供下载吗

shancq avatar Jul 05 '23 11:07 shancq

这个问题原因还不太确定,有时候是显存爆了导致的

大佬可以提供转换好的chatglm2-6B模型供下载吗

已上传huggingface

ztxz16 avatar Jul 05 '23 14:07 ztxz16

这个问题原因还不太确定,有时候是显存爆了导致的

大佬可以提供转换好的chatglm2-6B模型供下载吗

用huggingface上的模型可以运行吗

ztxz16 avatar Jul 06 '23 03:07 ztxz16

这个问题原因还不太确定,有时候是显存爆了导致的

大佬可以提供转换好的chatglm2-6B模型供下载吗

用huggingface上的模型可以运行吗

同样的错误, 我这边是可以的, P40 显存24G

JulyFinal avatar Jul 06 '23 04:07 JulyFinal

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

ztxz16 avatar Jul 06 '23 05:07 ztxz16

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

直接加载生成的模型,遇到字比较多的情况,会直接报错退出,这个原因也是因为显存吗? 因为我看到显存跟刚加载完差不多。

status = 13
9939 159024 128
Error: cublas error.
terminate called after throwing an instance of 'char const*'
zsh: abort (core dumped)  python my_api.py

JulyFinal avatar Jul 06 '23 07:07 JulyFinal

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

直接加载生成的模型,遇到字比较多的情况,会直接报错退出,这个原因也是因为显存吗? 因为我看到显存跟刚加载完差不多。

status = 13
9939 159024 128
Error: cublas error.
terminate called after throwing an instance of 'char const*'
zsh: abort (core dumped)  python my_api.py

是什么模型,具体输入有多大呢 这个应该是程序bug,我之后看一下

ztxz16 avatar Jul 06 '23 07:07 ztxz16

试了下加载int8模型还是报一样的错,我的容器显存16G

from fastllm_pytools import llm model=llm.model("/baichuan/chatglm2-6b-int8.flm") Load (200 / 200) Warmup... status = 15 1 16 128 Error: cublas error. Aborted

shancq avatar Jul 06 '23 07:07 shancq

我这边也试了下,int8与Int4 显存占用都很多,等大佬优化吧

felix-fei-fei avatar Jul 06 '23 08:07 felix-fei-fei

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

直接加载生成的模型,遇到字比较多的情况,会直接报错退出,这个原因也是因为显存吗? 因为我看到显存跟刚加载完差不多。

status = 13
9939 159024 128
Error: cublas error.
terminate called after throwing an instance of 'char const*'
zsh: abort (core dumped)  python my_api.py

是什么模型,具体输入有多大呢 这个应该是程序bug,我之后看一下

chatglm2b fp16那个, 我算了下字符串的len应该是1.8w

JulyFinal avatar Jul 06 '23 09:07 JulyFinal

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

jiacheo avatar Jul 06 '23 09:07 jiacheo

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

24G够跑

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

直接加载生成的模型,遇到字比较多的情况,会直接报错退出,这个原因也是因为显存吗? 因为我看到显存跟刚加载完差不多。

status = 13
9939 159024 128
Error: cublas error.
terminate called after throwing an instance of 'char const*'
zsh: abort (core dumped)  python my_api.py

是什么模型,具体输入有多大呢 这个应该是程序bug,我之后看一下

chatglm2b fp16那个, 我算了下字符串的len应该是1.8w

这确实有点大。。 不过glm2应该是能支持的,我后面看看是哪里爆掉的

ztxz16 avatar Jul 06 '23 09:07 ztxz16

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

24G是可以跑fp16的,不过之前的torch模型不能加载到GPU上(或者直接创建fastllm模型)

ztxz16 avatar Jul 06 '23 09:07 ztxz16

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

24G够跑

可能是显存不够了,因为原始的模型占了13G,新模型又要13G,如果原始模型创建的时候不加载到CUDA上可能可以

直接加载生成的模型,遇到字比较多的情况,会直接报错退出,这个原因也是因为显存吗? 因为我看到显存跟刚加载完差不多。

status = 13
9939 159024 128
Error: cublas error.
terminate called after throwing an instance of 'char const*'
zsh: abort (core dumped)  python my_api.py

是什么模型,具体输入有多大呢 这个应该是程序bug,我之后看一下

chatglm2b fp16那个, 我算了下字符串的len应该是1.8w

这确实有点大。。 不过glm2应该是能支持的,我后面看看是哪里爆掉的

OK, 静候佳音,我也感觉有点大,就是期望他不要直接退出hh

JulyFinal avatar Jul 06 '23 09:07 JulyFinal

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

24G是可以跑fp16的,不过之前的torch模型不能加载到GPU上(或者直接创建fastllm模型)

就是不要用readme里的快速方式对吧?而是用fastllm直接加载转换之后的模型?

jiacheo avatar Jul 07 '23 05:07 jiacheo

用A10 24G 跑,float16就会报错,改成int8 就没事,估计还是显存不够。

24G是可以跑fp16的,不过之前的torch模型不能加载到GPU上(或者直接创建fastllm模型)

就是不要用readme里的快速方式对吧?而是用fastllm直接加载转换之后的模型?

嗯,或者创建之前模型的时候不要.cuda(),应该也可以

ztxz16 avatar Jul 07 '23 10:07 ztxz16

遇到一样的问题,在构建的时候 cmake .. -DUSE_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native 解决,祝好运

fengshenchu avatar Jul 07 '23 12:07 fengshenchu

model.stream_chat(tokenizer, input, history[-6:], max_length=4096*2, top_p=_top_p,temperature=_temp)

input长度达到2048的时候包cublas error,不是显存问题,A100

liaoweiguo avatar Jul 09 '23 01:07 liaoweiguo

同样的问题,转化的代码都在GPU上运行,是爆显存了。作者的模型转化代码能不能在CPU上完成?我的机器是3090*2,用的模型时vicuna13B, 但有一张爆显存了就爆了。或者你的代码可以设置一个gpu显存均衡。

lzk9508 avatar Jul 12 '23 07:07 lzk9508

2048的时候爆掉的问题新版本应该已经解决了

ztxz16 avatar Jul 13 '23 07:07 ztxz16

我这边也试了下,int8与Int4 显存占用都很多,等大佬优化吧

你好,请问int4的话llm.from_hf(model, tokenizer, dtype="")中的dtype填什么?

lzk9508 avatar Jul 13 '23 13:07 lzk9508

我这边也试了下,int8与Int4 显存占用都很多,等大佬优化吧

你好,请问int4的话llm.from_hf(model, tokenizer, dtype="")中的dtype填什么?

用原始的模型,然后这里填int4

ztxz16 avatar Jul 18 '23 09:07 ztxz16

我也有这个问题,16GB的卡,跑的是fp16的模型。输入的字符len数量到1600+就会爆掉(加载模型用了12G) 我是直接加载的flm格式的文件,所以没有模型转换过程中爆显存的可能

按照官方的描述,16GB的显存可以支持2048长度的编码输入 https://github.com/THUDM/ChatGLM2-6B#%E6%8E%A8%E7%90%86%E6%80%A7%E8%83%BD

alexw994 avatar Jul 20 '23 03:07 alexw994

@ztxz16 你好,请问这个已经解决了吗?我的16G显存,int8,输入长度2048,输出100,batch_size设置3就oom了。

1787648106 avatar Nov 28 '23 09:11 1787648106