mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-13 11:42:20 +02:00
72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
"""Harden hwfit model-catalog parsing against non-string field values.
|
|
|
|
`params_b` and `is_prequantized` read free-form fields straight off the HF
|
|
catalog JSON. `parameter_count` is normally a string like "7B" and
|
|
`quantization` a string like "FP8", but a catalog row can carry a non-string
|
|
(e.g. an integer parameter_count, or a null/number quantization). The code
|
|
called `pc.strip()` / `q.startswith(...)` directly, so one such row raised
|
|
AttributeError and aborted the whole ranking pass (params_b/is_prequantized
|
|
run for every model). Non-strings are now treated as unknown.
|
|
"""
|
|
from services.hwfit.models import params_b, is_prequantized
|
|
from pathlib import Path
|
|
|
|
|
|
def test_params_b_nonstring_count_does_not_raise():
|
|
assert params_b({"parameter_count": 7}) == 0.0
|
|
assert params_b({"parameter_count": ["7B"]}) == 0.0
|
|
|
|
|
|
def test_params_b_valid_count_still_parses():
|
|
assert params_b({"parameter_count": "7B"}) == 7.0
|
|
assert params_b({"parameters_raw": 7_000_000_000}) == 7.0
|
|
|
|
|
|
def test_is_prequantized_nonstring_quantization_does_not_raise():
|
|
assert is_prequantized({"quantization": 8}) is False
|
|
assert is_prequantized({"name": "plain-model", "quantization": 123}) is False
|
|
|
|
|
|
def test_is_prequantized_still_detects_real_markers():
|
|
assert is_prequantized({"name": "some-model-awq"}) is True
|
|
assert is_prequantized({"quantization": "FP8-Mixed"}) is True
|
|
|
|
|
|
def test_catalog_updater_tracks_major_official_hf_orgs():
|
|
script = Path("scripts/add_hwfit_models.py").read_text(encoding="utf-8")
|
|
for org in (
|
|
"Qwen",
|
|
"deepseek-ai",
|
|
"zai-org",
|
|
"MiniMaxAI",
|
|
"moonshotai",
|
|
"mistralai",
|
|
"meta-llama",
|
|
"google",
|
|
"google-deepmind",
|
|
"microsoft",
|
|
"nvidia",
|
|
"CohereLabs",
|
|
"ai21labs",
|
|
"Tencent-Hunyuan",
|
|
"ibm-granite",
|
|
"tiiuae",
|
|
"01-ai",
|
|
"allenai",
|
|
"HuggingFaceTB",
|
|
"openai",
|
|
):
|
|
assert f'"{org}"' in script
|
|
|
|
|
|
def test_catalog_updater_prefilters_broad_orgs_before_expensive_probe():
|
|
script = Path("scripts/add_hwfit_models.py").read_text(encoding="utf-8")
|
|
assert "def _is_likely_catalog_model" in script
|
|
assert "_GEN_MODEL_PIPELINES" in script
|
|
assert "_GEN_MODEL_KEYWORDS" in script
|
|
assert "BROAD_AUTHORS_SKIP_FALLBACK_PROBES" in script
|
|
assert "probe_config=not skip_fallbacks" in script
|
|
assert "probe_safetensors=not skip_fallbacks" in script
|
|
assert "if not _is_likely_catalog_model(mi):" in script
|
|
assert "continue\n ov = EXTRA_REPOS.get(mi.id)" in script
|