lama.cpp 目前有重大性能 bug: checkpoint 的巡回逻辑对于混合模型(比如 qwen3.6-27B)无效,从而导致大概率每次对话都要 prefill 全文,严重拖慢速度

sentinelK 2026-06-12 09:27 1

在昨天研究 qwen3.6-27B 的优化时,看到了这个问题:server: fix context checkpoint restore for hybrid/recurrent models (DeltaNet/Mamba)


大概意思就是,因为 llama.cpp 的缓存巡回逻辑有问题,导致你 n 次调用大模型( n>1 )时,大概率 llama.cpp 找不到之前的对话,会从头再次 prefill 你的对话全文。


翻译成大白话讲,就是你对一个人,每多说一句话,就要从第一句开始重复一遍。


更为悲惨的是:
在 5 月份,llama.cpp 制作组引入了另外一个 checkpoint 逻辑,使得缓存巡回性能再次下降:Commit e98cb51


经过此帖中大神实测,NVIDIA RTX PRO 6000 Blackwell 在运行 qwen3.6-27B Q8 时,上下文 50K 的长度下,每次请求 LLM 都会浪费 40 秒:


3 consecutive full re-processings logged:

┌───────────┬────────────────────┬───────┐
│ Turn │ Tokens reprocessed │ Time │
├───────────┼────────────────────┼───────┤
│ Task 2795 │ 67,608 │ 38.4s │
├───────────┼────────────────────┼───────┤
│ Task 3241 │ 71,211 │ 41.0s │
├───────────┼────────────────────┼───────┤
│ Task 3401 │ 71,105 │ 41.4s │
└───────────┴────────────────────┴───────┘

Root cause visible in logs: The new prompt is ~19k tokens, but all checkpoints sit at positions 39k–71k (from previous longer requests). Every checkpoint
is checked against 19340 and rejected because they're all beyond the new prompt length. Result: 0 usable checkpoints → full reprocess from BOS.

结论是,目前的 llama.cpp+qwen3.6-27B 这个组合,在 Agent 工具这个场景下,性能不可用。


目前此 issues 还是 open 状态,待修复。

最新回复 (15)
  • zzutmebwd 06-12 09:32
    1
    都用 NVIDIA RTX PRO 6000 Blackwell 了,还用什么 llama.cpp...
    个人认为 llama.cpp 就是跑在洋垃圾显卡的聊天工具...跑 agent 什么的老老实实 vllm
  • diudiuu 06-12 09:35
    2
    --ctx-checkpoints 64
    --checkpoint-interval 8192
    尝试减轻下问题
  • sentinelK 楼主 06-12 09:36
    3
    @zzutmebwd 本人用 vllm 运行 nvfp4 ,不知为何总是启动的时候直接拉崩整个 wsl……日志能看到的都是 OOM ,不清楚 vLLm 到底在干什么……
  • quickfox 06-12 09:47
    4
    Commit e98cb51 这个就没有合并呀,你看网页里的提示
  • zzutmebwd 06-12 09:54
    5
    @sentinelK 你都跑 ai 了,还用 windows 吗? hhh ,不是强词夺理哈,确实是很奇怪的选择。
  • sentinelK 楼主 06-12 09:55
    6
    @quickfox 确实,我的疏漏,感谢指证
  • sentinelK 楼主 06-12 09:57
    7
    @zzutmebwd 肯定不是性能最优解,只是 all in one 的一个玩具妥协产物,不过确实如此,用 windows+wsl 掣肘太多。
  • zzutmebwd 06-12 10:04
    8
    @sentinelK 是的,我的配置和你是一样的,我是主机 ubuntu 跑 ai 和服务,虚拟机 windows ,windows 直通 cpu 核显平时用用,也很流畅。
  • sentinelK 楼主 06-12 10:07
    9
    @zzutmebwd 不错的思路,反过来确实听上去也合理,回头尝试下
  • pagxir 06-12 10:17
    10
    不让 fable 5 去修修一下么
  • yh7gdiaYW 06-12 10:38
    11
    llama.cpp/ollama 这东西对并发支持太烂了,即使本地跑除非只对话,也是有一定并发需求的,早点换 vllm/sglang
  • dreamdragon 06-12 11:16
    12
    这没啥,还在演进很正常,混合模型是这样的
  • yjhatfdu2 06-12 11:33
    13
    @sentinelK 我也遇到了,需要设置--limit-mm-per-prompt 把图片数量和视频数量和大小减少,--mm-processor-cache-gb 设的比较小比如 0.5
  • yjhatfdu2 06-12 11:34
    14
    不是 windows 的问题,是 vllm 的问题,我在 Linux 上一样遇到,似乎是不限制图片数量和大小,会被 multimodel 模块初始化的时候 profile 占用大量内存,我 128G 照样被爆,算是 vllm 的问题吧
  • coefu 06-12 11:37
    15
    确实还没恢复,我前天 build 的最新版,现在依然遇到这个 force full prompt ,难怪我每次长 context 到最后,都越来越慢,😭
* 帖子来源V2EX
返回