我有一个修剪过的模型,在一些层(10到20层)中删除了一些qkv头(32到24),我想调整模型代码以便部署修剪过的模型。但是我对PagedKVCache有一些问题,我不知道如何使用它在不同层中给不同的kvcache大小。现在我使用nn.KVCache作为临时解决方案。我想了解如何使用PagedKVCache来满足我的需求。非常感谢。
llmtgqce1#
当前版本尚不支持此功能,且对其进行修改可能较为困难。
vwkv1x7d2#
你好,@Hzfengsy ,所以如果我想要部署我修剪过的模型,现在唯一的解决方案是使用nn.KVCache来替换PagedKVCache吗?或者我可以创建多个PagedKVCache并在不同层使用不同的PagedKVCache吗?你能给我一些建议吗?谢谢你的回复。
ct3nt3jp3#
KV缓存是一个常见的接口,当前的解决方案是创建一个具有相同接口的不同示例的KV缓存实现并替换它。
sigwle7e4#
你好,我想调整KVCache以实现更灵活的使用,你之前用哪个commit构建了nn.KVCache模型?顺便问一下,你们有没有观察到使用nn.KVCache而不是PagedKVCache(不考虑批处理)时明显的性能下降?
u0njafvf5#
你好,抱歉回复晚了。我使用了旧的提交#1746,它在2月14日之前的许多提交(5月之前)中工作正常。我只是用旧的提交替换了新的模型代码。我们没有测试性能,但它可以正常通信。
但是现在看来,这个想法在新提交中似乎无法实现。如果你想使用这个,我建议你使用旧的提交(5月之前),并用旧的提交(大约是#1746,2月14日)替换模型代码。
5条答案
按热度按时间llmtgqce1#
当前版本尚不支持此功能,且对其进行修改可能较为困难。
vwkv1x7d2#
你好,@Hzfengsy ,所以如果我想要部署我修剪过的模型,现在唯一的解决方案是使用nn.KVCache来替换PagedKVCache吗?或者我可以创建多个PagedKVCache并在不同层使用不同的PagedKVCache吗?你能给我一些建议吗?
谢谢你的回复。
ct3nt3jp3#
KV缓存是一个常见的接口,当前的解决方案是创建一个具有相同接口的不同示例的KV缓存实现并替换它。
sigwle7e4#
你好,我想调整KVCache以实现更灵活的使用,你之前用哪个commit构建了nn.KVCache模型?顺便问一下,你们有没有观察到使用nn.KVCache而不是PagedKVCache(不考虑批处理)时明显的性能下降?
u0njafvf5#
你好,抱歉回复晚了。我使用了旧的提交#1746,它在2月14日之前的许多提交(5月之前)中工作正常。我只是用旧的提交替换了新的模型代码。我们没有测试性能,但它可以正常通信。
但是现在看来,这个想法在新提交中似乎无法实现。如果你想使用这个,我建议你使用旧的提交(5月之前),并用旧的提交(大约是#1746,2月14日)替换模型代码。