sentinelK
V2EX  ›  Local LLM

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

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