mlc-llm [问题]PagedKVCache是否支持在不同层使用不同大小的kvcache?

v8wbuo2f  于 2个月前  发布在  其他
关注(0)|答案(5)|浏览(51)

❓ 一般性问题

我有一个修剪过的模型,在一些层(10到20层)中删除了一些qkv头(32到24),我想调整模型代码以便部署修剪过的模型。但是我对PagedKVCache有一些问题,我不知道如何使用它在不同层中给不同的kvcache大小。现在我使用nn.KVCache作为临时解决方案。我想了解如何使用PagedKVCache来满足我的需求。
非常感谢。

llmtgqce

llmtgqce1#

当前版本尚不支持此功能,且对其进行修改可能较为困难。

vwkv1x7d

vwkv1x7d2#

你好,@Hzfengsy ,所以如果我想要部署我修剪过的模型,现在唯一的解决方案是使用nn.KVCache来替换PagedKVCache吗?或者我可以创建多个PagedKVCache并在不同层使用不同的PagedKVCache吗?你能给我一些建议吗?
谢谢你的回复。

ct3nt3jp

ct3nt3jp3#

KV缓存是一个常见的接口,当前的解决方案是创建一个具有相同接口的不同示例的KV缓存实现并替换它。

sigwle7e

sigwle7e4#

你好,我想调整KVCache以实现更灵活的使用,你之前用哪个commit构建了nn.KVCache模型?顺便问一下,你们有没有观察到使用nn.KVCache而不是PagedKVCache(不考虑批处理)时明显的性能下降?

u0njafvf

u0njafvf5#

你好,抱歉回复晚了。我使用了旧的提交#1746,它在2月14日之前的许多提交(5月之前)中工作正常。我只是用旧的提交替换了新的模型代码。我们没有测试性能,但它可以正常通信。

但是现在看来,这个想法在新提交中似乎无法实现。如果你想使用这个,我建议你使用旧的提交(5月之前),并用旧的提交(大约是#1746,2月14日)替换模型代码。

相关问题