Skip to content

Reduce post-startup compiled MoE training time by 10–24% in tested recipes - #50102

Open
Titus-von-Koeller wants to merge 12 commits into
huggingface:mainfrom
Titus-von-Koeller:amdahl/moe-capture-main-20261028
Open

Titus-von-Koeller wants to merge 12 commits into
huggingface:mainfrom
Titus-von-Koeller:amdahl/moe-capture-main-20261028

Conversation

@Titus-von-Koeller

@Titus-von-Koeller Titus-von-Koeller commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

🤗 Transformers CI

MoE training can fall back to eager execution when regional compilation and router-output collection are both enabled. I traced this to the growing list of router outputs: each decoder sees a different list length, causing repeated compilation until the recompilation limit is reached. In the tested Qwen and Granite recipes, fixing this reduced training time after startup by ~10–24%.

The load-balancing auxiliary loss is an additional training objective that encourages the router to distribute work across experts. Calculating it requires the router outputs. TRL's SFTTrainer enables their collection when the model declares output_router_logits and the resolved auxiliary-loss coefficient is nonzero; by default, that coefficient comes from the model configuration.

I checked the default configurations of the 55 MoE-capable families registered in AutoModelForCausalLM: 25 (45.5%) match that rule in TRL 1.16.0. This counts model defaults, which might not be representative of training jobs or applicable recipes.

With the change, each compiled decoder or encoder layer now collects the requested router, attention and hidden-state outputs without depending on how many outputs earlier layers collected. To achieve this, each layer receives fresh, temporary lists local to that layer. Their contents are then combined outside the compiled layer, preserving their order and gradients, including the router outputs' contribution to the auxiliary loss, as before. Hidden-state layer positions are resolved outside compilation too, preserving which layers the caller requested. The integration covers 70 model families.

Configuration Relevance of this change
Regional compilation with router or attention outputs collected Fixes the growing-list dependency; router-loss training tested with and without FSDP
No torch.compile, or no router, attention or hidden-state outputs collected No compilation-reuse benefit from this helper
Regional compilation with full or selected hidden states collected Fixes the same dependency while preserving layer positions; no training speedup measured
Whole-model compilation Collector behavior is unchanged; comparison below

I compared training before and after the collection changes, with regional compilation enabled:

Experiment Training length (updates / target tokens) Training time reduction after startup Training time reduction including compilation
Qwen3-30B-A3B, 1 × B300
No FSDP/checkpointing; BF16 parameters and Adam moments
352 / 180k ~24% ~11%
Granite 3.0-1B-A400M, 1 × RTX 4090
No FSDP/checkpointing; BF16 parameters and Adam moments
1,024 / 523k ~10% ~13%
Qwen3-30B-A3B, 8 × H100
FSDP2 + checkpointing; BF16 compute, FP32 parameters and Adam moments; earlier prototype; Accelerate correction #4441 present before and after
15,315 / 247M ~21% ~20%
Granite 3.0-1B-A400M, 1 × RTX 4090
Attention outputs requested for diagnosis; router fix present before and after; no FSDP/checkpointing
256 / 131k ~12% ~20%

The attention row measures an additional ~12% reduction after startup / ~20% including compilation over the router fix, in a separate recipe that requests attention maps. These are separate measurements: the router benchmarks did not request attention outputs, so we have not measured a combined speedup.

The single-GPU comparisons ran in both orders. For the router comparisons, single-GPU Qwen's mean development loss was 0.11% higher; Granite's differences changed direction across repeats. Full Qwen final loss was ~0.004% higher.

Measurements, losses and reproduction details.

I also compared regional and whole-model compilation on Granite over 1,024 updates, with the collector correction in both recipes and FSDP/checkpointing off. With fresh compiler caches, regional compilation took ~19% less total training time than whole-model compilation. After startup, whole-model compilation with fullgraph=True took ~4% less time per update than regional compilation. Whole-model compilation works for this recipe, but its longer startup was not recovered within this run. This compares compilation recipes, not the patch against unchanged code.

