Repository navigation
[Klaud Cold] Add MiMo-V2.6-Flash B200 SGLang and vLLM AgentX recipes / [Klaud Cold] 新增 MiMo-V2.6-Flash B200 SGLang 与 vLLM AgentX 配方 - #4330
Conversation
…og):将 MiMo-V2.6-Flash 条目关联到 #4330 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…old] 新增 MiMo-V2.6-Flash B200 SGLang AgentX 配方 Add XiaomiMiMo/MiMo-V2.6-Flash-RL AgentX on B200 with upstream SGLang v0.5.21-cu130, following the SGLang MiMo-V2.5 cookbook: fa4 attention, text-only serving, mimo parsers, TP4 and TP2 without speculative decoding. 在 B200 上使用上游 SGLang v0.5.21-cu130 新增 XiaomiMiMo/MiMo-V2.6-Flash-RL AgentX 配方,参照 SGLang MiMo-V2.5 cookbook:fa4 注意力后端、纯文本服务、 mimo 解析器,TP4 与 TP2,不启用投机解码。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
95def19 to
d744bf2
Compare
| - "Serve text-only with language-model-only, the fa4 attention backend, chunked-prefill-size 16384, mem-fraction-static 0.85 and the mimo reasoning and tool-call parsers; thinking stays on per the chat template default." | ||
| - "Sweep TP4 at concurrency 1, 4, 8, 16, 32 and 64 and TP2 at 1, 4, 8, 16 and 32 with GPU-resident KV; attention TP must divide the checkpoint's TP4-interleaved fused QKV, so TP8 without DP attention is not valid." | ||
| - "No speculative decoding: there is no committed MiMo golden acceptance-length curve yet." | ||
| pr-link: TBD |
There was a problem hiding this comment.
🔴 Maintainers merging this PR with the supported tools get a hard refusal, because the new entry's pr-link: TBD is not a recognised placeholder. PR_LINK_PLACEHOLDERS (validate_perf_changelog.py:22) accepts only XXX and https://github.com/SemiAnalysisAI/InferenceX/pull/XXX. compare_entries rejects anything else on PR runs. Fix: set the pr-link to https://github.com/SemiAnalysisAI/InferenceX/pull/XXX, as in CONTRIBUTING.md:206, or to this PR's canonical URL, so merge_with_reuse and resolve-conflict can rewrite it at merge.
Why this was flagged
The appended entry ends with pr-link: TBD (perf-changelog.yaml:10240). merge_with_reuse is the documented merge path for reuse (.github/workflows/README.md:289). It calls canonicalize_appended_links (merge_with_reuse.py:478-483). That function raises "appended entry N has unexpected pr-link 'TBD'" when a link is not in PR_LINK_PLACEHOLDERS (prepare_perf_changelog_merge.py:105-111). Before that, compare_entries -> validate_added_pr_link raises "new PR entry must use 'https://github.com/SemiAnalysisAI/InferenceX/pull/' or an XXX placeholder; found 'TBD'" (validate_perf_changelog.py:139-150). The changelog-conflict helper resolve_conflict_bytes calls compare_entries too (prepare_perf_changelog_merge.py:146), so recovery after a main-side changelog conflict is also refused. The PR-time check in run-sweep.yml only runs infx.matrix.plan through validate_matrix_compatible_change, which never calls compare_entries. So sweeps pass and the problem shows up only at merge or conflict time.
Verification: The new entry ends with pr-link: TBD (perf-changelog.yaml:10240). PR_LINK_PLACEHOLDERS holds only "XXX" and "https://github.com/SemiAnalysisAI/InferenceX/pull/XXX" (validate_perf_changelog.py:22-25). merge_pr calls canonicalize_changelog(pr, repo) unconditionally (merge_with_reuse.py:631). The PR-time CI check (run-sweep.yml:97-117) never checks the pr-link.
| # One variant per point. Admission is 2x CONC for subagent fan-out and the | ||
| # decode graph batch is CONC. Attention TP must divide the checkpoint's | ||
| # TP4-interleaved fused QKV, so TP8 without DP attention is invalid. |
There was a problem hiding this comment.
🟡 nit (optional): The new recipe adds a three-line header comment above the overrides section, which the repo's comment rules forbid. "One variant per point" describes the file layout. The TP8 note explains a variant that is absent and is not tied to any line. Fix: delete the block. If the 2x CONC admission needs a reason, put one short line next to the first max-running-requests. The TP8 reasoning is already in perf-changelog.yaml.
Why this was flagged
AGENTS.md "Code comments (mandatory)" applies to recipes. It says: "Never add broad, overarching comments at the top of a file or above a recipe, override, or section. Do not describe what the file, topology, or config is." The block at agentic.yaml:50-52 sits directly above override_tp4_c1. It describes the variant layout ("One variant per point") and justifies why TP8 is missing, so it explains no particular line. The nearest existing pattern, dsv41flash/sglang/b200-fp4-mtp/agentic.yaml:51, starts its overrides with no header comment. The perf-changelog entry this PR adds already records the TP8 rationale.
Verification: nit. The new recipe agentic.yaml has a three-line block at lines 50-52, directly above override_tp4_c1:. AGENTS.md:64 says: "No header comments. Never add broad, overarching comments at the top of a file or above a recipe, override, or section." The block is a section-level comment over all 11 overrides. Nothing breaks at runtime because YAML ignores comments.
|
View unofficial run (performance): https://inferencex.semianalysis.com/inference?unofficialRun=39323832019 View unofficial run (accuracy): https://inferencex.semianalysis.com/evaluation?unofficialRun=39323832019 |
…d] 新增 MiMo-V2.6-Flash B200 vLLM AgentX 配方 Adds mimov2.6flash-fp4-b200-vllm-agentic on vllm/vllm-openai:v0.31.0 with TP8, TP4 and TP2 points, and extends this PR's changelog block. 新增基于 vllm/vllm-openai:v0.31.0 的 mimov2.6flash-fp4-b200-vllm-agentic, 包含 TP8、TP4、TP2 测试点,并扩展本 PR 的 changelog 条目。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… [Klaud Cold] MiMo-V2.6-Flash 在 SGLang 上使用 MXFP4 MoE runner SGLang v0.5.21's MiMo override selects flashinfer_trtllm on SM100 for any quant_method=fp8 checkpoint, but MiMo-V2.6-Flash stores its routed experts as packed MXFP4, which that FP8 runner cannot read. The upstream fix (sgl-project/sglang#41668) landed after v0.5.21, so pin flashinfer_mxfp4 explicitly. SGLang v0.5.21 的 MiMo 默认配置会在 SM100 上为 quant_method=fp8 的检查点 选择 flashinfer_trtllm,但 MiMo-V2.6-Flash 的路由专家以打包的 MXFP4 存储, 该 FP8 runner 无法读取。上游修复(sgl-project/sglang#41668)在 v0.5.21 之后才合入,因此显式指定 flashinfer_mxfp4。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… recipe / [Klaud Cold] 移除 MiMo-V2.6-Flash SGLang 配方中的 language-model-only The B200 canary failed at startup: SGLang v0.5.21 rejects --language-model-only for MiMoV2ForCausalLM. Serve with the encoders loaded and run the ViT on FA4. B200 canary 启动失败:SGLang v0.5.21 不支持对 MiMoV2ForCausalLM 使用 --language-model-only。改为加载编码器,并让 ViT 使用 FA4。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Dashboard support for this model is in SemiAnalysisAI/InferenceX-app#1512. It registers the 中文本模型的仪表板支持在 SemiAnalysisAI/InferenceX-app#1512 中:它将 |
…at/mimov2.6flash-b200-sglang-agentic Resolve perf-changelog.yaml with prepare_perf_changelog_merge (main's bytes kept, the #4330 entry re-appended) and place the MiMo-V2.6-Flash MODELS.md row by date between MiniMax-M3.1-Flash and Muse Spark Open, pointing its speculative-decoding note at #4742. 中文:使用 prepare_perf_changelog_merge 解决 perf-changelog.yaml 冲突(保留 main 原有内容并重新追加 #4330 条目);将 MiMo-V2.6-Flash 在 MODELS.md 中的 行按日期放在 MiniMax-M3.1-Flash 与 Muse Spark Open 之间,并将其投机解码说明 指向 #4742。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BGggnGqhy9dML7NM9ow3Fm
|
/use 39323832019 |
|
@kimbochen staging run 39323832019 failed. Inspect the staging workflow. |
Summary
Adds AgentX coverage for XiaomiMiMo/MiMo-V2.6-Flash-RL, a 309B-total / 15B-active MiMoV2 model, on B200 with upstream SGLang and upstream vLLM. Neither key uses speculative decoding yet.
What runs: two new keys, 24 points in total. Every point keeps the KV cache on the GPU (no CPU offload).
mimov2.6flash-fp4-b200-sglang-agenticlmsysorg/sglang:v0.5.21-cu130mimov2.6flash-fp4-b200-vllm-agenticvllm/vllm-openai:v0.31.0Both images are pinned by digest. Admission is 2× concurrency for subagent fan-out, and decode CUDA graphs cover the concurrency.
Precision (
fp4), checked against the checkpoint's safetensors headers:o_proj, router, embeddings andlm_headare BF16.deepseek-ai/DeepSeek-V4.1-Flash, which this repo labelsfp4.SGLang settings (from the SGLang MiMo-V2.5 cookbook; V2.6-Flash uses the same
MiMoV2ForCausalLMarchitecture and size class):moe-runner-backend: flashinfer_mxfp4. v0.5.21's MiMo default picks the FP8 TRT-LLM runner on SM100 for anyquant_method: fp8checkpoint, which cannot read packed MXFP4 experts. The upstream fix ([Fix] Select the MXFP4 MoE runner for MiMo-V2 packed experts on SM100 sgl-project/sglang#41668) landed after v0.5.21.attention-backend: fa4, because the defaulttrtllm_mharejects MiMoV2's asymmetric K/V head dims on Blackwell.language-model-only: v0.5.21 rejects it forMiMoV2ForCausalLM(the first canary failed at startup on it). The vision and audio encoders (~2 GB) therefore load, withmm-attention-backend: fa4for the ViT; text-only AgentX requests never run them.chunked-prefill-size 16384,mem-fraction-static 0.85,mimoreasoning and tool-call parsers.num_key_value_heads = 4), and SGLang requires the attention TP size to divide 4.vLLM settings (from vLLM's MiMo-V2.6-Flash-RL recipe, which names v0.31.0 as the first release that loads this checkpoint):
gpu-memory-utilization 0.95,max-model-len auto(the largest context the KV pool holds, for the uncapped AgentX corpus),max-num-batched-tokens 16384,mimoparsers.MiMoV2ForCausalLMis text-only, so nolanguage-model-onlyflag is needed.Thinking stays on for both engines, which is the chat template's default.
Known gaps:
infx/golden_al_distribution/has no MiMo curve, so a speculative run would fail at launch. feat(speedbench): add MiMo-V2.6-Flash vLLM DFlash AL collector and golden curve / feat(speedbench):新增 MiMo-V2.6-Flash vLLM DFlash AL 采集脚本与黄金曲线 #4331 adds a vLLM collector for the checkpoint's DFlash drafter; DFlash arms follow once that curve is committed.b200-nscale.runners.yamlhas no entry for this model, sohf:XiaomiMiMo/MiMo-V2.6-Flash-RLis served from the shared HF hub cache, the same way as DeepSeek-V4.1-Flash on this cluster. The repo is not gated. The first job downloads the checkpoint.XiaomiMiMo/MiMo-V2.6-Flash-MOPD(same architecture and format), which fixes the RL release's tool-call repetition. This PR stays on the RL checkpoint; MOPD can be added separately.language-model-only(fixed above); thefull-sweep-fail-fastsweep reruns on the latest commit.AI model disclosure
claude-opus-5-5), via Claude Code. No delegated agents.PR checklist and change type
Type of Change
Checklist
python -m infx.matrix.changed --base origin/mainlists affected config keys, I have appended one new entry covering them to the physical end ofinferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entriesinferencex-e2e/perf-changelog.yamlentry, it carries exactly one primary sweep label (a maintainer applies it on fork PRs):full-sweep-fail-fast(recommended),full-sweep-enabled, ornon-canary-full-sweep-enabled. Optional modifiersall-evals,evals-only, andagentx-fastrequire a primary label; the last two block reuse while applied.OWNER/MEMBER/COLLABORATOR) has commented/use <run_id>(or the legacy/reuse-sweep-run) on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.中文
为 XiaomiMiMo/MiMo-V2.6-Flash-RL(MiMoV2 架构,总参数 309B / 激活 15B)在 B200 上新增基于上游 SGLang 与上游 vLLM 的 AgentX 覆盖。两个配置键暂不使用投机解码。
运行内容: 新增两个配置键,共 24 个点。所有点的 KV 缓存都保留在 GPU 上(不做 CPU 卸载)。
mimov2.6flash-fp4-b200-sglang-agenticlmsysorg/sglang:v0.5.21-cu130mimov2.6flash-fp4-b200-vllm-agenticvllm/vllm-openai:v0.31.0两个镜像均按 digest 固定。准入上限为并发的 2 倍,以容纳子 agent 扇出;decode CUDA graph 覆盖到并发数。
精度(
fp4),已对照检查点的 safetensors 头信息核实:o_proj、路由器、词嵌入和lm_head为 BF16。deepseek-ai/DeepSeek-V4.1-Flash的混合布局相同,本仓库将其标记为fp4。SGLang 设置(参照 SGLang MiMo-V2.5 cookbook;V2.6-Flash 与 V2.5 采用相同的
MiMoV2ForCausalLM架构,规模也相同):moe-runner-backend: flashinfer_mxfp4。v0.5.21 的 MiMo 默认配置会在 SM100 上为任何quant_method: fp8的检查点选择 FP8 TRT-LLM runner,而它无法读取打包的 MXFP4 专家。上游修复([Fix] Select the MXFP4 MoE runner for MiMo-V2 packed experts on SM100 sgl-project/sglang#41668)在 v0.5.21 之后才合入。attention-backend: fa4:在 Blackwell 上,默认的trtllm_mha不支持 MiMoV2 的非对称 K/V head 维度。language-model-only:v0.5.21 对MiMoV2ForCausalLM会拒绝该参数(首次 canary 因此在启动时失败)。因此会加载视觉与音频编码器(约 2 GB),ViT 使用mm-attention-backend: fa4;纯文本的 AgentX 请求不会调用它们。chunked-prefill-size 16384、mem-fraction-static 0.85、mimo推理与工具调用解析器。num_key_value_heads = 4),SGLang 要求注意力 TP 大小能整除 4。vLLM 设置(参照 vLLM 的 MiMo-V2.6-Flash-RL 配方,其中指出 v0.31.0 是首个能加载该检查点的版本):
gpu-memory-utilization 0.95、max-model-len auto(KV 池能容纳的最大上下文,适配不截断的 AgentX 轨迹)、max-num-batched-tokens 16384、mimo解析器。MiMoV2ForCausalLM只含文本部分,因此无需language-model-only。两个引擎都保持开启思考模式,这是 chat template 的默认行为。
已知缺口:
infx/golden_al_distribution/中还没有 MiMo 曲线,投机解码运行会在启动时失败。feat(speedbench): add MiMo-V2.6-Flash vLLM DFlash AL collector and golden curve / feat(speedbench):新增 MiMo-V2.6-Flash vLLM DFlash AL 采集脚本与黄金曲线 #4331 新增针对检查点 DFlash 草稿模型的 vLLM 采集脚本;曲线提交后再加入 DFlash 配置。b200-nscale上未预置权重。runners.yaml中没有该模型的条目,因此hf:XiaomiMiMo/MiMo-V2.6-Flash-RL从共享 HF hub 缓存加载,与 DeepSeek-V4.1-Flash 在该集群上的做法相同。该仓库不需要申请访问权限,首个任务会下载检查点。XiaomiMiMo/MiMo-V2.6-Flash-MOPD(架构与格式相同),修复了 RL 版本的工具调用重复问题。本 PR 仍使用 RL 检查点,MOPD 可另行添加。language-model-only在服务启动时失败(已在上文修复);full-sweep-fail-fastsweep 会在最新提交上重新运行。AI 模型使用说明: Claude Opus 5.5(
claude-opus-5-5),通过 Claude Code 使用,未委派其他 agent;负责调研、配方与配置编写、本地验证、sweep 排错以及 PR 准备。改动类型: 新功能、配置变更、文档更新。
🤖 Generated with Claude Code