Piko-9b / reports /release_checklist.md
Dexy2's picture
Rewrite model card around verified evidence; correct misattributed benchmarks and config path leak
0810902 verified
|
Raw
History Blame Contribute Delete
6.56 kB

Release Checklist — Piko-9b 1.0.0

Run 2026-07-29. Every line is either PASS with evidence, FAIL with the reason, or NOT RUN with why. Nothing is marked done on the strength of an assumption.

Model integrity

Check Status Evidence
config.json parses PASS scripts/audit_repository.py
Tokenizer loads PASS AutoTokenizerTokenizersBackend
Processor loads PASS Qwen3VLProcessor, requires torchvision
Model loads without trust_remote_code PASS AutoModelForMultimodalLM, no auto_map, no .py in repo
Parameter count verified PASS 9,653,104,368 from safetensors headers
Shard integrity PASS 11 shards, 775 tensors, all BF16, 0 unexplained keys
Weights unchanged from previous release PASS Byte-identical; this release changes documentation only

Provenance

Check Status Evidence
Base model identified PASS deepreinforce-ai/Ornith-1.0-9B + Qwen/Qwen3.5-9B
Lineage verified at tensor level PASS 427/427 language + 348/348 vision tensors matched bitwise
Adapter presence tested PASS Both probed adapters not merged; |cand−lang| = 0 exactly
Ornith's own base model NOT VERIFIED Card declares none; structural identity to Qwen3.5-9B is an inference
Published checkpoint byte-compared to Hub NOT RUN Verified by file name and byte size only; 21 GB re-download not performed

Documentation honesty

Check Status Evidence
No fabricated numbers PASS scripts/validate_model_card.py cross-checks every table percentage
Unrun benchmarks labelled PASS 9 standard benchmarks marked Not run
Base-model scores not presented as Piko's PASS Misattributed scores removed; explicit warning added
Unsupported capabilities not advertised PASS Video/audio marked unsupported; identity caveat stated
Failures recorded, not omitted PASS 5 suite failures adjudicated in the card; 32K OOM recorded
Model card metadata validates PASS 0 errors, 0 warnings
Relative links resolve PASS Checked by validate_model_card.py

Hygiene

Check Status Evidence
No secrets PASS Token/key/private-key scan over all text files: 0 hits
No absolute local paths in shipped files PASS Result files normalised to repo ids; remaining mentions are deliberate documentation
config.json path leak fixed PASS (proposed) Correction specified in audit §8; not yet applied to the Hub
Regression test for path leak PASS test_config_contains_no_absolute_paths
.gitignore excludes weights PASS

Code quality

Check Status Evidence
Syntax check, all Python PASS compileall clean
Lint PASS ruff check — all checks passed
Format PASS ruff format --check — 27 files formatted
Fast tests PASS 10 passed, 14 deselected, no weights or GPU needed
Slow tests NOT RUN 14 collected; require PIKO_MODEL_PATH. Behaviour they assert was verified directly by scripts/validate_inference.py

Functional validation

Check Status Evidence
Text generation PASS reports/inference_validation.json — 12/12
Image / OCR PASS Read "NORTHGATE HARDWARE" and 22.75 correctly
Document JSON extraction PASS 10/10 on custom suite
Chart reading PASS Read all four bar values correctly
Multi-turn PASS
Batch inference PASS
Greedy determinism PASS Identical across repeats
Long context PASS Needle found at 14,429 tokens; suite passes at 2K/8K/32K
Streaming PASS (code) Implemented in examples/inference_cli.py; not separately measured
bfloat16 unquantized NOT RUN Needs ~22 GB; test GPU has 15.92 GB
float16 NOT RUN Supported by flag; not exercised
8-bit NOT RUN
CPU loading NOT RUN ~38.6 GB float32 and no fast path; not viable
device_map="auto" FAIL — by design Produces !!!!! degenerate output; documented as unsupported
Video input NOT RUN No fixture built

Evaluation

Check Status Evidence
Smoke evaluation PASS 8/8 required
Custom suite, Piko-9b PASS 65/70
Custom suite, base model PASS 63/70, identical settings
Like-for-like comparison PASS Settings matched; tool would have refused otherwise
Statistical honesty PASS Wilson intervals; every category reads No significant difference
Standard public benchmarks NOT RUN 1–3 h per model each, ×2 for baseline; scripts provided

Performance

Check Status Evidence
Cold load PASS 101–119 s NVMe
Peak VRAM PASS 7.37 GB resident, 13.4 GB at 8K×4
Host RAM PASS 1.28 GB RSS
Throughput, 3 contexts × 3 batches PASS 9/9 configurations
Image preprocessing PASS 13 ms median
32,768-token single forward FAIL — recorded OOM on 15.92 GB; 32K retrieval via generate() works

Quantization

Check Status Evidence
4-bit NF4 PASS All results measured this way; vision path intact
8-bit NOT RUN
GGUF / AWQ / GPTQ NOT PRODUCED Scripts provided, unexecuted, documented as unvalidated
Quantized artefact published NO Nothing to validate, nothing claimed

Blocking items before publishing

  1. Apply the config.json correction on the Hub — remove the two absolute paths from piko_composition and set transformers_version to 5.5.0. This is the only change that touches the model repository itself, and it is live right now.
  2. Decide what the repository is for. The evidence says Piko-9b performs the same as Qwen/Qwen3.5-9B within measurement error. That is publishable, but only with the honesty this release adopts. Do not restore the old benchmark table.

Not blocking, worth doing

  • Run one standard benchmark pair (GSM8K 200 items is the cheapest useful one).
  • Test the six unmerged Piko adapters against the composition — they may improve it, and nobody has checked.
  • Build a video fixture and either support or explicitly disable the video path.
  • Test image inputs outside rendered documents.