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

4.7 KiB
Raw Permalink Blame History

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_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).
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). 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). No image.