open-standards/wai/wai-rs/tests/vectors/README.md
Transaction Science 3f9c3ef640 wai.neural.int_hyper and wai.neural.int_mlicpp: natural, sets trained on openly licensed natural pictures, held to one decode natively, through their lowerings, in WebAssembly and on GPUs
int_hyper `natural` (wai-rs/tests/vectors/int_hyper/natural_*, record natural_set.json): a
mean-scale hyperprior, 64 synthesis and 64 latent channels, trained by
tools/wai_int_hyper_train.py at 661048492 from seed 20261112 on the 599 training pictures of
research/training-pictures/natural-1.json in 256 x 256 crops: 32,000 steps of 8, Adam 5e-4 then
5e-5 for the last quarter, lambda 0.0130, clip 1, deterministic algorithms, on the Linux x86_64
build host's integrated GPU (PCI 0x1002, gfx1151) through ROCm 7.2 and torch 2.14.0+rocm7.2, in
90 min (03:21:58-04:52:14Z); last logged step 0.5152 bpp at 26.23 dB (loss 2.53). Listing (its
identity) 3b3b56053917bf0b4a49b7011f4c725e3d413da865caec2b6bd57b953c115fb2. Coded picture: the
dead-leaves picture of that seed, stream 0, 128 x 128: 1,540 rANS bytes, 0.752 bpp, 18.74 dB,
decode 08b6bf5b...; WIH1 7922be10....

int_mlicpp `natural` (wai-rs/tests/vectors/int_mlicpp_natural/, record natural_set.json): 64
channels in 4 slices, a 48-channel hyper-latent, a 3 x 3 entropy network, trained by
tools/wai_int_mlicpp_train.py at 661048492 by the same recipe side by side on the same GPU, in 99
min (to 05:01:24Z); last logged loss 2.5833 (0.5009 bpp, 26.08 dB). model.wmb
27643187da6ba44cd5c8e3fc67ff4cf7e26026942414965cfcbd3a4b18bd4285 (1,988,549 B), listing
f37e2302bb2b26bb9a5483bf1f17e0210ecc2cf88b2b55e8b0aaaa6f4e79964b, prior id int_mlicpp/natural.
Coded picture: 1,512 rANS bytes, 0.7383 bpp, 18.65 dB, decode 1bbd9de6.... The synthetic vector
is unchanged under its own identity.

Both records read Open (check --open: tools at their blobs of 661048492, the manifest by its
digest under the licence rule); self-test 16 of 16 (int_hyper) and 14 of 14 (int_mlicpp).

Held: int-payload-conformance `natural` (WIH1); byte-exact goldens wih1_natural_set_is_golden and
int_mlicpp_golden::natural (by the sink's decode and through the lowering, reference and fast
kernels); wai-ops goldens (stage operators); ops-conformance certificates, both acc64, first
acc32 failure h_s input range at 43 bits, listed after the synthetic sets (committed_after) so
the index only gains entries; module corpus 123 cases; the browser crate's Node check; the GPU
capability test (ops_gpu.rs) with both mlicpp vectors. verifiers/trained-sets.sh runs the
manifest's check and self-test and both records' check --open and self-test.

