Files
odysseus/tests/test_hwfit_hf_discovery_moe.py
T
dxrplandClaude Opus 5.5 bfa514f6e8 fix(hwfit): keep the MoE active size for HF collection models (#6729)
_entry_from_collection_item parsed the repo name (the only source of the
"-A3B" active size) only when HF's numParameters was missing, which is
almost never. Every MoE model from the HF collection catalog was scored
as dense, with speed estimates 3-4x too low.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:11:46 +02:00

34 lines
1.4 KiB
Python

from services.hwfit.hf_discovery import _entry_from_collection_item
_SOURCE = {"owner": "Qwen", "provider": "Qwen"}
_COLLECTION = {"title": "Qwen3.6"}
def _item(repo_id, num_params):
item = {"id": repo_id, "type": "model", "pipeline_tag": "text-generation"}
if num_params is not None:
item["numParameters"] = num_params
return item
def test_moe_active_size_is_read_from_name_when_hf_reports_total():
# HF collection items carry numParameters for nearly every repo. The MoE
# active size only exists in the name, so it must still be parsed.
entry = _entry_from_collection_item(_COLLECTION, _item("Qwen/Qwen3.6-35B-A3B", 35_951_822_704), _SOURCE)
assert entry["parameters_raw"] == 35_951_822_704
assert entry["is_moe"] is True
assert entry["active_parameters"] == 3_000_000_000
def test_moe_entry_without_hf_count_falls_back_to_name():
entry = _entry_from_collection_item(_COLLECTION, _item("Qwen/Qwen3-Coder-30B-A3B-Instruct", None), _SOURCE)
assert entry["parameters_raw"] == 30_000_000_000
assert entry["is_moe"] is True
assert entry["active_parameters"] == 3_000_000_000
def test_dense_entry_keeps_hf_count_and_is_not_moe():
entry = _entry_from_collection_item(_COLLECTION, _item("Qwen/Qwen3.6-27B", 27_781_427_952), _SOURCE)
assert entry["parameters_raw"] == 27_781_427_952
assert "is_moe" not in entry