diff --git a/app.py b/app.py index 1ea2b66..ae7e711 100644 --- a/app.py +++ b/app.py @@ -707,6 +707,7 @@ PROMPT_VOLUMES = { _NEEDS_QUANTIZATION = { "openai/gpt-oss-20b", "Qwen/Qwen3-30B-A3B", + "Qwen/Qwen3.8-27B", "zai-org/GLM-4.7-Flash", "Qwen/Qwen3.5-397B-A17B", "zai-org/GLM-5", diff --git a/obliteratus/presets.py b/obliteratus/presets.py index 3c30f87..aa1bc95 100644 --- a/obliteratus/presets.py +++ b/obliteratus/presets.py @@ -208,6 +208,15 @@ _PRESETS_LIST = [ recommended_dtype="bfloat16", recommended_quantization="4bit", ), + ModelPreset( + name="Qwen3.8-27B", + hf_id="Qwen/Qwen3.8-27B", + description="Qwen3.8 27B dense multimodal model. 262K context, think/non-think modes. Apache 2.0.", + tier="large", + params="27B", + recommended_dtype="bfloat16", + recommended_quantization="4bit", + ), ModelPreset( name="Qwen3.8 2.4T-A95B", hf_id="Qwen/Qwen3.8-2.4T-A95B", diff --git a/tests/test_bestiary_contracts.py b/tests/test_bestiary_contracts.py index 557f422..fd291eb 100644 --- a/tests/test_bestiary_contracts.py +++ b/tests/test_bestiary_contracts.py @@ -24,6 +24,7 @@ class Preset: @pytest.mark.parametrize( "model_id", [ + "Qwen/Qwen3.8-27B", "Qwen/Qwen3.8-2.4T-A95B", "deepseek-ai/DeepSeek-V4-Flash-0731", "deepseek-ai/DeepSeek-V4-Pro-0813", @@ -43,6 +44,17 @@ def test_current_verified_models_are_curated(model_id: str) -> None: assert model_id in presets.MODEL_PRESETS +def test_qwen38_27b_preset_matches_the_published_model_contract() -> None: + preset = presets.MODEL_PRESETS["Qwen/Qwen3.8-27B"] + + assert preset.name == "Qwen3.8-27B" + assert preset.params == "27B" + assert preset.tier == "large" + assert preset.recommended_dtype == "bfloat16" + assert preset.recommended_quantization == "4bit" + assert preset.gated is False + + @pytest.mark.parametrize( "size, expected", [