🐛 Bug
在特定 head_dim 下的分页 kvcache 在 cuda 目标上已修复,但在 #1889 之后的 opencl 目标上仍存在问题。我尝试使用 hidden_size=1536
和 head_dim=48
将压缩的 llama 模型编译到 opencl 上。在预填充后,第一次解码导致了错误 Cannot sample from the given probability distribution due to unknown reason
。经过 softmax 后的logits 都在 1e-37 左右。
如果我使用相同的参数矩阵,但将其更改为 head_dim=64
,则没有问题。此外,head_dim=48
在 cuda 上运行正常。
重现步骤
预期行为
它应该在 #1889 之后修复
环境
- 平台(例如 WebGPU/Vulkan/IOS/Android/CUDA):Android
- 操作系统(例如 Ubuntu/Windows/MacOS/...):
- 设备(例如 iPhone 12 Pro,PC+RTX 3090,...):qualcomm 8gen3
- 如何安装 MLC-LLM(
conda
,源代码):源代码 - 如何安装 TVM-Unity(
pip
,源代码):源代码 - Python 版本(例如 3.10):3.10
- GPU 驱动程序版本(如适用):
- CUDA/cuDNN 版本(如适用):
- TVM Unity Hash 标签(
python -c "import tvm; print('\n'.join(f'{k}: {v}' for k, v in tvm.support.libinfo().items()))"
,如果您编译模型则适用):fbfa92658568428b27c6ee5762ab7fe2f7c0b415 - 其他相关信息:
2条答案
按热度按时间ryoqjall1#
你好,@sbwww。感谢您报告此问题!您能提供更多关于您尝试运行的模型的信息吗?
kupeojn62#
抱歉回复晚了。请随机初始化一个Llama MHA模型,参数为
hidden_size=1536
和num_attention_heads=32
(->head_dim=48
)。我尝试设置
num_attention_heads=24
(->head_dim=64
),运行正常。所以,我认为head_dim
是主要区别。