THUDM / GLM-4

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

V100推理问题 #234

Closed ZZHbible closed 5 days ago

ZZHbible commented 6 days ago

V100不是不支持bf16嘛,但是还是可以正常推理。 代码如下: import os os.environ["CUDA_VISIBLE_DEVICES"] = "0,1" # noqa import torch from PIL import Image from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda" model_path = "models/glm-4v-9b" tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

query = '描述这张图片' image = Image.open("cat.jpeg").convert('RGB') inputs = tokenizer.apply_chat_template([{"role": "user", "image": image, "content": query}], add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True) # chat mode

inputs = inputs.to(device) model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, trust_remote_code=True, device_map='auto' ).eval()

gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1} with torch.no_grad(): outputs = model.generate(inputs, gen_kwargs) outputs = outputs[:, inputs['input_ids'].shape[1]:] print(tokenizer.decode(outputs[0]))

image

很好奇是代码层面做了鲁棒的适配嘛

zRzRzRzRzRzRzR commented 6 days ago

fp16也能推,跟代码没关系,但是训练不了会精度溢出,然后fp16推理在极少情况下可能效果不如bf16

ZZHbible commented 6 days ago

其实我想问的是,V100的硬件,但是可以进行bf16推理(按理来说不是不支持bf16的嘛),是代码层面做了适配还是本身就是可以做推理但是做不了训练,还是说其实bf16做推理也是有问题的,只是我没遇到这种情况

zRzRzRzRzRzRzR commented 6 days ago

模型在加载时被设置为使用bfloat16进行推理了吧,实际还是fp16

ZZHbible commented 6 days ago

模型在加载时被设置为使用bfloat16进行推理了吧,实际还是fp16

对的,我就是这个意思,但是我找不到哪里做了这步处理,就是加载时设置了bfloat16,但实际推理的时候是fp16,是transformer包的内部处理嘛

Songlinlsl commented 6 days ago

请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项

ZZHbible commented 6 days ago

请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项

能否贴出完整的代码或者命令

Songlinlsl commented 6 days ago

请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项

能否贴出完整的代码或者命令

image

ZZHbible commented 6 days ago

这段代码应该是没有用到flash_atten的

Songlinlsl commented 6 days ago

这段代码应该是没有用到flash_atten的

image 加载模型的时候会报错

ZZHbible commented 6 days ago

模型config在17小时前更新过,你可以试试使用更早之前的config.json和modeling_chatglm.py文件https://huggingface.co/THUDM/glm-4v-9b/commit/fe11ac1a133a59a1db8d630789fd157c0ccf55c3

Songlinlsl commented 6 days ago

多谢大佬,我去看看