Open ChinChyi opened 2 weeks ago
应该是有的,是这个modeling_qwen2_vl.py#L1039?正常来说,直接在多卡机器上跑会把模型切开到不同gpu上的,是跑的时候遇到什么报错了么?
@kq-chen 报错out of memory,我们是做了一个benchmark,想在qwen上进行测试,使用accelerate多机训练,发现就算是batch=1也总是报显存溢出的错。
是不是没开bf16 flashattn
用多张卡跑会遇到什么问题呢?使用device_map="auto"
正常会将模型切到多张卡上:
model = Qwen2VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2-VL-72B-Instruct",
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
device_map="auto",
)
或者也可以试试用vllm,可以参考:https://github.com/QwenLM/Qwen2-VL/issues/260#issuecomment-2370832309
作者您好,在多卡推理时我遇到的问题是,假设使用device_map="auto",在有限资源的情况下,当视频帧数增加时,其中一张卡的显存会急剧增长(大于其他卡的增长,也就是出现显存分配不均匀,导致爆显存),这应该是跟device_map的切分策略有关系?这是不是不可避免的呢?
需要测试一个非常长的问题,在单张卡上72b肯定爆显存,有没有将token分发到多张卡上的推理方式,类似于intervl的
no_split_module_classes