-
Notifications
You must be signed in to change notification settings - Fork 101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vllm报错RuntimeError: Unsupported head size: 160 #61
Comments
还有您的代码示例中似乎没有用到template_telechat.jinja 是否可以添加一下参数呢? |
@lichengyang666 |
请问你试过v2 有问题吗? 按理说是都支持的,v1,v2结构一样。 如果出现这个问题,请检查下你的显卡支不支持flash-attn,如果安装了flash-attn的话,应该不会报这个错误。 |
vllm==0.5.1+cu118 |
请问这个用的是v1还是v2呢?这个参数能不能加在给出的代码示例里面呢?我加上就报错了。。。 |
V1的,命令行启动 |
你要不然把xformers卸载掉,因为page attn是调用的xformers里面的应该是,确实不能支持160现在,后续这块也会修复的。如果是用flash-attn就没有这个问题。 |
这个我需要测试一下 有结果了跟你更新哈 |
好的 期待您的回复 |
https://uamucg0t6qg.feishu.cn/docx/KrXtdZ8KFomTztx2twUcVxzRnZd 按照这个笔记操作吧,关闭flashatt |
12B v1 v2 都支持 1B也支持 都已经部署验证过了。 |
按照这个操作过一次,不知道为啥还是无法关掉flashatt |
仔细操作,是不是第一部分漏了modeling_telechat.py 的替换 |
请问你解决了吗?我也同样操作了,还是无法关掉 |
是不是漏了什么步骤, 替换modeling_telechat.py,修改conf vllm版本051 |
我又操作了一遍,还是出现了报错 |
vi /root/miniconda3/envs/myenv/lib/python3.10/site-packages/vllm/attention/ops/paged_attn.py 修改内容,增加160支持 |
是不是漏了增加160head支持,这个路径找一下vllm的安装路径后,找到文件,增加160支持 |
已经增加了,未增加会出现错误:ValueError: Head size 160 is not supported by PagedAttention. Supported head sizes are: [64, 80, 96, 112, 120, 128, 192, 256]. |
我魔改了了所有,依旧不可以,应该是vllm底层的问题,我通过vllm0.4.0修改,到最后也是回到该问题 INFO 09-10 15:36:31 selector.py:51] Cannot use FlashAttention because the package is not found. Please install it for better performance. |
可以尝试一下升级cuda版本至12.1以上,然后再按照上面提到的版本进行安装,我之前报的这些错可能是因为用的是cuda 11.8 |
没有啥用我是cuda12.2,照样报错,感觉是page attention的问题 |
vllm 0.4.0 肯定不行呀,至少在0.5.1以上吧 |
肯定是魔改啊,你告诉我,因为什么不支持,是vllm编译后的动态链接so文件天然不支持?还是Python操作层面不支持,我是能够成功加载到现存的其实,探活计算就崩了 |
0.5.1版本已经成功很久了,上面那位可以直接修改vllm/attention/ops/paged_attn下的校验函数,加上160,v0.5.1其他的应该没有什么问题其实,至于chat_template可以使用jinjia文件的缓存地址进行加载,不加的话会出现template为None的计算错误,我纠结0.4.0是因为我觉得这不是版本问题,我是直接源码改的 |
不止如此,cuda算子里也有校验,cuda代码也要改,然后重新编译vllm,版本不限,最新的vllm也可以。 |
好的,所以这是编译后的动态链接文件的限制嘛,不过为何要在计算层做检验,实在奇怪 |
我发现了这个限制来源于vllm源码中的csrc.attention.attention_kernels.cu文件的738行中有一个switch(head_size)中,缺少160的计算支持,导致case 160时触发了该错误,不知道能否通过改动该代码实现跨版本支持 |
可以,要改两处,加上160的case,page attention有v1和v2两个核函数,都需要改,然后重新编译vllm |
关掉flash attn后你是用xformers跑的吗?
|
请问vllm只支持12B么,还是其它参数量也支持,12B的v1和v2都支持么,还是只支持v2,目前v1报错RuntimeError: Unsupported head size: 160,是版本问题还是别的什么原因呢?
期待您的回复~
The text was updated successfully, but these errors were encountered: