inference KV cache 的大小是哪里控制的?

lx0bsm1f  于 6个月前  发布在  其他
关注(0)|答案(2)|浏览(47)

问题1:是否有界面或者命令行配置的方式,让用户可以控制 max_model_len的设置?
答:目前没有提供直接在界面或命令行中调整max_model_len的选项。但是,您可以在初始化引擎时尝试增加或减少gpu_memory_utilizationmax_model_lengpu_memory_utilizationmax_model_len的值来调整模型大小。

问题2:KV cache (864) 是哪里配置的?用户是否可以干预?还是通过闪存大小预设置的?预设的逻辑是什么?
答:KV缓存的大小是在初始化模型时通过环境变量X100M_N1XX100M_N2X进行设置的。这些变量的默认值分别为864和1728。用户可以通过修改这些环境变量的值来调整KV缓存的大小。预设的逻辑是根据模型的最大序列长度(max_seq_len)来分配KV缓存的大小。

问题3:预设置模型,有没有可能,每个配置,在界面或者命令行,给一下预估的显存使用?
答:目前没有提供在界面或命令行中预估显存使用的功能。但是,您可以根据模型的配置信息自行估算显存使用情况。

问题4:模型的版本,是否可以由用户配置?
答:目前没有提供在界面或命令行中选择模型版本的功能。但是,您可以根据需要从官方提供的模型列表中选择合适的模型版本。

g6ll5ycj

g6ll5ycj1#

https://inference.readthedocs.io/zh-cn/latest/getting_started/using_xinference.html#run-llama-2
这里有说到如何透传选项,可以参考下。

j13ufse2

j13ufse22#

关于问题2,报错提示您设置的最大token数为4096,但剩余显存仅够864个token。为了解决这个问题,您可以在注册模型时将token数调小一点(例如512),这样就可以启动了。另外,模型启动时的kvcache大小与注册时模型填写的最大token数成正比。需要注意的是,每种模型的单个token所占用的kv cache都不一样。根据我的使用经验,qwen单个token占用的最多,而yi占用的最少。

相关问题