Download code/tests/test_check_qwen3_snapshot.py from viai957/align: direct link, hf CLI and curl.
- Browser
- Download file 3.03 kB
-
https://huggingface.co/viai957/align/resolve/main/code/tests/test_check_qwen3_snapshot.py
- Command line
-
hf download hf://viai957/align/code/tests/test_check_qwen3_snapshot.py
-
curl -L -o test_check_qwen3_snapshot.py https://huggingface.co/viai957/align/resolve/main/code/tests/test_check_qwen3_snapshot.py
3.03 kB
| """scripts/p2/check_qwen3_snapshot.py on a tiny fake HF snapshot (CPU, header-only checks). | |
| Run: CUDA_VISIBLE_DEVICES= .venv/bin/python -m pytest tests/test_check_qwen3_snapshot.py -q | |
| """ | |
| from __future__ import annotations | |
| import json | |
| from pathlib import Path | |
| import pytest | |
| import torch | |
| from safetensors.torch import save_file | |
| from align.model.qwen3 import Qwen3Config | |
| from align.model.qwen3_checkpoint import _expected_shapes | |
| from test_p2_support import load_script | |
| CK = load_script("p2_check_qwen3_snapshot", "scripts/p2/check_qwen3_snapshot.py") | |
| TINY = dict(model_type="qwen3", architectures=["Qwen3ForCausalLM"], vocab_size=32, hidden_size=16, intermediate_size=24, num_hidden_layers=2, | |
| num_attention_heads=4, num_key_value_heads=2, head_dim=8, rms_norm_eps=1e-6, rope_theta=1e6, max_position_embeddings=64, | |
| hidden_act="silu", attention_bias=False, tie_word_embeddings=False, sliding_window=None, use_sliding_window=False) | |
| def make(d: Path, drop=None, extra=None, bad_shape=None, cfg_over=None, truncate=False): | |
| d.mkdir(parents=True, exist_ok=True) | |
| cfg = {**TINY, **(cfg_over or {})} | |
| (d / "config.json").write_text(json.dumps(cfg)) | |
| shapes = _expected_shapes(Qwen3Config.from_hf_config(TINY)) | |
| state = {k: torch.zeros(s, dtype=torch.bfloat16) for k, s in shapes.items()} | |
| if drop: | |
| state.pop(drop) | |
| if extra: | |
| state[extra] = torch.zeros(2, dtype=torch.bfloat16) | |
| if bad_shape: | |
| state[bad_shape] = torch.zeros(3, 3, dtype=torch.bfloat16) | |
| keys = sorted(state) | |
| half = len(keys) // 2 | |
| wm = {} | |
| for i, part in enumerate((keys[:half], keys[half:])): | |
| name = f"model-0000{i + 1}-of-00002.safetensors" | |
| save_file({k: state[k] for k in part}, str(d / name)) | |
| wm.update({k: name for k in part}) | |
| (d / "model.safetensors.index.json").write_text(json.dumps({"metadata": {}, "weight_map": wm})) | |
| if truncate: | |
| p = d / "model-00002-of-00002.safetensors" | |
| p.write_bytes(p.read_bytes()[:-10]) | |
| return d | |
| def test_a_complete_qwen3_snapshot_is_compatible(tmp_workdir): | |
| rep = CK.check(str(make(Path(tmp_workdir) / "ok"))) | |
| assert rep["compatible"] and rep["problems"] == [] and rep["dtypes"] == {"BF16": rep["index"]["tensors"]} | |
| def test_each_defect_is_named(tmp_workdir, kw, needle): | |
| rep = CK.check(str(make(Path(tmp_workdir) / "bad", **kw))) | |
| assert not rep["compatible"] and any(needle in p for p in rep["problems"]), rep["problems"] | |
| def test_unsupported_config_variants_are_refused(tmp_workdir): | |
| assert CK.main([str(make(Path(tmp_workdir) / "sw", cfg_over={"use_sliding_window": True, "sliding_window": 8}))]) == 1 | |
| assert CK.main([str(make(Path(tmp_workdir) / "ok2"))]) == 0 | |