跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • 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. GPT建议我降低--max-token-len 这合理吗?

GPT建议我降低--max-token-len 这合理吗?

已定时 已固定 已锁定 已移动 LLM讨论区
12 帖子 5 发布者 42 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • T 离线
    T 离线
    Tony Yun
    编写于 最后由 编辑
    #1

    我现在的vllm启动命令:

    --served-model-name qwen3.6-27b-fp8
    --kv-cache-dtype fp8
    --dtype auto
    --max-model-len 262144
    --gpu-memory-utilization 0.98
    --max-num-seqs 32
    --max-num-batched-tokens 4096
    --trust-remote-code
    --enable-auto-tool-choice
    --tool-call-parser qwen3_coder
    --reasoning-parser qwen3
    --enable-prefix-caching
    --compilation-config '{"cudagraph_capture_sizes": [1, 2, 4, 8]}'
    --speculative-config '{"method": "mtp", "num_speculative_tokens": 3}'
    --port 8000 --host 0.0.0.0

    但是经常超高cache,导致请求latency长达十几分钟。可是我不想限制max-model-len 这样最大上下文就没有260K了(gpt建议减半)。可130k上下文能干什么啊。

    1 条回复 最后回复
    0
    • 5 在线
      5 在线
      566656661
      编写于 最后由 编辑
      #2

      是什麽硬件? 3090還是4090?

      T 1 条回复 最后回复
      0
      • XiaoteX 在线
        XiaoteX 在线
        Xiaote
        编写于 最后由 编辑
        #3

        @Tony Yun GPT的建议有一定道理,但不一定需要直接砍半。我来分析一下这个问题的根因:

        核心问题不是 max-model-len 本身,而是 MTP + 超长上下文的组合。

        你的设置里同时开了:

        • 262K context(约6.7GB KV cache per request,FP8下)
        • MTP speculative decoding(draft model也要吃同样长度的KV cache)
        • max-num-seqs 32(最多32个并发请求的KV cache总和)
        • gpu-memory-utilization 0.98(几乎没有预留空间)

        当进来一个长上下文请求时,vLLM需要为这个请求分配完整的KV cache,同时MTP的draft model也要吃一份。在高并发场景下,cache eviction和内存碎片会导致请求排队,latency飙到十几分钟。

        建议的优化方案(优先级从高到低):

        1. 先降到192K试试 — 不要直接砍到130K。Qwen 3.6的实际有效上下文在192K以内表现非常稳定,大部分agent任务(tool calling、code generation)128-192K完全够用。

        2. 降低 max-num-seqs — 如果你是个人使用或小团队,--max-num-seqs 8 就够了。这能给每个请求留更多的cache空间,减少eviction。

        3. MTP调优 — MTP在长上下文场景下收益递减。可以考虑 --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}' 减少draft model的开销,或者只在短上下文请求时启用MTP。

        4. 如果主要用途是agent/tool calling — 130K确实绰绰有余。Hermes的tool calling一次对话很少有超过50K token的上下文。130K做agent完全够用。

        总之:先降max-model-len到160K-192K(别直接砍半),同时降低max-num-seqs。如果还不行再考虑130K。Agent场景下130K其实完全够用——绝大多数tool calling交互在50K以内就完成了。

        T 1 条回复 最后回复
        0
        • 5 566656661

          是什麽硬件? 3090還是4090?

          T 离线
          T 离线
          Tony Yun
          编写于 最后由 编辑
          #4

          @566656661 L40S 48GB

          5 1 条回复 最后回复
          0
          • 九龙杨生九 离线
            九龙杨生九 离线
            九龙杨生
            编写于 最后由 编辑
            #5

            --gpu-memory-utilization 0.98
            我感觉是这个问题,你没有考虑系统和vllm包括mtp之外的其他显存开销,你试试降低试试看

            T 1 条回复 最后回复
            0
            • XiaoteX Xiaote

              @Tony Yun GPT的建议有一定道理,但不一定需要直接砍半。我来分析一下这个问题的根因:

              核心问题不是 max-model-len 本身,而是 MTP + 超长上下文的组合。

              你的设置里同时开了:

              • 262K context(约6.7GB KV cache per request,FP8下)
              • MTP speculative decoding(draft model也要吃同样长度的KV cache)
              • max-num-seqs 32(最多32个并发请求的KV cache总和)
              • gpu-memory-utilization 0.98(几乎没有预留空间)

              当进来一个长上下文请求时,vLLM需要为这个请求分配完整的KV cache,同时MTP的draft model也要吃一份。在高并发场景下,cache eviction和内存碎片会导致请求排队,latency飙到十几分钟。

              建议的优化方案(优先级从高到低):

              1. 先降到192K试试 — 不要直接砍到130K。Qwen 3.6的实际有效上下文在192K以内表现非常稳定,大部分agent任务(tool calling、code generation)128-192K完全够用。

              2. 降低 max-num-seqs — 如果你是个人使用或小团队,--max-num-seqs 8 就够了。这能给每个请求留更多的cache空间,减少eviction。

              3. MTP调优 — MTP在长上下文场景下收益递减。可以考虑 --speculative-config '{"method": "mtp", "num_speculative_tokens": 1}' 减少draft model的开销,或者只在短上下文请求时启用MTP。

              4. 如果主要用途是agent/tool calling — 130K确实绰绰有余。Hermes的tool calling一次对话很少有超过50K token的上下文。130K做agent完全够用。

              总之:先降max-model-len到160K-192K(别直接砍半),同时降低max-num-seqs。如果还不行再考虑130K。Agent场景下130K其实完全够用——绝大多数tool calling交互在50K以内就完成了。

              T 离线
              T 离线
              Tony Yun
              编写于 最后由 编辑
              #6

              @Xiaote 如果是coding呢?130k就不够了吧

              1 条回复 最后回复
              0
              • T Tony Yun

                @566656661 L40S 48GB

                5 在线
                5 在线
                566656661
                编写于 最后由 编辑
                #7

                @Tony-Yun

                昨天這裏有回答你了

                先試試看吧, 之後再慢慢微調參數就可以, 目前見到最大的問題就是sequence跟context length太多, sequence降到4, context length降到200K到230K試試看

                1 条回复 最后回复
                0
                • 九龙杨生九 离线
                  九龙杨生九 离线
                  九龙杨生
                  编写于 最后由 编辑
                  #8

                  --max-num-seqs 32你这是32并发的参数设置,你个人用1-2就行了,多了也没用

                  1 条回复 最后回复
                  0
                  • Tony WangT 离线
                    Tony WangT 离线
                    Tony Wang
                    编写于 最后由 编辑
                    #9

                    你48G, 跑 27 FP8 + KV FP8, 256k 是跑不了的.

                    你试着把 --max-num-batched-tokens 4096 调大, 同时把MTP关掉. 试试吧.

                    128K一般任务足够了, coding的话, 用云端的吧, 除非是简单的.

                    T 1 条回复 最后回复
                    0
                    • XiaoteX 在线
                      XiaoteX 在线
                      Xiaote
                      编写于 最后由 编辑
                      #10

                      @Tony Yun 好问题!其实我说的建议是降到160-192K,不是直接130K,所以coding场景完全够用。

                      来分析一下coding实际需要多少上下文:

                      1. 大部分coding任务(修bug、加功能、重构)—— 你只需要读取相关文件,通常是3-5个文件,8-50K token就够了
                      2. 即使要理解整个项目结构,包含import链和依赖,192K也完全能覆盖10-20个文件
                      3. 真正需要200K+的场景(比如把整个代码库喂进去做全局分析),实际开发中极少遇到——这个量级的工作你更应该用chunk/RAG策略,或者交给云端API做一次性分析

                      你的L40S 48GB跑192K + MTP应当是可行的。建议先试试 --max-model-len 196608(192K),配合 --max-num-seqs 8,再看看显存压力和延迟。如果coding场景下MTP带来的额外显存开销有压力,可以关掉MTP专门跑coding请求,把MTP留给普通对话场景。

                      如果是偶尔遇到超大的代码库需要全量分析,临时用云端API处理一下就好,不影响日常本地开发。

                      1 条回复 最后回复
                      0
                      • 九龙杨生九 九龙杨生

                        --gpu-memory-utilization 0.98
                        我感觉是这个问题,你没有考虑系统和vllm包括mtp之外的其他显存开销,你试试降低试试看

                        T 离线
                        T 离线
                        Tony Yun
                        编写于 最后由 编辑
                        #11

                        @九龙杨生 0.98应该没什么问题,几乎没有因为OOM崩过

                        1 条回复 最后回复
                        0
                        • Tony WangT Tony Wang

                          你48G, 跑 27 FP8 + KV FP8, 256k 是跑不了的.

                          你试着把 --max-num-batched-tokens 4096 调大, 同时把MTP关掉. 试试吧.

                          128K一般任务足够了, coding的话, 用云端的吧, 除非是简单的.

                          T 离线
                          T 离线
                          Tony Yun
                          编写于 最后由 编辑
                          #12

                          @Tony-Wang 可以跑的,还行。我max model len也是放满262k的 还行:a699396c-d432-4efd-bdac-fdab0f9f544a-image.jpeg

                          1 条回复 最后回复
                          1

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

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

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

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


                          • 登录

                          • 没有帐号? 注册

                          • 登录或注册以进行搜索。
                          • 第一个帖子
                            最后一个帖子
                          0
                          • 版块
                          • 最新
                          • 标签
                          • 热门
                          • 用户
                          • 群组