Files
ModelHub XC b315e39b60 初始化项目,由ModelHub XC社区提供模型
Model: hxia7/qwen3-4b-blockdist
Source: Original Platform
2026-07-27 06:09:10 +08:00

2.8 KiB
Raw Permalink Blame History

Evaluation & reproduction — block-distilled Qwen3 + landmark router

All numbers below are produced by the scripts in scripts/. examples_dump.json contains the actual per-example inputs (documents + question + gold) and outputs (dense vs sparse) for the accuracy test.

Headline results (Qwen3-14B, last-8 summary router)

check script result
Accuracy — no drop acc_regress.py per-example on 80 real LongBench QA: dense 32/80, sparse 33/80, 0 regressions, +1 gain
Quality (NLL) bench_real.py 50 real samples: router k=3 within ~3% NLL of dense, k=2 within ~12%
No data leakage audit_sparse.py canary secret in a masked block cannot be reproduced (model hallucinates); with block active it can
Router — no train leakage router_leak_check.py on unseen docs, coverage 0.92@k=2 ≈ training eval 0.96
FlexAttention stable flex_attn_test.py flex block-attn == eager (max|Δ|=0.004), deterministic, T=16384 at 0.2 GB
Decode savings (weights excluded) decode_savings.py KV-read HBM & attention-FLOPs each 4× (2k ctx) … ~25× (long ctx); cap = block/summary

How to run

pip install torch transformers peft accelerate
MODEL=hxia7/qwen3-14b-blockdist            # or a local path to the merged model
ROUTER=router.pt                            # ships in the repo (summary_tokens=8)

python scripts/demo_infer.py       --model $MODEL --router $ROUTER --k 2        # generation demo
python scripts/audit_sparse.py     --model $MODEL --router $ROUTER              # leakage + savings
python scripts/acc_regress.py      --model $MODEL --router $ROUTER --n 80 --k 2 # accuracy regression
python scripts/bench_real.py       --model $MODEL --router $ROUTER --k 2        # NLL + savings
python scripts/router_leak_check.py --model $MODEL --router $ROUTER             # router generalization
python scripts/flex_attn_test.py                                               # flex kernel validation
python scripts/decode_savings.py                                               # HBM/FLOP accounting

Datasets (LongBench-Seg etc.) load from paths hard-coded in the scripts — adjust to your HF cache.

Honest caveats

  • Absolute LongBench accuracy (~40%) is a base-model + strict-string-match artifact; dense and sparse are near-identical — the point is 0 regressions, not the absolute number.
  • Block-sparse decode is a KV-bandwidth (HBM) optimization; FLOP savings only matter at very long context. Big wins are in the long-context × batch serving regime.
  • Cross-block aggregation queries ("list all X") are a limit of block attention itself (even dense struggles) → serve those via dense fallback.
  • Eager output_attentions is O(T²) and OOMs past ~2k tokens; use FlexAttention (validated here) to scale the block mask in a real serving kernel.