Closed ZZHbible closed 5 days ago
fp16也能推,跟代码没关系,但是训练不了会精度溢出,然后fp16推理在极少情况下可能效果不如bf16
其实我想问的是,V100的硬件,但是可以进行bf16推理(按理来说不是不支持bf16的嘛),是代码层面做了适配还是本身就是可以做推理但是做不了训练,还是说其实bf16做推理也是有问题的,只是我没遇到这种情况
模型在加载时被设置为使用bfloat16进行推理了吧,实际还是fp16
模型在加载时被设置为使用bfloat16进行推理了吧,实际还是fp16
对的,我就是这个意思,但是我找不到哪里做了这步处理,就是加载时设置了bfloat16,但实际推理的时候是fp16,是transformer包的内部处理嘛
请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项
请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项
能否贴出完整的代码或者命令
请教一下,我这里v100报没有flash_atten,请问可以在哪里设置不用flash_atten啊,config文件貌似没有选项
能否贴出完整的代码或者命令
这段代码应该是没有用到flash_atten的
这段代码应该是没有用到flash_atten的
加载模型的时候会报错
模型config在17小时前更新过,你可以试试使用更早之前的config.json和modeling_chatglm.py文件https://huggingface.co/THUDM/glm-4v-9b/commit/fe11ac1a133a59a1db8d630789fd157c0ccf55c3
多谢大佬,我去看看
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]))
很好奇是代码层面做了鲁棒的适配嘛