Run through rb, macOS x86_64 (iMac): gens; wai_int_payload_vectors verify, wai-verify vectors
verify, wai_ops_check.py, int_payload_verify.py, corpus.py --check, all 0; wai-rs tests
int_hyper_ops, int_kernels_vectors, corpus_provenance, int_payload, int_mlicpp, int_mlicpp_ops
(release, no-fail-fast) and int_hyper_ops, int_payload (debug) 0; byte-exact-conformance
(release) 0; wai-ops tests 0; clippy -D warnings clean for neural_int and for the ops_gpu set
(no new lint in any other set: the union set's and byte-exact's and wai-ops's are pre-existing,
none in a touched line). Linux x86_64 (Framework): ops_gpu on gpu-vulkan-1002 and
swgpu-vulkan-10005, int_hyper 15 cases and int_mlicpp 2, graphs_differ 0, errors 0; the 48
test-picture payloads decode by wai_det_cost to the trainers' recorded digests.
Plants caught: the fast kernels' IGDN one off on 64-channel layers fails both trained sets'
goldens (3 tests) while 116 pass; one byte changed in leaves_g_s.bin and in int_mlicpp/model.wmb
(changed bytes under an existing set's name) each fail `wai breaking` as an unacknowledged wire
break; wai breaking against 88b0bdb4c passes (25 compatible changes).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-12 01:35:09 -05:00

24 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Committed vectors
The vectors the reference implementation's tests decode, and the conformance corpora
under `wai/*-conformance/` and the cross-architecture goldens are built on. A vector
changes only through its generator (CONTRIBUTING, *Vectors*).
**Provenance.** Each directory's row names the generator that writes it and the
generator's input. `tests/corpus_provenance.rs` requires a row for every directory.
| directory | provenance |
|---|---|
| `generate/` | Generated: `tools/wai_generate_model.py` writes the spectral model from an integer sine table and a word list. |
| `int_audio/` | Generated: `tools/wai_int_audio_export.py` trains the codec on a signal it generates from seed 1 and codes another signal from the same seed; it reads no audio file ([`int_audio/README.md`](int_audio/README.md)). |
| `int_cond/` | Generated: `tools/wai_int_cond_export.py` (seed 20261109) trains the conditional video codec on seeded procedural clips it draws itself (panning gratings and moving shapes), quantises it after training, and codes a held-out procedural clip from seed 20261110 with the integer networks; it reads no image or video file. |
| `int_hyper/` | Generated. `tiny_*`: `tools/wai_int_hyper_tiny_vector.py` draws the tiny conditional codec's integer weights from a seeded generator; no image. `leaves_*`: `tools/wai_int_hyper_train.py` trains a set (seed 20261110) on the dead-leaves pictures `tools/wai_int_synth_real.py` generates from that seed, streams 1 to 4096, and codes stream 0 with it through `tools/wai_sota_int_synth_export.py`; it reads no image file. `leaves_set.json` records the set, its seeds and the commit it was trained at, and `python3 -I tools/wai_int_hyper_train.py check --own wai-rs/tests/vectors/int_hyper leaves` reads it. `natural_*`: `tools/wai_int_hyper_train.py` trains a set (seed 20261112) on the `train` pictures of `research/training-pictures/natural-1.json`, openly licensed pictures that are **not** generated and are not in the repository (each one's licence, credit, URL, retrieval time and SHA-256 are in that manifest; decisions D60), and codes stream 0 of the dead-leaves pictures of that seed with it, so the committed bitstream and decode are of a generated picture. `natural_set.json` records the set, and `python3 -I tools/wai_int_hyper_train.py check --open wai-rs/tests/vectors/int_hyper natural` reads it. |
| `int_mlicpp/` | Generated: `tools/wai_int_mlicpp_export.py` (seed 20260929) codes an integer pattern of ramps, an xor texture and a disc with seeded weights; `tools/wai_int_mlicpp_set_form.py` writes its set-form twin. |
| `int_mlicpp_natural/` | Trained: `tools/wai_int_mlicpp_train.py` (seed 20261112) trains a set on the `train` pictures of `research/training-pictures/natural-1.json` (openly licensed, not generated, not in the repository; decisions D60), exports it through `tools/wai_int_mlicpp_export.py`'s integer path and codes stream 0 of the dead-leaves pictures of that seed with it, so the committed payload and decode are of a generated picture; `tools/wai_int_mlicpp_set_form.py` writes its set-form twin. `natural_set.json` records the set, and `python3 -I tools/wai_int_mlicpp_train.py check --open wai-rs/tests/vectors/int_mlicpp_natural natural` reads it. |
| `int_splat/` | Generated: `tools/wai_int_splat_export.py` trains on a seeded procedural cloud. |
| `int_video/` | `int_video.*` is generated by `tools/wai_int_video_encode.py` (a disc over a gradient), and `video_nk.*` by `tools/wai_int_video_keyframe_encode.py` (the `int_hyper` tiny keyframe, panned). `video_real.*` is **not** generated: `tools/wai_int_video_real_encode.py` pans over a third-party picture that was not made for this repository and has no recorded licence for redistribution. It is to be replaced by generated content. |
| `int_world/` | Generated: `tools/wai_int_world_export.py` trains on a seeded procedural world. |
| `int_world2/` | Generated: `tools/wai_int_world2_export.py` trains on seeded procedural backgrounds. |
| `jpegai/` | `test256.bin` is the output of the ISO/IEC 6048-1 reference encoder (BSD-3) for a 256×256 generated test image of gradients and blocks ([`jpegai/README.md`](jpegai/README.md)). |
| `neural_audio/` | Generated: `tools/wai_neural_audio_vectors.py` writes, from fixed dyadic parameters and SplitMix64 codes (seeds 1 to 4), a small decoder with each model's geometry, an envelope of seeded codes and the decode it computes itself ([`neural_audio/README.md`](neural_audio/README.md)). No audio, no model weights. |
| `staged_bounds/` | Constructed here for the bound tests: grey frames from a residual stream of zeros, and envelopes whose capability is refinement-only or companion-only ([`staged_bounds/README.md`](staged_bounds/README.md)). No image. |