diff --git a/studio/backend/core/training/worker.py b/studio/backend/core/training/worker.py index 8ab2b5b2be..ff046c3fc9 100644 --- a/studio/backend/core/training/worker.py +++ b/studio/backend/core/training/worker.py @@ -50,6 +50,8 @@ def _model_wants_causal_conv1d(model_name: str) -> bool: for key in ( "qwen3.5", "qwen3_5", + "qwen3.6", + "qwen3_6", "qwen3-next", "qwen3_next", "nemotron_h", diff --git a/studio/backend/tests/test_training_worker_flash_attn.py b/studio/backend/tests/test_training_worker_flash_attn.py index 986958408e..41a7c87df1 100644 --- a/studio/backend/tests/test_training_worker_flash_attn.py +++ b/studio/backend/tests/test_training_worker_flash_attn.py @@ -133,6 +133,22 @@ def test_causal_conv1d_fast_path_preserves_wheel_first_install_args(monkeypatch) ) +def test_causal_conv1d_fast_path_includes_qwen3_6_variants(monkeypatch): + install_mock = mock.Mock(return_value = True) + monkeypatch.setattr(worker, "_install_package_wheel_first", install_mock) + + worker._ensure_causal_conv1d_fast_path( + event_queue = [], + model_name = "unsloth/Qwen3.6-4B", + ) + worker._ensure_causal_conv1d_fast_path( + event_queue = [], + model_name = "unsloth/Qwen3_6-4B", + ) + + assert install_mock.call_count == 2 + + def test_mamba_ssm_path_preserves_wheel_first_install_args(monkeypatch): install_mock = mock.Mock(return_value = True) monkeypatch.setattr(worker, "_install_package_wheel_first", install_mock) diff --git a/studio/backend/utils/datasets/model_mappings.py b/studio/backend/utils/datasets/model_mappings.py index 36f6886ef6..21e8566ac5 100644 --- a/studio/backend/utils/datasets/model_mappings.py +++ b/studio/backend/utils/datasets/model_mappings.py @@ -364,6 +364,10 @@ TEMPLATE_TO_MODEL_MAPPER = { "unsloth/Qwen3-4B-Thinking-2507-bnb-4bit", "unsloth/Qwen3-30B-A3B-Thinking-2507", "Qwen/Qwen3-30B-A3B-Thinking-2507", + "Qwen/Qwen3.6-35B-A3B", + "unsloth/Qwen3.6-35B-A3B", + "Qwen/Qwen3.6-27B", + "unsloth/Qwen3.6-27B", ), "qwen3.5": ( "unsloth/Qwen3.5-0.8B", diff --git a/studio/backend/utils/transformers_version.py b/studio/backend/utils/transformers_version.py index f36bdcd6e8..ebb20b85da 100644 --- a/studio/backend/utils/transformers_version.py +++ b/studio/backend/utils/transformers_version.py @@ -63,6 +63,7 @@ TRANSFORMERS_5_MODEL_SUBSTRINGS: tuple[str, ...] = ( TRANSFORMERS_550_MODEL_SUBSTRINGS: tuple[str, ...] = ( "gemma-4", # Gemma-4 (E2B-it, E4B-it, 31B-it, 26B-A4B-it) "gemma4", # Gemma-4 alternate naming + "qwen3.6", ) # Architecture classes / model_type values that require transformers 5.5.0.