非常牛逼的部署方案和内存加载kv技术帮我解决了困扰许久的问题
-
KVmen技术作者视频:https://www.bilibili.com/video/BV19ybv6cE37/?spm_id_from=333.788.top_right_bar_window_history.content.click&vd_source=75586dc86971419da23353de859d40eb
部署整合包作者视频:https://www.bilibili.com/video/BV1Kzhq6cEy4/?spm_id_from=333.1387.homepage.video_card.click&vd_source=75586dc86971419da23353de859d40eb -
Qwen3.8:27b,24GB显存没准128K上下文能放得下,至少我的7900XTX就能放得下,甚至能开256K上下文
几个关键点:
- 从ggml(llama.cpp官方)下载几个模型
- Qwen3.8-27B-Q4_K_M.gguf(官方的主模型不带MTP)
- mtp-Qwen3.8-27B-Q4_0.gguf(关键,有些模型内置MTP是Q8_0量化的)
- mmproj-Qwen3.8-27B-Q8_0.gguf(多模态视觉塔,需要视觉就加上它)
- KV量化要调成q4_0,MTP量化也要调成q4_0
-m /models/Qwen3.8-27B-Q4_K_M.gguf \ --mmproj /models/mmproj-Qwen3.8-27B-Q8_0.gguf --image-min-tokens 1024 \ --n-gpu-layers 999 \ --ctx-size 131072 \ --cache-type-k q4_0 --cache-type-v q4_0 \ --flash-attn on \ --spec-draft-model /models/mtp-Qwen3.8-27B-Q4_0.gguf \ --spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.1 \ --spec-draft-type-k q4_0 --spec-draft-type-v q4_0 \-
上下文深度探测是有意义的,我手里的两张卡,在上下文超过128K之后,decode都会跌到不到20 tok/s,所以实测之后发现128K上下文基本上就是这个模型的甜点位置
-
16GB和以下的显卡,主模型都放不下
-
-
@snailium
KV量化放到4bit, 实际工作怎么样? 我一直没太敢把KV调低, 一直用的8bit量化, 怕它丢东西.128k 基本上能完成大部分任务了, 但是我一般还是放到256k, 不是要真的用满256k, 而是减少其压缩的次数, 能节省些时间.
-
-
-
-
-
补充一下,@tony-wang 是对的,dsh默认预留64k上下文窗口,也就是说后端开128k上下文,大概填到60k的时候就会触发上下文压缩(compaction)。所以一次性开到256k的做法是对的。
我看看能不能把上下文调优做到插件里面
-
-
-
-
@fcme 另外,大神,我比较好奇,你怎么能在调了预留量之后,让已经进行的会话立即生效?
多轮代码检查之后发现,这些数值都是在会话开始的时候就投影(projection)在会话头信息里面的,然后就没法改了。这是dsh的安全规范操作。
目前我能找到最简单的方法,就是重写当前preset(比如标准模式),然后通过fork会话让新值生效
-
-
-