跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

抡锤者

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

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

已定时 已固定 已锁定 已移动 LLM讨论区
15 帖子 7 发布者 343 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • kop wangK kop wang

    我觉得锤哥可以水一期视频了 @terry

    terryT 离线
    terryT 离线
    terry
    超级版主
    编写于 最后由 编辑
    #3

    @kop-wang 不够劲爆,我认为可以用,慢一点而已。而且不是有带缓存版本的吗?我需要解决问题的,而不是发现问题的内容。观众看:我解决了xx问题,而不是:我发现了xx问题。

    油管:https://www.youtube.com/@抡锤者

    kop wangK 1 条回复 最后回复
    0
    • terryT terry

      @kop-wang 不够劲爆,我认为可以用,慢一点而已。而且不是有带缓存版本的吗?我需要解决问题的,而不是发现问题的内容。观众看:我解决了xx问题,而不是:我发现了xx问题。

      kop wangK 离线
      kop wangK 离线
      kop wang
      超级版主
      编写于 最后由 编辑
      #4

      @terry 有道理,学习了

      虚心交流,一起进步

      1 条回复 最后回复
      0
      • kop wangK kop wang

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

        L 离线
        L 离线
        laobenxiong
        德高望重 劳动模范
        编写于 最后由 laobenxiong 编辑
        #5

        @kop-wang 我在 7900xtx 上用 llama-server (vulkan, b9553) + unsloth/Qwen3.6-27B-MTP-GGUF + hermes 配 262144 context, 问题的症状和这个不一样. 我可以一个 session 顺利到达 >200K 的上下文结束. 中间没有这里提到的 prefill 重填的问题(或者我没有注意到?). 我碰到的问题是, 任务结束以后, gpu还在运行, llama-server log 显示收到了一堆任务, 然后最后导致 ~200K 的 prefill 全部失效 且重新 prefill. 让 hermes 自己调查了一下 (让它直接监控 llama-server 的日志, 它再和自己的日志对比), 它说是 creation_nudge_interval 和 nudge_interval 导致的, 并建议我把它们置0 (disable).

        N 1 条回复 最后回复
        1
        • N 离线
          N 离线
          neo
          编写于 最后由 neo 编辑
          #6

          是的,这个问题困扰我挺久了,严重影响任务节奏,前几天换成VLLM后,目前感觉还挺不错,开启前缀缓存,hit百分之八九十,开MTP后推理速度跟llama相差无几,而且可以多任务并行,如果不想折腾推荐先用vllm。SGLANG运行Qwen3.6 INT4时目前兼容度还不是很好,有bug,注意避坑。

          kop wangK terryT 2 条回复 最后回复
          0
          • N neo

            是的,这个问题困扰我挺久了,严重影响任务节奏,前几天换成VLLM后,目前感觉还挺不错,开启前缀缓存,hit百分之八九十,开MTP后推理速度跟llama相差无几,而且可以多任务并行,如果不想折腾推荐先用vllm。SGLANG运行Qwen3.6 INT4时目前兼容度还不是很好,有bug,注意避坑。

            kop wangK 离线
            kop wangK 离线
            kop wang
            超级版主
            编写于 最后由 编辑
            #7

            @neo vllm有个第一次启动导致OOM的问题,不知大神是否遇到过。我在运行vllm启用nvfp4模型时,会有一段时间内存、SSD读写直接爆炸,然后就崩溃了。

            虚心交流,一起进步

            N 1 条回复 最后回复
            0
            • M 离线
              M 离线
              mark
              超凡大师
              编写于 最后由 编辑
              #8

              vllm ,ollma, lm studio ,我最终选择了 lm studio ,因为简单,鼠标操作就行
              ollma 给你下载一堆的插件,让我卸载了,搞的我c盘都快满了.

              1 条回复 最后回复
              0
              • N neo

                是的,这个问题困扰我挺久了,严重影响任务节奏,前几天换成VLLM后,目前感觉还挺不错,开启前缀缓存,hit百分之八九十,开MTP后推理速度跟llama相差无几,而且可以多任务并行,如果不想折腾推荐先用vllm。SGLANG运行Qwen3.6 INT4时目前兼容度还不是很好,有bug,注意避坑。

                terryT 离线
                terryT 离线
                terry
                超级版主
                编写于 最后由 编辑
                #9

                @neo 其实只有SG-Lang能跑,本地才有意义,没有Radix缓存树,本地hermes挂机做任务好可以,要实时做事太慢了。

                油管:https://www.youtube.com/@抡锤者

                N B 2 条回复 最后回复
                0
                • kop wangK kop wang

                  @neo vllm有个第一次启动导致OOM的问题,不知大神是否遇到过。我在运行vllm启用nvfp4模型时,会有一段时间内存、SSD读写直接爆炸,然后就崩溃了。

                  N 离线
                  N 离线
                  neo
                  编写于 最后由 编辑
                  #10

                  @kop-wang 大神不敢当,小学生而已,共同进步。你的情况我没有遇到,也许可以先关闭cuda-graph或前缀缓存启动一次试试,实在不行用我现在这个模型试下:shawnw3i/Qwen3.6-27B-AWQ-MTP,参考启动参数:
                  vllm serve /path/to/models/Qwen3.6-27B-AWQ-MTP
                  --tensor-parallel-size 2
                  --max-model-len 262144
                  --gpu-memory-utilization 0.88
                  --kv-cache-dtype fp8
                  --max-num-seqs 2
                  --reasoning-parser qwen3
                  --enable-auto-tool-choice
                  --tool-call-parser qwen3_coder
                  --port 9527 --host 0.0.0.0
                  --trust-remote-code
                  --served-model-name Qwen3.6-27B-AWQ-MTP
                  --max-num-batched-tokens 16384
                  --enable-prefix-caching
                  --speculative-config '{"method":"mtp","num_speculative_tokens":3}'
                  另外如果要用turboguant(跟MTP有兼容性问题),现在的版本需要先合并issues里的两个补丁,或者等0.23版本,以上希望可以帮到你。

                  1 条回复 最后回复
                  0
                  • terryT terry

                    @neo 其实只有SG-Lang能跑,本地才有意义,没有Radix缓存树,本地hermes挂机做任务好可以,要实时做事太慢了。

                    N 离线
                    N 离线
                    neo
                    编写于 最后由 编辑
                    #11

                    @terry 是的,本来第一目标也是sglang,奈何有目前无法逾越的问题,只能退而求其次了。

                    1 条回复 最后回复
                    0
                    • L laobenxiong

                      @kop-wang 我在 7900xtx 上用 llama-server (vulkan, b9553) + unsloth/Qwen3.6-27B-MTP-GGUF + hermes 配 262144 context, 问题的症状和这个不一样. 我可以一个 session 顺利到达 >200K 的上下文结束. 中间没有这里提到的 prefill 重填的问题(或者我没有注意到?). 我碰到的问题是, 任务结束以后, gpu还在运行, llama-server log 显示收到了一堆任务, 然后最后导致 ~200K 的 prefill 全部失效 且重新 prefill. 让 hermes 自己调查了一下 (让它直接监控 llama-server 的日志, 它再和自己的日志对比), 它说是 creation_nudge_interval 和 nudge_interval 导致的, 并建议我把它们置0 (disable).

                      N 离线
                      N 离线
                      neo
                      编写于 最后由 编辑
                      #12

                      @laobenxiong hermes每个N轮对话,会自动运行一个background_review,总结对话中的记忆和skill,在单slot中会导致system prompt与之前的不一致,所以prefill全部失效,而且hermes硬编码这个任务必须主模型亲自来完成,对于目前的llama.cpp版本来说确实不太友好。

                      1 条回复 最后回复
                      0
                      • terryT terry

                        @neo 其实只有SG-Lang能跑,本地才有意义,没有Radix缓存树,本地hermes挂机做任务好可以,要实时做事太慢了。

                        B 离线
                        B 离线
                        Brian
                        编写于 最后由 编辑
                        #13

                        @terry 说:

                        @neo 其实只有SG-Lang能跑,本地才有意义,没有Radix缓存树,本地hermes挂机做任务好可以,要实时做事太慢了。

                        Sglang可以跑了,但是FP8 256k上下文速度还是不太行,还在测

                        terryT 1 条回复 最后回复
                        0
                        • C 离线
                          C 离线
                          Colt
                          编写于 最后由 编辑
                          #14

                          这个问题也困扰我很久,目前用chat template 补丁,还是有不少改善:
                          https://lcz.me/post/5404

                          1 条回复 最后回复
                          0
                          • B Brian

                            @terry 说:

                            @neo 其实只有SG-Lang能跑,本地才有意义,没有Radix缓存树,本地hermes挂机做任务好可以,要实时做事太慢了。

                            Sglang可以跑了,但是FP8 256k上下文速度还是不太行,还在测

                            terryT 离线
                            terryT 离线
                            terry
                            超级版主
                            编写于 最后由 编辑
                            #15

                            @Brian 有空发帖分享下,能抄作业我才去折腾,最好是docker版本的 。

                            油管:https://www.youtube.com/@抡锤者

                            1 条回复 最后回复
                            0

                            你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

                            厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。

                            有了你的建议,这篇帖子会更精彩哦 💗

                            注册 登录
                            回复
                            • 在新帖中回复
                            登录后回复
                            • 从旧到新
                            • 从新到旧
                            • 最多赞同


                            • 登录

                            • 没有帐号? 注册

                            • 第一个帖子
                              最后一个帖子
                            0
                            • 版块
                            • 最新
                            • 标签
                            • 热门
                            • 用户
                            • 群组