From 57b8ac28a7ec20b4c9e42f292e28604f87c22530 Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Sun, 4 Oct 2026 14:50:29 +0200 Subject: [PATCH] Match Qwen compiled verification gate math --- docs/issue109-verify-gate/README.md | 86 +++++++ .../active-hc-sites.jsonl | 2 + docs/issue109-verify-gate/attention.jsonl | 8 + docs/issue109-verify-gate/checks.json | 219 ++++++++++++++++++ .../cold-native-arrays.json | 1 + .../cold-oracle-arrays.json | 1 + .../default-route-mismatch.jsonl | 142 ++++++++++++ docs/issue109-verify-gate/final-primary.jsonl | 15 ++ docs/issue109-verify-gate/gate-native.jsonl | 12 + docs/issue109-verify-gate/gate-oracle.jsonl | 12 + docs/issue109-verify-gate/model-oracle.jsonl | 33 +++ docs/issue109-verify-gate/numeric.jsonl | 3 + .../prefill-zero-sign.json | 21 ++ docs/issue109-verify-gate/product.jsonl | 16 ++ .../reopened-native-arrays.json | 1 + .../warm-native-arrays.json | 1 + .../warm-oracle-arrays.json | 1 + src/engine/metal/qwen_mtplx.rs | 2 + src/engine/metal/qwen_mtplx/decoder.rs | 3 + src/engine/metal/qwen_mtplx/execution.rs | 18 +- src/engine/metal/qwen_mtplx/hyper.rs | 45 ++-- .../metal/qwen_mtplx/issue103_analysis.rs | 28 ++- src/engine/metal/qwen_mtplx/issue106.rs | 2 +- .../metal/qwen_mtplx/issue107_product.rs | 2 +- src/engine/metal/qwen_mtplx/issue109.rs | 119 ++++++++++ .../metal/qwen_mtplx/issue109_product.rs | 184 +++++++++++++++ src/engine/metal/qwen_mtplx/model.rs | 20 +- src/engine/metal/qwen_mtplx/owner.rs | 4 + src/engine/metal/qwen_mtplx/qsa_attention.rs | 59 ++++- .../metal/qwen_mtplx/session_checkpoint.rs | 49 +++- src/engine/metal/qwen_mtplx/speculative.rs | 17 +- tools/issue109-gate-reference.py | 36 +++ tools/issue109-model-reference.py | 128 ++++++++++ 33 files changed, 1250 insertions(+), 40 deletions(-) create mode 100644 docs/issue109-verify-gate/README.md create mode 100644 docs/issue109-verify-gate/active-hc-sites.jsonl create mode 100644 docs/issue109-verify-gate/attention.jsonl create mode 100644 docs/issue109-verify-gate/checks.json create mode 100644 docs/issue109-verify-gate/cold-native-arrays.json create mode 100644 docs/issue109-verify-gate/cold-oracle-arrays.json create mode 100644 docs/issue109-verify-gate/default-route-mismatch.jsonl create mode 100644 docs/issue109-verify-gate/final-primary.jsonl create mode 100644 docs/issue109-verify-gate/gate-native.jsonl create mode 100644 docs/issue109-verify-gate/gate-oracle.jsonl create mode 100644 docs/issue109-verify-gate/model-oracle.jsonl create mode 100644 docs/issue109-verify-gate/numeric.jsonl create mode 100644 docs/issue109-verify-gate/prefill-zero-sign.json create mode 100644 docs/issue109-verify-gate/product.jsonl create mode 100644 docs/issue109-verify-gate/reopened-native-arrays.json create mode 100644 docs/issue109-verify-gate/warm-native-arrays.json create mode 100644 docs/issue109-verify-gate/warm-oracle-arrays.json create mode 100644 src/engine/metal/qwen_mtplx/issue109.rs create mode 100644 src/engine/metal/qwen_mtplx/issue109_product.rs create mode 100644 tools/issue109-gate-reference.py create mode 100644 tools/issue109-model-reference.py diff --git a/docs/issue109-verify-gate/README.md b/docs/issue109-verify-gate/README.md new file mode 100644 index 0000000..5db6ad7 --- /dev/null +++ b/docs/issue109-verify-gate/README.md @@ -0,0 +1,86 @@ +# Issue 109: compiled verification gates + +Qwen target forwards inside the MTP loop now carry the pinned MTPLX +`decode_verify` phase through attention, eager HC injection, captured-prefix +repair and final-primary commit. Draft/history and ordinary prefill/AR retain +their existing phase. Compiled layer replay keys include the phase to prevent +reuse of a graph with the other gate law. + +The BF16 attention gate compiles exactly +`output * sigmoid(gate.astype(f32).astype(bf16))`; the casts select the fused +lowering and do not move the sigmoid to F32. F32 uses its separate compiled +expression; FP16 remains standalone. The existing native Rust graph compiler +and Metal execution implement these expressions. No global sigmoid, compiler +math flags, DS4/GLM implementation, or shared family helper changed. + +Two actual eager `GatedResidual._verify_inject` calls also demonstrated a +phase/site failure (the adjacent `active-hc-sites.jsonl` records inputs and both +outputs). That sibling therefore satisfies this issue's explicit scope rule: +its verify-only divide/sigmoid/multiply now compiles as pinned MTPLX does. +Unrelated PLE/shared-expert gates remain unchanged. This is oracle parity, not a +new DS4Server feature or a full fixed-M4 verifier. + +Persisted MTP snapshots without the new gate policy are rejected before +restoration; old AR snapshots remain compatible. Tests use both a constructed +old manifest and an actual pre-fix MTP file, and verify failed restoration leaves +the current live state intact. New checkpoints reproduce resident warm state +exactly after reset/reopen. + +## Verification and boundaries + +The pinned oracle is MTPLX `9882703f3105363ddc37eca9f97aa09a1d387112` +with MLX 0.32.2. The installed Bare-Speed artifact and hardware are recorded in +`../issue104-ar/environment.json`. + +- Exhaustive finite BF16 (65,280) and FP16 (63,488), plus 65,536 dense F32 + gate values, compare every output byte in all three phases. BF16 also covers + all three HC-injection phases. The owned original `active_attention_gate` + and `bf16_gate` regressions require the corrected expression and neighbors. +- Real cold/warm MTP requests compare each target forward's input IDs and all + logits/hidden bytes, generated tokens, cache offsets, final logits/hidden and + trunk/MTP state arrays. Native resident and disk-reopened full state hashes + must agree exactly. +- The complete final-primary test covers greedy/sampled, depths 1–3, + stop/max-token termination and failure/cancellation controls. +- Existing whole-attention fixtures exercise both TF32 modes and prepared/lazy + input routes; hyper fixtures control the unchanged non-verify route. + +The real-model comparison explicitly sets the oracle's +`MTPLX_QWEN4_VERIFY_SDPA_HEAD_CHUNK=0` to isolate this gate change with the same +attention consumer. Independent default-oracle comparison exposed a missing +head-chunked consumer before the gate, tracked separately in +[#113](https://git.rfc1437.de/hugo/DS4Server/issues/113). This controlled run does +not establish default-route model parity. `default-route-mismatch.jsonl` +retains the evidence. + +Cache receipts retain raw hashes as well as value hashes with zero signs +canonicalized. A first-position prefill key has one signed-zero bit difference; +this is reported explicitly rather than hidden by a tolerance, and is tracked +separately in [#114](https://git.rfc1437.de/hugo/DS4Server/issues/114). Target outputs, +final logits/hidden and resident-versus-reopened state use raw byte exactness. + +All four mandatory gates and serial Metal/oracle checks are listed in +`checks.json`. These are correctness receipts, not performance measurements. + +## Reproduction + +```sh +local-eval-results/mtplx-reference-env-0.32.2/bin/python \ + tools/issue109-gate-reference.py /path/to/pinned/mtplx /tmp/issue109-gate +cargo test --all-features --bin ds4-server --no-run +cargo build --bin test-supervisor +export DS4_ISSUE109_GATE=/tmp/issue109-gate +# Resolve TEST_EXECUTABLE from cargo; run Metal processes serially. +target/debug/test-supervisor 4096 60 120 --command TEST_EXECUTABLE \ + issue109_gate_phase_and_dtype_laws --ignored --nocapture --test-threads=1 +export MTPLX_CONTEXT_COPY=0 +export DS4_QWEN38_ARTIFACTS=/path/to/model +export DS4_ISSUE109_DIR=/tmp/issue109-product +export DS4_ISSUE109_OLD=/path/to/pre-fix-mtp-checkpoint +target/debug/test-supervisor 114688 60 120 --command TEST_EXECUTABLE \ + issue109_verify_rows_and_warm_checkpoint --ignored --nocapture --test-threads=1 +MTPLX_QWEN4_VERIFY_SDPA_HEAD_CHUNK=0 \ + local-eval-results/mtplx-reference-env-0.32.2/bin/python \ + tools/issue109-model-reference.py /path/to/pinned/mtplx \ + "$DS4_QWEN38_ARTIFACTS" "$DS4_ISSUE109_DIR" /tmp/issue109-model-oracle +``` diff --git a/docs/issue109-verify-gate/active-hc-sites.jsonl b/docs/issue109-verify-gate/active-hc-sites.jsonl new file mode 100644 index 0000000..d8748b4 --- /dev/null +++ b/docs/issue109-verify-gate/active-hc-sites.jsonl @@ -0,0 +1,2 @@ +{"case":"active_sibling_gate","owner":"GatedResidual","method":"_verify_inject","phase":"decode_verify","gate_shape":[1,4,4],"different":1,"logits":[-14.5,-25.625,-27.125,-15.8125,-11.8125,-19.875,-27.375,-16.25,-12.9375,-25.75,-30.625,-17.0,-11.6875,-22.625,-26.5,-16.5],"actual":[0.052001953125,0.0033111572265625,0.0022735595703125,0.037841796875,0.099609375,0.0137939453125,0.00213623046875,0.033935546875,0.07568359375,0.003204345703125,0.000946044921875,0.0281982421875,0.10205078125,0.0069580078125,0.002655029296875,0.031982421875],"stock":[0.052001953125,0.0033111572265625,0.0022735595703125,0.037841796875,0.099609375,0.0137939453125,0.0021209716796875,0.033935546875,0.07568359375,0.003204345703125,0.000946044921875,0.0281982421875,0.10205078125,0.0069580078125,0.002655029296875,0.031982421875]} +{"case":"active_sibling_gate","owner":"GatedResidual","method":"_verify_inject","phase":"decode_verify","gate_shape":[1,4,4],"different":1,"logits":[14.4375,-5.0625,-12.4375,-1.359375,23.75,-26.25,-19.875,-8.6875,27.625,-29.125,-18.375,-8.75,27.0,-27.375,-22.625,-7.71875],"actual":[1.9453125,0.4375,0.08544921875,0.83203125,1.9921875,0.0028228759765625,0.0137939453125,0.205078125,2.0,0.001373291015625,0.02001953125,0.201171875,2.0,0.00213623046875,0.0069580078125,0.25390625],"stock":[1.9453125,0.4375,0.08544921875,0.83203125,1.9921875,0.0028228759765625,0.0137939453125,0.205078125,2.0,0.001373291015625,0.02001953125,0.201171875,2.0,0.0021209716796875,0.0069580078125,0.25390625]} diff --git a/docs/issue109-verify-gate/attention.jsonl b/docs/issue109-verify-gate/attention.jsonl new file mode 100644 index 0000000..501ded1 --- /dev/null +++ b/docs/issue109-verify-gate/attention.jsonl @@ -0,0 +1,8 @@ +{"case":"vision_positions","start":0,"rows":4,"table_end":4,"delta":-1,"different_rows":[],"actual_keys":[0.1982421875,0.396484375,0.59375,0.79296875,0.98828125,1.1875,1.3828125,1.5859375,-0.478515625,0.671875,0.85546875,0.9453125,1.1484375,1.171875,1.1875,1.2578125,-1.265625,0.515625,0.875,0.96484375,0.326171875,1.28125,1.15625,1.1640625,-1.2890625,0.55859375,0.90234375,0.9765625,0.373046875,1.265625,1.125,1.1171875],"expected_keys":[0.1982421875,0.396484375,0.59375,0.79296875,0.98828125,1.1875,1.3828125,1.5859375,-0.478515625,0.671875,0.85546875,0.9453125,1.1484375,1.171875,1.1875,1.2578125,-1.265625,0.515625,0.875,0.96484375,0.326171875,1.28125,1.15625,1.1640625,-1.2890625,0.55859375,0.90234375,0.9765625,0.373046875,1.265625,1.125,1.1171875]} +{"case":"vision_chunk_next_state","start":0,"rows":4,"offset":5,"exact":true} +{"case":"vision_positions","start":4,"rows":2,"table_end":4,"delta":-1,"different_rows":[],"actual_keys":[-0.3359375,0.02783203125,0.55078125,0.7890625,-0.94921875,1.25,1.3984375,1.5859375,0.3125,0.294921875,0.8203125,0.94140625,-1.203125,1.3203125,1.2109375,1.2578125],"expected_keys":[-0.3359375,0.02783203125,0.55078125,0.7890625,-0.94921875,1.25,1.3984375,1.5859375,0.3125,0.294921875,0.8203125,0.94140625,-1.203125,1.3203125,1.2109375,1.2578125]} +{"case":"vision_chunk_next_state","start":4,"rows":2,"offset":7,"exact":true} +{"case":"vision_positions","start":2,"rows":4,"table_end":4,"delta":-1,"different_rows":[],"actual_keys":[-0.98046875,0.02783203125,0.5390625,0.7890625,-0.2314453125,1.25,1.40625,1.5859375,-1.2265625,0.423828125,0.8203125,0.94140625,0.216796875,1.28125,1.2109375,1.2578125,-0.9609375,0.515625,0.88671875,0.96484375,-0.890625,1.28125,1.140625,1.1640625,0.1962890625,0.4296875,0.90234375,0.9765625,-1.328125,1.3203125,1.125,1.125],"expected_keys":[-0.98046875,0.02783203125,0.5390625,0.7890625,-0.2314453125,1.25,1.40625,1.5859375,-1.2265625,0.423828125,0.8203125,0.94140625,0.216796875,1.28125,1.2109375,1.2578125,-0.9609375,0.515625,0.88671875,0.96484375,-0.890625,1.28125,1.140625,1.1640625,0.1962890625,0.4296875,0.90234375,0.9765625,-1.328125,1.3203125,1.125,1.125]} +{"case":"vision_chunk_next_state","start":2,"rows":4,"offset":7,"exact":true} +{"case":"vision_sparse_qsa","prefix_rows":12,"topk_blocks":1,"ratio":4,"position_delta":0,"text_output":[0.10986328125,-0.1923828125,0.08544921875,0.498046875,-0.0791015625,0.16796875,0.31640625,-0.03173828125],"vision_output":[0.10986328125,-0.1923828125,0.08544921875,0.498046875,-0.0791015625,0.16796875,0.31640625,-0.03173828125]} +{"case":"active_attention_gate","gate":-6.84375,"actual":[0.0003204345703125,-0.0007476806640625,0.000213623046875,0.0009613037109375,-0.000213623046875,0.00042724609375,0.000640869140625,-0.0001068115234375],"expected_verify":[0.0003204345703125,-0.0007476806640625,0.000213623046875,0.0009613037109375,-0.000213623046875,0.00042724609375,0.000640869140625,-0.0001068115234375]} diff --git a/docs/issue109-verify-gate/checks.json b/docs/issue109-verify-gate/checks.json new file mode 100644 index 0000000..b528709 --- /dev/null +++ b/docs/issue109-verify-gate/checks.json @@ -0,0 +1,219 @@ +[ + { + "check": "fmt", + "passed": true + }, + { + "check": "clippy", + "passed": true + }, + { + "check": "bundle", + "passed": true + }, + { + "check": "tests", + "passed": true, + "results": [ + "test result: ok. 308 passed; 0 failed; 221 ignored; 0 measured; 0 filtered out; finished in 5.57s", + "test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s", + "test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.29s" + ] + }, + { + "check": "gate-native", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 0.28s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 1677, + "peak": { + "cpu_time_ns": 198776708, + "resident_bytes": 82509824, + "physical_bytes": 160219976, + "peak_physical_bytes": 160744264, + "disk_read_bytes": 15327232, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "product", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 47.53s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 48500, + "peak": { + "cpu_time_ns": 50595900083, + "resident_bytes": 26181681152, + "physical_bytes": 77006202736, + "peak_physical_bytes": 77006202736, + "disk_read_bytes": 73689870336, + "disk_write_bytes": 286756864 + }, + "error": null + } + }, + { + "check": "model-oracle", + "passed": true, + "control": "MTPLX_QWEN4_VERIFY_SDPA_HEAD_CHUNK=0; MTPLX_CONTEXT_COPY=0", + "known_separate_findings": [ + 113, + 114 + ] + }, + { + "check": "codec", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 0.13s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 1455, + "peak": { + "cpu_time_ns": 41537833, + "resident_bytes": 17907712, + "physical_bytes": 4817472, + "peak_physical_bytes": 4817472, + "disk_read_bytes": 0, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "attention", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 0.15s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 210, + "peak": { + "cpu_time_ns": 85113875, + "resident_bytes": 79396864, + "physical_bytes": 40239968, + "peak_physical_bytes": 40239968, + "disk_read_bytes": 65536, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "numeric", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 0.29s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 315, + "peak": { + "cpu_time_ns": 88259416, + "resident_bytes": 80084992, + "physical_bytes": 159744816, + "peak_physical_bytes": 159859504, + "disk_read_bytes": 4096, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "finalprimary", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 98.22s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 98338, + "peak": { + "cpu_time_ns": 98248792166, + "resident_bytes": 63166431232, + "physical_bytes": 74583434072, + "peak_physical_bytes": 74584138584, + "disk_read_bytes": 73602744320, + "disk_write_bytes": 1397932032 + }, + "error": null + } + }, + { + "check": "module-1", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 14.20s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 14223, + "peak": { + "cpu_time_ns": 13641618583, + "resident_bytes": 548356096, + "physical_bytes": 1595852072, + "peak_physical_bytes": 1604257088, + "disk_read_bytes": 51740672, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "module-0", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 14.05s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 14115, + "peak": { + "cpu_time_ns": 13634514125, + "resident_bytes": 556367872, + "physical_bytes": 1602864448, + "peak_physical_bytes": 1604191552, + "disk_read_bytes": 278528, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "hyper", + "passed": true, + "results": [ + "test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 528 filtered out; finished in 28.54s" + ], + "resources": { + "event": "test_resource_summary", + "elapsed_ms": 28607, + "peak": { + "cpu_time_ns": 28219361375, + "resident_bytes": 207831040, + "physical_bytes": 416056280, + "peak_physical_bytes": 416089048, + "disk_read_bytes": 1949696, + "disk_write_bytes": 0 + }, + "error": null + } + }, + { + "check": "upstream", + "passed": true, + "results": [ + "9 passed in 0.12s" + ] + } +] diff --git a/docs/issue109-verify-gate/cold-native-arrays.json b/docs/issue109-verify-gate/cold-native-arrays.json new file mode 100644 index 0000000..1e1f269 --- /dev/null +++ b/docs/issue109-verify-gate/cold-native-arrays.json @@ -0,0 +1 @@ +{"trunk":[[{"shape":[1,3,10240],"sha256":"1dadce7f74c7b48ad423170b8884bf5024c3d6dd91b2f9d800afca7d32679d7b","value_sha256":"1dadce7f74c7b48ad423170b8884bf5024c3d6dd91b2f9d800afca7d32679d7b"},{"shape":[1,48,128,128],"sha256":"d7436faf9d50e278f7fa095e9c217467020a6f534a48195775c212caa0ece52d","value_sha256":"d7436faf9d50e278f7fa095e9c217467020a6f534a48195775c212caa0ece52d"}],[{"shape":[1,3,10240],"sha256":"ca1b3cf93598b62575f01aea05ff0d0f087c00fdf1b63654626ef5ec3487715a","value_sha256":"ca1b3cf93598b62575f01aea05ff0d0f087c00fdf1b63654626ef5ec3487715a"},{"shape":[1,48,128,128],"sha256":"f1364bb8165b9189279b7769e4081f213c562f4e0541acc5962cf2ae9f42a831","value_sha256":"f1364bb8165b9189279b7769e4081f213c562f4e0541acc5962cf2ae9f42a831"},{"shape":[1,9,10240],"sha256":"c9110c820fc39f8c19c770594c15e0997693015090a3c7af4b6c8ec9a31ebc4e","value_sha256":"c9110c820fc39f8c19c770594c15e0997693015090a3c7af4b6c8ec9a31ebc4e"},{"shape":[1,2],"sha256":"9febaa06152dac026dba5f2c1151c11ff6a1b2f00e92278cdfd2905c87cf2c2f","value_sha256":"9febaa06152dac026dba5f2c1151c11ff6a1b2f00e92278cdfd2905c87cf2c2f"}],[{"shape":[1,3,10240],"sha256":"320fdcf9c7ab899133952e093d1f3de613ba5581b3aaad45c4ad7b1b4e43f1f3","value_sha256":"320fdcf9c7ab899133952e093d1f3de613ba5581b3aaad45c4ad7b1b4e43f1f3"},{"shape":[1,48,128,128],"sha256":"8cae4ba20fd0e54f8da130e5f8681ece7c54672b7a6404800cded8e64a977e08","value_sha256":"8cae4ba20fd0e54f8da130e5f8681ece7c54672b7a6404800cded8e64a977e08"}],[{"shape":[1,2,58,256],"sha256":"404510256f371f0bc2e7b8af2d1f7eb2ae0322d42eb9a0ee5827a9a5c8d489c0","value_sha256":"404510256f371f0bc2e7b8af2d1f7eb2ae0322d42eb9a0ee5827a9a5c8d489c0"},{"shape":[1,2,58,256],"sha256":"f14afc7fe1c5e4c62c84121e804e14aa484db378861904d4e234ffeef10252ef","value_sha256":"f14afc7fe1c5e4c62c84121e804e14aa484db378861904d4e234ffeef10252ef"},{"shape":[1,58,128],"sha256":"ca2d0b2f09e87fab8d0a6aede7073ec53bc37b584851f0342c76244f05ca3e12","value_sha256":"ca2d0b2f09e87fab8d0a6aede7073ec53bc37b584851f0342c76244f05ca3e12"},{"shape":[1,14,128],"sha256":"a609a4f52c9b3dc0fb5d6554019786bebecdad220bf5ae6b40d4939821f12c8b","value_sha256":"a609a4f52c9b3dc0fb5d6554019786bebecdad220bf5ae6b40d4939821f12c8b"}],[{"shape":[1,3,10240],"sha256":"0c5bdce8d9cbd2a24162139582f1889f0413632feafdba4e79cdd88353e6abc2","value_sha256":"0c5bdce8d9cbd2a24162139582f1889f0413632feafdba4e79cdd88353e6abc2"},{"shape":[1,48,128,128],"sha256":"d47c0c965fb6c41a7e1824144ef61546a7e40ead8d8606822173e21a17a4fc0f","value_sha256":"d47c0c965fb6c41a7e1824144ef61546a7e40ead8d8606822173e21a17a4fc0f"}],[{"shape":[1,3,10240],"sha256":"66014c1bce9cbbd223ec6af2f5517de66f71ce443721088167dad0c0186289fb","value_sha256":"66014c1bce9cbbd223ec6af2f5517de66f71ce443721088167dad0c0186289fb"},{"shape":[1,48,128,128],"sha256":"2593987c9ca9aeb30910e7eb69f8d6bd61c1e035861915cbe27b0838e26f3098","value_sha256":"2593987c9ca9aeb30910e7eb69f8d6bd61c1e035861915cbe27b0838e26f3098"}],[{"shape":[1,3,10240],"sha256":"45a3dbbf3dc7a79b7db631fe4c2802d6e1f4433f4b03e961df072147e8c242a2","value_sha256":"45a3dbbf3dc7a79b7db631fe4c2802d6e1f4433f4b03e961df072147e8c242a2"},{"shape":[1,48,128,128],"sha256":"e266e3456f01268de8868258a750ee18c5f8b1ff4391f647aec60a39d56f98a0","value_sha256":"e266e3456f01268de8868258a750ee18c5f8b1ff4391f647aec60a39d56f98a0"}],[{"shape":[1,2,58,256],"sha256":"ba60b2860a5717f46a4a7ffef0257799f96acb37de1a00ba88ddfc149bf44ca2","value_sha256":"ba60b2860a5717f46a4a7ffef0257799f96acb37de1a00ba88ddfc149bf44ca2"},{"shape":[1,2,58,256],"sha256":"57d040a722a1427e9b0744ee652aecca9ec30cc7b617e3db9534e772d79f42e4","value_sha256":"57d040a722a1427e9b0744ee652aecca9ec30cc7b617e3db9534e772d79f42e4"},{"shape":[1,58,128],"sha256":"84d339a2f8558893f3d73e751d5ee3d81bb1f3b1184c0b35555bf5456fdc5a22","value_sha256":"84d339a2f8558893f3d73e751d5ee3d81bb1f3b1184c0b35555bf5456fdc5a22"},{"shape":[1,14,128],"sha256":"a5378133f448c4b6380dc4711420d3b069dd8491ffc797fd16e023294405b707","value_sha256":"a5378133f448c4b6380dc4711420d3b069dd8491ffc797fd16e023294405b707"}],[{"shape":[1,3,10240],"sha256":"e6d4afab81c6a58f08c8d252991e91d25d2d60e497c3fc00614451edd0ea908c","value_sha256":"e6d4afab81c6a58f08c8d252991e91d25d2d60e497c3fc00614451edd0ea908c"},{"shape":[1,48,128,128],"sha256":"f94349b9898b0d1a5770f4aca791d4c114abad341641688012de2e2fcaa6237c","value_sha256":"f94349b9898b0d1a5770f4aca791d4c114abad341641688012de2e2fcaa6237c"}],[{"shape":[1,3,10240],"sha256":"54d2e63c68f9fc1412178f3f21bcf5897ab228967e01f709ed9d5ba0e6d0c016","value_sha256":"54d2e63c68f9fc1412178f3f21bcf5897ab228967e01f709ed9d5ba0e6d0c016"},{"shape":[1,48,128,128],"sha256":"868155f0fd6a62a46decb4f87c3e2f27310f9da38796fe0a8d926844248c7259","value_sha256":"868155f0fd6a62a46decb4f87c3e2f27310f9da38796fe0a8d926844248c7259"}],[{"shape":[1,3,10240],"sha256":"0073cc8754020915aedaad03803669a61281e18cb2dd389cb19ef7b5ed769b84","value_sha256":"0073cc8754020915aedaad03803669a61281e18cb2dd389cb19ef7b5ed769b84"},{"shape":[1,48,128,128],"sha256":"abd539c013e58f489c23c48dfc168be7a9e2145deee859432cb83d0d8764e2df","value_sha256":"abd539c013e58f489c23c48dfc168be7a9e2145deee859432cb83d0d8764e2df"}],[{"shape":[1,2,58,256],"sha256":"d855a9efa61fd043cf03b444aefe90a1fcefa5af03770819333ec695af328dc5","value_sha256":"d855a9efa61fd043cf03b444aefe90a1fcefa5af03770819333ec695af328dc5"},{"shape":[1,2,58,256],"sha256":"e2d0094873c5a47590a465e5c06fa7cab90e6ae99cb2eba7df88340755be2725","value_sha256":"e2d0094873c5a47590a465e5c06fa7cab90e6ae99cb2eba7df88340755be2725"},{"shape":[1,58,128],"sha256":"4ad0c060f771f328465a3dd5a6333d34fb9aa4cb9052c8c7811ab2dbd17d088e","value_sha256":"4ad0c060f771f328465a3dd5a6333d34fb9aa4cb9052c8c7811ab2dbd17d088e"},{"shape":[1,14,128],"sha256":"2e108a4d5870102d8e2d4a9b69fe55507b0e75f12455792f2b05610fa305d638","value_sha256":"2e108a4d5870102d8e2d4a9b69fe55507b0e75f12455792f2b05610fa305d638"}],[{"shape":[1,3,10240],"sha256":"8e0affe3773cbb974718f2a1dce2e75f60cc29c8290617c559b5f93122ae763d","value_sha256":"8e0affe3773cbb974718f2a1dce2e75f60cc29c8290617c559b5f93122ae763d"},{"shape":[1,48,128,128],"sha256":"8293399e05778a26da5207d0dd00d1802ab2314ec846951bccdea731df48e8a7","value_sha256":"8293399e05778a26da5207d0dd00d1802ab2314ec846951bccdea731df48e8a7"}],[{"shape":[1,3,10240],"sha256":"7b9ed3fd1bf6ea7c486f62899e64152b9d24bc948a26fd02920f8ab823c077ea","value_sha256":"7b9ed3fd1bf6ea7c486f62899e64152b9d24bc948a26fd02920f8ab823c077ea"},{"shape":[1,48,128,128],"sha256":"8ee1a98bfc2a5d85fef8c57b94d166755b3766c0fa223c635dbdc013e512c810","value_sha256":"8ee1a98bfc2a5d85fef8c57b94d166755b3766c0fa223c635dbdc013e512c810"}],[{"shape":[1,3,10240],"sha256":"9daf0b317a2cd918d02808a7b7ffc304e4ca9217b12dc8921984c9e5dc4acb44","value_sha256":"9daf0b317a2cd918d02808a7b7ffc304e4ca9217b12dc8921984c9e5dc4acb44"},{"shape":[1,48,128,128],"sha256":"bb3e8804e600bc41b69b14e4f89339e876f975fcd8e4caad4318ef88e424fd85","value_sha256":"bb3e8804e600bc41b69b14e4f89339e876f975fcd8e4caad4318ef88e424fd85"}],[{"shape":[1,2,58,256],"sha256":"85ce674b27b84da8c85b6f50d944f7173c2fcfed8bb112cd518aa52fed92beea","value_sha256":"85ce674b27b84da8c85b6f50d944f7173c2fcfed8bb112cd518aa52fed92beea"},{"shape":[1,2,58,256],"sha256":"1a7b2de350076386b7499577e28d627164afe1b2e00f7a2fbbc1b1ea3dae35ab","value_sha256":"1a7b2de350076386b7499577e28d627164afe1b2e00f7a2fbbc1b1ea3dae35ab"},{"shape":[1,58,128],"sha256":"fa5d6207583355c27b91d17b333b6f672d62a64dbab9ee3f787619a70a924c07","value_sha256":"fa5d6207583355c27b91d17b333b6f672d62a64dbab9ee3f787619a70a924c07"},{"shape":[1,14,128],"sha256":"f1033fd4afbbe2909dada065e00234e58a3ad7a9d92eade7fd112c0adab4af24","value_sha256":"f1033fd4afbbe2909dada065e00234e58a3ad7a9d92eade7fd112c0adab4af24"}],[{"shape":[1,3,10240],"sha256":"95c15e85c7cbc93aade6e85ba021ba4a32383a7bd6e94cfa85d6376a2f1baff1","value_sha256":"95c15e85c7cbc93aade6e85ba021ba4a32383a7bd6e94cfa85d6376a2f1baff1"},{"shape":[1,48,128,128],"sha256":"8b5e6b8b2ca9f2d347a64581632db8fa98bf0ee2e0c5de6d8889964c6739b7d7","value_sha256":"8b5e6b8b2ca9f2d347a64581632db8fa98bf0ee2e0c5de6d8889964c6739b7d7"}],[{"shape":[1,3,10240],"sha256":"2509502b2ec7afecab230e5c532f1a034a8f0f42c2fafa57163c6da3ec308eed","value_sha256":"2509502b2ec7afecab230e5c532f1a034a8f0f42c2fafa57163c6da3ec308eed"},{"shape":[1,48,128,128],"sha256":"e73f022d9beaba67a5ebd2b54f0ac2ab982323756bc0876489c2256d5685e744","value_sha256":"e73f022d9beaba67a5ebd2b54f0ac2ab982323756bc0876489c2256d5685e744"}],[{"shape":[1,3,10240],"sha256":"46817f7782dd86d4c6375cfd76bf18b6a0661ba43ff7a4360040729f076b8b81","value_sha256":"46817f7782dd86d4c6375cfd76bf18b6a0661ba43ff7a4360040729f076b8b81"},{"shape":[1,48,128,128],"sha256":"d4dd6ee143fc4bcc68d6b60c80953207082cbbc366f598a6f8cf7a00932dcb14","value_sha256":"d4dd6ee143fc4bcc68d6b60c80953207082cbbc366f598a6f8cf7a00932dcb14"}],[{"shape":[1,2,58,256],"sha256":"6a03bc8cfe966b40da35c7cc0d97190aa7572994ce59d4a5e023b927d166e51e","value_sha256":"6a03bc8cfe966b40da35c7cc0d97190aa7572994ce59d4a5e023b927d166e51e"},{"shape":[1,2,58,256],"sha256":"f7e76be69fb49db9993cea131269476cf55502affa51295f51d53d788d0eae72","value_sha256":"f7e76be69fb49db9993cea131269476cf55502affa51295f51d53d788d0eae72"},{"shape":[1,58,128],"sha256":"238df2964205645bc0012bd0588e233c099c4c2408d141168e239a4224e14e04","value_sha256":"238df2964205645bc0012bd0588e233c099c4c2408d141168e239a4224e14e04"},{"shape":[1,14,128],"sha256":"724418b117e12a9d59dba8f43c3bef4ee800e5322e4c0dd8fe1b8bfcc5defee4","value_sha256":"724418b117e12a9d59dba8f43c3bef4ee800e5322e4c0dd8fe1b8bfcc5defee4"}],[{"shape":[1,3,10240],"sha256":"4531ea10269697248e743041130a121ac1f566039470cbda939dd1f079736e0f","value_sha256":"4531ea10269697248e743041130a121ac1f566039470cbda939dd1f079736e0f"},{"shape":[1,48,128,128],"sha256":"70096b5b2f0dd778bb52980ea38cb6ce2b94749c34a9aa3cfc539b5b89366025","value_sha256":"70096b5b2f0dd778bb52980ea38cb6ce2b94749c34a9aa3cfc539b5b89366025"}],[{"shape":[1,3,10240],"sha256":"9c3a219512060c453885f0ed299d7be1618048969f0f94bd14764b464713db39","value_sha256":"9c3a219512060c453885f0ed299d7be1618048969f0f94bd14764b464713db39"},{"shape":[1,48,128,128],"sha256":"822028dfd9c7160f6fceee8551486db596349e2aa57def487716fd3254c64635","value_sha256":"822028dfd9c7160f6fceee8551486db596349e2aa57def487716fd3254c64635"}],[{"shape":[1,3,10240],"sha256":"df10516aa1338cefae8b842fdb557a2027f9aa1957577ab7750f46b5f86c54af","value_sha256":"df10516aa1338cefae8b842fdb557a2027f9aa1957577ab7750f46b5f86c54af"},{"shape":[1,48,128,128],"sha256":"36241df4f65de72b6050bde3b46196ba996c835aaedaf94ad00e3b3868204ad6","value_sha256":"36241df4f65de72b6050bde3b46196ba996c835aaedaf94ad00e3b3868204ad6"}],[{"shape":[1,2,58,256],"sha256":"69cc83b8890a2ea9a636d4546ce3ed3d8759b9d0a15477e4c8badc431e4c7fe8","value_sha256":"69cc83b8890a2ea9a636d4546ce3ed3d8759b9d0a15477e4c8badc431e4c7fe8"},{"shape":[1,2,58,256],"sha256":"ddd32a1c551437c14edd919cb138578fdc1c5a4a62faeb0faa0c771c27687b38","value_sha256":"ddd32a1c551437c14edd919cb138578fdc1c5a4a62faeb0faa0c771c27687b38"},{"shape":[1,58,128],"sha256":"ba4978b3867a9ef49ca295fd75e39f42a6ab4d5e22a0105578e324506bb469dc","value_sha256":"ba4978b3867a9ef49ca295fd75e39f42a6ab4d5e22a0105578e324506bb469dc"},{"shape":[1,14,128],"sha256":"5664914f31c67f9c2eb8e84c91ba326de6b9a520408b13bec1591b7a9c99d405","value_sha256":"5664914f31c67f9c2eb8e84c91ba326de6b9a520408b13bec1591b7a9c99d405"}],[{"shape":[1,3,10240],"sha256":"39dbb01b30f070663709cb9b93662699270bbc46fc7c72ea6e9d79899d17c215","value_sha256":"39dbb01b30f070663709cb9b93662699270bbc46fc7c72ea6e9d79899d17c215"},{"shape":[1,48,128,128],"sha256":"148a32eac2abf5d7891bdff58650dfb116a5a7c4d59cc44b6b95cdf1ac99e18f","value_sha256":"148a32eac2abf5d7891bdff58650dfb116a5a7c4d59cc44b6b95cdf1ac99e18f"}],[{"shape":[1,3,10240],"sha256":"e06ef379ef9e77086ebffeec6a8b7739a9534c853e06be61daeb4280665dec79","value_sha256":"e06ef379ef9e77086ebffeec6a8b7739a9534c853e06be61daeb4280665dec79"},{"shape":[1,48,128,128],"sha256":"0522563654646539e1e80e0c8f29f6c3145a2e9d5e90d6326e19e3d521474376","value_sha256":"0522563654646539e1e80e0c8f29f6c3145a2e9d5e90d6326e19e3d521474376"}],[{"shape":[1,3,10240],"sha256":"e4dd86d4eeb57ac1afe7f8f4e2f84735fca091939861e3fbe96eff76d2c098ac","value_sha256":"e4dd86d4eeb57ac1afe7f8f4e2f84735fca091939861e3fbe96eff76d2c098ac"},{"shape":[1,48,128,128],"sha256":"bfcbb36270a75ae6c09fddf04b6ca00c419408378aba21ff2236284ebccba433","value_sha256":"bfcbb36270a75ae6c09fddf04b6ca00c419408378aba21ff2236284ebccba433"}],[{"shape":[1,2,58,256],"sha256":"0d374a75bb1a9563bc20f3d4c4b884807e2305c2b14ef36e26c0f342101a0fe3","value_sha256":"0d374a75bb1a9563bc20f3d4c4b884807e2305c2b14ef36e26c0f342101a0fe3"},{"shape":[1,2,58,256],"sha256":"99f0b58866d5217b257e4147c8adf3cb6975c69e21f11b4e927edfc8c0b02f4e","value_sha256":"99f0b58866d5217b257e4147c8adf3cb6975c69e21f11b4e927edfc8c0b02f4e"},{"shape":[1,58,128],"sha256":"0ab3ab6cd8923167204f8f39a6a12d75d9e247243bff4414798dc634eecb265b","value_sha256":"0ab3ab6cd8923167204f8f39a6a12d75d9e247243bff4414798dc634eecb265b"},{"shape":[1,14,128],"sha256":"6ad6f2c1bd2b1d84d2df923a71f822e0d2a9ba91298ecc8235a872a1ff02a1e5","value_sha256":"6ad6f2c1bd2b1d84d2df923a71f822e0d2a9ba91298ecc8235a872a1ff02a1e5"}],[{"shape":[1,3,10240],"sha256":"d23b61a1a941a4df10f433a664061ace644e7182f98a44ba0109dd569e67c886","value_sha256":"d23b61a1a941a4df10f433a664061ace644e7182f98a44ba0109dd569e67c886"},{"shape":[1,48,128,128],"sha256":"ec5f8e87caa2700663046ef72156240c54add5f7a9754f751fafc1d53c4dcfaf","value_sha256":"ec5f8e87caa2700663046ef72156240c54add5f7a9754f751fafc1d53c4dcfaf"}],[{"shape":[1,3,10240],"sha256":"13d6ca0d90f0064d0241e25cbada81e70f15b39816a4903e2e9df950df50b756","value_sha256":"13d6ca0d90f0064d0241e25cbada81e70f15b39816a4903e2e9df950df50b756"},{"shape":[1,48,128,128],"sha256":"83a250a7f63996f11a75a100d09b90bd519de318646ba9aff097c21f7e715629","value_sha256":"83a250a7f63996f11a75a100d09b90bd519de318646ba9aff097c21f7e715629"}],[{"shape":[1,3,10240],"sha256":"881d586c399fc7adcb5f6a41619b2c7e93bdd056a09dcfa407c51d64e0e1b976","value_sha256":"881d586c399fc7adcb5f6a41619b2c7e93bdd056a09dcfa407c51d64e0e1b976"},{"shape":[1,48,128,128],"sha256":"8f40c358d8d8e2dbe72dc04035ad9e03a296e84b32f82244b43d5000f6b77949","value_sha256":"8f40c358d8d8e2dbe72dc04035ad9e03a296e84b32f82244b43d5000f6b77949"}],[{"shape":[1,2,58,256],"sha256":"700d59adcb347511033e6cc84b88692e2138b2d79391a34fff7bb79e98fdaced","value_sha256":"700d59adcb347511033e6cc84b88692e2138b2d79391a34fff7bb79e98fdaced"},{"shape":[1,2,58,256],"sha256":"45090dc2a4a48cce5a8749876331ae4b5f6c52c4c78e0195fc45ecfda3521ae1","value_sha256":"45090dc2a4a48cce5a8749876331ae4b5f6c52c4c78e0195fc45ecfda3521ae1"},{"shape":[1,58,128],"sha256":"7c3616d29fa3a5e38f2d65e75b4a3b60cbe5673428895c1706cbbe8dc3e1b3b4","value_sha256":"7c3616d29fa3a5e38f2d65e75b4a3b60cbe5673428895c1706cbbe8dc3e1b3b4"},{"shape":[1,14,128],"sha256":"490cfaf1631904b133dcb1ef6639af8361a18dc44ff6d16e467a194b57594a2b","value_sha256":"490cfaf1631904b133dcb1ef6639af8361a18dc44ff6d16e467a194b57594a2b"}],[{"shape":[1,3,10240],"sha256":"395b24b1c8561ad79de90d370b614b12e3fb3becb32f305dc4552f7bcd6dcd15","value_sha256":"395b24b1c8561ad79de90d370b614b12e3fb3becb32f305dc4552f7bcd6dcd15"},{"shape":[1,48,128,128],"sha256":"88f8113cc2c0314be162c3118c750aa66e791daaa18e305a7a5411031fd66a71","value_sha256":"88f8113cc2c0314be162c3118c750aa66e791daaa18e305a7a5411031fd66a71"}],[{"shape":[1,3,10240],"sha256":"3a54a9e444aa715b7afcf7aee09994a648951b006e4d48789374e6ef3c12889e","value_sha256":"3a54a9e444aa715b7afcf7aee09994a648951b006e4d48789374e6ef3c12889e"},{"shape":[1,48,128,128],"sha256":"e13d5286974864fb579dd5dd4f16cc972824a78f0d9d7513db33aaccf4902e4d","value_sha256":"e13d5286974864fb579dd5dd4f16cc972824a78f0d9d7513db33aaccf4902e4d"}],[{"shape":[1,3,10240],"sha256":"1bb2a69a6651a97d6f34910b5b30fcb93cfc5eb4038ee68122a76c1d38e09132","value_sha256":"1bb2a69a6651a97d6f34910b5b30fcb93cfc5eb4038ee68122a76c1d38e09132"},{"shape":[1,48,128,128],"sha256":"728437ce6a32dfa4a9352266b9dae2efdc327b6e9298ff2cd04f5bdde1ceac9e","value_sha256":"728437ce6a32dfa4a9352266b9dae2efdc327b6e9298ff2cd04f5bdde1ceac9e"}],[{"shape":[1,2,58,256],"sha256":"6a1c56e7333fc86e4e11bb265e99274ff727408f9ab32508f374198d4e8553c7","value_sha256":"44b87b49e9f9853e6a3cb5efcefe1f25ff4f06d56e247847d0054de3aab3fab4"},{"shape":[1,2,58,256],"sha256":"58937333f6ee9a30561802d7d287caee8d40fe5b481d31f80f694aab76bc8d42","value_sha256":"58937333f6ee9a30561802d7d287caee8d40fe5b481d31f80f694aab76bc8d42"},{"shape":[1,58,128],"sha256":"e1a78a7e3c30a628023848a71912783754128437f634aa121eea20f0a5eb27e1","value_sha256":"e1a78a7e3c30a628023848a71912783754128437f634aa121eea20f0a5eb27e1"},{"shape":[1,14,128],"sha256":"b7c598edf1ad579211d48d3f6d105202ed1266cbd42205df9ab794398adb2729","value_sha256":"b7c598edf1ad579211d48d3f6d105202ed1266cbd42205df9ab794398adb2729"}],[{"shape":[1,3,10240],"sha256":"653c93430930c95e053e5e75e3068dbab3bb4729fc49d82ba378792a07e5d8b3","value_sha256":"653c93430930c95e053e5e75e3068dbab3bb4729fc49d82ba378792a07e5d8b3"},{"shape":[1,48,128,128],"sha256":"03681ea450a4a1734cdf9e4e4fdf3253a8fbf551de70f3e45100f423138ef20a","value_sha256":"03681ea450a4a1734cdf9e4e4fdf3253a8fbf551de70f3e45100f423138ef20a"}],[{"shape":[1,3,10240],"sha256":"13d0f0882c67b19ae78bb751c2104a64e1d2ec5e9ca397f61cb9eb50045ac66b","value_sha256":"13d0f0882c67b19ae78bb751c2104a64e1d2ec5e9ca397f61cb9eb50045ac66b"},{"shape":[1,48,128,128],"sha256":"6ae4fc5e4b5a19ec13699c31e60784e7c8a0c79c2894a1967de2bcb6d24062e4","value_sha256":"6ae4fc5e4b5a19ec13699c31e60784e7c8a0c79c2894a1967de2bcb6d24062e4"}],[{"shape":[1,3,10240],"sha256":"ba4f5a7d79b0b134d529e94568049e441e129e4239274d6580790b86930c5f13","value_sha256":"ba4f5a7d79b0b134d529e94568049e441e129e4239274d6580790b86930c5f13"},{"shape":[1,48,128,128],"sha256":"1c7295715f726120f544708050a1e952a543a2e75ffe1b6c6317eba5be594e1e","value_sha256":"1c7295715f726120f544708050a1e952a543a2e75ffe1b6c6317eba5be594e1e"}],[{"shape":[1,2,58,256],"sha256":"76c1c37db1e5e29e0ca1cf9d3d2a83abb5912b89f1a780dd583280bcb0b72834","value_sha256":"76c1c37db1e5e29e0ca1cf9d3d2a83abb5912b89f1a780dd583280bcb0b72834"},{"shape":[1,2,58,256],"sha256":"406cd8e26e9fdc3980517753308f22ef96cfc5f6e594be321693f1735a4649b2","value_sha256":"406cd8e26e9fdc3980517753308f22ef96cfc5f6e594be321693f1735a4649b2"},{"shape":[1,58,128],"sha256":"d9455de2858b3e7ece5df9eea9ca961328acaa359abe4f9e49053143f443aec6","value_sha256":"d9455de2858b3e7ece5df9eea9ca961328acaa359abe4f9e49053143f443aec6"},{"shape":[1,14,128],"sha256":"de9cc43b6b076d56c23fa89efe8ae677a61dcec872d2dbbe35e332dad6567f9e","value_sha256":"de9cc43b6b076d56c23fa89efe8ae677a61dcec872d2dbbe35e332dad6567f9e"}],[{"shape":[1,3,10240],"sha256":"5f043e9fb8a29117b711c29c68b232e69e03cf6e3103064bd6ab67a74285235e","value_sha256":"5f043e9fb8a29117b711c29c68b232e69e03cf6e3103064bd6ab67a74285235e"},{"shape":[1,48,128,128],"sha256":"30fee423125f5f9a182f01f200c31e474b2a626ccafdf069a4f4548129d2d1ff","value_sha256":"30fee423125f5f9a182f01f200c31e474b2a626ccafdf069a4f4548129d2d1ff"}],[{"shape":[1,3,10240],"sha256":"4f3c8c2688a9660bb254051656b2ba771a38acad5fb7f7fe46fdd21457a857c8","value_sha256":"4f3c8c2688a9660bb254051656b2ba771a38acad5fb7f7fe46fdd21457a857c8"},{"shape":[1,48,128,128],"sha256":"067f420ad6951dfff064c2a2d26537074cf1b8a6fa3850a5c80a78677503f890","value_sha256":"067f420ad6951dfff064c2a2d26537074cf1b8a6fa3850a5c80a78677503f890"}],[{"shape":[1,3,10240],"sha256":"bb73667194e07aae5cc3d30fa2fbc15cf921c78d7016ae27bfc97a8bb0cc09f7","value_sha256":"bb73667194e07aae5cc3d30fa2fbc15cf921c78d7016ae27bfc97a8bb0cc09f7"},{"shape":[1,48,128,128],"sha256":"98837a4082cf48204396c03042b18b84c6bafc6b398ebd6852f45af660c0f0d3","value_sha256":"98837a4082cf48204396c03042b18b84c6bafc6b398ebd6852f45af660c0f0d3"}],[{"shape":[1,2,58,256],"sha256":"325b425383bd9a7a6e914af7e54cc595a14d9987cbe7c308c96ed5beb6a8a63f","value_sha256":"325b425383bd9a7a6e914af7e54cc595a14d9987cbe7c308c96ed5beb6a8a63f"},{"shape":[1,2,58,256],"sha256":"05ec6026468751e837c9b2f129b6b3330827d6102526c09fcbfb9a87b49d0560","value_sha256":"05ec6026468751e837c9b2f129b6b3330827d6102526c09fcbfb9a87b49d0560"},{"shape":[1,58,128],"sha256":"3bbef13d2f478d4def15e6b15869d999e09cf07f02a499af24066784a72b9edb","value_sha256":"3bbef13d2f478d4def15e6b15869d999e09cf07f02a499af24066784a72b9edb"},{"shape":[1,14,128],"sha256":"1abcb54411b56c34a0cd0bfa4ca920256c61bd50fcff14a2140d12de6e6cf348","value_sha256":"1abcb54411b56c34a0cd0bfa4ca920256c61bd50fcff14a2140d12de6e6cf348"}],[{"shape":[1,3,10240],"sha256":"3e3ffd492867d8445bc1b9b42b426565db732e5add86a85a24041e1aed1d50b5","value_sha256":"3e3ffd492867d8445bc1b9b42b426565db732e5add86a85a24041e1aed1d50b5"},{"shape":[1,48,128,128],"sha256":"dafa3585c9acccb5914ade9251e5533df9ffd0f05380a2e99ad342041dcc0b98","value_sha256":"dafa3585c9acccb5914ade9251e5533df9ffd0f05380a2e99ad342041dcc0b98"}],[{"shape":[1,3,10240],"sha256":"c20f1e23c969c6e7f59c8fa7781d868a2b19aa6ae0b66cda658cdcd29a68cda2","value_sha256":"c20f1e23c969c6e7f59c8fa7781d868a2b19aa6ae0b66cda658cdcd29a68cda2"},{"shape":[1,48,128,128],"sha256":"a0dde68ef7790d55314dc9db6e547a886b8d6870ebcf84eb4662d89f128d6b4a","value_sha256":"a0dde68ef7790d55314dc9db6e547a886b8d6870ebcf84eb4662d89f128d6b4a"}],[{"shape":[1,3,10240],"sha256":"ec38527615247d9ca522db4f8fcfeb558bf9a234b07e8799b290e305c69bcce6","value_sha256":"ec38527615247d9ca522db4f8fcfeb558bf9a234b07e8799b290e305c69bcce6"},{"shape":[1,48,128,128],"sha256":"779f4cfcb1fd123814363768cce1a803e1a8c0f01c7ec304df93ad568f623463","value_sha256":"779f4cfcb1fd123814363768cce1a803e1a8c0f01c7ec304df93ad568f623463"}],[{"shape":[1,2,58,256],"sha256":"6ab15b2e1edadf080918d1c74f5616d540039bb1ab0f5ced4dafd8e2a4a66da4","value_sha256":"6ab15b2e1edadf080918d1c74f5616d540039bb1ab0f5ced4dafd8e2a4a66da4"},{"shape":[1,2,58,256],"sha256":"3f056e38b54925776587ff6144c3fb7240f43b28691697cdf6643fb1d848892d","value_sha256":"3f056e38b54925776587ff6144c3fb7240f43b28691697cdf6643fb1d848892d"},{"shape":[1,58,128],"sha256":"c2a0dcb5ad4087827d26739fa0a0296de5df94b3764e02b603da06014979c555","value_sha256":"c2a0dcb5ad4087827d26739fa0a0296de5df94b3764e02b603da06014979c555"},{"shape":[1,14,128],"sha256":"525e7e0ca6455d6931c5c945dd43e90aaf4dabf2d02a0d52a60d02006cefb2d8","value_sha256":"525e7e0ca6455d6931c5c945dd43e90aaf4dabf2d02a0d52a60d02006cefb2d8"}]],"mtp":[[{"shape":[1,2,57,256],"sha256":"7f1debf8246bc37d767a9eca4263fd440b2e2e261e4aec689bfb7890a626beaf","value_sha256":"7f1debf8246bc37d767a9eca4263fd440b2e2e261e4aec689bfb7890a626beaf"},{"shape":[1,2,57,256],"sha256":"0bb507525d4209dfac234f774b301f6d154195afd5c78fd7d0fdad55b715008f","value_sha256":"0bb507525d4209dfac234f774b301f6d154195afd5c78fd7d0fdad55b715008f"},{"shape":[1,57,128],"sha256":"2f47eb6af4a4c2d8442aa1322a1d910bcd90ce9e8006ad19d1dd6d4bfeb6d453","value_sha256":"2f47eb6af4a4c2d8442aa1322a1d910bcd90ce9e8006ad19d1dd6d4bfeb6d453"},{"shape":[1,14,128],"sha256":"1ecb828fa7a6f7528b38d75459ef4e79a81089b1adf01319d3bbe58b3b93fecd","value_sha256":"1ecb828fa7a6f7528b38d75459ef4e79a81089b1adf01319d3bbe58b3b93fecd"}]]} \ No newline at end of file diff --git a/docs/issue109-verify-gate/cold-oracle-arrays.json b/docs/issue109-verify-gate/cold-oracle-arrays.json new file mode 100644 index 0000000..b321f7a --- /dev/null +++ b/docs/issue109-verify-gate/cold-oracle-arrays.json @@ -0,0 +1 @@ +{"trunk": [[{"shape": [1, 3, 10240], "sha256": "1dadce7f74c7b48ad423170b8884bf5024c3d6dd91b2f9d800afca7d32679d7b", "value_sha256": "1dadce7f74c7b48ad423170b8884bf5024c3d6dd91b2f9d800afca7d32679d7b"}, {"shape": [1, 48, 128, 128], "sha256": "d7436faf9d50e278f7fa095e9c217467020a6f534a48195775c212caa0ece52d", "value_sha256": "d7436faf9d50e278f7fa095e9c217467020a6f534a48195775c212caa0ece52d"}], [{"shape": [1, 3, 10240], "sha256": "ca1b3cf93598b62575f01aea05ff0d0f087c00fdf1b63654626ef5ec3487715a", "value_sha256": "ca1b3cf93598b62575f01aea05ff0d0f087c00fdf1b63654626ef5ec3487715a"}, {"shape": [1, 48, 128, 128], "sha256": "f1364bb8165b9189279b7769e4081f213c562f4e0541acc5962cf2ae9f42a831", "value_sha256": "f1364bb8165b9189279b7769e4081f213c562f4e0541acc5962cf2ae9f42a831"}, {"shape": [1, 9, 10240], "sha256": "c9110c820fc39f8c19c770594c15e0997693015090a3c7af4b6c8ec9a31ebc4e", "value_sha256": "c9110c820fc39f8c19c770594c15e0997693015090a3c7af4b6c8ec9a31ebc4e"}, {"shape": [1, 2], "sha256": "9febaa06152dac026dba5f2c1151c11ff6a1b2f00e92278cdfd2905c87cf2c2f", "value_sha256": "9febaa06152dac026dba5f2c1151c11ff6a1b2f00e92278cdfd2905c87cf2c2f"}], [{"shape": [1, 3, 10240], "sha256": "320fdcf9c7ab899133952e093d1f3de613ba5581b3aaad45c4ad7b1b4e43f1f3", "value_sha256": "320fdcf9c7ab899133952e093d1f3de613ba5581b3aaad45c4ad7b1b4e43f1f3"}, {"shape": [1, 48, 128, 128], "sha256": "8cae4ba20fd0e54f8da130e5f8681ece7c54672b7a6404800cded8e64a977e08", "value_sha256": "8cae4ba20fd0e54f8da130e5f8681ece7c54672b7a6404800cded8e64a977e08"}], [{"shape": [1, 2, 58, 256], "sha256": "404510256f371f0bc2e7b8af2d1f7eb2ae0322d42eb9a0ee5827a9a5c8d489c0", "value_sha256": "404510256f371f0bc2e7b8af2d1f7eb2ae0322d42eb9a0ee5827a9a5c8d489c0"}, {"shape": [1, 2, 58, 256], "sha256": "f14afc7fe1c5e4c62c84121e804e14aa484db378861904d4e234ffeef10252ef", "value_sha256": "f14afc7fe1c5e4c62c84121e804e14aa484db378861904d4e234ffeef10252ef"}, {"shape": [1, 58, 128], "sha256": "ca2d0b2f09e87fab8d0a6aede7073ec53bc37b584851f0342c76244f05ca3e12", "value_sha256": "ca2d0b2f09e87fab8d0a6aede7073ec53bc37b584851f0342c76244f05ca3e12"}, {"shape": [1, 14, 128], "sha256": "a609a4f52c9b3dc0fb5d6554019786bebecdad220bf5ae6b40d4939821f12c8b", "value_sha256": "a609a4f52c9b3dc0fb5d6554019786bebecdad220bf5ae6b40d4939821f12c8b"}], [{"shape": [1, 3, 10240], "sha256": "0c5bdce8d9cbd2a24162139582f1889f0413632feafdba4e79cdd88353e6abc2", "value_sha256": "0c5bdce8d9cbd2a24162139582f1889f0413632feafdba4e79cdd88353e6abc2"}, {"shape": [1, 48, 128, 128], "sha256": "d47c0c965fb6c41a7e1824144ef61546a7e40ead8d8606822173e21a17a4fc0f", "value_sha256": "d47c0c965fb6c41a7e1824144ef61546a7e40ead8d8606822173e21a17a4fc0f"}], [{"shape": [1, 3, 10240], "sha256": "66014c1bce9cbbd223ec6af2f5517de66f71ce443721088167dad0c0186289fb", "value_sha256": "66014c1bce9cbbd223ec6af2f5517de66f71ce443721088167dad0c0186289fb"}, {"shape": [1, 48, 128, 128], "sha256": "2593987c9ca9aeb30910e7eb69f8d6bd61c1e035861915cbe27b0838e26f3098", "value_sha256": "2593987c9ca9aeb30910e7eb69f8d6bd61c1e035861915cbe27b0838e26f3098"}], [{"shape": [1, 3, 10240], "sha256": "45a3dbbf3dc7a79b7db631fe4c2802d6e1f4433f4b03e961df072147e8c242a2", "value_sha256": "45a3dbbf3dc7a79b7db631fe4c2802d6e1f4433f4b03e961df072147e8c242a2"}, {"shape": [1, 48, 128, 128], "sha256": "e266e3456f01268de8868258a750ee18c5f8b1ff4391f647aec60a39d56f98a0", "value_sha256": "e266e3456f01268de8868258a750ee18c5f8b1ff4391f647aec60a39d56f98a0"}], [{"shape": [1, 2, 58, 256], "sha256": "ba60b2860a5717f46a4a7ffef0257799f96acb37de1a00ba88ddfc149bf44ca2", "value_sha256": "ba60b2860a5717f46a4a7ffef0257799f96acb37de1a00ba88ddfc149bf44ca2"}, {"shape": [1, 2, 58, 256], "sha256": "57d040a722a1427e9b0744ee652aecca9ec30cc7b617e3db9534e772d79f42e4", "value_sha256": "57d040a722a1427e9b0744ee652aecca9ec30cc7b617e3db9534e772d79f42e4"}, {"shape": [1, 58, 128], "sha256": "84d339a2f8558893f3d73e751d5ee3d81bb1f3b1184c0b35555bf5456fdc5a22", "value_sha256": "84d339a2f8558893f3d73e751d5ee3d81bb1f3b1184c0b35555bf5456fdc5a22"}, {"shape": [1, 14, 128], "sha256": "a5378133f448c4b6380dc4711420d3b069dd8491ffc797fd16e023294405b707", "value_sha256": "a5378133f448c4b6380dc4711420d3b069dd8491ffc797fd16e023294405b707"}], [{"shape": [1, 3, 10240], "sha256": "e6d4afab81c6a58f08c8d252991e91d25d2d60e497c3fc00614451edd0ea908c", "value_sha256": "e6d4afab81c6a58f08c8d252991e91d25d2d60e497c3fc00614451edd0ea908c"}, {"shape": [1, 48, 128, 128], "sha256": "f94349b9898b0d1a5770f4aca791d4c114abad341641688012de2e2fcaa6237c", "value_sha256": "f94349b9898b0d1a5770f4aca791d4c114abad341641688012de2e2fcaa6237c"}], [{"shape": [1, 3, 10240], "sha256": "54d2e63c68f9fc1412178f3f21bcf5897ab228967e01f709ed9d5ba0e6d0c016", "value_sha256": "54d2e63c68f9fc1412178f3f21bcf5897ab228967e01f709ed9d5ba0e6d0c016"}, {"shape": [1, 48, 128, 128], "sha256": "868155f0fd6a62a46decb4f87c3e2f27310f9da38796fe0a8d926844248c7259", "value_sha256": "868155f0fd6a62a46decb4f87c3e2f27310f9da38796fe0a8d926844248c7259"}], [{"shape": [1, 3, 10240], "sha256": "0073cc8754020915aedaad03803669a61281e18cb2dd389cb19ef7b5ed769b84", "value_sha256": "0073cc8754020915aedaad03803669a61281e18cb2dd389cb19ef7b5ed769b84"}, {"shape": [1, 48, 128, 128], "sha256": "abd539c013e58f489c23c48dfc168be7a9e2145deee859432cb83d0d8764e2df", "value_sha256": "abd539c013e58f489c23c48dfc168be7a9e2145deee859432cb83d0d8764e2df"}], [{"shape": [1, 2, 58, 256], "sha256": "d855a9efa61fd043cf03b444aefe90a1fcefa5af03770819333ec695af328dc5", "value_sha256": "d855a9efa61fd043cf03b444aefe90a1fcefa5af03770819333ec695af328dc5"}, {"shape": [1, 2, 58, 256], "sha256": "e2d0094873c5a47590a465e5c06fa7cab90e6ae99cb2eba7df88340755be2725", "value_sha256": "e2d0094873c5a47590a465e5c06fa7cab90e6ae99cb2eba7df88340755be2725"}, {"shape": [1, 58, 128], "sha256": "4ad0c060f771f328465a3dd5a6333d34fb9aa4cb9052c8c7811ab2dbd17d088e", "value_sha256": "4ad0c060f771f328465a3dd5a6333d34fb9aa4cb9052c8c7811ab2dbd17d088e"}, {"shape": [1, 14, 128], "sha256": "2e108a4d5870102d8e2d4a9b69fe55507b0e75f12455792f2b05610fa305d638", "value_sha256": "2e108a4d5870102d8e2d4a9b69fe55507b0e75f12455792f2b05610fa305d638"}], [{"shape": [1, 3, 10240], "sha256": "8e0affe3773cbb974718f2a1dce2e75f60cc29c8290617c559b5f93122ae763d", "value_sha256": "8e0affe3773cbb974718f2a1dce2e75f60cc29c8290617c559b5f93122ae763d"}, {"shape": [1, 48, 128, 128], "sha256": "8293399e05778a26da5207d0dd00d1802ab2314ec846951bccdea731df48e8a7", "value_sha256": "8293399e05778a26da5207d0dd00d1802ab2314ec846951bccdea731df48e8a7"}], [{"shape": [1, 3, 10240], "sha256": "7b9ed3fd1bf6ea7c486f62899e64152b9d24bc948a26fd02920f8ab823c077ea", "value_sha256": "7b9ed3fd1bf6ea7c486f62899e64152b9d24bc948a26fd02920f8ab823c077ea"}, {"shape": [1, 48, 128, 128], "sha256": "8ee1a98bfc2a5d85fef8c57b94d166755b3766c0fa223c635dbdc013e512c810", "value_sha256": "8ee1a98bfc2a5d85fef8c57b94d166755b3766c0fa223c635dbdc013e512c810"}], [{"shape": [1, 3, 10240], "sha256": "9daf0b317a2cd918d02808a7b7ffc304e4ca9217b12dc8921984c9e5dc4acb44", "value_sha256": "9daf0b317a2cd918d02808a7b7ffc304e4ca9217b12dc8921984c9e5dc4acb44"}, {"shape": [1, 48, 128, 128], "sha256": "bb3e8804e600bc41b69b14e4f89339e876f975fcd8e4caad4318ef88e424fd85", "value_sha256": "bb3e8804e600bc41b69b14e4f89339e876f975fcd8e4caad4318ef88e424fd85"}], [{"shape": [1, 2, 58, 256], "sha256": "85ce674b27b84da8c85b6f50d944f7173c2fcfed8bb112cd518aa52fed92beea", "value_sha256": "85ce674b27b84da8c85b6f50d944f7173c2fcfed8bb112cd518aa52fed92beea"}, {"shape": [1, 2, 58, 256], "sha256": "1a7b2de350076386b7499577e28d627164afe1b2e00f7a2fbbc1b1ea3dae35ab", "value_sha256": "1a7b2de350076386b7499577e28d627164afe1b2e00f7a2fbbc1b1ea3dae35ab"}, {"shape": [1, 58, 128], "sha256": "fa5d6207583355c27b91d17b333b6f672d62a64dbab9ee3f787619a70a924c07", "value_sha256": "fa5d6207583355c27b91d17b333b6f672d62a64dbab9ee3f787619a70a924c07"}, {"shape": [1, 14, 128], "sha256": "f1033fd4afbbe2909dada065e00234e58a3ad7a9d92eade7fd112c0adab4af24", "value_sha256": "f1033fd4afbbe2909dada065e00234e58a3ad7a9d92eade7fd112c0adab4af24"}], [{"shape": [1, 3, 10240], "sha256": "95c15e85c7cbc93aade6e85ba021ba4a32383a7bd6e94cfa85d6376a2f1baff1", "value_sha256": "95c15e85c7cbc93aade6e85ba021ba4a32383a7bd6e94cfa85d6376a2f1baff1"}, {"shape": [1, 48, 128, 128], "sha256": "8b5e6b8b2ca9f2d347a64581632db8fa98bf0ee2e0c5de6d8889964c6739b7d7", "value_sha256": "8b5e6b8b2ca9f2d347a64581632db8fa98bf0ee2e0c5de6d8889964c6739b7d7"}], [{"shape": [1, 3, 10240], "sha256": "2509502b2ec7afecab230e5c532f1a034a8f0f42c2fafa57163c6da3ec308eed", "value_sha256": "2509502b2ec7afecab230e5c532f1a034a8f0f42c2fafa57163c6da3ec308eed"}, {"shape": [1, 48, 128, 128], "sha256": "e73f022d9beaba67a5ebd2b54f0ac2ab982323756bc0876489c2256d5685e744", "value_sha256": "e73f022d9beaba67a5ebd2b54f0ac2ab982323756bc0876489c2256d5685e744"}], [{"shape": [1, 3, 10240], "sha256": "46817f7782dd86d4c6375cfd76bf18b6a0661ba43ff7a4360040729f076b8b81", "value_sha256": "46817f7782dd86d4c6375cfd76bf18b6a0661ba43ff7a4360040729f076b8b81"}, {"shape": [1, 48, 128, 128], "sha256": "d4dd6ee143fc4bcc68d6b60c80953207082cbbc366f598a6f8cf7a00932dcb14", "value_sha256": "d4dd6ee143fc4bcc68d6b60c80953207082cbbc366f598a6f8cf7a00932dcb14"}], [{"shape": [1, 2, 58, 256], "sha256": "6a03bc8cfe966b40da35c7cc0d97190aa7572994ce59d4a5e023b927d166e51e", "value_sha256": "6a03bc8cfe966b40da35c7cc0d97190aa7572994ce59d4a5e023b927d166e51e"}, {"shape": [1, 2, 58, 256], "sha256": "f7e76be69fb49db9993cea131269476cf55502affa51295f51d53d788d0eae72", "value_sha256": "f7e76be69fb49db9993cea131269476cf55502affa51295f51d53d788d0eae72"}, {"shape": [1, 58, 128], "sha256": "238df2964205645bc0012bd0588e233c099c4c2408d141168e239a4224e14e04", "value_sha256": "238df2964205645bc0012bd0588e233c099c4c2408d141168e239a4224e14e04"}, {"shape": [1, 14, 128], "sha256": "724418b117e12a9d59dba8f43c3bef4ee800e5322e4c0dd8fe1b8bfcc5defee4", "value_sha256": "724418b117e12a9d59dba8f43c3bef4ee800e5322e4c0dd8fe1b8bfcc5defee4"}], [{"shape": [1, 3, 10240], "sha256": "4531ea10269697248e743041130a121ac1f566039470cbda939dd1f079736e0f", "value_sha256": "4531ea10269697248e743041130a121ac1f566039470cbda939dd1f079736e0f"}, {"shape": [1, 48, 128, 128], "sha256": "70096b5b2f0dd778bb52980ea38cb6ce2b94749c34a9aa3cfc539b5b89366025", "value_sha256": "70096b5b2f0dd778bb52980ea38cb6ce2b94749c34a9aa3cfc539b5b89366025"}], [{"shape": [1, 3, 10240], "sha256": "9c3a219512060c453885f0ed299d7be1618048969f0f94bd14764b464713db39", "value_sha256": "9c3a219512060c453885f0ed299d7be1618048969f0f94bd14764b464713db39"}, {"shape": [1, 48, 128, 128], "sha256": "822028dfd9c7160f6fceee8551486db596349e2aa57def487716fd3254c64635", "value_sha256": "822028dfd9c7160f6fceee8551486db596349e2aa57def487716fd3254c64635"}], [{"shape": [1, 3, 10240], "sha256": "df10516aa1338cefae8b842fdb557a2027f9aa1957577ab7750f46b5f86c54af", "value_sha256": "df10516aa1338cefae8b842fdb557a2027f9aa1957577ab7750f46b5f86c54af"}, {"shape": [1, 48, 128, 128], "sha256": "36241df4f65de72b6050bde3b46196ba996c835aaedaf94ad00e3b3868204ad6", "value_sha256": "36241df4f65de72b6050bde3b46196ba996c835aaedaf94ad00e3b3868204ad6"}], [{"shape": [1, 2, 58, 256], "sha256": "69cc83b8890a2ea9a636d4546ce3ed3d8759b9d0a15477e4c8badc431e4c7fe8", "value_sha256": "69cc83b8890a2ea9a636d4546ce3ed3d8759b9d0a15477e4c8badc431e4c7fe8"}, {"shape": [1, 2, 58, 256], "sha256": "ddd32a1c551437c14edd919cb138578fdc1c5a4a62faeb0faa0c771c27687b38", "value_sha256": "ddd32a1c551437c14edd919cb138578fdc1c5a4a62faeb0faa0c771c27687b38"}, {"shape": [1, 58, 128], "sha256": "ba4978b3867a9ef49ca295fd75e39f42a6ab4d5e22a0105578e324506bb469dc", "value_sha256": "ba4978b3867a9ef49ca295fd75e39f42a6ab4d5e22a0105578e324506bb469dc"}, {"shape": [1, 14, 128], "sha256": "5664914f31c67f9c2eb8e84c91ba326de6b9a520408b13bec1591b7a9c99d405", "value_sha256": "5664914f31c67f9c2eb8e84c91ba326de6b9a520408b13bec1591b7a9c99d405"}], [{"shape": [1, 3, 10240], "sha256": "39dbb01b30f070663709cb9b93662699270bbc46fc7c72ea6e9d79899d17c215", "value_sha256": "39dbb01b30f070663709cb9b93662699270bbc46fc7c72ea6e9d79899d17c215"}, {"shape": [1, 48, 128, 128], "sha256": "148a32eac2abf5d7891bdff58650dfb116a5a7c4d59cc44b6b95cdf1ac99e18f", "value_sha256": "148a32eac2abf5d7891bdff58650dfb116a5a7c4d59cc44b6b95cdf1ac99e18f"}], [{"shape": [1, 3, 10240], "sha256": "e06ef379ef9e77086ebffeec6a8b7739a9534c853e06be61daeb4280665dec79", "value_sha256": "e06ef379ef9e77086ebffeec6a8b7739a9534c853e06be61daeb4280665dec79"}, {"shape": [1, 48, 128, 128], "sha256": "0522563654646539e1e80e0c8f29f6c3145a2e9d5e90d6326e19e3d521474376", "value_sha256": "0522563654646539e1e80e0c8f29f6c3145a2e9d5e90d6326e19e3d521474376"}], [{"shape": [1, 3, 10240], "sha256": "e4dd86d4eeb57ac1afe7f8f4e2f84735fca091939861e3fbe96eff76d2c098ac", "value_sha256": "e4dd86d4eeb57ac1afe7f8f4e2f84735fca091939861e3fbe96eff76d2c098ac"}, {"shape": [1, 48, 128, 128], "sha256": "bfcbb36270a75ae6c09fddf04b6ca00c419408378aba21ff2236284ebccba433", "value_sha256": "bfcbb36270a75ae6c09fddf04b6ca00c419408378aba21ff2236284ebccba433"}], [{"shape": [1, 2, 58, 256], "sha256": "0d374a75bb1a9563bc20f3d4c4b884807e2305c2b14ef36e26c0f342101a0fe3", "value_sha256": "0d374a75bb1a9563bc20f3d4c4b884807e2305c2b14ef36e26c0f342101a0fe3"}, {"shape": [1, 2, 58, 256], "sha256": "99f0b58866d5217b257e4147c8adf3cb6975c69e21f11b4e927edfc8c0b02f4e", "value_sha256": "99f0b58866d5217b257e4147c8adf3cb6975c69e21f11b4e927edfc8c0b02f4e"}, {"shape": [1, 58, 128], "sha256": "0ab3ab6cd8923167204f8f39a6a12d75d9e247243bff4414798dc634eecb265b", "value_sha256": "0ab3ab6cd8923167204f8f39a6a12d75d9e247243bff4414798dc634eecb265b"}, {"shape": [1, 14, 128], "sha256": "6ad6f2c1bd2b1d84d2df923a71f822e0d2a9ba91298ecc8235a872a1ff02a1e5", "value_sha256": "6ad6f2c1bd2b1d84d2df923a71f822e0d2a9ba91298ecc8235a872a1ff02a1e5"}], [{"shape": [1, 3, 10240], "sha256": "d23b61a1a941a4df10f433a664061ace644e7182f98a44ba0109dd569e67c886", "value_sha256": "d23b61a1a941a4df10f433a664061ace644e7182f98a44ba0109dd569e67c886"}, {"shape": [1, 48, 128, 128], "sha256": "ec5f8e87caa2700663046ef72156240c54add5f7a9754f751fafc1d53c4dcfaf", "value_sha256": "ec5f8e87caa2700663046ef72156240c54add5f7a9754f751fafc1d53c4dcfaf"}], [{"shape": [1, 3, 10240], "sha256": "13d6ca0d90f0064d0241e25cbada81e70f15b39816a4903e2e9df950df50b756", "value_sha256": "13d6ca0d90f0064d0241e25cbada81e70f15b39816a4903e2e9df950df50b756"}, {"shape": [1, 48, 128, 128], "sha256": "83a250a7f63996f11a75a100d09b90bd519de318646ba9aff097c21f7e715629", "value_sha256": "83a250a7f63996f11a75a100d09b90bd519de318646ba9aff097c21f7e715629"}], [{"shape": [1, 3, 10240], "sha256": "881d586c399fc7adcb5f6a41619b2c7e93bdd056a09dcfa407c51d64e0e1b976", "value_sha256": "881d586c399fc7adcb5f6a41619b2c7e93bdd056a09dcfa407c51d64e0e1b976"}, {"shape": [1, 48, 128, 128], "sha256": "8f40c358d8d8e2dbe72dc04035ad9e03a296e84b32f82244b43d5000f6b77949", "value_sha256": "8f40c358d8d8e2dbe72dc04035ad9e03a296e84b32f82244b43d5000f6b77949"}], [{"shape": [1, 2, 58, 256], "sha256": "700d59adcb347511033e6cc84b88692e2138b2d79391a34fff7bb79e98fdaced", "value_sha256": "700d59adcb347511033e6cc84b88692e2138b2d79391a34fff7bb79e98fdaced"}, {"shape": [1, 2, 58, 256], "sha256": "45090dc2a4a48cce5a8749876331ae4b5f6c52c4c78e0195fc45ecfda3521ae1", "value_sha256": "45090dc2a4a48cce5a8749876331ae4b5f6c52c4c78e0195fc45ecfda3521ae1"}, {"shape": [1, 58, 128], "sha256": "7c3616d29fa3a5e38f2d65e75b4a3b60cbe5673428895c1706cbbe8dc3e1b3b4", "value_sha256": "7c3616d29fa3a5e38f2d65e75b4a3b60cbe5673428895c1706cbbe8dc3e1b3b4"}, {"shape": [1, 14, 128], "sha256": "490cfaf1631904b133dcb1ef6639af8361a18dc44ff6d16e467a194b57594a2b", "value_sha256": "490cfaf1631904b133dcb1ef6639af8361a18dc44ff6d16e467a194b57594a2b"}], [{"shape": [1, 3, 10240], "sha256": "395b24b1c8561ad79de90d370b614b12e3fb3becb32f305dc4552f7bcd6dcd15", "value_sha256": "395b24b1c8561ad79de90d370b614b12e3fb3becb32f305dc4552f7bcd6dcd15"}, {"shape": [1, 48, 128, 128], "sha256": "88f8113cc2c0314be162c3118c750aa66e791daaa18e305a7a5411031fd66a71", "value_sha256": "88f8113cc2c0314be162c3118c750aa66e791daaa18e305a7a5411031fd66a71"}], [{"shape": [1, 3, 10240], "sha256": "3a54a9e444aa715b7afcf7aee09994a648951b006e4d48789374e6ef3c12889e", "value_sha256": "3a54a9e444aa715b7afcf7aee09994a648951b006e4d48789374e6ef3c12889e"}, {"shape": [1, 48, 128, 128], "sha256": "e13d5286974864fb579dd5dd4f16cc972824a78f0d9d7513db33aaccf4902e4d", "value_sha256": "e13d5286974864fb579dd5dd4f16cc972824a78f0d9d7513db33aaccf4902e4d"}], [{"shape": [1, 3, 10240], "sha256": "1bb2a69a6651a97d6f34910b5b30fcb93cfc5eb4038ee68122a76c1d38e09132", "value_sha256": "1bb2a69a6651a97d6f34910b5b30fcb93cfc5eb4038ee68122a76c1d38e09132"}, {"shape": [1, 48, 128, 128], "sha256": "728437ce6a32dfa4a9352266b9dae2efdc327b6e9298ff2cd04f5bdde1ceac9e", "value_sha256": "728437ce6a32dfa4a9352266b9dae2efdc327b6e9298ff2cd04f5bdde1ceac9e"}], [{"shape": [1, 2, 58, 256], "sha256": "44b87b49e9f9853e6a3cb5efcefe1f25ff4f06d56e247847d0054de3aab3fab4", "value_sha256": "44b87b49e9f9853e6a3cb5efcefe1f25ff4f06d56e247847d0054de3aab3fab4"}, {"shape": [1, 2, 58, 256], "sha256": "58937333f6ee9a30561802d7d287caee8d40fe5b481d31f80f694aab76bc8d42", "value_sha256": "58937333f6ee9a30561802d7d287caee8d40fe5b481d31f80f694aab76bc8d42"}, {"shape": [1, 58, 128], "sha256": "e1a78a7e3c30a628023848a71912783754128437f634aa121eea20f0a5eb27e1", "value_sha256": "e1a78a7e3c30a628023848a71912783754128437f634aa121eea20f0a5eb27e1"}, {"shape": [1, 14, 128], "sha256": "b7c598edf1ad579211d48d3f6d105202ed1266cbd42205df9ab794398adb2729", "value_sha256": "b7c598edf1ad579211d48d3f6d105202ed1266cbd42205df9ab794398adb2729"}], [{"shape": [1, 3, 10240], "sha256": "653c93430930c95e053e5e75e3068dbab3bb4729fc49d82ba378792a07e5d8b3", "value_sha256": "653c93430930c95e053e5e75e3068dbab3bb4729fc49d82ba378792a07e5d8b3"}, {"shape": [1, 48, 128, 128], "sha256": "03681ea450a4a1734cdf9e4e4fdf3253a8fbf551de70f3e45100f423138ef20a", "value_sha256": "03681ea450a4a1734cdf9e4e4fdf3253a8fbf551de70f3e45100f423138ef20a"}], [{"shape": [1, 3, 10240], "sha256": "13d0f0882c67b19ae78bb751c2104a64e1d2ec5e9ca397f61cb9eb50045ac66b", "value_sha256": "13d0f0882c67b19ae78bb751c2104a64e1d2ec5e9ca397f61cb9eb50045ac66b"}, {"shape": [1, 48, 128, 128], "sha256": "6ae4fc5e4b5a19ec13699c31e60784e7c8a0c79c2894a1967de2bcb6d24062e4", "value_sha256": "6ae4fc5e4b5a19ec13699c31e60784e7c8a0c79c2894a1967de2bcb6d24062e4"}], [{"shape": [1, 3, 10240], "sha256": "ba4f5a7d79b0b134d529e94568049e441e129e4239274d6580790b86930c5f13", "value_sha256": "ba4f5a7d79b0b134d529e94568049e441e129e4239274d6580790b86930c5f13"}, {"shape": [1, 48, 128, 128], "sha256": "1c7295715f726120f544708050a1e952a543a2e75ffe1b6c6317eba5be594e1e", "value_sha256": "1c7295715f726120f544708050a1e952a543a2e75ffe1b6c6317eba5be594e1e"}], [{"shape": [1, 2, 58, 256], "sha256": "76c1c37db1e5e29e0ca1cf9d3d2a83abb5912b89f1a780dd583280bcb0b72834", "value_sha256": "76c1c37db1e5e29e0ca1cf9d3d2a83abb5912b89f1a780dd583280bcb0b72834"}, {"shape": [1, 2, 58, 256], "sha256": "406cd8e26e9fdc3980517753308f22ef96cfc5f6e594be321693f1735a4649b2", "value_sha256": "406cd8e26e9fdc3980517753308f22ef96cfc5f6e594be321693f1735a4649b2"}, {"shape": [1, 58, 128], "sha256": "d9455de2858b3e7ece5df9eea9ca961328acaa359abe4f9e49053143f443aec6", "value_sha256": "d9455de2858b3e7ece5df9eea9ca961328acaa359abe4f9e49053143f443aec6"}, {"shape": [1, 14, 128], "sha256": "de9cc43b6b076d56c23fa89efe8ae677a61dcec872d2dbbe35e332dad6567f9e", "value_sha256": "de9cc43b6b076d56c23fa89efe8ae677a61dcec872d2dbbe35e332dad6567f9e"}], [{"shape": [1, 3, 10240], "sha256": "5f043e9fb8a29117b711c29c68b232e69e03cf6e3103064bd6ab67a74285235e", "value_sha256": "5f043e9fb8a29117b711c29c68b232e69e03cf6e3103064bd6ab67a74285235e"}, {"shape": [1, 48, 128, 128], "sha256": "30fee423125f5f9a182f01f200c31e474b2a626ccafdf069a4f4548129d2d1ff", "value_sha256": "30fee423125f5f9a182f01f200c31e474b2a626ccafdf069a4f4548129d2d1ff"}], [{"shape": [1, 3, 10240], "sha256": "4f3c8c2688a9660bb254051656b2ba771a38acad5fb7f7fe46fdd21457a857c8", "value_sha256": "4f3c8c2688a9660bb254051656b2ba771a38acad5fb7f7fe46fdd21457a857c8"}, {"shape": [1, 48, 128, 128], "sha256": "067f420ad6951dfff064c2a2d26537074cf1b8a6fa3850a5c80a78677503f890", "value_sha256": "067f420ad6951dfff064c2a2d26537074cf1b8a6fa3850a5c80a78677503f890"}], [{"shape": [1, 3, 10240], "sha256": "bb73667194e07aae5cc3d30fa2fbc15cf921c78d7016ae27bfc97a8bb0cc09f7", "value_sha256": "bb73667194e07aae5cc3d30fa2fbc15cf921c78d7016ae27bfc97a8bb0cc09f7"}, {"shape": [1, 48, 128, 128], "sha256": "98837a4082cf48204396c03042b18b84c6bafc6b398ebd6852f45af660c0f0d3", "value_sha256": "98837a4082cf48204396c03042b18b84c6bafc6b398ebd6852f45af660c0f0d3"}], [{"shape": [1, 2, 58, 256], "sha256": "325b425383bd9a7a6e914af7e54cc595a14d9987cbe7c308c96ed5beb6a8a63f", "value_sha256": "325b425383bd9a7a6e914af7e54cc595a14d9987cbe7c308c96ed5beb6a8a63f"}, {"shape": [1, 2, 58, 256], "sha256": "05ec6026468751e837c9b2f129b6b3330827d6102526c09fcbfb9a87b49d0560", "value_sha256": "05ec6026468751e837c9b2f129b6b3330827d6102526c09fcbfb9a87b49d0560"}, {"shape": [1, 58, 128], "sha256": "3bbef13d2f478d4def15e6b15869d999e09cf07f02a499af24066784a72b9edb", "value_sha256": "3bbef13d2f478d4def15e6b15869d999e09cf07f02a499af24066784a72b9edb"}, {"shape": [1, 14, 128], "sha256": "1abcb54411b56c34a0cd0bfa4ca920256c61bd50fcff14a2140d12de6e6cf348", "value_sha256": "1abcb54411b56c34a0cd0bfa4ca920256c61bd50fcff14a2140d12de6e6cf348"}], [{"shape": [1, 3, 10240], "sha256": "3e3ffd492867d8445bc1b9b42b426565db732e5add86a85a24041e1aed1d50b5", "value_sha256": "3e3ffd492867d8445bc1b9b42b426565db732e5add86a85a24041e1aed1d50b5"}, {"shape": [1, 48, 128, 128], "sha256": "dafa3585c9acccb5914ade9251e5533df9ffd0f05380a2e99ad342041dcc0b98", "value_sha256": "dafa3585c9acccb5914ade9251e5533df9ffd0f05380a2e99ad342041dcc0b98"}], [{"shape": [1, 3, 10240], "sha256": "c20f1e23c969c6e7f59c8fa7781d868a2b19aa6ae0b66cda658cdcd29a68cda2", "value_sha256": "c20f1e23c969c6e7f59c8fa7781d868a2b19aa6ae0b66cda658cdcd29a68cda2"}, {"shape": [1, 48, 128, 128], "sha256": "a0dde68ef7790d55314dc9db6e547a886b8d6870ebcf84eb4662d89f128d6b4a", "value_sha256": "a0dde68ef7790d55314dc9db6e547a886b8d6870ebcf84eb4662d89f128d6b4a"}], [{"shape": [1, 3, 10240], "sha256": "ec38527615247d9ca522db4f8fcfeb558bf9a234b07e8799b290e305c69bcce6", "value_sha256": "ec38527615247d9ca522db4f8fcfeb558bf9a234b07e8799b290e305c69bcce6"}, {"shape": [1, 48, 128, 128], "sha256": "779f4cfcb1fd123814363768cce1a803e1a8c0f01c7ec304df93ad568f623463", "value_sha256": "779f4cfcb1fd123814363768cce1a803e1a8c0f01c7ec304df93ad568f623463"}], [{"shape": [1, 2, 58, 256], "sha256": "6ab15b2e1edadf080918d1c74f5616d540039bb1ab0f5ced4dafd8e2a4a66da4", "value_sha256": "6ab15b2e1edadf080918d1c74f5616d540039bb1ab0f5ced4dafd8e2a4a66da4"}, {"shape": [1, 2, 58, 256], "sha256": "3f056e38b54925776587ff6144c3fb7240f43b28691697cdf6643fb1d848892d", "value_sha256": "3f056e38b54925776587ff6144c3fb7240f43b28691697cdf6643fb1d848892d"}, {"shape": [1, 58, 128], "sha256": "c2a0dcb5ad4087827d26739fa0a0296de5df94b3764e02b603da06014979c555", "value_sha256": "c2a0dcb5ad4087827d26739fa0a0296de5df94b3764e02b603da06014979c555"}, {"shape": [1, 14, 128], "sha256": "525e7e0ca6455d6931c5c945dd43e90aaf4dabf2d02a0d52a60d02006cefb2d8", "value_sha256": "525e7e0ca6455d6931c5c945dd43e90aaf4dabf2d02a0d52a60d02006cefb2d8"}]], "mtp": [[{"shape": [1, 2, 57, 256], "sha256": "7f1debf8246bc37d767a9eca4263fd440b2e2e261e4aec689bfb7890a626beaf", "value_sha256": "7f1debf8246bc37d767a9eca4263fd440b2e2e261e4aec689bfb7890a626beaf"}, {"shape": [1, 2, 57, 256], "sha256": "0bb507525d4209dfac234f774b301f6d154195afd5c78fd7d0fdad55b715008f", "value_sha256": "0bb507525d4209dfac234f774b301f6d154195afd5c78fd7d0fdad55b715008f"}, {"shape": [1, 57, 128], "sha256": "2f47eb6af4a4c2d8442aa1322a1d910bcd90ce9e8006ad19d1dd6d4bfeb6d453", "value_sha256": "2f47eb6af4a4c2d8442aa1322a1d910bcd90ce9e8006ad19d1dd6d4bfeb6d453"}, {"shape": [1, 14, 128], "sha256": "1ecb828fa7a6f7528b38d75459ef4e79a81089b1adf01319d3bbe58b3b93fecd", "value_sha256": "1ecb828fa7a6f7528b38d75459ef4e79a81089b1adf01319d3bbe58b3b93fecd"}]]} \ No newline at end of file diff --git a/docs/issue109-verify-gate/default-route-mismatch.jsonl b/docs/issue109-verify-gate/default-route-mismatch.jsonl new file mode 100644 index 0000000..3670606 --- /dev/null +++ b/docs/issue109-verify-gate/default-route-mismatch.jsonl @@ -0,0 +1,142 @@ +{"case":"prefill_compare","phase":"cold","part":"logits","shape":[1,1,248320],"exact":true} +{"case":"prefill_compare","phase":"cold","part":"hidden","shape":[1,1,10240],"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":0,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1010,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1011,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1013,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1014,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1015,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":2,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1030,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1031,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1036,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1037,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1038,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1032,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1033,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1034,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1035,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":3,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":6,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1070,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1071,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1076,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1077,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1078,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1072,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1073,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1074,"exact":true} +{"case":"layer","phase":"cold","index":0,"layer":1075,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":7,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":10,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1110,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1111,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1116,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1117,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1118,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1112,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1113,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1114,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1115,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":11,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":14,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1150,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1151,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1156,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1157,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1158,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1152,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1153,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1154,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1155,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":15,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":18,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1190,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1191,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1196,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1197,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1198,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1192,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1193,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1194,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1195,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":19,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":22,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1230,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1231,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1236,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1237,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1238,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1232,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1233,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1234,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1235,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":23,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":26,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1270,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1271,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1276,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1277,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1278,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1272,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1273,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1274,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1275,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":27,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":30,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1310,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1311,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1316,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1317,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1318,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1312,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1313,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1314,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1315,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":31,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":34,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1350,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1351,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1356,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1357,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1358,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1352,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1353,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1354,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1355,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":35,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":38,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1390,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1391,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1396,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1397,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1398,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1392,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1393,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1394,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1395,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":39,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":42,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1430,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1431,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1436,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1437,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1438,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1432,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1433,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1434,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1435,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":43,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":46,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1470,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1471,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1476,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1477,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1478,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1472,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1473,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1474,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":1475,"exact":false} +{"case":"layer","phase":"cold","index":0,"layer":47,"exact":false} +{"case":"verify_forward","phase":"cold","index":0,"ids":[760,1156,369,9859],"logits_exact":false,"logits_sha256":"e3ba038c8570911a72fadeba867f1c33e5103108ef9881bfcdc008907de90839","logits_different":948664,"logits_max_abs":0.828125,"hidden_exact":false,"hidden_sha256":"b3c2ef7bb9c3dfa85748d7af883210ae4393bd1b5af5397f243d632fc437552b","hidden_different":39596,"hidden_max_abs":0.53125} diff --git a/docs/issue109-verify-gate/final-primary.jsonl b/docs/issue109-verify-gate/final-primary.jsonl new file mode 100644 index 0000000..3ade11f --- /dev/null +++ b/docs/issue109-verify-gate/final-primary.jsonl @@ -0,0 +1,15 @@ +{"case":"complete_state","depth":1,"temperature":0.0,"exit":"max_tokens","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":1,"temperature":0.0,"exit":"stop","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":1,"temperature":0.6,"exit":"max_tokens","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"complete_state","depth":1,"temperature":0.6,"exit":"stop","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"complete_state","depth":2,"temperature":0.0,"exit":"max_tokens","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":2,"temperature":0.0,"exit":"stop","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":2,"temperature":0.6,"exit":"max_tokens","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"complete_state","depth":2,"temperature":0.6,"exit":"stop","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"complete_state","depth":3,"temperature":0.0,"exit":"max_tokens","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":3,"temperature":0.0,"exit":"stop","tokens":[11],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"9c41c06e776592492d6b69f6d20bad4de6c99e30c9abea1333f667755a40c49c","next_sha256":"1068b9e791272fda13d0c00cd623f7fb14807753f8536b92d9d688f7864b4f3a","old_checkpoint_rejected":true} +{"case":"complete_state","depth":3,"temperature":0.6,"exit":"max_tokens","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"complete_state","depth":3,"temperature":0.6,"exit":"stop","tokens":[314],"key_length":4,"trunk_offsets":[4,4,4,4,4,4,4,4,4,4,4,4],"mtp_offset":3,"reopened_cached_tokens":4,"state_sha256":"06e36aaaee43822c7fc71fd1ed554fb4cd5ab92a94dd88218894f25d56f69b89","next_sha256":"e819026b44ad53bcee190e9121bf347e1f9825171ad5c7e97a051062f2cf91b4","old_checkpoint_rejected":true} +{"case":"cancel","safe_final_state":false} +{"case":"forward","safe_final_state":false} +{"case":"capture_disabled","safe_final_state":false} diff --git a/docs/issue109-verify-gate/gate-native.jsonl b/docs/issue109-verify-gate/gate-native.jsonl new file mode 100644 index 0000000..a9fa0b7 --- /dev/null +++ b/docs/issue109-verify-gate/gate-native.jsonl @@ -0,0 +1,12 @@ +{"case":"gate","dtype":"bf16","phase":"prefill","values":65280,"exact":true} +{"case":"inject","phase":"prefill","values":65280,"exact":true} +{"case":"gate","dtype":"bf16","phase":"ar_decode","values":65280,"exact":true} +{"case":"inject","phase":"ar_decode","values":65280,"exact":true} +{"case":"gate","dtype":"bf16","phase":"decode_verify","values":65280,"exact":true} +{"case":"inject","phase":"decode_verify","values":65280,"exact":true} +{"case":"gate","dtype":"f16","phase":"prefill","values":63488,"exact":true} +{"case":"gate","dtype":"f16","phase":"ar_decode","values":63488,"exact":true} +{"case":"gate","dtype":"f16","phase":"decode_verify","values":63488,"exact":true} +{"case":"gate","dtype":"f32","phase":"prefill","values":65536,"exact":true} +{"case":"gate","dtype":"f32","phase":"ar_decode","values":65536,"exact":true} +{"case":"gate","dtype":"f32","phase":"decode_verify","values":65536,"exact":true} diff --git a/docs/issue109-verify-gate/gate-oracle.jsonl b/docs/issue109-verify-gate/gate-oracle.jsonl new file mode 100644 index 0000000..dcd3df1 --- /dev/null +++ b/docs/issue109-verify-gate/gate-oracle.jsonl @@ -0,0 +1,12 @@ +{"case":"gate","dtype":"bf16","phase":"prefill","count":65280,"sha256":"4278d0e794d68fdac18c7528d38c1f6ea2c9412117aaba69f413caddb148b252"} +{"case":"inject","dtype":"bf16","phase":"prefill","count":65280,"sha256":"253aee360f465fb04a5aae286344a5344938fbcacdf6f5d0be2a66ad566378af"} +{"case":"gate","dtype":"bf16","phase":"ar_decode","count":65280,"sha256":"4278d0e794d68fdac18c7528d38c1f6ea2c9412117aaba69f413caddb148b252"} +{"case":"inject","dtype":"bf16","phase":"ar_decode","count":65280,"sha256":"253aee360f465fb04a5aae286344a5344938fbcacdf6f5d0be2a66ad566378af"} +{"case":"gate","dtype":"bf16","phase":"decode_verify","count":65280,"sha256":"deba612e555c81b44cb06c0bdfcaf51a9beaee1ec813215d91f762a0a0f7b88c"} +{"case":"inject","dtype":"bf16","phase":"decode_verify","count":65280,"sha256":"3ce25d59ffa6aff2992424fbd04138083ce1326ed4deacdd97038e36ca9648aa"} +{"case":"gate","dtype":"f16","phase":"prefill","count":63488,"sha256":"4348e497cfa1e2d4cc5bbc56a068237bb57b8a4e644145c1eb0feefa94790154"} +{"case":"gate","dtype":"f16","phase":"ar_decode","count":63488,"sha256":"4348e497cfa1e2d4cc5bbc56a068237bb57b8a4e644145c1eb0feefa94790154"} +{"case":"gate","dtype":"f16","phase":"decode_verify","count":63488,"sha256":"4348e497cfa1e2d4cc5bbc56a068237bb57b8a4e644145c1eb0feefa94790154"} +{"case":"gate","dtype":"f32","phase":"prefill","count":65536,"sha256":"2c5e478f548c9bf676e1fdea6501484016f0555b0ae1383a962436c0b68608cd"} +{"case":"gate","dtype":"f32","phase":"ar_decode","count":65536,"sha256":"2c5e478f548c9bf676e1fdea6501484016f0555b0ae1383a962436c0b68608cd"} +{"case":"gate","dtype":"f32","phase":"decode_verify","count":65536,"sha256":"2d2d76ac7e415cf9c9ce1bd67fc26b03ea0a62a20ba91387a609e16ee6636050"} diff --git a/docs/issue109-verify-gate/model-oracle.jsonl b/docs/issue109-verify-gate/model-oracle.jsonl new file mode 100644 index 0000000..ed397c0 --- /dev/null +++ b/docs/issue109-verify-gate/model-oracle.jsonl @@ -0,0 +1,33 @@ +{"case":"environment","overrides":{"MTPLX_QWEN4_VERIFY_SDPA_HEAD_CHUNK":"0","MTPLX_SKIP_VERIFY_SNAPSHOT":"0","MTPLX_FAMILY_CAPTURE_COMMIT":"1","MTPLX_FUSED_HC_V3":"1","MTPLX_FUSED_GDN_INPROJ":"1","MTPLX_FUSED_GATE_UP":"1","MTPLX_FUSED_GDN_CONVNORM":"1","MTPLX_FUSED_GDN_STEP":"1","MTPLX_FUSED_CONVNORM_VERIFY":"1","MTPLX_QSA_GATHER":"1","MTPLX_COMPILED_GDN":"1","MTPLX_QWEN4EXP_COMPILE":"1","MTPLX_QWEN4_BATCHED_TARGET_DISTRIBUTIONS":"1","MTPLX_QWEN4_FIXED_M4_VERIFY":"1","MTPLX_QWEN4_COMPILED_MTP_PREPARE":"1","MTPLX_QWEN4_RELAXED_DRAFT_TIES":"1","MTPLX_QWEN4_OPDIET":"1","MTPLX_QWEN4_PLE_PREFILL_LOOKAHEAD":"1","MTPLX_QWEN4_PLE_FIRST_GATHER_EARLY":"1","MTPLX_SESSION_BANK_SHED_BOUNDARIES":"1","MTPLX_SESSION_BANK_PROTECTED_TERMINAL":"1","MTPLX_NGRAM_PREWARM":"auto","MTPLX_QWEN4_VERIFY_GLUE":"1","MTPLX_QWEN4_VERIFY_GLUE_ITEMS":"qsa_rope,qsa_rope_idx","MTPLX_QSA_M4_FUSED_KV_GATHER":"1","MTPLX_QSA_GATHER_MAX_ROWS":"32","MTPLX_BATCH_TARGET_ARRAYS":"1","MTPLX_LAZY_TARGET_DISTRIBUTIONS":"0","MTPLX_COMPILED_VERIFY":"1","MTPLX_NAX_VERIFY":"0","MTPLX_QWEN4_PREFILL_WIDE_CHUNK":"4096","MTPLX_QSA_PREFILL_WIDE_MIN_CONTEXT":"16384","MTPLX_SUSTAINED_PREFILL":"1","MTPLX_PREFILL_CHUNK_SIZE":"2048","MTPLX_CONTEXT_COPY":"0"}} +{"case":"prefill_compare","phase":"cold","part":"logits","shape":[1,1,248320],"exact":true} +{"case":"prefill_compare","phase":"cold","part":"hidden","shape":[1,1,10240],"exact":true} +{"case":"tokens","phase":"cold","ids":[760]} +{"case":"verify_forward","phase":"cold","index":0,"ids":[760,1156,369,9859],"logits_exact":true,"logits_sha256":"16ff543d6e28cdbe7dbd56891e061ddd4b04291a9ca25bdf1f4437b4e3c5528d","hidden_exact":true,"hidden_sha256":"b9cc3aa8c913e508793b7486f77a10e7acd4698436060b1b6bf8abfbd59edee6"} +{"case":"tokens","phase":"cold","ids":[1156]} +{"case":"tokens","phase":"cold","ids":[6587]} +{"case":"verify_forward","phase":"cold","index":1,"ids":[6587,728,310,1698],"logits_exact":true,"logits_sha256":"24e58b3561aac59d52bf55183bc9b911432481e9613a5b98f1442945bfd6903a","hidden_exact":true,"hidden_sha256":"eddb5de99ea61034c3f0eb46ef1a515cae10c92333d069afce68cc4a5e5f9e3e"} +{"case":"tokens","phase":"cold","ids":[728,310,1698]} +{"case":"tokens","phase":"cold","ids":[494]} +{"case":"verify_forward","phase":"cold","index":2,"ids":[494,799,310,5600],"logits_exact":true,"logits_sha256":"f5f2c33a36fce4088f222ec7448389865dd74ea4c017e4e2e49f157693a33d64","hidden_exact":true,"hidden_sha256":"330d68ed62e77a12e38fe7677ffd2b9548f655c7d33e6e1607e431d1b8957e86"} +{"case":"tokens","phase":"cold","ids":[799,310,5600]} +{"case":"tokens","phase":"cold","ids":[13]} +{"case":"verify_forward","phase":"cold","index":3,"ids":[13,1061],"logits_exact":true,"logits_sha256":"f44498bbf6e6e9d8d909c0e4db24b5ef9bda5866b4a6a14e188865432538643c","hidden_exact":true,"hidden_sha256":"dec8b787a562878d091c854235120732e98f5781751b6d6a428e5cd02228deb0"} +{"case":"tokens","phase":"cold","ids":[1061]} +{"case":"cache_arrays","phase":"cold","values_exact":true,"zero_sign_differences":[["trunk",35,0]],"key35_bit_coordinates":[[0,1,0,2]]} +{"case":"turn","phase":"cold","tokens":[760,1156,6587,728,310,1698,494,799,310,5600,13,1061],"cached":0,"verify_calls":4,"final_exact":true} +{"case":"prefill_compare","phase":"warm","part":"logits","shape":[1,1,248320],"exact":true} +{"case":"prefill_compare","phase":"warm","part":"hidden","shape":[1,18,10240],"exact":false} +{"case":"tokens","phase":"warm","ids":[760]} +{"case":"verify_forward","phase":"warm","index":0,"ids":[760,1156,6587,728],"logits_exact":true,"logits_sha256":"dbab0d12f25f2be2234d58d45f86219af62deb20e22b0d73a77aa5e7b722d082","hidden_exact":true,"hidden_sha256":"8f9aebc38d1a3e550bed6a4663eedac7a5ed3ce61d836d1cecdfa11da67ebd0d"} +{"case":"tokens","phase":"warm","ids":[1156,6587,728]} +{"case":"tokens","phase":"warm","ids":[310]} +{"case":"verify_forward","phase":"warm","index":1,"ids":[310,2962,24217,494],"logits_exact":true,"logits_sha256":"d6b8e6afe3c6f5af068f240e0e69b3875311aac6929b3d5a38ab3aeaa1bf227c","hidden_exact":true,"hidden_sha256":"52f20217ed43d8e59ddbe037cb77f56cc3d8ef473fd1963948fff6faf8ad4212"} +{"case":"tokens","phase":"warm","ids":[2962,24217]} +{"case":"tokens","phase":"warm","ids":[13]} +{"case":"verify_forward","phase":"warm","index":2,"ids":[13,353,2582,3804],"logits_exact":true,"logits_sha256":"048e9343d4268d98455a01f7c73ee47af78bc811ef9e7680a72cae59336b9989","hidden_exact":true,"hidden_sha256":"8e8b07fb20baa33ad64cc76ff64403a434d520c627a182a224cf033a5a14e5d4"} +{"case":"tokens","phase":"warm","ids":[353]} +{"case":"tokens","phase":"warm","ids":[8334]} +{"case":"verify_forward","phase":"warm","index":3,"ids":[8334,29014,494],"logits_exact":true,"logits_sha256":"82d671c6ac7b3a0952e60ef554ca670562fd01ef25c37bd10bc27025768ea0f2","hidden_exact":true,"hidden_sha256":"d1bc90f284364eae8bac80a5da6ab64c9c76d6994bb09ed463a17d67e25c016e"} +{"case":"tokens","phase":"warm","ids":[29014,494]} +{"case":"cache_arrays","phase":"warm","values_exact":true,"zero_sign_differences":[["trunk",35,0]],"key35_bit_coordinates":[[0,1,0,2]]} +{"case":"turn","phase":"warm","tokens":[760,1156,6587,728,310,2962,24217,13,353,8334,29014,494],"cached":58,"verify_calls":4,"final_exact":true} diff --git a/docs/issue109-verify-gate/numeric.jsonl b/docs/issue109-verify-gate/numeric.jsonl new file mode 100644 index 0000000..15e45c7 --- /dev/null +++ b/docs/issue109-verify-gate/numeric.jsonl @@ -0,0 +1,3 @@ +{"case":"bf16_gate","gate":-6.84375,"eager":[0.00106048583984375,0.00106048583984375,0.00106048583984375,0.00106048583984375],"compiled":[0.001068115234375,0.001068115234375,0.001068115234375,0.001068115234375]} +{"case":"qsa_divisor","operand_bits":1093993715,"eager":[0.13258253037929535,0.13258254528045654,0.0883883461356163,0.0],"compiled":[0.13258251547813416,0.13258251547813416,0.08838833123445511,0.0]} +{"case":"yarn_amplitude","operand_bits":1066516124,"eager":[1.7079442739486694,1.707944393157959,1.13862943649292,0.0],"compiled":[1.7079435586929321,1.7079436779022217,1.1386289596557617,0.0]} diff --git a/docs/issue109-verify-gate/prefill-zero-sign.json b/docs/issue109-verify-gate/prefill-zero-sign.json new file mode 100644 index 0000000..55d16a1 --- /dev/null +++ b/docs/issue109-verify-gate/prefill-zero-sign.json @@ -0,0 +1,21 @@ +{ + "case": "prefill_zero_sign", + "shape": [ + 1, + 2, + 46, + 256 + ], + "layer": 35, + "coordinate": [ + 0, + 1, + 0, + 2 + ], + "native_bits": "0x80000000", + "oracle_bits": "0x0", + "native_sha256": "d81b466dea1ff5b774e86c0af47069f555bbb59abb0f3f61165f5bc51aa28ac6", + "oracle_sha256": "520dd44032eda4789b123296b5499afb88f0d88d6cdccffa04ebe06c2bc3a853", + "issue": 114 +} diff --git a/docs/issue109-verify-gate/product.jsonl b/docs/issue109-verify-gate/product.jsonl new file mode 100644 index 0000000..40faa93 --- /dev/null +++ b/docs/issue109-verify-gate/product.jsonl @@ -0,0 +1,16 @@ +{"case":"verify_forward","record":{"index":0,"ids":[760,1156,369,9859],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"16ff543d6e28cdbe7dbd56891e061ddd4b04291a9ca25bdf1f4437b4e3c5528d"},"hidden":{"shape":[1,4,10240],"sha256":"b9cc3aa8c913e508793b7486f77a10e7acd4698436060b1b6bf8abfbd59edee6"}}} +{"case":"verify_forward","record":{"index":1,"ids":[6587,728,310,1698],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"24e58b3561aac59d52bf55183bc9b911432481e9613a5b98f1442945bfd6903a"},"hidden":{"shape":[1,4,10240],"sha256":"eddb5de99ea61034c3f0eb46ef1a515cae10c92333d069afce68cc4a5e5f9e3e"}}} +{"case":"verify_forward","record":{"index":2,"ids":[494,799,310,5600],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"f5f2c33a36fce4088f222ec7448389865dd74ea4c017e4e2e49f157693a33d64"},"hidden":{"shape":[1,4,10240],"sha256":"330d68ed62e77a12e38fe7677ffd2b9548f655c7d33e6e1607e431d1b8957e86"}}} +{"case":"verify_forward","record":{"index":3,"ids":[13,1061],"verify":true,"logits":{"shape":[1,2,248320],"sha256":"f44498bbf6e6e9d8d909c0e4db24b5ef9bda5866b4a6a14e188865432538643c"},"hidden":{"shape":[1,2,10240],"sha256":"dec8b787a562878d091c854235120732e98f5781751b6d6a428e5cd02228deb0"}}} +{"case":"cold","prompt":[248045,8678,198,24342,286,4879,369,716,310,3238,13,13262,678,7047,9522,321,10419,11,6992,5774,310,279,16198,1973,24366,24150,362,13,248046,198,248045,846,198,2427,494,799,310,5600,13,248046,198,248045,74455,198,248068,198],"tokens":[760,1156,6587,728,310,1698,494,799,310,5600,13,1061],"cached":0,"state_sha256":"eb61c20e4a89bb55c0284d86587966af49d6c601e5421b50eff0762ecf6842b1"} +{"case":"verify_forward","record":{"index":0,"ids":[760,1156,6587,728],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"dbab0d12f25f2be2234d58d45f86219af62deb20e22b0d73a77aa5e7b722d082"},"hidden":{"shape":[1,4,10240],"sha256":"8f9aebc38d1a3e550bed6a4663eedac7a5ed3ce61d836d1cecdfa11da67ebd0d"}}} +{"case":"verify_forward","record":{"index":1,"ids":[310,2962,24217,494],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"d6b8e6afe3c6f5af068f240e0e69b3875311aac6929b3d5a38ab3aeaa1bf227c"},"hidden":{"shape":[1,4,10240],"sha256":"52f20217ed43d8e59ddbe037cb77f56cc3d8ef473fd1963948fff6faf8ad4212"}}} +{"case":"verify_forward","record":{"index":2,"ids":[13,353,2582,3804],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"048e9343d4268d98455a01f7c73ee47af78bc811ef9e7680a72cae59336b9989"},"hidden":{"shape":[1,4,10240],"sha256":"8e8b07fb20baa33ad64cc76ff64403a434d520c627a182a224cf033a5a14e5d4"}}} +{"case":"verify_forward","record":{"index":3,"ids":[8334,29014,494],"verify":true,"logits":{"shape":[1,3,248320],"sha256":"82d671c6ac7b3a0952e60ef554ca670562fd01ef25c37bd10bc27025768ea0f2"},"hidden":{"shape":[1,3,10240],"sha256":"d1bc90f284364eae8bac80a5da6ab64c9c76d6994bb09ed463a17d67e25c016e"}}} +{"case":"warm","prompt":[248045,8678,198,24342,286,4879,369,716,310,3238,13,13262,678,7047,9522,321,10419,11,6992,5774,310,279,16198,1973,24366,24150,362,13,248046,198,248045,846,198,2427,494,799,310,5600,13,248046,198,248045,74455,198,248068,198,760,1156,6587,728,310,1698,494,799,310,5600,13,1061,198,248069,271,248046,198,248045,846,198,22791,24217,13,248046,198,248045,74455,198,248068,198],"tokens":[760,1156,6587,728,310,2962,24217,13,353,8334,29014,494],"cached":58,"state_sha256":"e6cb7355aaa92a3569a365c94c55aa7a50bd731dc04f6fa320da8520d182e2f8"} +{"case":"verify_forward","record":{"index":0,"ids":[760,1156,6587,728],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"dbab0d12f25f2be2234d58d45f86219af62deb20e22b0d73a77aa5e7b722d082"},"hidden":{"shape":[1,4,10240],"sha256":"8f9aebc38d1a3e550bed6a4663eedac7a5ed3ce61d836d1cecdfa11da67ebd0d"}}} +{"case":"verify_forward","record":{"index":1,"ids":[310,2962,24217,494],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"d6b8e6afe3c6f5af068f240e0e69b3875311aac6929b3d5a38ab3aeaa1bf227c"},"hidden":{"shape":[1,4,10240],"sha256":"52f20217ed43d8e59ddbe037cb77f56cc3d8ef473fd1963948fff6faf8ad4212"}}} +{"case":"verify_forward","record":{"index":2,"ids":[13,353,2582,3804],"verify":true,"logits":{"shape":[1,4,248320],"sha256":"048e9343d4268d98455a01f7c73ee47af78bc811ef9e7680a72cae59336b9989"},"hidden":{"shape":[1,4,10240],"sha256":"8e8b07fb20baa33ad64cc76ff64403a434d520c627a182a224cf033a5a14e5d4"}}} +{"case":"verify_forward","record":{"index":3,"ids":[8334,29014,494],"verify":true,"logits":{"shape":[1,3,248320],"sha256":"82d671c6ac7b3a0952e60ef554ca670562fd01ef25c37bd10bc27025768ea0f2"},"hidden":{"shape":[1,3,10240],"sha256":"d1bc90f284364eae8bac80a5da6ab64c9c76d6994bb09ed463a17d67e25c016e"}}} +{"case":"reopened","prompt":[248045,8678,198,24342,286,4879,369,716,310,3238,13,13262,678,7047,9522,321,10419,11,6992,5774,310,279,16198,1973,24366,24150,362,13,248046,198,248045,846,198,2427,494,799,310,5600,13,248046,198,248045,74455,198,248068,198,760,1156,6587,728,310,1698,494,799,310,5600,13,1061,198,248069,271,248046,198,248045,846,198,22791,24217,13,248046,198,248045,74455,198,248068,198],"tokens":[760,1156,6587,728,310,2962,24217,13,353,8334,29014,494],"cached":58,"state_sha256":"e6cb7355aaa92a3569a365c94c55aa7a50bd731dc04f6fa320da8520d182e2f8"} +{"case":"checkpoint","actual_old_rejected":true,"warm_reopened_state_exact":true} diff --git a/docs/issue109-verify-gate/reopened-native-arrays.json b/docs/issue109-verify-gate/reopened-native-arrays.json new file mode 100644 index 0000000..df8962a --- /dev/null +++ b/docs/issue109-verify-gate/reopened-native-arrays.json @@ -0,0 +1 @@ +{"trunk":[[{"shape":[1,3,10240],"sha256":"1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84","value_sha256":"1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84"},{"shape":[1,48,128,128],"sha256":"1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf","value_sha256":"1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf"}],[{"shape":[1,3,10240],"sha256":"1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232","value_sha256":"1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232"},{"shape":[1,48,128,128],"sha256":"b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf","value_sha256":"b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf"},{"shape":[1,9,10240],"sha256":"eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08","value_sha256":"eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08"},{"shape":[1,2],"sha256":"b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152","value_sha256":"b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152"}],[{"shape":[1,3,10240],"sha256":"1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2","value_sha256":"1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2"},{"shape":[1,48,128,128],"sha256":"403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34","value_sha256":"403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34"}],[{"shape":[1,2,88,256],"sha256":"b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f","value_sha256":"b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f"},{"shape":[1,2,88,256],"sha256":"eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24","value_sha256":"eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24"},{"shape":[1,88,128],"sha256":"1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748","value_sha256":"1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748"},{"shape":[1,22,128],"sha256":"4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a","value_sha256":"4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a"}],[{"shape":[1,3,10240],"sha256":"431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda","value_sha256":"431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda"},{"shape":[1,48,128,128],"sha256":"c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f","value_sha256":"c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f"}],[{"shape":[1,3,10240],"sha256":"f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a","value_sha256":"f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a"},{"shape":[1,48,128,128],"sha256":"8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f","value_sha256":"8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f"}],[{"shape":[1,3,10240],"sha256":"3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d","value_sha256":"3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d"},{"shape":[1,48,128,128],"sha256":"bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f","value_sha256":"bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f"}],[{"shape":[1,2,88,256],"sha256":"9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b","value_sha256":"9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b"},{"shape":[1,2,88,256],"sha256":"b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba","value_sha256":"b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba"},{"shape":[1,88,128],"sha256":"491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae","value_sha256":"491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae"},{"shape":[1,22,128],"sha256":"104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb","value_sha256":"104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb"}],[{"shape":[1,3,10240],"sha256":"e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57","value_sha256":"e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57"},{"shape":[1,48,128,128],"sha256":"0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43","value_sha256":"0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43"}],[{"shape":[1,3,10240],"sha256":"f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0","value_sha256":"f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0"},{"shape":[1,48,128,128],"sha256":"75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52","value_sha256":"75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52"}],[{"shape":[1,3,10240],"sha256":"c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc","value_sha256":"c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc"},{"shape":[1,48,128,128],"sha256":"4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa","value_sha256":"4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa"}],[{"shape":[1,2,88,256],"sha256":"7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe","value_sha256":"7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe"},{"shape":[1,2,88,256],"sha256":"40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac","value_sha256":"40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac"},{"shape":[1,88,128],"sha256":"6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493","value_sha256":"6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493"},{"shape":[1,22,128],"sha256":"c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d","value_sha256":"c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d"}],[{"shape":[1,3,10240],"sha256":"8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d","value_sha256":"8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d"},{"shape":[1,48,128,128],"sha256":"976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399","value_sha256":"976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399"}],[{"shape":[1,3,10240],"sha256":"6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1","value_sha256":"6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1"},{"shape":[1,48,128,128],"sha256":"077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d","value_sha256":"077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d"}],[{"shape":[1,3,10240],"sha256":"d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280","value_sha256":"d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280"},{"shape":[1,48,128,128],"sha256":"c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080","value_sha256":"c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080"}],[{"shape":[1,2,88,256],"sha256":"be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7","value_sha256":"be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7"},{"shape":[1,2,88,256],"sha256":"abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc","value_sha256":"abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc"},{"shape":[1,88,128],"sha256":"c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4","value_sha256":"c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4"},{"shape":[1,22,128],"sha256":"072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043","value_sha256":"072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043"}],[{"shape":[1,3,10240],"sha256":"7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154","value_sha256":"7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154"},{"shape":[1,48,128,128],"sha256":"e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40","value_sha256":"e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40"}],[{"shape":[1,3,10240],"sha256":"d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657","value_sha256":"d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657"},{"shape":[1,48,128,128],"sha256":"465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164","value_sha256":"465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164"}],[{"shape":[1,3,10240],"sha256":"379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c","value_sha256":"379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c"},{"shape":[1,48,128,128],"sha256":"be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015","value_sha256":"be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015"}],[{"shape":[1,2,88,256],"sha256":"c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735","value_sha256":"c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735"},{"shape":[1,2,88,256],"sha256":"efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1","value_sha256":"efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1"},{"shape":[1,88,128],"sha256":"3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e","value_sha256":"3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e"},{"shape":[1,22,128],"sha256":"ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623","value_sha256":"ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623"}],[{"shape":[1,3,10240],"sha256":"09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d","value_sha256":"09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d"},{"shape":[1,48,128,128],"sha256":"1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8","value_sha256":"1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8"}],[{"shape":[1,3,10240],"sha256":"a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758","value_sha256":"a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758"},{"shape":[1,48,128,128],"sha256":"23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631","value_sha256":"23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631"}],[{"shape":[1,3,10240],"sha256":"9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6","value_sha256":"9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6"},{"shape":[1,48,128,128],"sha256":"ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29","value_sha256":"ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29"}],[{"shape":[1,2,88,256],"sha256":"7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33","value_sha256":"7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33"},{"shape":[1,2,88,256],"sha256":"3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08","value_sha256":"3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08"},{"shape":[1,88,128],"sha256":"6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa","value_sha256":"6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa"},{"shape":[1,22,128],"sha256":"418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a","value_sha256":"418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a"}],[{"shape":[1,3,10240],"sha256":"71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b","value_sha256":"71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b"},{"shape":[1,48,128,128],"sha256":"27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5","value_sha256":"27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5"}],[{"shape":[1,3,10240],"sha256":"86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146","value_sha256":"86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146"},{"shape":[1,48,128,128],"sha256":"85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7","value_sha256":"85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7"}],[{"shape":[1,3,10240],"sha256":"0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49","value_sha256":"0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49"},{"shape":[1,48,128,128],"sha256":"a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e","value_sha256":"a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e"}],[{"shape":[1,2,88,256],"sha256":"67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45","value_sha256":"67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45"},{"shape":[1,2,88,256],"sha256":"c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b","value_sha256":"c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b"},{"shape":[1,88,128],"sha256":"13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854","value_sha256":"13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854"},{"shape":[1,22,128],"sha256":"c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031","value_sha256":"c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031"}],[{"shape":[1,3,10240],"sha256":"1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073","value_sha256":"1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073"},{"shape":[1,48,128,128],"sha256":"d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03","value_sha256":"d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03"}],[{"shape":[1,3,10240],"sha256":"c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1","value_sha256":"c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1"},{"shape":[1,48,128,128],"sha256":"d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275","value_sha256":"d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275"}],[{"shape":[1,3,10240],"sha256":"910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f","value_sha256":"910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f"},{"shape":[1,48,128,128],"sha256":"1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a","value_sha256":"1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a"}],[{"shape":[1,2,88,256],"sha256":"35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d","value_sha256":"35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d"},{"shape":[1,2,88,256],"sha256":"74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b","value_sha256":"74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b"},{"shape":[1,88,128],"sha256":"ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386","value_sha256":"ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386"},{"shape":[1,22,128],"sha256":"f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16","value_sha256":"f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16"}],[{"shape":[1,3,10240],"sha256":"a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71","value_sha256":"a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71"},{"shape":[1,48,128,128],"sha256":"19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7","value_sha256":"19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7"}],[{"shape":[1,3,10240],"sha256":"dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6","value_sha256":"dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6"},{"shape":[1,48,128,128],"sha256":"da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3","value_sha256":"da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3"}],[{"shape":[1,3,10240],"sha256":"8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160","value_sha256":"8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160"},{"shape":[1,48,128,128],"sha256":"f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf","value_sha256":"f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf"}],[{"shape":[1,2,88,256],"sha256":"061f8fe052fe21c8505782c220e03d09ab31deb93e7987709c55cd5dc3b778bd","value_sha256":"98186c7fec2498072f93b621a7f5b14456d4a67b0548a006353d87b4e4c2e89f"},{"shape":[1,2,88,256],"sha256":"e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a","value_sha256":"e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a"},{"shape":[1,88,128],"sha256":"4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3","value_sha256":"4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3"},{"shape":[1,22,128],"sha256":"be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c","value_sha256":"be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c"}],[{"shape":[1,3,10240],"sha256":"05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350","value_sha256":"05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350"},{"shape":[1,48,128,128],"sha256":"d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733","value_sha256":"d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733"}],[{"shape":[1,3,10240],"sha256":"405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d","value_sha256":"405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d"},{"shape":[1,48,128,128],"sha256":"0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20","value_sha256":"0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20"}],[{"shape":[1,3,10240],"sha256":"72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5","value_sha256":"72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5"},{"shape":[1,48,128,128],"sha256":"5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c","value_sha256":"5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c"}],[{"shape":[1,2,88,256],"sha256":"29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7","value_sha256":"29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7"},{"shape":[1,2,88,256],"sha256":"d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335","value_sha256":"d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335"},{"shape":[1,88,128],"sha256":"5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d","value_sha256":"5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d"},{"shape":[1,22,128],"sha256":"9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840","value_sha256":"9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840"}],[{"shape":[1,3,10240],"sha256":"30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb","value_sha256":"30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb"},{"shape":[1,48,128,128],"sha256":"3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d","value_sha256":"3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d"}],[{"shape":[1,3,10240],"sha256":"f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768","value_sha256":"f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768"},{"shape":[1,48,128,128],"sha256":"0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66","value_sha256":"0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66"}],[{"shape":[1,3,10240],"sha256":"733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d","value_sha256":"733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d"},{"shape":[1,48,128,128],"sha256":"59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af","value_sha256":"59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af"}],[{"shape":[1,2,88,256],"sha256":"6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c","value_sha256":"6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c"},{"shape":[1,2,88,256],"sha256":"fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934","value_sha256":"fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934"},{"shape":[1,88,128],"sha256":"eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a","value_sha256":"eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a"},{"shape":[1,22,128],"sha256":"77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02","value_sha256":"77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02"}],[{"shape":[1,3,10240],"sha256":"e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f","value_sha256":"e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f"},{"shape":[1,48,128,128],"sha256":"df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493","value_sha256":"df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493"}],[{"shape":[1,3,10240],"sha256":"9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042","value_sha256":"9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042"},{"shape":[1,48,128,128],"sha256":"a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589","value_sha256":"a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589"}],[{"shape":[1,3,10240],"sha256":"f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab","value_sha256":"f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab"},{"shape":[1,48,128,128],"sha256":"b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5","value_sha256":"b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5"}],[{"shape":[1,2,88,256],"sha256":"161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513","value_sha256":"161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513"},{"shape":[1,2,88,256],"sha256":"9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c","value_sha256":"9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c"},{"shape":[1,88,128],"sha256":"810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e","value_sha256":"810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e"},{"shape":[1,22,128],"sha256":"17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899","value_sha256":"17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899"}]],"mtp":[[{"shape":[1,2,87,256],"sha256":"675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352","value_sha256":"675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352"},{"shape":[1,2,87,256],"sha256":"8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9","value_sha256":"8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9"},{"shape":[1,87,128],"sha256":"824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d","value_sha256":"824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d"},{"shape":[1,21,128],"sha256":"85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b","value_sha256":"85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b"}]]} \ No newline at end of file diff --git a/docs/issue109-verify-gate/warm-native-arrays.json b/docs/issue109-verify-gate/warm-native-arrays.json new file mode 100644 index 0000000..df8962a --- /dev/null +++ b/docs/issue109-verify-gate/warm-native-arrays.json @@ -0,0 +1 @@ +{"trunk":[[{"shape":[1,3,10240],"sha256":"1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84","value_sha256":"1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84"},{"shape":[1,48,128,128],"sha256":"1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf","value_sha256":"1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf"}],[{"shape":[1,3,10240],"sha256":"1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232","value_sha256":"1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232"},{"shape":[1,48,128,128],"sha256":"b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf","value_sha256":"b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf"},{"shape":[1,9,10240],"sha256":"eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08","value_sha256":"eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08"},{"shape":[1,2],"sha256":"b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152","value_sha256":"b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152"}],[{"shape":[1,3,10240],"sha256":"1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2","value_sha256":"1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2"},{"shape":[1,48,128,128],"sha256":"403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34","value_sha256":"403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34"}],[{"shape":[1,2,88,256],"sha256":"b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f","value_sha256":"b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f"},{"shape":[1,2,88,256],"sha256":"eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24","value_sha256":"eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24"},{"shape":[1,88,128],"sha256":"1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748","value_sha256":"1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748"},{"shape":[1,22,128],"sha256":"4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a","value_sha256":"4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a"}],[{"shape":[1,3,10240],"sha256":"431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda","value_sha256":"431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda"},{"shape":[1,48,128,128],"sha256":"c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f","value_sha256":"c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f"}],[{"shape":[1,3,10240],"sha256":"f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a","value_sha256":"f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a"},{"shape":[1,48,128,128],"sha256":"8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f","value_sha256":"8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f"}],[{"shape":[1,3,10240],"sha256":"3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d","value_sha256":"3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d"},{"shape":[1,48,128,128],"sha256":"bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f","value_sha256":"bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f"}],[{"shape":[1,2,88,256],"sha256":"9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b","value_sha256":"9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b"},{"shape":[1,2,88,256],"sha256":"b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba","value_sha256":"b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba"},{"shape":[1,88,128],"sha256":"491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae","value_sha256":"491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae"},{"shape":[1,22,128],"sha256":"104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb","value_sha256":"104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb"}],[{"shape":[1,3,10240],"sha256":"e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57","value_sha256":"e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57"},{"shape":[1,48,128,128],"sha256":"0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43","value_sha256":"0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43"}],[{"shape":[1,3,10240],"sha256":"f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0","value_sha256":"f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0"},{"shape":[1,48,128,128],"sha256":"75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52","value_sha256":"75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52"}],[{"shape":[1,3,10240],"sha256":"c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc","value_sha256":"c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc"},{"shape":[1,48,128,128],"sha256":"4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa","value_sha256":"4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa"}],[{"shape":[1,2,88,256],"sha256":"7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe","value_sha256":"7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe"},{"shape":[1,2,88,256],"sha256":"40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac","value_sha256":"40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac"},{"shape":[1,88,128],"sha256":"6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493","value_sha256":"6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493"},{"shape":[1,22,128],"sha256":"c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d","value_sha256":"c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d"}],[{"shape":[1,3,10240],"sha256":"8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d","value_sha256":"8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d"},{"shape":[1,48,128,128],"sha256":"976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399","value_sha256":"976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399"}],[{"shape":[1,3,10240],"sha256":"6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1","value_sha256":"6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1"},{"shape":[1,48,128,128],"sha256":"077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d","value_sha256":"077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d"}],[{"shape":[1,3,10240],"sha256":"d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280","value_sha256":"d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280"},{"shape":[1,48,128,128],"sha256":"c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080","value_sha256":"c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080"}],[{"shape":[1,2,88,256],"sha256":"be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7","value_sha256":"be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7"},{"shape":[1,2,88,256],"sha256":"abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc","value_sha256":"abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc"},{"shape":[1,88,128],"sha256":"c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4","value_sha256":"c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4"},{"shape":[1,22,128],"sha256":"072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043","value_sha256":"072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043"}],[{"shape":[1,3,10240],"sha256":"7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154","value_sha256":"7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154"},{"shape":[1,48,128,128],"sha256":"e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40","value_sha256":"e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40"}],[{"shape":[1,3,10240],"sha256":"d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657","value_sha256":"d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657"},{"shape":[1,48,128,128],"sha256":"465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164","value_sha256":"465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164"}],[{"shape":[1,3,10240],"sha256":"379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c","value_sha256":"379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c"},{"shape":[1,48,128,128],"sha256":"be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015","value_sha256":"be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015"}],[{"shape":[1,2,88,256],"sha256":"c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735","value_sha256":"c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735"},{"shape":[1,2,88,256],"sha256":"efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1","value_sha256":"efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1"},{"shape":[1,88,128],"sha256":"3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e","value_sha256":"3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e"},{"shape":[1,22,128],"sha256":"ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623","value_sha256":"ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623"}],[{"shape":[1,3,10240],"sha256":"09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d","value_sha256":"09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d"},{"shape":[1,48,128,128],"sha256":"1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8","value_sha256":"1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8"}],[{"shape":[1,3,10240],"sha256":"a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758","value_sha256":"a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758"},{"shape":[1,48,128,128],"sha256":"23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631","value_sha256":"23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631"}],[{"shape":[1,3,10240],"sha256":"9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6","value_sha256":"9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6"},{"shape":[1,48,128,128],"sha256":"ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29","value_sha256":"ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29"}],[{"shape":[1,2,88,256],"sha256":"7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33","value_sha256":"7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33"},{"shape":[1,2,88,256],"sha256":"3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08","value_sha256":"3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08"},{"shape":[1,88,128],"sha256":"6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa","value_sha256":"6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa"},{"shape":[1,22,128],"sha256":"418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a","value_sha256":"418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a"}],[{"shape":[1,3,10240],"sha256":"71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b","value_sha256":"71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b"},{"shape":[1,48,128,128],"sha256":"27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5","value_sha256":"27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5"}],[{"shape":[1,3,10240],"sha256":"86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146","value_sha256":"86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146"},{"shape":[1,48,128,128],"sha256":"85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7","value_sha256":"85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7"}],[{"shape":[1,3,10240],"sha256":"0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49","value_sha256":"0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49"},{"shape":[1,48,128,128],"sha256":"a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e","value_sha256":"a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e"}],[{"shape":[1,2,88,256],"sha256":"67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45","value_sha256":"67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45"},{"shape":[1,2,88,256],"sha256":"c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b","value_sha256":"c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b"},{"shape":[1,88,128],"sha256":"13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854","value_sha256":"13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854"},{"shape":[1,22,128],"sha256":"c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031","value_sha256":"c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031"}],[{"shape":[1,3,10240],"sha256":"1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073","value_sha256":"1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073"},{"shape":[1,48,128,128],"sha256":"d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03","value_sha256":"d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03"}],[{"shape":[1,3,10240],"sha256":"c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1","value_sha256":"c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1"},{"shape":[1,48,128,128],"sha256":"d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275","value_sha256":"d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275"}],[{"shape":[1,3,10240],"sha256":"910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f","value_sha256":"910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f"},{"shape":[1,48,128,128],"sha256":"1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a","value_sha256":"1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a"}],[{"shape":[1,2,88,256],"sha256":"35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d","value_sha256":"35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d"},{"shape":[1,2,88,256],"sha256":"74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b","value_sha256":"74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b"},{"shape":[1,88,128],"sha256":"ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386","value_sha256":"ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386"},{"shape":[1,22,128],"sha256":"f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16","value_sha256":"f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16"}],[{"shape":[1,3,10240],"sha256":"a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71","value_sha256":"a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71"},{"shape":[1,48,128,128],"sha256":"19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7","value_sha256":"19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7"}],[{"shape":[1,3,10240],"sha256":"dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6","value_sha256":"dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6"},{"shape":[1,48,128,128],"sha256":"da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3","value_sha256":"da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3"}],[{"shape":[1,3,10240],"sha256":"8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160","value_sha256":"8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160"},{"shape":[1,48,128,128],"sha256":"f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf","value_sha256":"f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf"}],[{"shape":[1,2,88,256],"sha256":"061f8fe052fe21c8505782c220e03d09ab31deb93e7987709c55cd5dc3b778bd","value_sha256":"98186c7fec2498072f93b621a7f5b14456d4a67b0548a006353d87b4e4c2e89f"},{"shape":[1,2,88,256],"sha256":"e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a","value_sha256":"e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a"},{"shape":[1,88,128],"sha256":"4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3","value_sha256":"4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3"},{"shape":[1,22,128],"sha256":"be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c","value_sha256":"be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c"}],[{"shape":[1,3,10240],"sha256":"05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350","value_sha256":"05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350"},{"shape":[1,48,128,128],"sha256":"d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733","value_sha256":"d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733"}],[{"shape":[1,3,10240],"sha256":"405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d","value_sha256":"405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d"},{"shape":[1,48,128,128],"sha256":"0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20","value_sha256":"0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20"}],[{"shape":[1,3,10240],"sha256":"72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5","value_sha256":"72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5"},{"shape":[1,48,128,128],"sha256":"5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c","value_sha256":"5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c"}],[{"shape":[1,2,88,256],"sha256":"29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7","value_sha256":"29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7"},{"shape":[1,2,88,256],"sha256":"d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335","value_sha256":"d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335"},{"shape":[1,88,128],"sha256":"5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d","value_sha256":"5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d"},{"shape":[1,22,128],"sha256":"9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840","value_sha256":"9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840"}],[{"shape":[1,3,10240],"sha256":"30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb","value_sha256":"30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb"},{"shape":[1,48,128,128],"sha256":"3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d","value_sha256":"3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d"}],[{"shape":[1,3,10240],"sha256":"f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768","value_sha256":"f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768"},{"shape":[1,48,128,128],"sha256":"0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66","value_sha256":"0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66"}],[{"shape":[1,3,10240],"sha256":"733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d","value_sha256":"733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d"},{"shape":[1,48,128,128],"sha256":"59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af","value_sha256":"59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af"}],[{"shape":[1,2,88,256],"sha256":"6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c","value_sha256":"6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c"},{"shape":[1,2,88,256],"sha256":"fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934","value_sha256":"fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934"},{"shape":[1,88,128],"sha256":"eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a","value_sha256":"eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a"},{"shape":[1,22,128],"sha256":"77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02","value_sha256":"77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02"}],[{"shape":[1,3,10240],"sha256":"e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f","value_sha256":"e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f"},{"shape":[1,48,128,128],"sha256":"df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493","value_sha256":"df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493"}],[{"shape":[1,3,10240],"sha256":"9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042","value_sha256":"9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042"},{"shape":[1,48,128,128],"sha256":"a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589","value_sha256":"a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589"}],[{"shape":[1,3,10240],"sha256":"f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab","value_sha256":"f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab"},{"shape":[1,48,128,128],"sha256":"b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5","value_sha256":"b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5"}],[{"shape":[1,2,88,256],"sha256":"161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513","value_sha256":"161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513"},{"shape":[1,2,88,256],"sha256":"9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c","value_sha256":"9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c"},{"shape":[1,88,128],"sha256":"810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e","value_sha256":"810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e"},{"shape":[1,22,128],"sha256":"17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899","value_sha256":"17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899"}]],"mtp":[[{"shape":[1,2,87,256],"sha256":"675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352","value_sha256":"675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352"},{"shape":[1,2,87,256],"sha256":"8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9","value_sha256":"8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9"},{"shape":[1,87,128],"sha256":"824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d","value_sha256":"824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d"},{"shape":[1,21,128],"sha256":"85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b","value_sha256":"85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b"}]]} \ No newline at end of file diff --git a/docs/issue109-verify-gate/warm-oracle-arrays.json b/docs/issue109-verify-gate/warm-oracle-arrays.json new file mode 100644 index 0000000..1b72609 --- /dev/null +++ b/docs/issue109-verify-gate/warm-oracle-arrays.json @@ -0,0 +1 @@ +{"trunk": [[{"shape": [1, 3, 10240], "sha256": "1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84", "value_sha256": "1df54fa91eb80b88e8b4c0d566828d36540f3508099fc1751dd700d9bd904a84"}, {"shape": [1, 48, 128, 128], "sha256": "1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf", "value_sha256": "1cc66986fdbef7d449d321ff6c558b4e862d2d9211d74038325c72c4f2f0cebf"}], [{"shape": [1, 3, 10240], "sha256": "1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232", "value_sha256": "1ba5aa461d83294641ab065813f2a27ce3a1aa280890046cdc6d839d49c86232"}, {"shape": [1, 48, 128, 128], "sha256": "b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf", "value_sha256": "b789c69d02395058a02c548725e7897e906176c9647e88b5c413a9c743a73aaf"}, {"shape": [1, 9, 10240], "sha256": "eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08", "value_sha256": "eaffcb3f7958776a888b3134ef5f9fa1285f21c242d76b0ebc19c64d75d26c08"}, {"shape": [1, 2], "sha256": "b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152", "value_sha256": "b5e055307f70d9b61bc8427b1da30e8f711b4da0c73d28a34879de8c3f253152"}], [{"shape": [1, 3, 10240], "sha256": "1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2", "value_sha256": "1ebb9fb3628cf830f4c16a815ecaa0c9ccc2049bff2b14d32cb4e3f08f1b91b2"}, {"shape": [1, 48, 128, 128], "sha256": "403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34", "value_sha256": "403226ed2eeae9becd4b498b0fa14de8152beac9138bff0c118698cd4c4fcc34"}], [{"shape": [1, 2, 88, 256], "sha256": "b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f", "value_sha256": "b4995a3d443eb57598940e4a80ece426f8e8442e07f30b8168b247baebfc422f"}, {"shape": [1, 2, 88, 256], "sha256": "eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24", "value_sha256": "eb25629ce30b96850b39bf034124fb8d627c82402baeb89d72e24869005ace24"}, {"shape": [1, 88, 128], "sha256": "1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748", "value_sha256": "1561cf66bb84117ff09036ee128d5c2e5aa21f69db459b82000dc467527df748"}, {"shape": [1, 22, 128], "sha256": "4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a", "value_sha256": "4366612cb46ecc942d06aabe6043fea79b494a34f08f797fec5e0a76ff067a1a"}], [{"shape": [1, 3, 10240], "sha256": "431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda", "value_sha256": "431c351776e8973a28d2206fee9c9262c74df879b561ecb28fdf53f1c6941dda"}, {"shape": [1, 48, 128, 128], "sha256": "c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f", "value_sha256": "c8d64ecbf9dab273a4be2d0b7b00b4fccbb59d25d99ef47ba26a3488dc1ba28f"}], [{"shape": [1, 3, 10240], "sha256": "f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a", "value_sha256": "f4ce935821cd12c5981db92dc849ca6fb25d845a8b38f0ca2ac7f98afa99666a"}, {"shape": [1, 48, 128, 128], "sha256": "8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f", "value_sha256": "8093f937ad983da7c65154990a2a163c7ab09d7e776c7d2b84a8310469433d6f"}], [{"shape": [1, 3, 10240], "sha256": "3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d", "value_sha256": "3c1051a65bbd484bd5bc7ff79919bbb0f8b99f899215efc47ad415541c4ccc7d"}, {"shape": [1, 48, 128, 128], "sha256": "bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f", "value_sha256": "bcbf58854152187ff9556062117970701ac56898d9af860d2b9b3840eaf84b1f"}], [{"shape": [1, 2, 88, 256], "sha256": "9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b", "value_sha256": "9e6bc46ee9a8170bf6bfe9a0cd592543b15d24225ba39e71bddb4aeef947555b"}, {"shape": [1, 2, 88, 256], "sha256": "b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba", "value_sha256": "b84ee35f5c3e0ac8181df0ae66e2278a03db0783c0ea83e4bbabc21bdf47f7ba"}, {"shape": [1, 88, 128], "sha256": "491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae", "value_sha256": "491cccffe6e1c810e6ce8d32fe160005762d1964da055d58746febef7000f5ae"}, {"shape": [1, 22, 128], "sha256": "104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb", "value_sha256": "104bbc74bbb75851ad6a7466e2f2e1a1421a9c93fc0d62aaaf37aa60e2a1dcdb"}], [{"shape": [1, 3, 10240], "sha256": "e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57", "value_sha256": "e87be44991fddef0510651dc23006f2a056a56cf0a61a5f8b38daa34be0c8b57"}, {"shape": [1, 48, 128, 128], "sha256": "0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43", "value_sha256": "0645fe9e0d09d4d55d3919d729ea1340b4ade128dec572010ebb07a5de306f43"}], [{"shape": [1, 3, 10240], "sha256": "f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0", "value_sha256": "f2904788ae98c816e237db5ecc398c269205f38acb680a17e7d00b53289400d0"}, {"shape": [1, 48, 128, 128], "sha256": "75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52", "value_sha256": "75f9e87f1c559b714f5d07911976152045b4b283c50d49794c68cdc66a3cea52"}], [{"shape": [1, 3, 10240], "sha256": "c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc", "value_sha256": "c23b7e524522714aaf620c9e0bbb6b1d3db3585971f0cffafd7fe7e2018176dc"}, {"shape": [1, 48, 128, 128], "sha256": "4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa", "value_sha256": "4ce5d0905ec5e5ae834215c16b25d810a5ef6e54a6d7d96f95e477209775ddaa"}], [{"shape": [1, 2, 88, 256], "sha256": "7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe", "value_sha256": "7803bca47639bdcb533d5985f37930fb74cd112882f8cfa26513bc297e1245fe"}, {"shape": [1, 2, 88, 256], "sha256": "40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac", "value_sha256": "40bb50faa5d147165f88cd5ba2379dc395f4f296c66246499b9efd03c9eef7ac"}, {"shape": [1, 88, 128], "sha256": "6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493", "value_sha256": "6e20787bdd02bd9615279eac42cf9f2664430aeb8cdd8c93c6a9881556722493"}, {"shape": [1, 22, 128], "sha256": "c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d", "value_sha256": "c17459f225244530703a28076f3006f7e53d50e728ecb79ae4f5b968b594d96d"}], [{"shape": [1, 3, 10240], "sha256": "8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d", "value_sha256": "8e1e94ade5f7453693e4d99f003d190122a3cd69b0bddca1a1fc2409d9a32b7d"}, {"shape": [1, 48, 128, 128], "sha256": "976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399", "value_sha256": "976efc317438cb07b1e6d80ce6ae12d8e0095a51fa7b490b8a84a8e0d6b79399"}], [{"shape": [1, 3, 10240], "sha256": "6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1", "value_sha256": "6153601aa51b613aa617cb823b2d5e582847afba59eac2c190a96ea465ad77e1"}, {"shape": [1, 48, 128, 128], "sha256": "077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d", "value_sha256": "077106a1cc1cf3e3d24ba44378f788cab30d80fd38aef87fcf957a99b662379d"}], [{"shape": [1, 3, 10240], "sha256": "d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280", "value_sha256": "d020e70e7cab233eb7d188fa42e975f0a20cdce167f52db6043933e583f7c280"}, {"shape": [1, 48, 128, 128], "sha256": "c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080", "value_sha256": "c05cdc62e13b7c238ad02e2a4a81286dc5d0fd8cd9c91af6c8ea6380d203f080"}], [{"shape": [1, 2, 88, 256], "sha256": "be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7", "value_sha256": "be1eed7cb68714c49599bea49ffdc831b5caac8444781088d21c87892445d2d7"}, {"shape": [1, 2, 88, 256], "sha256": "abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc", "value_sha256": "abe8a391f5a932dee7718ea3abe5419e015750b85a522856f1a59f435d5688dc"}, {"shape": [1, 88, 128], "sha256": "c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4", "value_sha256": "c1cd1549e2032d2bc28d2d0c9f1bfeb608f81fe8abe2b18b77a1658a4c0ed9c4"}, {"shape": [1, 22, 128], "sha256": "072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043", "value_sha256": "072bc306a1b4a56332dc90d889c42e6b2037a820330da0b897815a3750c00043"}], [{"shape": [1, 3, 10240], "sha256": "7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154", "value_sha256": "7f4500e05eb6e52b25bd9405ccaae398fcc426835af0550599175d0785694154"}, {"shape": [1, 48, 128, 128], "sha256": "e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40", "value_sha256": "e33affece02b985e41ea0d4ce467679226e9f9b5f55c4001cdbf8ebcb087db40"}], [{"shape": [1, 3, 10240], "sha256": "d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657", "value_sha256": "d133a043fa3abeaf2498e4336142e34a6d3222e4b2eec943931e97eb060f5657"}, {"shape": [1, 48, 128, 128], "sha256": "465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164", "value_sha256": "465ca838c8b5abbaac2b32a5f2f204ebe674d20ff50ed9b3532e81ede40c1164"}], [{"shape": [1, 3, 10240], "sha256": "379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c", "value_sha256": "379bfa2a27e16bc7d2d1213c0d145307954a9d4d36d8c5f5a6cb9b4f172b400c"}, {"shape": [1, 48, 128, 128], "sha256": "be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015", "value_sha256": "be38588e2a1191fdccc176952eb809d41b8c40d874bc9f160adae245abe93015"}], [{"shape": [1, 2, 88, 256], "sha256": "c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735", "value_sha256": "c3c637457aeabb3d95909c7fd35e0a4024aef118af9dec6b369a50bf409cc735"}, {"shape": [1, 2, 88, 256], "sha256": "efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1", "value_sha256": "efc834d804fa9f0958e2323b5c77dc22e134ee9130e211e67cf46e713fc303d1"}, {"shape": [1, 88, 128], "sha256": "3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e", "value_sha256": "3b59d52c473c7b1710f17b8672fd1ad1611d201e357a5a61e2f4272194654d0e"}, {"shape": [1, 22, 128], "sha256": "ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623", "value_sha256": "ba538ce500987345986122428d8884b73b26e0c94466e3e5651d725a1e9c6623"}], [{"shape": [1, 3, 10240], "sha256": "09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d", "value_sha256": "09026ef1a4aeb90aeeba7b23b21453e76852d97c609e40a04ecbd40e1c4f387d"}, {"shape": [1, 48, 128, 128], "sha256": "1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8", "value_sha256": "1b34b1e411aed8f13f9416722c35131648f0fb7752a1b0fdbc43ad56a3b089f8"}], [{"shape": [1, 3, 10240], "sha256": "a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758", "value_sha256": "a0b8dfe443b66d38cfc29af210f2461229d947985d56eecb00d35b8ead4a6758"}, {"shape": [1, 48, 128, 128], "sha256": "23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631", "value_sha256": "23d008ba78432fc50967f3f9219912ecc50a745246b1562cd047304650910631"}], [{"shape": [1, 3, 10240], "sha256": "9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6", "value_sha256": "9b2393f3353a7c0c38906fa33cb081828590f7e095a047c32201ec4b171a3cc6"}, {"shape": [1, 48, 128, 128], "sha256": "ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29", "value_sha256": "ea13bedee4d597e350a7b9d26965b06e996d3fb60a56c4a1a0823af6f56bdc29"}], [{"shape": [1, 2, 88, 256], "sha256": "7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33", "value_sha256": "7f609422a62de424ecbbdbdfbe89a87e8a990103c3d3ddaf2b27213942b89c33"}, {"shape": [1, 2, 88, 256], "sha256": "3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08", "value_sha256": "3f6d942ae01b4536df664a306d021a26e4c0c5103385baf2a39470f0f2498c08"}, {"shape": [1, 88, 128], "sha256": "6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa", "value_sha256": "6f4ff9a35dd06bab89858195b4c10201258ee1d38361cd57fed9d47224aafffa"}, {"shape": [1, 22, 128], "sha256": "418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a", "value_sha256": "418e9f68c997dc6d3565ed3331b22edbededa67d22fedf1adf60ea913bd1102a"}], [{"shape": [1, 3, 10240], "sha256": "71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b", "value_sha256": "71aa2645f2ce221cc2b5b0ecdb57cf7f511d8520b642f46f5656b35b3446c68b"}, {"shape": [1, 48, 128, 128], "sha256": "27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5", "value_sha256": "27fe6db7a664bd3f479907384daed9c203d272d9d805680bf60f5823589522f5"}], [{"shape": [1, 3, 10240], "sha256": "86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146", "value_sha256": "86f5a1132abfc21f4263d1e5781bd664bb5e0515c99c99262f5ece1309d31146"}, {"shape": [1, 48, 128, 128], "sha256": "85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7", "value_sha256": "85d28d66cd18e5520f89273d1030d60aee4815d1979da53296ca6ebcb15eaea7"}], [{"shape": [1, 3, 10240], "sha256": "0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49", "value_sha256": "0c0e755df21fddcc7c6c18f91ff0c28798c7f6db5d7ae3c1ccada82b75783c49"}, {"shape": [1, 48, 128, 128], "sha256": "a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e", "value_sha256": "a1f173e5880541f5db8e8c59075ec15f67229eb0a14e6fc1586201f4a5367d6e"}], [{"shape": [1, 2, 88, 256], "sha256": "67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45", "value_sha256": "67e00cb7fc89c35ad41c88339922d7ebed49abc11fcee6e7992daf4b79463f45"}, {"shape": [1, 2, 88, 256], "sha256": "c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b", "value_sha256": "c8c4c07315a42e3d3bcb61a33402a99b6b9f0b897ddddd682cca5ca9b3c5759b"}, {"shape": [1, 88, 128], "sha256": "13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854", "value_sha256": "13309057cb8436d0541acf49399a408b9035283a3e8ee00a36a2631d6feb9854"}, {"shape": [1, 22, 128], "sha256": "c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031", "value_sha256": "c2bda4e0c3881a16568e45307b3907f5d9beaf96eddf085a560a767684525031"}], [{"shape": [1, 3, 10240], "sha256": "1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073", "value_sha256": "1e1db788f66c83daab3bc9f4ebf8e21e73297710a725207b9bc91530ac6ec073"}, {"shape": [1, 48, 128, 128], "sha256": "d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03", "value_sha256": "d42708090309446c157f583cdd98d184bbcf3d7582dcd56d232a279cacf53d03"}], [{"shape": [1, 3, 10240], "sha256": "c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1", "value_sha256": "c0afb77f8c6e3c141a0c0140224ec1a05f514331e76195185d74763ef6a3dcf1"}, {"shape": [1, 48, 128, 128], "sha256": "d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275", "value_sha256": "d6a947a09b92b149efb68abe9f29fcce54471ab9c388aa7dbbd113c7e88f6275"}], [{"shape": [1, 3, 10240], "sha256": "910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f", "value_sha256": "910b4e1eb82d9964f242034afd4420a420c37fb47b7ff344ba7b1d9a56e8762f"}, {"shape": [1, 48, 128, 128], "sha256": "1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a", "value_sha256": "1144c0faae284f0059a58041a49152c2bb554f2936852bbd0a520f45098b936a"}], [{"shape": [1, 2, 88, 256], "sha256": "35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d", "value_sha256": "35cdbd0aded1c0ba01994a011832c2431488d440aa03f2f6123b9b84ddf1362d"}, {"shape": [1, 2, 88, 256], "sha256": "74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b", "value_sha256": "74166f058c8026611b093c3ca3629c2462ecd5c506b5da39a64e08436d597a3b"}, {"shape": [1, 88, 128], "sha256": "ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386", "value_sha256": "ec566fb641c4ba35da9341de02e170624a2da3616819e6a1cf4f4395454cc386"}, {"shape": [1, 22, 128], "sha256": "f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16", "value_sha256": "f2a66ce5e3986b883434ba9c91e8bbefc099bdc4011aada8ed89a4cefbc4cd16"}], [{"shape": [1, 3, 10240], "sha256": "a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71", "value_sha256": "a361723352d381d4456b0488309d7fc3a670b9557f0293da8323b1b1170b9c71"}, {"shape": [1, 48, 128, 128], "sha256": "19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7", "value_sha256": "19dd73c3b6450f2ae672d602046f8fdc159e7dc8d178befe72fe8c95829004a7"}], [{"shape": [1, 3, 10240], "sha256": "dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6", "value_sha256": "dd9b66e88449a34f1f346b367c5a689f72e2549a24622ad1e04876978c1a49f6"}, {"shape": [1, 48, 128, 128], "sha256": "da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3", "value_sha256": "da16afcaa1e209ffb6f08639c70e56c3d3b3fe88449fa5700d4c2374f545ffc3"}], [{"shape": [1, 3, 10240], "sha256": "8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160", "value_sha256": "8309772a5f9abc9a257f4dca60d98744cae411e8cd5b59f38132bb9a90c9f160"}, {"shape": [1, 48, 128, 128], "sha256": "f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf", "value_sha256": "f3a26845be01884066372bfb0d5b54f1e19c3927da4a84e59ce714a68b69ceaf"}], [{"shape": [1, 2, 88, 256], "sha256": "98186c7fec2498072f93b621a7f5b14456d4a67b0548a006353d87b4e4c2e89f", "value_sha256": "98186c7fec2498072f93b621a7f5b14456d4a67b0548a006353d87b4e4c2e89f"}, {"shape": [1, 2, 88, 256], "sha256": "e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a", "value_sha256": "e2c9efd039839aeec320ba45c64b4e8851e941b7300ef43b3b767d7a6fc3f81a"}, {"shape": [1, 88, 128], "sha256": "4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3", "value_sha256": "4bf22f9cc812cbd24c68193dca9e687922f11cd4f14456157745987762e1a5d3"}, {"shape": [1, 22, 128], "sha256": "be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c", "value_sha256": "be37a2a222ed9aa0bfffc831ce64c51d50adf8da9e8f865758f0ea199abed00c"}], [{"shape": [1, 3, 10240], "sha256": "05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350", "value_sha256": "05517c814a7757ddd5a9576f70b54d74ae147035464fab8cbb9f85effa33f350"}, {"shape": [1, 48, 128, 128], "sha256": "d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733", "value_sha256": "d97ab5b464249daf10022fb42384c16568ffafde0db8a75c209f6b9d569f1733"}], [{"shape": [1, 3, 10240], "sha256": "405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d", "value_sha256": "405fddf03a32c3d17029d69ab68db301f89652a513e9d8a55f3b6aa5b7e6942d"}, {"shape": [1, 48, 128, 128], "sha256": "0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20", "value_sha256": "0f195fc269e9c513e7e43dabce7c0446f259f576f329fcaf97b64f4596e4df20"}], [{"shape": [1, 3, 10240], "sha256": "72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5", "value_sha256": "72d77520b60e0279c3e51cfd0be2dae0740a4c502279b4bc4e81de5f283cdbe5"}, {"shape": [1, 48, 128, 128], "sha256": "5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c", "value_sha256": "5397183714e9f7e4b1d5b55ef9ae553c1cffa2c8bab284425a2a4e701c7ff73c"}], [{"shape": [1, 2, 88, 256], "sha256": "29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7", "value_sha256": "29bf2a7e968d01f9e5944a545bdbfa18d55a4f7be1f196c7bcb7e763d31facb7"}, {"shape": [1, 2, 88, 256], "sha256": "d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335", "value_sha256": "d0a7d3c46f6f41ecd2a0cb57be29f2c174bf8e4ad442d448773e819a8564e335"}, {"shape": [1, 88, 128], "sha256": "5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d", "value_sha256": "5331b2be56a2cb81895f7fa0f0c39d1696f7e32540e2c77e9d40c1e22d23ac8d"}, {"shape": [1, 22, 128], "sha256": "9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840", "value_sha256": "9cef226bd40e273913f9cbadc580e770da1479955964bb2903aa53d6476fa840"}], [{"shape": [1, 3, 10240], "sha256": "30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb", "value_sha256": "30ce86b21de9483ec50ec7eabce466e9594ea6c98c9a8beb0afb83348d05e0eb"}, {"shape": [1, 48, 128, 128], "sha256": "3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d", "value_sha256": "3b2f080d8ae3ebebfb70a4611a186fa1fedff9dbca28998066d835dc222c652d"}], [{"shape": [1, 3, 10240], "sha256": "f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768", "value_sha256": "f78baa9905f133d407c9c0b93957dd51229a13854e53e50d03c282d07866e768"}, {"shape": [1, 48, 128, 128], "sha256": "0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66", "value_sha256": "0da307f15747719d4b52b2b072cbfd78c3597dd363a8ab5f7abc32536eccfd66"}], [{"shape": [1, 3, 10240], "sha256": "733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d", "value_sha256": "733c7b59cb4044de99c54495cacd03f04f036460cf2b51590d4fe95c7d13aa1d"}, {"shape": [1, 48, 128, 128], "sha256": "59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af", "value_sha256": "59f1f772b4c4a9e9b022952c286ec0df1d31e70d91890a227607e5b900a995af"}], [{"shape": [1, 2, 88, 256], "sha256": "6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c", "value_sha256": "6387f267821783cba0e6718bb2644c736e384d8f36e0c7138b0be7606c3baf8c"}, {"shape": [1, 2, 88, 256], "sha256": "fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934", "value_sha256": "fe5b8510d94e73fb4c998cd9612064917dc7058849d0f1c67b534cf3791bc934"}, {"shape": [1, 88, 128], "sha256": "eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a", "value_sha256": "eb577791c6743ff0e48840da830393e4f24ab4d9938e98efcd49780758c3393a"}, {"shape": [1, 22, 128], "sha256": "77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02", "value_sha256": "77b12c33a82a7d53f68da4d44d1db4c65335b7d5ec8c64f8d547f07ad7451c02"}], [{"shape": [1, 3, 10240], "sha256": "e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f", "value_sha256": "e752995d1329444a5a9e67590876bc32ce30558ae9361a78bc5843c82733050f"}, {"shape": [1, 48, 128, 128], "sha256": "df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493", "value_sha256": "df1a591a776abf17e05f8bbd32d1b811135f223c22e15addc4ed68dd01ad8493"}], [{"shape": [1, 3, 10240], "sha256": "9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042", "value_sha256": "9624416c4d3593bd93d1b06785772b1f7df6643668840d532a3bee30aafa4042"}, {"shape": [1, 48, 128, 128], "sha256": "a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589", "value_sha256": "a7ede72d50c40571f83c46de94c660fa36d8ff812b05d0132e17571e3bbc3589"}], [{"shape": [1, 3, 10240], "sha256": "f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab", "value_sha256": "f8911ad582ec57faad4441c7e0deb866a9278632d4504f788a86ce9a6d0c08ab"}, {"shape": [1, 48, 128, 128], "sha256": "b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5", "value_sha256": "b60e89e7467e58bfc5a0ff18bfda1c1f42a18bd37b05b1efd3d765a94aea23e5"}], [{"shape": [1, 2, 88, 256], "sha256": "161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513", "value_sha256": "161f854d9d75d6b25f61a9f5c6c8ed397ba91ad3ef7f8a134841dfdfcddfa513"}, {"shape": [1, 2, 88, 256], "sha256": "9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c", "value_sha256": "9edf9661611655bad494ab069dc10755ba1adcd810278718a0461b4c6304041c"}, {"shape": [1, 88, 128], "sha256": "810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e", "value_sha256": "810459f986074c122023ad0c1c659576deb14dbfdad7354675bac8543e53bd4e"}, {"shape": [1, 22, 128], "sha256": "17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899", "value_sha256": "17d21af4459d8d3afb2ce6c7f26bf482e2c8343aa425b0b2a4c8bd1a81da8899"}]], "mtp": [[{"shape": [1, 2, 87, 256], "sha256": "675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352", "value_sha256": "675223d7488e0b09910db850033d605b09afd67adab910691cc5c43096472352"}, {"shape": [1, 2, 87, 256], "sha256": "8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9", "value_sha256": "8aec54ec77cccccca2e80e320aa4a326d41962f98f8fe62e07cf818aa70281d9"}, {"shape": [1, 87, 128], "sha256": "824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d", "value_sha256": "824fd057d8b840f5b8a1eb84e53210b17b75bc7a99280538c694dbb1590f346d"}, {"shape": [1, 21, 128], "sha256": "85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b", "value_sha256": "85deeac841e2b9fdbf303b9977b7241f56008c00eb07fe0e8a307bdd346b321b"}]]} \ No newline at end of file diff --git a/src/engine/metal/qwen_mtplx.rs b/src/engine/metal/qwen_mtplx.rs index 20a3c08..08aa5b9 100644 --- a/src/engine/metal/qwen_mtplx.rs +++ b/src/engine/metal/qwen_mtplx.rs @@ -37,6 +37,8 @@ mod issue105; mod issue106; #[cfg(test)] mod issue108; +#[cfg(test)] +mod issue109; mod linear; mod load; mod mlp; diff --git a/src/engine/metal/qwen_mtplx/decoder.rs b/src/engine/metal/qwen_mtplx/decoder.rs index f9b5104..f23e020 100644 --- a/src/engine/metal/qwen_mtplx/decoder.rs +++ b/src/engine/metal/qwen_mtplx/decoder.rs @@ -146,6 +146,7 @@ impl DecoderLayer<'_> { &hidden, options.hyper_fused, options.hyper_v3, + options.qsa.verify_gate, streams, stream, )?; @@ -176,6 +177,7 @@ impl DecoderLayer<'_> { &hidden, options.hyper_fused, options.hyper_v3, + options.qsa.verify_gate, streams, stream, )?; @@ -372,6 +374,7 @@ fn mtplx_decoder_connected_attention_and_moe_advance_caches() { ..Default::default() }, qsa: qsa_attention::Options { + verify_gate: false, indexer: QsaIndexerOptions { fused: false, compiled: false, diff --git a/src/engine/metal/qwen_mtplx/execution.rs b/src/engine/metal/qwen_mtplx/execution.rs index 57f7495..5da28f3 100644 --- a/src/engine/metal/qwen_mtplx/execution.rs +++ b/src/engine/metal/qwen_mtplx/execution.rs @@ -185,6 +185,7 @@ impl Options { capture, }, qsa: qsa_attention::Options { + verify_gate: false, indexer: QsaIndexerOptions { fused: flag("MTPLX_FUSED_QSA_INDEXER"), compiled: flag("MTPLX_COMPILED_QSA_INDEXER"), @@ -359,6 +360,19 @@ impl Execution { ) -> Result { let ids = self.input(ids)?; let options = self.graph_options(phase_prefill, capture)?; + self.forward_with_options(ids, &options) + } + + /// Every target forward in the MTP loop (including repairs and final + /// commits) uses MTPLX's decode_verify scope. Draft/history calls do not. + pub(super) fn forward_verify(&mut self, ids: &[i32], capture: bool) -> Result { + let ids = self.input(ids)?; + let mut options = self.graph_options(false, capture)?; + options.qsa.verify_gate = true; + self.forward_with_options(ids, &options) + } + + fn forward_with_options(&mut self, ids: Array, options: &Options) -> Result { let output = self.model.with_dependent_mut(|_, model| { model.call( &ids, @@ -369,13 +383,15 @@ impl Execution { logits_keep: 0, return_hidden: true, }, - &options, + options, None, &self.streams, self.stream, ) })?; #[cfg(test)] + super::issue109::record(self, &ids, &output, options.qsa.verify_gate)?; + #[cfg(test)] let output = self.inject_output(super::issue105::Stage::Target, output)?; #[cfg(test)] let output = self.script_output(false, output)?; diff --git a/src/engine/metal/qwen_mtplx/hyper.rs b/src/engine/metal/qwen_mtplx/hyper.rs index bb810eb..7c86415 100644 --- a/src/engine/metal/qwen_mtplx/hyper.rs +++ b/src/engine/metal/qwen_mtplx/hyper.rs @@ -23,6 +23,7 @@ impl GatedResidual<'_> { input: &Array, fused: bool, v3: bool, + verify: bool, streams: &Streams, stream: Stream, ) -> Result { @@ -110,18 +111,8 @@ impl GatedResidual<'_> { let sum = super::reduce::sum(&product, &[-2], false, stream)?; let mixed = binary(&sum, &scalar(0x3e80)?, Binary::Multiply, stream)?; let combine = if let Some(inject) = &self.inject { - let gate = binary( - &inject.apply(&normed, stream)?, - &scalar(0x4080)?, - Binary::Divide, - stream, - )?; - let gate = unary(&gate, Unary::Sigmoid, stream)?; - Some(( - input.clone(), - // Python __rmul__ keeps the array first for 2.0 * gate. - binary(&gate, &scalar(0x4000)?, Binary::Multiply, stream)?, - )) + let gate = inject_gate(&inject.apply(&normed, stream)?, verify, stream)?; + Some((input.clone(), gate)) } else { None }; @@ -129,6 +120,34 @@ impl GatedResidual<'_> { } } +/// The eager HC inject site follows MTPLX _verify_inject on decode_verify. +/// Other phases retain the original standalone divide/sigmoid/multiply. +pub(super) fn inject_gate(logits: &Array, verify: bool, stream: Stream) -> Result { + use super::{ + binary::{Binary, binary}, + unary::{Unary, unary}, + }; + let body = |x: &Array| { + let scalar = + |bits: u16| Array::new(&[], Dtype::BF16, super::scalar_buffer(&bits.to_le_bytes())?); + let divided = binary(x, &scalar(0x4080)?, Binary::Divide, stream)?; + binary( + &unary(÷d, Unary::Sigmoid, stream)?, + &scalar(0x4000)?, + Binary::Multiply, + stream, + ) + }; + if !verify { + return body(logits); + } + let inputs = std::slice::from_ref(logits); + super::compiled::Replay::trace_compiled(inputs, |a| Ok(vec![body(&a[0])?]))? + .run(inputs)? + .pop() + .ok_or_else(|| "compiled HC inject omitted output".into()) +} + pub(super) fn fused_read( x: &Array, norm: &Array, @@ -379,7 +398,7 @@ fn mtplx_graph_hyper_forward_matches_reference() { let mode = receipt["mode"].as_u64().unwrap(); let input = bf16(&[1, rows, 10240], 1); let result = layer - .forward(&input, mode & 1 != 0, mode & 2 != 0, &streams, gpu) + .forward(&input, mode & 1 != 0, mode & 2 != 0, false, &streams, gpu) .unwrap(); assert_eq!( layer.pack.is_some(), diff --git a/src/engine/metal/qwen_mtplx/issue103_analysis.rs b/src/engine/metal/qwen_mtplx/issue103_analysis.rs index 884d20d..ea1a5a0 100644 --- a/src/engine/metal/qwen_mtplx/issue103_analysis.rs +++ b/src/engine/metal/qwen_mtplx/issue103_analysis.rs @@ -175,7 +175,16 @@ fn issue103_numeric_receipts() { ops::evaluate(&streams, &[gate.clone(), value.clone()], gpu, false).unwrap(); let body = |a: &[Array]| { binary( - &unary::unary(&a[0], unary::Unary::Sigmoid, gpu)?, + &unary::unary( + &ops::astype( + &ops::astype(&a[0], Dtype::F32, false, gpu)?, + Dtype::BF16, + false, + gpu, + )?, + unary::Unary::Sigmoid, + gpu, + )?, &a[1], Binary::Multiply, gpu, @@ -185,7 +194,7 @@ fn issue103_numeric_receipts() { let eager = body(&[gate.clone(), value.clone()]).unwrap(); let compiled = Replay::trace_compiled(&[gate.clone(), value.clone()], body) .unwrap() - .run(&[gate, value]) + .run(&[gate.clone(), value.clone()]) .unwrap(); let read = |a: &Array| { ops::read_f32_as_f64( @@ -201,7 +210,14 @@ fn issue103_numeric_receipts() { "{}", serde_json::json!({"case":"bf16_gate","gate":-6.84375,"eager":e,"compiled":c}) ); - assert_ne!(e, c, "diagnosis no longer reproduces"); + assert_ne!( + e, c, + "the two reference phase laws must remain distinguishable" + ); + let actual = super::qsa_attention::attention_gate(&value, &gate, true, gpu).unwrap(); + assert_eq!(read(&actual), c); + assert_eq!(e, vec![0.00106048583984375; 4]); + assert_eq!(c, vec![0.001068115234375; 4]); for (name, operand, mode) in [ ("qsa_divisor", 128_f32.sqrt(), Binary::Divide), ( @@ -367,7 +383,8 @@ fn issue103_vision_position_receipts() { .unwrap(), ) .unwrap(); - let options = Options { + let mut options = Options { + verify_gate: false, indexer: super::QsaIndexerOptions { fused: false, compiled: false, @@ -647,6 +664,7 @@ fn issue103_vision_position_receipts() { .map(|i| f32::from(i / 8 < 8 && i / 8 == i % 8)) .collect::>(), ); + options.verify_gate = true; let mut gate_outputs = Vec::new(); for gate in [0., -6.84375] { let bias = bf(&[16], &[vec![0.; 8], vec![gate; 8]].concat()); @@ -724,5 +742,5 @@ fn issue103_vision_position_receipts() { "{}", serde_json::json!({"case":"active_attention_gate","gate":-6.84375,"actual":actual,"expected_verify":expected}) ); - assert_ne!(actual, expected, "diagnosis no longer reproduces"); + assert_eq!(actual, expected, "verify must use the compiled gate law"); } diff --git a/src/engine/metal/qwen_mtplx/issue106.rs b/src/engine/metal/qwen_mtplx/issue106.rs index b6717d3..9b90058 100644 --- a/src/engine/metal/qwen_mtplx/issue106.rs +++ b/src/engine/metal/qwen_mtplx/issue106.rs @@ -142,7 +142,7 @@ fn advance(execution: &mut Execution, saved: &SessionSnapshot, token: i32) -> Se .append_mtp_history(hidden.as_ref().unwrap(), &[token], false) .unwrap(); ops::evaluate(&execution.streams, &[updated], execution.stream, false).unwrap(); - let output = execution.forward(&[token], false, false).unwrap(); + let output = execution.forward_verify(&[token], false).unwrap(); let logits = ar::last_row(&output.logits.unwrap(), execution.stream).unwrap(); let mut key = saved.token_ids.clone(); key.push(token); diff --git a/src/engine/metal/qwen_mtplx/issue107_product.rs b/src/engine/metal/qwen_mtplx/issue107_product.rs index ef5612f..53b7378 100644 --- a/src/engine/metal/qwen_mtplx/issue107_product.rs +++ b/src/engine/metal/qwen_mtplx/issue107_product.rs @@ -6,7 +6,7 @@ use crate::settings::{ }; use base64::Engine as _; -fn state(owner: &QwenExecutor) -> String { +pub(super) fn state(owner: &QwenExecutor) -> String { let saved = owner.live.current.as_ref().unwrap(); let mut hashes = Vec::new(); let payload = saved diff --git a/src/engine/metal/qwen_mtplx/issue109.rs b/src/engine/metal/qwen_mtplx/issue109.rs new file mode 100644 index 0000000..226eb7f --- /dev/null +++ b/src/engine/metal/qwen_mtplx/issue109.rs @@ -0,0 +1,119 @@ +use super::array::Dtype; +use super::{ops, qsa_attention}; + +#[test] +#[ignore = "Metal and exhaustive pinned gate fixtures; external supervisor required"] +fn issue109_gate_phase_and_dtype_laws() { + super::configure_sources().unwrap(); + let _context = crate::engine::metal::gpu::Context::open_qwen(0).unwrap(); + let streams = super::stream::Streams::new(Some(super::allocator::Allocator::new().unwrap())); + let gpu = streams.default_stream(super::stream::Device::Gpu).unwrap(); + let root = std::path::PathBuf::from(std::env::var_os("DS4_ISSUE109_GATE").unwrap()); + for (name, dtype) in [ + ("bf16", Dtype::BF16), + ("f16", Dtype::F16), + ("f32", Dtype::F32), + ] { + let load = |part: &str| { + let bytes = std::fs::read(root.join(format!("{name}-{part}.f32"))).unwrap(); + let array = super::array::Array::new( + &[(bytes.len() / 4) as i32], + Dtype::F32, + super::scalar_buffer(&bytes).unwrap(), + ) + .unwrap(); + ops::astype(&array, dtype, false, gpu).unwrap() + }; + let gate = load("gate"); + let output = load("output"); + for phase in ["prefill", "ar_decode", "decode_verify"] { + let actual = + qsa_attention::attention_gate(&output, &gate, phase == "decode_verify", gpu) + .unwrap(); + let actual = ops::read_f32_as_f64( + &ops::astype(&actual, Dtype::F32, false, gpu).unwrap(), + &streams, + gpu, + ) + .unwrap() + .into_iter() + .flat_map(|v| (v as f32).to_le_bytes()) + .collect::>(); + let expected = std::fs::read(root.join(format!("{name}-{phase}.f32"))).unwrap(); + assert_eq!(actual.len(), expected.len()); + let different = actual + .chunks_exact(4) + .zip(expected.chunks_exact(4)) + .enumerate() + .filter_map(|(i, (a, b))| (a != b).then_some(i)) + .collect::>(); + assert!( + different.is_empty(), + "{name}/{phase}: {} different rows; first {:?}", + different.len(), + different.first() + ); + println!( + "{}", + serde_json::json!({"case":"gate","dtype":name,"phase":phase,"values":actual.len()/4,"exact":true}) + ); + if dtype == Dtype::BF16 { + let inject = + super::hyper::inject_gate(&gate, phase == "decode_verify", gpu).unwrap(); + let actual = ops::read_f32_as_f64( + &ops::astype(&inject, Dtype::F32, false, gpu).unwrap(), + &streams, + gpu, + ) + .unwrap() + .into_iter() + .flat_map(|v| (v as f32).to_le_bytes()) + .collect::>(); + assert!( + actual == std::fs::read(root.join(format!("inject-{phase}.f32"))).unwrap(), + "inject/{phase}" + ); + println!( + "{}", + serde_json::json!({"case":"inject","phase":phase,"values":actual.len()/4,"exact":true}) + ); + } + } + } +} + +thread_local! { + static RECEIPTS: std::cell::RefCell> = const { std::cell::RefCell::new(None) }; +} + +pub(super) fn capture(directory: Option) { + RECEIPTS.with_borrow_mut(|slot| { + *slot = directory.map(|d| { + std::fs::create_dir_all(&d).unwrap(); + (d, 0) + }) + }); +} + +pub(super) fn record( + execution: &super::execution::Execution, + ids: &super::array::Array, + output: &super::model::Output, + verify: bool, +) -> Result<(), String> { + RECEIPTS.with_borrow_mut(|slot| { + let Some((directory, index)) = slot else { return Ok(()); }; + let ids = ops::read_i64(ids, &execution.streams, execution.stream)?; + let mut record=serde_json::json!({"index":*index,"ids":ids,"verify":verify}); + for (part, a) in [("logits",&output.logits),("hidden",&output.hidden)] { + let a=a.as_ref().ok_or("missing #109 output")?; + let bytes=execution.values_f32(a)?.into_iter().flat_map(f32::to_le_bytes).collect::>(); + std::fs::write(directory.join(format!("{index}-{part}.f32")),&bytes).map_err(|e|e.to_string())?; + record[part]=serde_json::json!({"shape":a.layout().shape(),"sha256":crate::engine::metal::qwen_mtplx_tests::hex_digest(&bytes)}); + } + std::fs::write(directory.join(format!("{index}.json")),serde_json::to_vec(&record).unwrap()).map_err(|e|e.to_string())?; + println!("{}",serde_json::json!({"case":"verify_forward","record":record})); + *index+=1; + Ok(()) + }) +} diff --git a/src/engine/metal/qwen_mtplx/issue109_product.rs b/src/engine/metal/qwen_mtplx/issue109_product.rs new file mode 100644 index 0000000..1edc64d --- /dev/null +++ b/src/engine/metal/qwen_mtplx/issue109_product.rs @@ -0,0 +1,184 @@ +use super::issue107_product::state; +use super::*; +use crate::settings::{ + GenerationPreferences, ReasoningMode, RuntimePreferences, SpeculativePreferences, + effective_settings, +}; + +#[test] +#[ignore = "installed model; serial external memory supervisor required"] +fn issue109_verify_rows_and_warm_checkpoint() { + assert_eq!(std::env::var("MTPLX_CONTEXT_COPY").as_deref(), Ok("0")); + let root = std::path::PathBuf::from(std::env::var_os("DS4_QWEN38_ARTIFACTS").unwrap()); + let directory = std::path::PathBuf::from(std::env::var_os("DS4_ISSUE109_DIR").unwrap()); + std::fs::create_dir_all(&directory).unwrap(); + let settings = effective_settings( + crate::model::ModelChoice::Qwen38FlashNext, + &GenerationPreferences { + context_tokens: 8192, + max_generated_tokens: 12, + system_prompt: String::new(), + temperature: Some(0.), + top_p: Some(0.95), + min_p: Some(0.), + seed: Some(1), + reasoning_mode: ReasoningMode::Low, + }, + &RuntimePreferences { + speculative: SpeculativePreferences { + glm_mtp: true, + ..Default::default() + }, + ..Default::default() + }, + root.parent().unwrap(), + ) + .unwrap(); + let mut owner = QwenExecutor::open(&settings.engine).unwrap(); + owner.policy.store_min_suffix = Some(0); + let metrics = Metrics::new(&directory.join("metrics")); + let messages = vec![ChatTurn { + user: true, + tool: false, + system: false, + skip_previous_eos: false, + reasoning: None, + reasoning_complete: true, + content: "Count from one to ten.".into(), + }]; + let run = |owner: &mut QwenExecutor, messages: &[ChatTurn], label: &str| { + super::super::issue109::capture(Some(directory.join(label))); + let (out, complete) = owner + .generate( + messages, + &settings.turn, + &AtomicBool::new(false), + &metrics, + |_, _, _| {}, + |_, _| {}, + ) + .unwrap(); + super::super::issue109::capture(None); + assert!(complete); + if let Some(prefix) = &owner.live.prefix { + if let Some(super::super::session_cache::State::Qsa(a)) = &prefix.trunk[35] { + let bytes = owner + .execution + .values_f32(a[0].as_ref().unwrap()) + .unwrap() + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>(); + std::fs::write(directory.join(format!("{label}-prefill-key35.f32")), bytes) + .unwrap(); + } + for (part, a) in [ + ("logits", Some(&prefix.logits)), + ("hidden", prefix.hidden.as_ref()), + ] { + let bytes = owner + .execution + .values_f32(a.unwrap()) + .unwrap() + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>(); + std::fs::write(directory.join(format!("{label}-prefill-{part}.f32")), bytes) + .unwrap(); + } + } + let saved = owner.live.current.as_ref().unwrap(); + let states = |states: &[Option]| { + states.iter().map(|s| { + s.as_ref().map(|s| { + let arrays: &[Option] = match s { + super::super::session_cache::State::Recurrent(a) => a, + super::super::session_cache::State::Qsa(a) => a, + }; + arrays.iter().map(|a| { + a.as_ref().map(|a| { + let values = owner.execution.values_f32(a).unwrap(); + let bytes = values.iter().flat_map(|v| v.to_le_bytes()).collect::>(); + let canonical_zero = values.iter().flat_map(|&v| (if v == 0. { 0. } else { v }).to_le_bytes()).collect::>(); + let hash = crate::engine::metal::qwen_mtplx_tests::hex_digest; + serde_json::json!({"shape":a.layout().shape(),"sha256":hash(&bytes),"value_sha256":hash(&canonical_zero)}) + }) + }).collect::>() + }) + }).collect::>() + }; + let arrays = serde_json::json!({"trunk":states(&saved.trunk),"mtp":states(saved.mtp.as_ref().unwrap())}); + std::fs::write( + directory.join(format!("{label}-arrays.json")), + serde_json::to_vec(&arrays).unwrap(), + ) + .unwrap(); + if let Some(super::super::session_cache::State::Qsa(a)) = &saved.trunk[35] { + let bytes = owner + .execution + .values_f32(a[0].as_ref().unwrap()) + .unwrap() + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>(); + std::fs::write(directory.join(format!("{label}-key35.f32")), bytes).unwrap(); + } + let record = serde_json::json!({"case":label,"prompt":&saved.token_ids[..out.prompt_tokens as usize],"tokens":&saved.token_ids[out.prompt_tokens as usize..],"cached":out.cached_tokens,"state_sha256":state(owner)}); + std::fs::write( + directory.join(format!("{label}.json")), + serde_json::to_vec(&record).unwrap(), + ) + .unwrap(); + for (part, a) in [ + ("logits", Some(&saved.logits)), + ("hidden", saved.hidden.as_ref()), + ] { + let bytes = owner + .execution + .values_f32(a.unwrap()) + .unwrap() + .into_iter() + .flat_map(f32::to_le_bytes) + .collect::>(); + std::fs::write(directory.join(format!("{label}-{part}.f32")), bytes).unwrap(); + } + println!("{record}"); + out + }; + let first = run(&mut owner, &messages, "cold"); + assert_eq!(first.cached_tokens, 0); + let original = state(&owner); + owner + .save_checkpoint(&directory.join("new.bin"), [109; 32], &mut |_| {}) + .unwrap(); + let old = std::path::PathBuf::from(std::env::var_os("DS4_ISSUE109_OLD").unwrap()); + assert!( + owner + .load_checkpoint(&old, &mut |_| {}) + .unwrap_err() + .contains("obsolete MTP attention-gate") + ); + assert_eq!(original, state(&owner)); + let mut next = messages.clone(); + next.push(first.message.clone()); + next.push(ChatTurn { + content: "Continue counting.".into(), + ..messages[0].clone() + }); + let warm = run(&mut owner, &next, "warm"); + assert!(warm.cached_tokens >= first.prompt_tokens); + let expected = state(&owner); + owner.reset().unwrap(); + assert!( + owner + .load_checkpoint(&directory.join("new.bin"), &mut |_| {}) + .unwrap() + ); + assert_eq!(original, state(&owner)); + run(&mut owner, &next, "reopened"); + assert_eq!(expected, state(&owner)); + println!( + "{}", + serde_json::json!({"case":"checkpoint","actual_old_rejected":true,"warm_reopened_state_exact":true}) + ); +} diff --git a/src/engine/metal/qwen_mtplx/model.rs b/src/engine/metal/qwen_mtplx/model.rs index 7fa021c..6bc3977 100644 --- a/src/engine/metal/qwen_mtplx/model.rs +++ b/src/engine/metal/qwen_mtplx/model.rs @@ -75,6 +75,7 @@ fn runs(layers: impl IntoIterator) -> Vec { struct RunKey { range: Range, capture: bool, + verify_gate: bool, stream: Stream, signature: Vec<(Vec, Dtype)>, } @@ -223,7 +224,14 @@ impl<'a> TextModel<'a> { let h = mtp.fuse_and_run(hidden, &emb, cache, options, vision, streams, stream)?; let mixed = mtp .mixer - .forward(&h, options.hyper_fused, options.hyper_v3, streams, stream)? + .forward( + &h, + options.hyper_fused, + options.hyper_v3, + options.qsa.verify_gate, + streams, + stream, + )? .mixed; let logits = self.head.unwrap_or(self.embedding).apply(&mixed, stream)?; Ok(Output { @@ -516,7 +524,14 @@ impl<'a> TextModel<'a> { self.last_widened = Some(h.clone()); let mixed = self .mixer - .forward(&h, options.hyper_fused, options.hyper_v3, streams, stream)? + .forward( + &h, + options.hyper_fused, + options.hyper_v3, + options.qsa.verify_gate, + streams, + stream, + )? .mixed; let logits = if output.emit_logits { let mixed = if output.logits_keep != 0 { @@ -610,6 +625,7 @@ impl<'a> TextModel<'a> { let key = RunKey { range: range.clone(), capture: options.gdn.capture, + verify_gate: options.qsa.verify_gate, stream, signature: flat .iter() diff --git a/src/engine/metal/qwen_mtplx/owner.rs b/src/engine/metal/qwen_mtplx/owner.rs index e2d3587..0e8dad6 100644 --- a/src/engine/metal/qwen_mtplx/owner.rs +++ b/src/engine/metal/qwen_mtplx/owner.rs @@ -1072,3 +1072,7 @@ mod issue106_product; #[cfg(test)] #[path = "issue107_product.rs"] mod issue107_product; + +#[cfg(test)] +#[path = "issue109_product.rs"] +mod issue109_product; diff --git a/src/engine/metal/qwen_mtplx/qsa_attention.rs b/src/engine/metal/qwen_mtplx/qsa_attention.rs index 5bce867..5cf34a8 100644 --- a/src/engine/metal/qwen_mtplx/qsa_attention.rs +++ b/src/engine/metal/qwen_mtplx/qsa_attention.rs @@ -1,7 +1,5 @@ //! qwen4_exp.Attention: projection, indexer, RoPE, KV and consumer branch order. -use super::array::Array; -#[cfg(test)] -use super::array::Dtype; +use super::array::{Array, Dtype}; use super::attention::{self, EagerSelection}; use super::binary::{Binary, binary}; use super::cache::QsaCache; @@ -34,12 +32,54 @@ pub(super) struct Attention<'a> { /// Resolved original request-phase/environment switches, not new heuristics. pub(super) struct Options { + pub(super) verify_gate: bool, pub(super) indexer: QsaIndexerOptions, pub(super) flash_min_context: u32, pub(super) prefill_gather: bool, pub(super) gather_tile_rows: i32, } +/// Only decode_verify uses the fused lowering from MTPLX attention_math.py. +/// In BF16 the value-preserving cast round trip selects that lowering without +/// changing the sigmoid's dtype. All other phases and FP16 keep the stock graph. +pub(super) fn attention_gate( + output: &Array, + gate: &Array, + verify: bool, + stream: Stream, +) -> Result { + let dtype = gate.layout().dtype(); + let body = |output: &Array, gate: &Array| { + binary( + output, + &unary::unary(gate, unary::Unary::Sigmoid, stream)?, + Binary::Multiply, + stream, + ) + }; + if !verify || !matches!(dtype, Dtype::BF16 | Dtype::F32) { + return body(output, gate); + } + let inputs = [output.clone(), gate.clone()]; + let replay = super::compiled::Replay::trace_compiled(&inputs, |args| { + let gate = if dtype == Dtype::BF16 { + ops::astype( + &ops::astype(&args[1], Dtype::F32, false, stream)?, + Dtype::BF16, + false, + stream, + )? + } else { + args[1].clone() + }; + Ok(vec![body(&args[0], &gate)?]) + })?; + replay + .run(&inputs)? + .pop() + .ok_or_else(|| "compiled attention gate omitted output".into()) +} + impl Attention<'_> { fn finish( &self, @@ -47,13 +87,12 @@ impl Attention<'_> { gate: &Array, batch: i32, rows: i32, + verify: bool, stream: Stream, ) -> Result { let out = ops::reshape(out, &[batch, rows, -1], stream)?; - let gate = unary::unary(gate, unary::Unary::Sigmoid, stream)?; - let out = self - .output - .apply(&binary(&out, &gate, Binary::Multiply, stream)?, stream)?; + let out = attention_gate(&out, gate, verify, stream)?; + let out = self.output.apply(&out, stream)?; match self.output_bias { Some(bias) => binary(&out, bias, Binary::Add, stream), None => Ok(out), @@ -211,7 +250,7 @@ impl Attention<'_> { self.scale, stream, )?; - return self.finish(&out, &gate, batch, rows, stream); + return self.finish(&out, &gate, batch, rows, options.verify_gate, stream); } if let Some(EagerSelection::PrefillBlocks(ids, valid)) = &selected { let keys = cache.kv.keys.as_ref().unwrap().borrow(); @@ -266,6 +305,7 @@ impl Attention<'_> { &gate, batch, rows, + options.verify_gate, stream, ); } @@ -279,6 +319,7 @@ impl Attention<'_> { &gate, batch, rows, + options.verify_gate, stream, ); } @@ -317,6 +358,7 @@ impl Attention<'_> { &gate, batch, rows, + options.verify_gate, stream, ) } @@ -503,6 +545,7 @@ fn mtplx_qsa_attention_module_matches_reference() { }), }; let options = Options { + verify_gate: false, indexer: qsa_indexer_options(&first["options"]), flash_min_context: first["flash_min"].as_u64().unwrap() as u32, prefill_gather: first["prefill_gather"].as_bool().unwrap(), diff --git a/src/engine/metal/qwen_mtplx/session_checkpoint.rs b/src/engine/metal/qwen_mtplx/session_checkpoint.rs index 98e1887..64e9fa3 100644 --- a/src/engine/metal/qwen_mtplx/session_checkpoint.rs +++ b/src/engine/metal/qwen_mtplx/session_checkpoint.rs @@ -30,6 +30,8 @@ struct Manifest { identity: Identity, tag: [u8; 32], #[serde(default)] + verify_gate: bool, + #[serde(default)] images: Vec, tokens: Vec, lazy_kv: bool, @@ -116,6 +118,7 @@ impl LiveSession { check_abort(&abort)?; let offset = file.stream_position().map_err(|e| e.to_string())?; let manifest = serde_json::to_vec(&Manifest { + verify_gate: true, identity, tag, images: self.current_images.clone(), @@ -185,6 +188,11 @@ impl LiveSession { if !crate::engine::qwen_vision::compatible(&manifest.images) { return Err("Qwen vision cache policy differs; rebuild the cache".into()); } + if identity.mtp && !manifest.verify_gate { + return Err( + "Qwen checkpoint uses obsolete MTP attention-gate math; rebuild the cache".into(), + ); + } if !manifest.payload["mtp_history_snapshot"].is_null() != identity.mtp { return Err("Qwen checkpoint MTP payload differs".into()); } @@ -433,7 +441,46 @@ fn qwen_checkpoint_roundtrip_and_failed_restore_preserve_live_state() { } assert_eq!(live.tag, [9; 32]); assert_eq!(fingerprint(&live), original); + // Files predating the verify-phase law lack this field. Only MTP state + // changed numerically; old AR files must remain exactly restorable. + let without_gate_policy = |bytes: &[u8]| { + let offset = u64::from_le_bytes(bytes[8..16].try_into().unwrap()) as usize; + let mut manifest: serde_json::Value = serde_json::from_slice(&bytes[offset..]).unwrap(); + manifest.as_object_mut().unwrap().remove("verify_gate"); + let mut result = bytes[..offset].to_vec(); + result.extend(serde_json::to_vec(&manifest).unwrap()); + result + }; + fs::write(&broken, without_gate_policy(&valid)).unwrap(); + assert!( + live.load_checkpoint(&broken, identity, &streams, stream, |_| {}, || false) + .unwrap_err() + .contains("obsolete MTP attention-gate") + ); + assert_eq!(fingerprint(&live), original); + live.current.as_mut().unwrap().mtp = None; + let ar_identity = Identity { + mtp: false, + ..identity + }; + let ar_original = fingerprint(&live); + live.save_checkpoint( + &path, + ar_identity, + [10; 32], + &streams, + stream, + |_| {}, + || false, + ) + .unwrap(); + fs::write(&broken, without_gate_policy(&fs::read(&path).unwrap())).unwrap(); + assert!( + live.load_checkpoint(&broken, ar_identity, &streams, stream, |_| {}, || false) + .unwrap() + ); + assert_eq!(fingerprint(&live), ar_original); println!( - "Qwen checkpoint: exact payload roundtrip, interrupted save, incompatible/corrupt restore passed" + "Qwen checkpoint: exact roundtrip, cancellation/corruption controls, old MTP rejected and old AR restored" ); } diff --git a/src/engine/metal/qwen_mtplx/speculative.rs b/src/engine/metal/qwen_mtplx/speculative.rs index 557aa11..4257fa4 100644 --- a/src/engine/metal/qwen_mtplx/speculative.rs +++ b/src/engine/metal/qwen_mtplx/speculative.rs @@ -436,7 +436,7 @@ impl Execution { .collect::, _>>() .map_err(|_| "context-copy token exceeds int32")?; let started = Instant::now(); - let verified = self.forward(&input, false, options.family_capture)?; + let verified = self.forward_verify(&input, options.family_capture)?; let logits = verified.logits.ok_or("copy verify omitted logits")?; let hidden = verified.hidden.ok_or("copy verify omitted hidden")?; let greedy = if sampler.temperature <= 0.0 { @@ -492,7 +492,8 @@ impl Execution { } let keep = accepted + 1; let committed = if options.family_capture { - let graph = self.graph_options(false, false)?; + let mut graph = self.graph_options(false, false)?; + graph.qsa.verify_gate = true; self.model.with_dependent_mut(|_, model| { model.commit_verified_window( &mut self.cache, @@ -513,7 +514,7 @@ impl Execution { if !committed { self.rollback_mtp_verify(&snapshots, input.len() as i32)?; let started = Instant::now(); - let repaired = self.forward(&input[..1], false, false)?; + let repaired = self.forward_verify(&input[..1], false)?; let logits = repaired.logits.ok_or("copy repair omitted logits")?; let hidden = repaired.hidden.ok_or("copy repair omitted hidden")?; ops::evaluate( @@ -810,7 +811,7 @@ impl Execution { .map_err(|_| "MTP token exceeds int32")?, ); let started = Instant::now(); - let verified = self.forward(&input, false, options.family_capture)?; + let verified = self.forward_verify(&input, options.family_capture)?; let verify_logits = verified.logits.ok_or("verify omitted logits")?; let verify_hidden = verified.hidden.ok_or("verify omitted hidden")?; ops::evaluate( @@ -911,7 +912,8 @@ impl Execution { // MTPLX exits verify_capture_scope before replaying the kept // prefix. Keeping capture armed here disables the fused GDN // single-row path on the PLE layer's repair forward. - let graph = self.graph_options(false, false)?; + let mut graph = self.graph_options(false, false)?; + graph.qsa.verify_gate = true; if options.family_capture { cycle.capture_committed = self.model.with_dependent_mut(|_, model| { model.commit_verified_window( @@ -940,7 +942,7 @@ impl Execution { .map(|&id| i32::try_from(id)) .collect::, _>>() .map_err(|_| "MTP token exceeds int32")?; - let repaired = self.forward(&ids, false, false)?; + let repaired = self.forward_verify(&ids, false)?; let logits = repaired.logits.ok_or("repair omitted logits")?; let hidden = repaired.hidden.ok_or("repair omitted hidden")?; if !options.defer_repair_eval { @@ -999,10 +1001,9 @@ impl Execution { result.history_seconds += self.append_committed(&result.hidden, &[token], options.lazy_history)?; } - let output = self.forward( + let output = self.forward_verify( &[i32::try_from(token).map_err(|_| "MTP token exceeds int32")?], false, - false, )?; let logits = output.logits.ok_or("final commit omitted logits")?; let hidden = output.hidden.ok_or("final commit omitted hidden")?; diff --git a/tools/issue109-gate-reference.py b/tools/issue109-gate-reference.py new file mode 100644 index 0000000..c0daba8 --- /dev/null +++ b/tools/issue109-gate-reference.py @@ -0,0 +1,36 @@ +"""Exact attention gate laws for all finite BF16/F16 values and dense F32 inputs.""" +import hashlib,json,subprocess,sys +from pathlib import Path +checkout,out=map(Path,sys.argv[1:3]) +assert subprocess.check_output(['git','-C',str(checkout),'rev-parse','HEAD'],text=True).strip()=='9882703f3105363ddc37eca9f97aa09a1d387112' +sys.path.insert(0,str(checkout)) +import mlx.core as mx +import numpy as np +from mtplx.attention_math import attention_gate +from mtplx.attention_context import attention_phase +from mtplx.models.qwen4_exp import _verify_inject +out.mkdir(parents=True,exist_ok=True) +for name,dtype in [('bf16',mx.bfloat16),('f16',mx.float16),('f32',mx.float32)]: + if name=='bf16': + values=(np.arange(65536,dtype=np.uint32)<<16).view(np.float32) + elif name=='f16': + values=np.arange(65536,dtype=np.uint16).view(np.float16).astype(np.float32) + else: + values=np.concatenate([np.linspace(-30,30,32768,dtype=np.float32),np.random.default_rng(5).normal(0,4,32768).astype(np.float32)]) + values=values[np.isfinite(values)] + gate=mx.array(values).astype(dtype) + output=mx.array(((np.arange(values.size,dtype=np.int64)*17)%97-48).astype(np.float32)/32).astype(dtype) + mx.eval(gate,output) + for part,a in [('gate',gate),('output',output)]: + (out/f'{name}-{part}.f32').write_bytes(np.asarray(a.astype(mx.float32)).tobytes()) + for phase in ['prefill','ar_decode','decode_verify']: + with attention_phase(phase): result=attention_gate(output,gate) + raw=np.asarray(result.astype(mx.float32)).tobytes() + (out/f'{name}-{phase}.f32').write_bytes(raw) + print(json.dumps(dict(case='gate',dtype=name,phase=phase,count=values.size,sha256=hashlib.sha256(raw).hexdigest())),flush=True) + if name=='bf16': + inject=_verify_inject(gate,4) if phase=='decode_verify' else 2.0*mx.sigmoid(gate/4) + raw=np.asarray(inject.astype(mx.float32)).tobytes() + (out/f'inject-{phase}.f32').write_bytes(raw) + print(json.dumps(dict(case='inject',dtype=name,phase=phase,count=values.size,sha256=hashlib.sha256(raw).hexdigest())),flush=True) + diff --git a/tools/issue109-model-reference.py b/tools/issue109-model-reference.py new file mode 100644 index 0000000..7cc7572 --- /dev/null +++ b/tools/issue109-model-reference.py @@ -0,0 +1,128 @@ +"""Compare actual MTP verify/repair/commit rows and warm continuation to native.""" +import argparse,hashlib,json,os,subprocess,sys +from pathlib import Path +checkout,root,native,out=map(Path,sys.argv[1:5]) +assert subprocess.check_output(['git','-C',str(checkout),'rev-parse','HEAD'],text=True).strip()=='9882703f3105363ddc37eca9f97aa09a1d387112' +sys.path.insert(0,str(checkout)) +from mtplx.server.openai import _server_runtime_env_overrides +os.environ.update(_server_runtime_env_overrides(argparse.Namespace(model=str(root),generation_mode='mtp'),None)) +os.environ['MTPLX_SUSTAINED_PREFILL']='1' +os.environ['MTPLX_PREFILL_CHUNK_SIZE']='2048' +os.environ['MTPLX_CONTEXT_COPY']='0' +import mlx.core as mx +import numpy as np +from mlx_lm.utils import load_model +from mtplx.models import qwen4_exp as qwen +from mtplx.runtime import _load_tokenizer_resilient,MTPLXRuntime +from mtplx.mtp_patch import MTPContract +from mtplx.generation import generate_mtpk +from mtplx.sampling import SamplerConfig +from mtplx.session_bank import SessionBank +from mtplx.cache_state import snapshot_cache +from mtplx.attention_context import current_attention_phase +out.mkdir(parents=True,exist_ok=True) +print(json.dumps(dict(case='environment',overrides={k:v for k,v in os.environ.items() if k.startswith('MTPLX_')})),flush=True) +tokenizer=_load_tokenizer_resilient(root,json.loads((root/'config.json').read_text())) +model,_=load_model(root,lazy=False,strict=True,get_model_classes=lambda **_:(qwen.Model,qwen.ModelArgs)) +model.post_weight_load(root) +assert model.attach_mtp(root) +rt=MTPLXRuntime(model,tokenizer,root,True,MTPContract()) +phase='cold'; index=0; nested=0 + +def wrap(fn): + def call(input_ids,*args,**kwargs): + global index,nested + outer=nested==0 + nested+=1 + try: result=fn(input_ids,*args,**kwargs) + finally: nested-=1 + if outer and current_attention_phase() == 'prefill' and isinstance(result,tuple) and result[0] is not None and result[1] is not None: + cache=kwargs.get('cache',args[0] if args else None) + if cache is not None: + key=np.asarray(snapshot_cache(cache).states[35][0].astype(mx.float32)) + (out/f'{phase}-prefill-key35.f32').write_bytes(key.tobytes()) + for part,a in zip(['logits','hidden'],result[:2]): + data=np.asarray(a.astype(mx.float32)).tobytes() + (out/f'{phase}-prefill-{part}.f32').write_bytes(data) + path=native/f'{phase}-prefill-{part}.f32' + print(json.dumps(dict(case='prefill_compare',phase=phase,part=part,shape=list(a.shape),exact=path.exists() and path.read_bytes()==data)),flush=True) + if outer and current_attention_phase()=='decode_verify': + expected=json.loads((native/phase/f'{index}.json').read_text()) + ids=np.asarray(input_ids).reshape(-1).tolist() + assert expected['verify'] and ids==expected['ids'], (phase,index,ids,expected['ids']) + receipt=dict(case='verify_forward',phase=phase,index=index,ids=ids) + for part,a in zip(['logits','hidden'],result[:2]): + data=np.asarray(a.astype(mx.float32)).tobytes() + (out/f'{phase}-{index}-{part}.f32').write_bytes(data) + ref=(native/phase/f'{index}-{part}.f32').read_bytes() + receipt[part+'_exact']=data==ref + receipt[part+'_sha256']=hashlib.sha256(data).hexdigest() + if data!=ref: + x=np.frombuffer(data,np.float32); y=np.frombuffer(ref,np.float32) + receipt[part+'_different']=int(np.count_nonzero(x!=y)) + receipt[part+'_max_abs']=float(np.max(np.abs(x-y))) + print(json.dumps(receipt),flush=True) + assert receipt['logits_exact'] and receipt['hidden_exact'],receipt + index+=1 + return result + return call +rt.forward_ar=wrap(rt.forward_ar) +rt.forward_ar_capture=wrap(rt.forward_ar_capture) +bank=SessionBank() +for phase in ['cold','warm']: + index=0 + expected=json.loads((native/f'{phase}.json').read_text()) + ids=expected['prompt'] + result=generate_mtpk(rt,ids,max_tokens=12,sampler=SamplerConfig(temperature=0.,top_p=.95,top_k=20),speculative_depth=3, + seed=1,stop_token_ids=set(tokenizer.eos_token_ids),mtp_history_policy='committed',verify_strategy='batched',capture_final_state=True, + session_bank=bank,session_id='issue109',store_prefix_snapshot=False, + token_callback=lambda ids:print(json.dumps(dict(case='tokens',phase=phase,ids=ids)),flush=True)) + assert result.tokens==expected['tokens'],(result.tokens,expected['tokens']) + assert result.stats.cached_tokens==expected['cached'],(result.stats.cached_tokens,expected['cached']) + assert index==len(list((native/phase).glob('*.json'))) + final=result.final_state + assert final.safe_to_commit + for part,a in [('logits',final.final_logits),('hidden',final.final_hidden)]: + data=np.asarray(a.astype(mx.float32)).tobytes() + assert data==(native/f'{phase}-{part}.f32').read_bytes(),(phase,part) + def states(cache): + def array(a): + if a is None: return None + values=np.asarray(a.astype(mx.float32)).copy() + bits=hashlib.sha256(values.tobytes()).hexdigest() + values[values==0]=0 + return dict(shape=list(a.shape),sha256=bits,value_sha256=hashlib.sha256(values.tobytes()).hexdigest()) + return [[array(a) for a in state] if state is not None else None for state in snapshot_cache(cache).states] + arrays=dict(trunk=states(final.final_trunk_cache),mtp=states(final.final_committed_mtp_cache)) + (out/f'{phase}-arrays.json').write_text(json.dumps(arrays)) + native_arrays=json.loads((native/f'{phase}-arrays.json').read_text()) + zero_sign_differences=[] + for family in arrays: + assert len(arrays[family])==len(native_arrays[family]) + for layer,(actual,want) in enumerate(zip(arrays[family],native_arrays[family])): + if actual is None or want is None: + assert actual==want + continue + assert len(actual)==len(want) + for slot,(a,b) in enumerate(zip(actual,want)): + if a is None or b is None: + assert a==b + continue + assert a['shape']==b['shape'] and a['value_sha256']==b['value_sha256'],(phase,family,layer,slot,a,b) + if a['sha256']!=b['sha256']: zero_sign_differences.append([family,layer,slot]) + assert zero_sign_differences in ([], [['trunk',35,0]]), zero_sign_differences + # Retain raw evidence of the prefill signed-zero mismatch; never hide it in + # the bit-exact verify/logit checks or substitute a numerical tolerance. + key=np.asarray(snapshot_cache(final.final_trunk_cache).states[35][0].astype(mx.float32)) + (out/f'{phase}-key35.f32').write_bytes(key.tobytes()) + want=np.fromfile(native/f'{phase}-key35.f32',np.float32).reshape(key.shape) + different=key.view(np.uint32)!=want.view(np.uint32) + assert np.all(key[different]==0) and np.all(want[different]==0) + assert np.argwhere(different).tolist() in ([], [[0,1,0,2]]) + print(json.dumps(dict(case='cache_arrays',phase=phase,values_exact=True,zero_sign_differences=zero_sign_differences,key35_bit_coordinates=np.argwhere(different).tolist())),flush=True) + head=snapshot_cache(final.final_committed_mtp_cache) + key=ids+result.tokens + assert bank.put(runtime=rt,token_ids=key,cache=final.final_trunk_cache,logits=final.final_logits,hidden=final.final_hidden, + hidden_variant='post_norm',session_id='issue109',mtp_history_policy='committed',mtp_history_snapshot=head, + snapshot_epoch=len(key),mtp_snapshot_epoch=len(key)) is not None + print(json.dumps(dict(case='turn',phase=phase,tokens=result.tokens,cached=result.stats.cached_tokens,verify_calls=index,final_exact=True)),flush=True)