sentinelK
V2EX  ›  Local LLM

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

  •  
  •   sentinelK · 5h 30m ago · 1070 views

    在昨天研究 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 状态,待修复。

    Supplement 1  ·  4h 48m ago
    经 @quickfox 提醒,Commit e98cb51 并未被合并到主分支,特此指正。
    15 replies    2026-06-12 11:37:58 +08:00
    zzutmebwd
        1
    zzutmebwd  
       5h 24m ago   ❤️ 2
    都用 NVIDIA RTX PRO 6000 Blackwell 了,还用什么 llama.cpp...
    个人认为 llama.cpp 就是跑在洋垃圾显卡的聊天工具...跑 agent 什么的老老实实 vllm
    diudiuu
        2
    diudiuu  
       5h 21m ago
    --ctx-checkpoints 64
    --checkpoint-interval 8192
    尝试减轻下问题
    sentinelK
        3
    sentinelK  
    OP
       5h 20m ago
    @zzutmebwd 本人用 vllm 运行 nvfp4 ,不知为何总是启动的时候直接拉崩整个 wsl……日志能看到的都是 OOM ,不清楚 vLLm 到底在干什么……
    quickfox
        4
    quickfox  
       5h 9m ago
    Commit e98cb51 这个就没有合并呀,你看网页里的提示
    zzutmebwd
        5
    zzutmebwd  
       5h 2m ago
    @sentinelK 你都跑 ai 了,还用 windows 吗? hhh ,不是强词夺理哈,确实是很奇怪的选择。
    sentinelK
        6
    sentinelK  
    OP
       5h 1m ago
    @quickfox 确实,我的疏漏,感谢指证
    sentinelK
        7
    sentinelK  
    OP
       5h 0m ago
    @zzutmebwd 肯定不是性能最优解,只是 all in one 的一个玩具妥协产物,不过确实如此,用 windows+wsl 掣肘太多。
    zzutmebwd
        8
    zzutmebwd  
       4h 52m ago
    @sentinelK 是的,我的配置和你是一样的,我是主机 ubuntu 跑 ai 和服务,虚拟机 windows ,windows 直通 cpu 核显平时用用,也很流畅。
    sentinelK
        9
    sentinelK  
    OP
       4h 50m ago
    @zzutmebwd 不错的思路,反过来确实听上去也合理,回头尝试下
    pagxir
        10
    pagxir  
       4h 39m ago via Android
    不让 fable 5 去修修一下么
    yh7gdiaYW
        11
    yh7gdiaYW  
       4h 18m ago
    llama.cpp/ollama 这东西对并发支持太烂了,即使本地跑除非只对话,也是有一定并发需求的,早点换 vllm/sglang
    dreamdragon
        12
    dreamdragon  
       3h 41m ago
    这没啥,还在演进很正常,混合模型是这样的
    yjhatfdu2
        13
    yjhatfdu2  
       3h 23m ago
    @sentinelK 我也遇到了,需要设置--limit-mm-per-prompt 把图片数量和视频数量和大小减少,--mm-processor-cache-gb 设的比较小比如 0.5
    yjhatfdu2
        14
    yjhatfdu2  
       3h 22m ago
    不是 windows 的问题,是 vllm 的问题,我在 Linux 上一样遇到,似乎是不限制图片数量和大小,会被 multimodel 模块初始化的时候 profile 占用大量内存,我 128G 照样被爆,算是 vllm 的问题吧
    coefu
        15
    coefu  
       3h 19m ago
    确实还没恢复,我前天 build 的最新版,现在依然遇到这个 force full prompt ,难怪我每次长 context 到最后,都越来越慢,😭
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5265 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 06:57 · PVG 14:57 · LAX 23:57 · JFK 02:57
    ♥ Do have faith in what you're doing.