This preserves the earlier fixes that keep concurrent model calls from mixing their outputs outside torch.compile (#43765) and let only one decorator collect a given set of outputs (#43862). #46370 proposes letting torch.compile use Python context variables directly; that would remove the compatibility wrapper, but would not by itself stop recompilation caused by the growing router-output list.

The regression covers requested outputs, gradients and graph reuse with native non-reentrant checkpointing. Restoring the old router, attention or hidden-state collection makes the corresponding case fail at the recompilation limit:

python -m pytest tests/utils/test_moe_output_capturing.py -k regional_compilation_preserves_outputs_and_reuses_graphs

I used AI agents to help investigate, implement and test this change. I reviewed the code line by line and validated it through regression tests, compiler diagnostics and extensive GPU experiments, including full training runs. I am responsible for the contribution and its follow-up.

Reuse the shared per-region collector at authored encoder and decoder call boundaries, including hybrid, skipped-layer and multi-component paths. Regenerate inherited model implementations without duplicating forward methods.

Add focused regressions for LayerDrop, prefix-cache recomputation, encoder/head outputs and real multimodal/hybrid compiler reuse.
@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@Titus-von-Koeller
Titus-von-Koeller marked this pull request as draft October 29, 2026 00:28
@Titus-von-Koeller Titus-von-Koeller changed the title Avoid repeated compilation when collecting MoE router outputs Reduce post-startup compiled MoE training time by 10–24% in tested recipes Oct 29, 2026
@Titus-von-Koeller

Copy link
Copy Markdown
Contributor Author

run-slow: qwen2_moe, qwen3_moe, qwen3_5, mixtral, granitemoe, jamba, deepseek_ocr2, switch_transformers, nllb_moe, diffusion_gemma, openai_privacy_filter

@Titus-von-Koeller
Titus-von-Koeller marked this pull request as ready for review October 29, 2026 22:38
@Titus-von-Koeller
Titus-von-Koeller requested review from SunMarc and a balanced review from Copilot October 29, 2026 22:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The interaction between regional compilation and non-reentrant checkpointing remains untested, leaving router-output ordering, gradients, and graph reuse unverified when checkpointed regions rerun during backward.

1 open issue
What changed in this PR

This PR isolates router-output collection around individual model layers so regional compilation can reuse graphs without specializing on an ever-growing output list. It extends Transformers’ existing capture mechanism while preserving output ordering and gradient connections.

Changes:

  • Adds a scoped router buffer that merges into the parent collector after each region.
  • Integrates the scope into model execution loops and corresponding modular sources.
  • Adds tests for capture isolation, output and gradient parity, checkpointing, and compiled graph reuse.
File Description
tests/​utils/​test_output_capturing.py Tests buffer isolation, ordering, gradients, and context restoration.
tests/​utils/​test_moe_output_capturing.py Tests model parity, checkpointing, and compiled graph reuse.
src/​transformers/​utils/​output_capturing.py Adds scoped router collection and eager context binding.
src/​transformers/​models/​zaya/​modular_zaya.py Scopes router collection in the modular decoder loop.
src/​transformers/​models/​zaya/​modeling_zaya.py Applies scoped collection to Zaya decoders.
src/​transformers/​models/​unlimited_ocr/​modular_unlimited_ocr.py Scopes collection in the modular text loop.
src/​transformers/​models/​unlimited_ocr/​modeling_unlimited_ocr.py Applies scoped collection to OCR text decoders.
src/​transformers/​models/​switch_transformers/​modular_switch_transformers.py Scopes collection around modular stack blocks.
src/​transformers/​models/​switch_transformers/​modeling_switch_transformers.py Applies scoped collection to encoder/decoder blocks.
src/​transformers/​models/​step3p7/​modular_step3p7.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​step3p7/​modeling_step3p7.py Applies scoped collection to Step3p7 decoders.
src/​transformers/​models/​solar_open/​modeling_solar_open.py Applies scoped collection to Solar Open decoders.
src/​transformers/​models/​qwen4_exp/​modular_qwen4_exp.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​qwen4_exp/​modeling_qwen4_exp.py Applies scoped collection to Qwen4 Exp decoders.
src/​transformers/​models/​qwen3_vl_moe/​modular_qwen3_vl_moe.py Scopes collection before visual-feature injection.
src/​transformers/​models/​qwen3_vl_moe/​modeling_qwen3_vl_moe.py Applies scoped collection to multimodal text decoders.
src/​transformers/​models/​qwen3_omni_moe/​modeling_qwen3_omni_moe.py Scopes collection in both affected decoder loops.
src/​transformers/​models/​qwen3_next/​modular_qwen3_next.py Scopes collection in the modular hybrid loop.
src/​transformers/​models/​qwen3_next/​modeling_qwen3_next.py Applies scoped collection to hybrid decoders.
src/​transformers/​models/​qwen3_moe/​modeling_qwen3_moe.py Applies scoped collection to Qwen3 MoE decoders.
src/​transformers/​models/​qwen3_5/​modular_qwen3_5.py Adds collection scope to the shared modular loop.
src/​transformers/​models/​qwen3_5/​modeling_qwen3_5.py Includes collection scope in the text decoder loop.
src/​transformers/​models/​qwen3_5_moe/​modeling_qwen3_5_moe.py Applies scoped collection to Qwen3.5 MoE decoders.
src/​transformers/​models/​qwen2_moe/​modular_qwen2_moe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​qwen2_moe/​modeling_qwen2_moe.py Applies scoped collection to Qwen2 MoE decoders.
src/​transformers/​models/​phimoe/​modeling_phimoe.py Applies scoped collection to PhiMoE decoders.
src/​transformers/​models/​openai_privacy_filter/​modular_openai_privacy_filter.py Scopes collection in the modular encoder loop.
src/​transformers/​models/​openai_privacy_filter/​modeling_openai_privacy_filter.py Applies scoped collection to privacy-filter encoders.
src/​transformers/​models/​olmoe/​modular_olmoe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​olmoe/​modeling_olmoe.py Applies scoped collection to OLMoE decoders.
src/​transformers/​models/​nllb_moe/​modeling_nllb_moe.py Scopes encoder/decoder calls while retaining layer skipping.
src/​transformers/​models/​nemotron_h/​modular_nemotron_h.py Scopes collection around modular mixer blocks.
src/​transformers/​models/​nemotron_h/​modeling_nemotron_h.py Applies scoped collection to hybrid mixer blocks.
src/​transformers/​models/​muse_spark/​modular_muse_spark.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​muse_spark/​modeling_muse_spark.py Applies scoped collection to Muse Spark decoders.
src/​transformers/​models/​mixtral/​modular_mixtral.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​mixtral/​modeling_mixtral.py Applies scoped collection to Mixtral decoders.
src/​transformers/​models/​mistral4/​modeling_mistral4.py Applies scoped collection to Mistral4 decoders.
src/​transformers/​models/​minimax/​modular_minimax.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​minimax/​modeling_minimax.py Applies scoped collection to MiniMax decoders.
src/​transformers/​models/​minimax_m3_vl/​modular_minimax_m3_vl.py Scopes collection in the modular text loop.
src/​transformers/​models/​minimax_m3_vl/​modeling_minimax_m3_vl.py Applies scoped collection to multimodal text decoders.
src/​transformers/​models/​minimax_m2/​modular_minimax_m2.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​minimax_m2/​modeling_minimax_m2.py Applies scoped collection to MiniMax M2 decoders.
src/​transformers/​models/​mimo_v2_flash/​modeling_mimo_v2_flash.py Applies scoped collection to MiMo V2 Flash decoders.
src/​transformers/​models/​mellum/​modeling_mellum.py Applies scoped collection to Mellum decoders.
src/​transformers/​models/​longcat_flash/​modular_longcat_flash.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​longcat_flash/​modeling_longcat_flash.py Applies scoped collection to LongCat Flash decoders.
src/​transformers/​models/​llama4/​modeling_llama4.py Applies scoped collection to Llama4 text decoders.
src/​transformers/​models/​lfm2_moe/​modular_lfm2_moe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​lfm2_moe/​modeling_lfm2_moe.py Applies scoped collection to LFM2 MoE decoders.
src/​transformers/​models/​laguna/​modular_laguna.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​laguna/​modeling_laguna.py Applies scoped collection to Laguna decoders.
src/​transformers/​models/​kolibri1/​modeling_kolibri1.py Applies scoped collection to Kolibri1 decoders.
src/​transformers/​models/​kimi_linear/​modular_kimi_linear.py Scopes collection in the modular hybrid loop.
src/​transformers/​models/​kimi_linear/​modeling_kimi_linear.py Applies scoped collection to Kimi Linear decoders.
src/​transformers/​models/​jetmoe/​modular_jetmoe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​jetmoe/​modeling_jetmoe.py Groups each decoder’s routing outputs within one scope.
src/​transformers/​models/​jamba/​modular_jamba.py Scopes collection in the modular hybrid loop.
src/​transformers/​models/​jamba/​modeling_jamba.py Applies scoped collection to Jamba hybrid layers.
src/​transformers/​models/​inkling/​modular_inkling.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​inkling/​modeling_inkling.py Applies scoped collection to Inkling decoders.
src/​transformers/​models/​hy_v4/​modular_hy_v4.py Scopes collection while retaining inter-layer routing state.
src/​transformers/​models/​hy_v4/​modeling_hy_v4.py Applies scoped collection to HYV4 decoders.
src/​transformers/​models/​hy_v3/​modeling_hy_v3.py Applies scoped collection to HYV3 decoders.
src/​transformers/​models/​hunyuan_v1_moe/​modeling_hunyuan_v1_moe.py Applies scoped collection to HunYuan MoE decoders.
src/​transformers/​models/​granitemoeshared/​modeling_granitemoeshared.py Applies scoped collection to shared-expert decoders.
src/​transformers/​models/​granitemoehybrid/​modular_granitemoehybrid.py Scopes collection in the modular hybrid loop.
src/​transformers/​models/​granitemoehybrid/​modeling_granitemoehybrid.py Applies scoped collection to Granite hybrid layers.
src/​transformers/​models/​granitemoe/​modular_granitemoe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​granitemoe/​modeling_granitemoe.py Applies scoped collection to Granite MoE decoders.
src/​transformers/​models/​granitemoe_swa/​modular_granitemoe_swa.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​granitemoe_swa/​modeling_granitemoe_swa.py Applies scoped collection to sliding-window MoE decoders.
src/​transformers/​models/​gpt_oss/​modular_gpt_oss.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​gpt_oss/​modeling_gpt_oss.py Applies scoped collection to GPT-OSS decoders.
src/​transformers/​models/​glm5_next/​modular_glm5_next.py Scopes collection while retaining inter-layer index state.
src/​transformers/​models/​glm5_next/​modeling_glm5_next.py Applies scoped collection to GLM5 Next decoders.
src/​transformers/​models/​glm4v_moe/​modular_glm4v_moe.py Scopes collection in the modular text loop.
src/​transformers/​models/​glm4v_moe/​modeling_glm4v_moe.py Applies scoped collection to multimodal text decoders.
src/​transformers/​models/​glm4_moe/​modeling_glm4_moe.py Applies scoped collection to GLM4 MoE decoders.
src/​transformers/​models/​glm4_moe_lite/​modeling_glm4_moe_lite.py Applies scoped collection to GLM4 MoE Lite decoders.
src/​transformers/​models/​glm_moe_dsa/​modular_glm_moe_dsa.py Scopes collection while retaining shared index state.
src/​transformers/​models/​glm_moe_dsa/​modeling_glm_moe_dsa.py Applies scoped collection to sparse-attention decoders.
src/​transformers/​models/​gemma4/​modular_gemma4.py Scopes collection around modular text layers.
src/​transformers/​models/​gemma4/​modeling_gemma4.py Applies scoped collection to Gemma4 text decoders.
src/​transformers/​models/​flint/​modeling_flint.py Applies scoped collection to Flint decoders.
src/​transformers/​models/​flex_olmo/​modular_flex_olmo.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​flex_olmo/​modeling_flex_olmo.py Applies scoped collection to Flex OLMo decoders.
src/​transformers/​models/​exaone_moe/​modeling_exaone_moe.py Applies scoped collection to EXAONE MoE decoders.
src/​transformers/​models/​ernie4_5_vl_moe/​modular_ernie4_5_vl_moe.py Scopes collection in the modular multimodal loop.
src/​transformers/​models/​ernie4_5_vl_moe/​modeling_ernie4_5_vl_moe.py Applies scoped collection to multimodal MoE decoders.
src/​transformers/​models/​ernie4_5_moe/​modular_ernie4_5_moe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​ernie4_5_moe/​modeling_ernie4_5_moe.py Applies scoped collection to ERNIE4.5 MoE decoders.
src/​transformers/​models/​dots1/​modular_dots1.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​dots1/​modeling_dots1.py Applies scoped collection to Dots1 decoders.
src/​transformers/​models/​doge/​modular_doge.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​doge/​modeling_doge.py Applies scoped collection to Doge decoders.
src/​transformers/​models/​diffusion_gemma/​modular_diffusion_gemma.py Scopes collection in modular encoder and decoder loops.
src/​transformers/​models/​diffusion_gemma/​modeling_diffusion_gemma.py Applies scoped collection to both diffusion components.
src/​transformers/​models/​deepseek_v4/​modular_deepseek_v4.py Scopes collection in the modular layer loop.
src/​transformers/​models/​deepseek_v4/​modeling_deepseek_v4.py Applies scoped collection to DeepSeek V4 layers.
src/​transformers/​models/​deepseek_v32/​modular_deepseek_v32.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​deepseek_v32/​modeling_deepseek_v32.py Applies scoped collection to DeepSeek V3.2 decoders.
src/​transformers/​models/​deepseek_v3/​modeling_deepseek_v3.py Applies scoped collection to DeepSeek V3 decoders.
src/​transformers/​models/​deepseek_v2/​modeling_deepseek_v2.py Applies scoped collection to DeepSeek V2 decoders.
src/​transformers/​models/​deepseek_ocr2/​modeling_deepseek_ocr2.py Applies scoped collection to OCR text decoders.
src/​transformers/​models/​dbrx/​modular_dbrx.py Scopes collection around modular decoder blocks.
src/​transformers/​models/​dbrx/​modeling_dbrx.py Applies scoped collection to DBRX blocks.
src/​transformers/​models/​cohere2_moe/​modular_cohere2_moe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​cohere2_moe/​modeling_cohere2_moe.py Applies scoped collection to Cohere2 MoE decoders.
src/​transformers/​models/​beam/​modular_beam.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​beam/​modeling_beam.py Applies scoped collection to Beam decoders.
src/​transformers/​models/​bailing_hybrid/​modeling_bailing_hybrid.py Applies scoped collection to Bailing hybrid decoders.
src/​transformers/​models/​axk2/​modeling_axk2.py Applies scoped collection to AXK2 decoders.
src/​transformers/​models/​axk1/​modeling_axk1.py Applies scoped collection to AXK1 decoders.
src/​transformers/​models/​aria/​modeling_aria.py Applies scoped collection to Aria text decoders.
src/​transformers/​models/​afmoe/​modular_afmoe.py Scopes collection in the modular decoder loop.
src/​transformers/​models/​afmoe/​modeling_afmoe.py Applies scoped collection to AfMoE decoders.

Review effort: Balanced

Comment on lines +137 to +138
with _active_collector.eager_scope(local_collector):
yield

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a small Qwen regression with regional compilation and native non-reentrant checkpointing. It compares requested outputs and auxiliary/task gradients with eager execution, verifies compiled checkpoint replay after the forward collector is restored, and checks graph reuse across repeated forward/backward passes. The test uses a lightweight backend to isolate collection and graph reuse.

Regression test.

@Titus-von-Koeller

Copy link
Copy Markdown
Contributor Author

run-slow: qwen2_moe, qwen3_moe, qwen3_5, mixtral, granitemoe, jamba, deepseek_ocr2, switch_transformers, nllb_moe, diffusion_gemma, openai_privacy_filter, mistral_large4

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Thank you for your contribution 🤗!

CI Security Gate — automatic approval blocked

This PR was not automatically approved for CI because the security gate failed.

Possible reasons:

  • The PR touches 50 or more files — only PRs with fewer than 50 changed files are automatically approved
  • A changed file is outside the allowed directories (src/, tests/, docs/, utils/), has a disallowed extension (only .py, .txt, .md permitted outside tests/ and docs/), or is not .md/.yml inside docs/ — this covers files the PR deletes or renames, not only the ones it edits
  • A new security issue was detected in the changed Python files (Bandit check) — a high-severity one, shell execution, exec/eval, a URL fetch, or disabled TLS verification
  • The PR touches a path this repository protects from untrusted PRs, such as the file that decides who reviews it — a maintainer must make that change in a separate PR

See the workflow run for the exact violations.

A maintainer can review and manually approve CI if a finding is a false positive.

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

[For maintainers] Suggested jobs to run (before merge)

run-slow: afmoe, aria, axk1, axk2, bailing_hybrid, beam, cohere2_moe, dbrx, deepseek_ocr2, deepseek_v2, deepseek_v3, deepseek_v32, deepseek_v4, diffusion_gemma, doge, dots1

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

CI (Nvidia + AMD)

Nvidia · ✅ No new failures 🎉👏 · ⚙️ Workflow · 📊 Dashboard

Failures (11 pre-existing)

    Pre-existing failures (still failing) — 11 total:

        Same error (11):

show all 11

 
    - diffusion_gemma:
        tests/models/diffusion_gemma/test_modeling_diffusion_gemma.py::DiffusionGemmaIntegrationTest::test_diffusion_gemma_chat_template
        tests/models/diffusion_gemma/test_modeling_diffusion_gemma.py::DiffusionGemmaIntegrationTest::test_minified_diffusion_gemma_forward_batched
        tests/models/diffusion_gemma/test_modeling_diffusion_gemma.py::DiffusionGemmaIntegrationTest::test_minified_diffusion_gemma_forward_text_only
        tests/models/diffusion_gemma/test_modeling_diffusion_gemma.py::DiffusionGemmaIntegrationTest::test_minified_diffusion_gemma_forward_with_image

    - mixtral:
        tests/models/mixtral/test_modeling_mixtral.py::MixtralIntegrationTest::test_small_model_logits
        tests/models/mixtral/test_modeling_mixtral.py::MixtralIntegrationTest::test_small_model_logits_batched

    - nllb_moe:
        tests/models/nllb_moe/test_modeling_nllb_moe.py::NllbMoeModelIntegrationTests::test_inference_logits

    - qwen2_moe:
        tests/models/qwen2_moe/test_modeling_qwen2_moe.py::Qwen2MoeIntegrationTest::test_model_a2_7b_logits
        tests/models/qwen2_moe/test_modeling_qwen2_moe.py::Qwen2MoeIntegrationTest::test_speculative_generation

    - qwen3_5:
        tests/models/qwen3_5/test_modeling_qwen3_5.py::Qwen3_5IntegrationTest::test_model_video_generation
        tests/models/qwen3_5/test_modeling_qwen3_5.py::Qwen3_5IntegrationTest::test_model_video_generation_batch

AMD · ⚠️ CI failed to report results · ⚙️ Workflow · 📊 Dashboard

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants