Sentence Similarity
sentence-transformers
ONNX
Safetensors
modernbert
semantic-router
vela
matryoshka
text-embeddings-inference
Instructions to use vllm-sr/Vela-1.0-Encoder-307M-Embedding with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use vllm-sr/Vela-1.0-Encoder-307M-Embedding with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("vllm-sr/Vela-1.0-Encoder-307M-Embedding") sentences = [ "That is a happy person", "That is a happy dog", "That is a very happy person", "Today is a sunny day" ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [4, 4] - Notebooks
- Google Colab
- Kaggle
Release Vela 1.0 Embedding
Browse filesMultilingual retrieval with flexible representations and long-context support.
This view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +12 -0
- 1_Pooling/config.json +10 -0
- ENGLISH_RETRIEVAL_NOTICES.md +27 -0
- LICENSE +201 -0
- PUBLICATION_MANIFEST.json +2266 -0
- README.md +80 -0
- RELEASE_STATUS.json +70 -0
- TECHNICAL.md +161 -0
- THIRD_PARTY_NOTICES.md +15 -0
- artifact_sha256.json +13 -0
- composition-plan.json +67 -0
- config.json +54 -0
- config_sentence_transformers.json +14 -0
- model.safetensors +3 -0
- modules.json +14 -0
- onnx/layer-11/model.onnx +3 -0
- onnx/layer-11/model.onnx.data +3 -0
- onnx/layer-11/model_fa_fp16.onnx +3 -0
- onnx/layer-22/model.onnx +3 -0
- onnx/layer-22/model.onnx.data +3 -0
- onnx/layer-22/model_fa_fp16.onnx +3 -0
- onnx/layer-3/model.onnx +3 -0
- onnx/layer-3/model.onnx.data +3 -0
- onnx/layer-3/model_fa_fp16.onnx +3 -0
- onnx/layer-6/model.onnx +3 -0
- onnx/layer-6/model.onnx.data +3 -0
- onnx/layer-6/model_fa_fp16.onnx +3 -0
- onnx/model_config.json +26 -0
- reproduction/README.md +175 -0
- reproduction/audit_miracl_groups.py +92 -0
- reproduction/audit_native_rows_completion.py +114 -0
- reproduction/audit_reranker_final_tokenizers_v2.py +49 -0
- reproduction/build_embedding_interpolation.py +268 -0
- reproduction/build_embedding_interpolation_v2.py +281 -0
- reproduction/build_embedding_native_composition.py +217 -0
- reproduction/candle/README.md +32 -0
- reproduction/candle/aggregate.json +249 -0
- reproduction/candle/publication-adaptations.json +22 -0
- reproduction/candle/qualification-v1/hf-fp32-vectors.npz +3 -0
- reproduction/candle/qualification-v1/inputs.jsonl +0 -0
- reproduction/candle/qualification-v1/native-vectors.npz +3 -0
- reproduction/candle/qualification-v1/report.json +1297 -0
- reproduction/candle/short-reference-v1/report.json +656 -0
- reproduction/candle/short_reference.py +31 -0
- reproduction/candle/summarize_candle.py +107 -0
- reproduction/candle/validate_candle.py +103 -0
- reproduction/clean_pawsx_scores.py +94 -0
- reproduction/debug_embedding_native_training_step.py +215 -0
- reproduction/diagnose_embedding_training_precision.py +135 -0
- reproduction/diagnose_natural_teacher.py +56 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,15 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
onnx/layer-11/model.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
onnx/layer-22/model.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
onnx/layer-3/model.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
onnx/layer-6/model.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
reproduction/intermediates/clean1/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
reproduction/intermediates/native1440/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
reproduction/intermediates/native960/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
reproduction/portable-fp16/layer-11/model_sdpa_fp16.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
reproduction/portable-fp16/layer-22/model_sdpa_fp16.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
reproduction/portable-fp16/layer-3/model_sdpa_fp16.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
reproduction/portable-fp16/layer-6/model_sdpa_fp16.onnx.data filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
1_Pooling/config.json
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"word_embedding_dimension": 768,
|
| 3 |
+
"pooling_mode_cls_token": false,
|
| 4 |
+
"pooling_mode_mean_tokens": true,
|
| 5 |
+
"pooling_mode_max_tokens": false,
|
| 6 |
+
"pooling_mode_mean_sqrt_len_tokens": false,
|
| 7 |
+
"pooling_mode_weightedmean_tokens": false,
|
| 8 |
+
"pooling_mode_lasttoken": false,
|
| 9 |
+
"include_prompt": true
|
| 10 |
+
}
|
ENGLISH_RETRIEVAL_NOTICES.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# English retrieval data attribution
|
| 2 |
+
|
| 3 |
+
These notices concern datasets used for training and evaluation. They do not replace the license of each source or change the license of the released model or accompanying software. The reproduction download manifest fixes source revisions and file SHA-256 values; model packages do not include the full source datasets.
|
| 4 |
+
|
| 5 |
+
## SciFact
|
| 6 |
+
|
| 7 |
+
David Wadden, Shanchuan Lin, Kyle Lo, Lucy Lu Wang, Madeleine van Zuylen, Arman Cohan, and Hannaneh Hajishirzi. *Fact or Fiction: Verifying Scientific Claims*. EMNLP 2020. [Official repository](https://github.com/allenai/scifact).
|
| 8 |
+
|
| 9 |
+
The [official license at revision 68b98a56d93e0f9da0d2aab4e6c3294699a0f72e](https://github.com/allenai/scifact/blob/68b98a56d93e0f9da0d2aab4e6c3294699a0f72e/LICENSE.md) distinguishes three components:
|
| 10 |
+
|
| 11 |
+
- Claims and evidence annotations (`claims_*.jsonl`): [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
| 12 |
+
- The scientific abstracts (`corpus.jsonl`), drawn from S2ORC: [ODC-By 1.0](https://opendatacommons.org/licenses/by/1-0/). Attribution also belongs to the original authors and S2ORC contributors; see [S2ORC](https://github.com/allenai/s2orc).
|
| 13 |
+
- Repository code: Apache 2.0.
|
| 14 |
+
|
| 15 |
+
The official archive used here has SHA-256 `11c621288d41ac144d29b13b0f8503b3820b7d6e8b1f6ff24dff335c196d76be`. The English repair uses only official training claims as supervision. Both SUPPORT and CONTRADICT evidence abstracts are relevant documents for the retrieval task. New development claims and their positive articles are excluded from training. TF-IDF alternatives are unjudged, and are not represented as human-verified irrelevant documents. The corpus is shared: query-heldout evaluation does not imply article-unseen evaluation. Historical BEIR SciFact results concern its 300-query evaluation split; they must remain distinct from the new training-derived development slice.
|
| 16 |
+
|
| 17 |
+
Earlier generic attribution that assigned one license to all SciFact components should be replaced by the component-specific statement above. No model-weight update is needed for this documentation correction.
|
| 18 |
+
|
| 19 |
+
## Natural Questions
|
| 20 |
+
|
| 21 |
+
Tom Kwiatkowski and colleagues. *Natural Questions: a Benchmark for Question Answering Research*. TACL 2019. [Official project](https://ai.google.com/research/NaturalQuestions).
|
| 22 |
+
|
| 23 |
+
The dataset is released under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/), as stated by the [official data instructions](https://github.com/google-research-datasets/natural-questions/blob/fb26a3073b1fe636c97302890a27b491d6530130/nq_open/README.md). This differs from the repository software's Apache 2.0 license. Wikipedia authors retain their attribution and applicable source terms.
|
| 24 |
+
|
| 25 |
+
The training recipe uses the [Sentence Transformers query/passage formatting](https://huggingface.co/datasets/sentence-transformers/natural-questions/tree/f9e894e1081e206e577b4eaa9ee6de2b06ae6f17), derived from the Natural Questions training split. The parquet file SHA-256 is `8cfb5e5a7cb1cd09dbb035a581aa42ce5db5852acb3e70f070d89d7035887de9`. The format conversion does not supply a replacement license. Source data and any redistributed adapted data retain their original attribution and license requirements.
|
| 26 |
+
|
| 27 |
+
The recipe normalizes duplicate identities, groups repeated answer passages together, removes cross-split duplicate questions, and rejects out-of-budget training pairs. Development is drawn from separately reserved answer groups in the source training split; it is not the official Natural Questions benchmark. Its metric measures query-to-answer-passage retrieval among the reserved passage pool, not the official long-answer or short-answer F1 task.
|
LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Apache License
|
| 2 |
+
Version 2.0, January 2004
|
| 3 |
+
http://www.apache.org/licenses/
|
| 4 |
+
|
| 5 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
| 6 |
+
|
| 7 |
+
1. Definitions.
|
| 8 |
+
|
| 9 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
| 10 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
| 11 |
+
|
| 12 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
| 13 |
+
the copyright owner that is granting the License.
|
| 14 |
+
|
| 15 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
| 16 |
+
other entities that control, are controlled by, or are under common
|
| 17 |
+
control with that entity. For the purposes of this definition,
|
| 18 |
+
"control" means (i) the power, direct or indirect, to cause the
|
| 19 |
+
direction or management of such entity, whether by contract or
|
| 20 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
| 21 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
| 22 |
+
|
| 23 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
| 24 |
+
exercising permissions granted by this License.
|
| 25 |
+
|
| 26 |
+
"Source" form shall mean the preferred form for making modifications,
|
| 27 |
+
including but not limited to software source code, documentation
|
| 28 |
+
source, and configuration files.
|
| 29 |
+
|
| 30 |
+
"Object" form shall mean any form resulting from mechanical
|
| 31 |
+
transformation or translation of a Source form, including but
|
| 32 |
+
not limited to compiled object code, generated documentation,
|
| 33 |
+
and conversions to other media types.
|
| 34 |
+
|
| 35 |
+
"Work" shall mean the work of authorship, whether in Source or
|
| 36 |
+
Object form, made available under the License, as indicated by a
|
| 37 |
+
copyright notice that is included in or attached to the work
|
| 38 |
+
(an example is provided in the Appendix below).
|
| 39 |
+
|
| 40 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
| 41 |
+
form, that is based on (or derived from) the Work and for which the
|
| 42 |
+
editorial revisions, annotations, elaborations, or other modifications
|
| 43 |
+
represent, as a whole, an original work of authorship. For the purposes
|
| 44 |
+
of this License, Derivative Works shall not include works that remain
|
| 45 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
| 46 |
+
the Work and Derivative Works thereof.
|
| 47 |
+
|
| 48 |
+
"Contribution" shall mean any work of authorship, including
|
| 49 |
+
the original version of the Work and any modifications or additions
|
| 50 |
+
to that Work or Derivative Works thereof, that is intentionally
|
| 51 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
| 52 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
| 53 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
| 54 |
+
means any form of electronic, verbal, or written communication sent
|
| 55 |
+
to the Licensor or its representatives, including but not limited to
|
| 56 |
+
communication on electronic mailing lists, source code control systems,
|
| 57 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
| 58 |
+
Licensor for the purpose of discussing and improving the Work, but
|
| 59 |
+
excluding communication that is conspicuously marked or otherwise
|
| 60 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
| 61 |
+
|
| 62 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
| 63 |
+
on behalf of whom a Contribution has been received by Licensor and
|
| 64 |
+
subsequently incorporated within the Work.
|
| 65 |
+
|
| 66 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
| 67 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 68 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 69 |
+
copyright license to reproduce, prepare Derivative Works of,
|
| 70 |
+
publicly display, publicly perform, sublicense, and distribute the
|
| 71 |
+
Work and such Derivative Works in Source or Object form.
|
| 72 |
+
|
| 73 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
| 74 |
+
this License, each Contributor hereby grants to You a perpetual,
|
| 75 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
| 76 |
+
(except as stated in this section) patent license to make, have made,
|
| 77 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
| 78 |
+
where such license applies only to those patent claims licensable
|
| 79 |
+
by such Contributor that are necessarily infringed by their
|
| 80 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
| 81 |
+
with the Work to which such Contribution(s) was submitted. If You
|
| 82 |
+
institute patent litigation against any entity (including a
|
| 83 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
| 84 |
+
or a Contribution incorporated within the Work constitutes direct
|
| 85 |
+
or contributory patent infringement, then any patent licenses
|
| 86 |
+
granted to You under this License for that Work shall terminate
|
| 87 |
+
as of the date such litigation is filed.
|
| 88 |
+
|
| 89 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
| 90 |
+
Work or Derivative Works thereof in any medium, with or without
|
| 91 |
+
modifications, and in Source or Object form, provided that You
|
| 92 |
+
meet the following conditions:
|
| 93 |
+
|
| 94 |
+
(a) You must give any other recipients of the Work or
|
| 95 |
+
Derivative Works a copy of this License; and
|
| 96 |
+
|
| 97 |
+
(b) You must cause any modified files to carry prominent notices
|
| 98 |
+
stating that You changed the files; and
|
| 99 |
+
|
| 100 |
+
(c) You must retain, in the Source form of any Derivative Works
|
| 101 |
+
that You distribute, all copyright, patent, trademark, and
|
| 102 |
+
attribution notices from the Source form of the Work,
|
| 103 |
+
excluding those notices that do not pertain to any part of
|
| 104 |
+
the Derivative Works; and
|
| 105 |
+
|
| 106 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
| 107 |
+
distribution, then any Derivative Works that You distribute must
|
| 108 |
+
include a readable copy of the attribution notices contained
|
| 109 |
+
within such NOTICE file, excluding those notices that do not
|
| 110 |
+
pertain to any part of the Derivative Works, in at least one
|
| 111 |
+
of the following places: within a NOTICE text file distributed
|
| 112 |
+
as part of the Derivative Works; within the Source form or
|
| 113 |
+
documentation, if provided along with the Derivative Works; or,
|
| 114 |
+
within a display generated by the Derivative Works, if and
|
| 115 |
+
wherever such third-party notices normally appear. The contents
|
| 116 |
+
of the NOTICE file are for informational purposes only and
|
| 117 |
+
do not modify the License. You may add Your own attribution
|
| 118 |
+
notices within Derivative Works that You distribute, alongside
|
| 119 |
+
or as an addendum to the NOTICE text from the Work, provided
|
| 120 |
+
that such additional attribution notices cannot be construed
|
| 121 |
+
as modifying the License.
|
| 122 |
+
|
| 123 |
+
You may add Your own copyright statement to Your modifications and
|
| 124 |
+
may provide additional or different license terms and conditions
|
| 125 |
+
for use, reproduction, or distribution of Your modifications, or
|
| 126 |
+
for any such Derivative Works as a whole, provided Your use,
|
| 127 |
+
reproduction, and distribution of the Work otherwise complies with
|
| 128 |
+
the conditions stated in this License.
|
| 129 |
+
|
| 130 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
| 131 |
+
any Contribution intentionally submitted for inclusion in the Work
|
| 132 |
+
by You to the Licensor shall be under the terms and conditions of
|
| 133 |
+
this License, without any additional terms or conditions.
|
| 134 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
| 135 |
+
the terms of any separate license agreement you may have executed
|
| 136 |
+
with Licensor regarding such Contributions.
|
| 137 |
+
|
| 138 |
+
6. Trademarks. This License does not grant permission to use the trade
|
| 139 |
+
names, trademarks, service marks, or product names of the Licensor,
|
| 140 |
+
except as required for reasonable and customary use in describing the
|
| 141 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
| 142 |
+
|
| 143 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
| 144 |
+
agreed to in writing, Licensor provides the Work (and each
|
| 145 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
| 146 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
| 147 |
+
implied, including, without limitation, any warranties or conditions
|
| 148 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
| 149 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
| 150 |
+
appropriateness of using or redistributing the Work and assume any
|
| 151 |
+
risks associated with Your exercise of permissions under this License.
|
| 152 |
+
|
| 153 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
| 154 |
+
whether in tort (including negligence), contract, or otherwise,
|
| 155 |
+
unless required by applicable law (such as deliberate and grossly
|
| 156 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
| 157 |
+
liable to You for damages, including any direct, indirect, special,
|
| 158 |
+
incidental, or consequential damages of any character arising as a
|
| 159 |
+
result of this License or out of the use or inability to use the
|
| 160 |
+
Work (including but not limited to damages for loss of goodwill,
|
| 161 |
+
work stoppage, computer failure or malfunction, or any and all
|
| 162 |
+
other commercial damages or losses), even if such Contributor
|
| 163 |
+
has been advised of the possibility of such damages.
|
| 164 |
+
|
| 165 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
| 166 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
| 167 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
| 168 |
+
or other liability obligations and/or rights consistent with this
|
| 169 |
+
License. However, in accepting such obligations, You may act only
|
| 170 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
| 171 |
+
of any other Contributor, and only if You agree to indemnify,
|
| 172 |
+
defend, and hold each Contributor harmless for any liability
|
| 173 |
+
incurred by, or claims asserted against, such Contributor by reason
|
| 174 |
+
of your accepting any such warranty or additional liability.
|
| 175 |
+
|
| 176 |
+
END OF TERMS AND CONDITIONS
|
| 177 |
+
|
| 178 |
+
APPENDIX: How to apply the Apache License to your work.
|
| 179 |
+
|
| 180 |
+
To apply the Apache License to your work, attach the following
|
| 181 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
| 182 |
+
replaced with your own identifying information. (Don't include
|
| 183 |
+
the brackets!) The text should be enclosed in the appropriate
|
| 184 |
+
comment syntax for the file format. We also recommend that a
|
| 185 |
+
file or class name and description of purpose be included on the
|
| 186 |
+
same "printed page" as the copyright notice for easier
|
| 187 |
+
identification within third-party archives.
|
| 188 |
+
|
| 189 |
+
Copyright [yyyy] [name of copyright owner]
|
| 190 |
+
|
| 191 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
| 192 |
+
you may not use this file except in compliance with the License.
|
| 193 |
+
You may obtain a copy of the License at
|
| 194 |
+
|
| 195 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
| 196 |
+
|
| 197 |
+
Unless required by applicable law or agreed to in writing, software
|
| 198 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
| 199 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 200 |
+
See the License for the specific language governing permissions and
|
| 201 |
+
limitations under the License.
|
PUBLICATION_MANIFEST.json
ADDED
|
@@ -0,0 +1,2266 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_id": "llm-semantic-router/Vela-1.0-Encoder-307M-Embedding",
|
| 3 |
+
"status": "All frozen quality and engine conditions qualified; ready for publisher review; not published",
|
| 4 |
+
"native_weights_sha256": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 5 |
+
"native_config_sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 6 |
+
"tokenizer_sha256": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c",
|
| 7 |
+
"files": [
|
| 8 |
+
{
|
| 9 |
+
"path": "1_Pooling/config.json",
|
| 10 |
+
"sha256": "35bbd47d7fdf1e378db6130bcc668b09d1aa67a7bbf7c8f89a9c71f4cc8ebcc6",
|
| 11 |
+
"size": 312,
|
| 12 |
+
"artifact_group": "native_and_documentation"
|
| 13 |
+
},
|
| 14 |
+
{
|
| 15 |
+
"path": "ENGLISH_RETRIEVAL_NOTICES.md",
|
| 16 |
+
"sha256": "06f09550ca291d19d6e44c2ccd43c748b3378fe933689b5415ce81caee6646f4",
|
| 17 |
+
"size": 3667,
|
| 18 |
+
"artifact_group": "native_and_documentation"
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"path": "LICENSE",
|
| 22 |
+
"sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4",
|
| 23 |
+
"size": 11357,
|
| 24 |
+
"artifact_group": "native_and_documentation"
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"path": "README.md",
|
| 28 |
+
"sha256": "6889565c68e825f1b001b984b2500978763ba079256f0ee38101988c01e9f236",
|
| 29 |
+
"size": 3613,
|
| 30 |
+
"artifact_group": "native_and_documentation"
|
| 31 |
+
},
|
| 32 |
+
{
|
| 33 |
+
"path": "RELEASE_STATUS.json",
|
| 34 |
+
"sha256": "05bf8f95441b7fa3b98ad365baaae49c58b26ec2aa59a03e1e0400198ce22947",
|
| 35 |
+
"size": 2872,
|
| 36 |
+
"artifact_group": "native_and_documentation"
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"path": "TECHNICAL.md",
|
| 40 |
+
"sha256": "a523e9cc41a198af91744699801e91e3fc7674b47c27e2070d50c27d3f694473",
|
| 41 |
+
"size": 22099,
|
| 42 |
+
"artifact_group": "native_and_documentation"
|
| 43 |
+
},
|
| 44 |
+
{
|
| 45 |
+
"path": "THIRD_PARTY_NOTICES.md",
|
| 46 |
+
"sha256": "f3a796eb313c1689cc30c85e330e9c3e00289c5fb0f04787175a7ddafdaef238",
|
| 47 |
+
"size": 3686,
|
| 48 |
+
"artifact_group": "native_and_documentation"
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"path": "artifact_sha256.json",
|
| 52 |
+
"sha256": "6661160e3b2fe54c638f4bd87a4a70622ceb3a9ff0ce2fb59ed2aa4548dbb534",
|
| 53 |
+
"size": 1039,
|
| 54 |
+
"artifact_group": "native_and_documentation"
|
| 55 |
+
},
|
| 56 |
+
{
|
| 57 |
+
"path": "composition-plan.json",
|
| 58 |
+
"sha256": "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da",
|
| 59 |
+
"size": 3613,
|
| 60 |
+
"artifact_group": "native_and_documentation"
|
| 61 |
+
},
|
| 62 |
+
{
|
| 63 |
+
"path": "config.json",
|
| 64 |
+
"sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 65 |
+
"size": 1470,
|
| 66 |
+
"artifact_group": "native_and_documentation"
|
| 67 |
+
},
|
| 68 |
+
{
|
| 69 |
+
"path": "config_sentence_transformers.json",
|
| 70 |
+
"sha256": "ccf45df8438a7510d071f4cf0495a0925a3f045027d8c05b857079024984e277",
|
| 71 |
+
"size": 294,
|
| 72 |
+
"artifact_group": "native_and_documentation"
|
| 73 |
+
},
|
| 74 |
+
{
|
| 75 |
+
"path": "model.safetensors",
|
| 76 |
+
"sha256": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 77 |
+
"size": 1227771776,
|
| 78 |
+
"artifact_group": "native_and_documentation"
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"path": "modules.json",
|
| 82 |
+
"sha256": "8f4b264b80206c830bebbdcae377e137925650a433b689343a63bdc9b3145460",
|
| 83 |
+
"size": 229,
|
| 84 |
+
"artifact_group": "native_and_documentation"
|
| 85 |
+
},
|
| 86 |
+
{
|
| 87 |
+
"path": "onnx/layer-11/model.onnx",
|
| 88 |
+
"sha256": "025b35c9b7245f1057d0108e31df1b8c72de3f11b514978db47920efd7195216",
|
| 89 |
+
"size": 82662,
|
| 90 |
+
"artifact_group": "runtime_onnx"
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"path": "onnx/layer-11/model.onnx.data",
|
| 94 |
+
"sha256": "4b6e2e6cf3d4ad6fe71a24d7a03722c54edd39631955f4e8b34e5aa3af0cd7f1",
|
| 95 |
+
"size": 1007157248,
|
| 96 |
+
"artifact_group": "runtime_onnx"
|
| 97 |
+
},
|
| 98 |
+
{
|
| 99 |
+
"path": "onnx/layer-11/model_fa_fp16.onnx",
|
| 100 |
+
"sha256": "6b40cc6df12bad5d99e8b4635e53fbffc3072a6b33c910ff1ca32f345734ec17",
|
| 101 |
+
"size": 503617018,
|
| 102 |
+
"artifact_group": "runtime_onnx"
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"path": "onnx/layer-22/model.onnx",
|
| 106 |
+
"sha256": "b88757358e272ded08eb3e19f620d85b9634d3d0ce690385099fa9b372d76ee9",
|
| 107 |
+
"size": 162486,
|
| 108 |
+
"artifact_group": "runtime_onnx"
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
"path": "onnx/layer-22/model.onnx.data",
|
| 112 |
+
"sha256": "926a1ab0bf7e7b45c6cad4865a81fcc880dfb0244f82d92ac2eba17f2fe4e7be",
|
| 113 |
+
"size": 1227816960,
|
| 114 |
+
"artifact_group": "runtime_onnx"
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"path": "onnx/layer-22/model_fa_fp16.onnx",
|
| 118 |
+
"sha256": "1d214776171b8711a53044e84d92feb4eea2b6794b98d28940a3f0cb5d476dc5",
|
| 119 |
+
"size": 614015934,
|
| 120 |
+
"artifact_group": "runtime_onnx"
|
| 121 |
+
},
|
| 122 |
+
{
|
| 123 |
+
"path": "onnx/layer-3/model.onnx",
|
| 124 |
+
"sha256": "257835ac57b148b88910fcfc490fe2e75b0c3c4590f2917d4e06fe7470eadff5",
|
| 125 |
+
"size": 25723,
|
| 126 |
+
"artifact_group": "runtime_onnx"
|
| 127 |
+
},
|
| 128 |
+
{
|
| 129 |
+
"path": "onnx/layer-3/model.onnx.data",
|
| 130 |
+
"sha256": "c75e5dfefa11bd2238211219662cc155f340c1c4e1663f4f7cc5c6aa7d1b9362",
|
| 131 |
+
"size": 846659584,
|
| 132 |
+
"artifact_group": "runtime_onnx"
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"path": "onnx/layer-3/model_fa_fp16.onnx",
|
| 136 |
+
"sha256": "b06ee533865382b941d72077307829b197c5c45ee57db49847a2c91bbbec135b",
|
| 137 |
+
"size": 423328828,
|
| 138 |
+
"artifact_group": "runtime_onnx"
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"path": "onnx/layer-6/model.onnx",
|
| 142 |
+
"sha256": "91de3bbfb45ac40f375a5d023f80b16063f1c6283c641abe5377884fda8f1e6f",
|
| 143 |
+
"size": 46870,
|
| 144 |
+
"artifact_group": "runtime_onnx"
|
| 145 |
+
},
|
| 146 |
+
{
|
| 147 |
+
"path": "onnx/layer-6/model.onnx.data",
|
| 148 |
+
"sha256": "d3ba575381c22f7b78e5b677c0d16cc4a47cadba0c6397c9079cd0c69cdbc98b",
|
| 149 |
+
"size": 906821632,
|
| 150 |
+
"artifact_group": "runtime_onnx"
|
| 151 |
+
},
|
| 152 |
+
{
|
| 153 |
+
"path": "onnx/layer-6/model_fa_fp16.onnx",
|
| 154 |
+
"sha256": "6ecbe612478e8d13749d90b7f6c719f16afb6aa4c2d26214eb35f16049bed9cc",
|
| 155 |
+
"size": 453436745,
|
| 156 |
+
"artifact_group": "runtime_onnx"
|
| 157 |
+
},
|
| 158 |
+
{
|
| 159 |
+
"path": "onnx/model_config.json",
|
| 160 |
+
"sha256": "a3a2a51c54a3270c9ecfb663a1c838032da1845a1101e7e89c9cd004674f13a6",
|
| 161 |
+
"size": 455,
|
| 162 |
+
"artifact_group": "runtime_onnx"
|
| 163 |
+
},
|
| 164 |
+
{
|
| 165 |
+
"path": "reproduction/README.md",
|
| 166 |
+
"sha256": "fc2aeaa0905c2124171b0895831eb78dc455055d8e7b096f126cd9a543bbb1bf",
|
| 167 |
+
"size": 16488,
|
| 168 |
+
"artifact_group": "optional_reproduction"
|
| 169 |
+
},
|
| 170 |
+
{
|
| 171 |
+
"path": "reproduction/audit_miracl_groups.py",
|
| 172 |
+
"sha256": "3ff14397d25969ff35eb57a675af72b54fb7d5c89d402c5204b4ccabdd067897",
|
| 173 |
+
"size": 6791,
|
| 174 |
+
"artifact_group": "optional_reproduction"
|
| 175 |
+
},
|
| 176 |
+
{
|
| 177 |
+
"path": "reproduction/audit_native_rows_completion.py",
|
| 178 |
+
"sha256": "40b03fbb6825864eda1ed335c49ae3cf72cc17bb6dbca0394af89ca4fdbeca72",
|
| 179 |
+
"size": 4075,
|
| 180 |
+
"artifact_group": "optional_reproduction"
|
| 181 |
+
},
|
| 182 |
+
{
|
| 183 |
+
"path": "reproduction/audit_reranker_final_tokenizers_v2.py",
|
| 184 |
+
"sha256": "6d4b189f64351cad3558b550d3c752f9c3e20e687ba582e10f3d47aea271c35a",
|
| 185 |
+
"size": 4241,
|
| 186 |
+
"artifact_group": "optional_reproduction"
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"path": "reproduction/build_embedding_interpolation.py",
|
| 190 |
+
"sha256": "024d480968d85c2d74770d76d88fc2559101ff115af9c4043e45e46d65940007",
|
| 191 |
+
"size": 10066,
|
| 192 |
+
"artifact_group": "optional_reproduction"
|
| 193 |
+
},
|
| 194 |
+
{
|
| 195 |
+
"path": "reproduction/build_embedding_interpolation_v2.py",
|
| 196 |
+
"sha256": "fda10878bc0c4299a066dc7d9e1b2bcdd9f6f22d6615d809556d20e0a5538fd3",
|
| 197 |
+
"size": 10943,
|
| 198 |
+
"artifact_group": "optional_reproduction"
|
| 199 |
+
},
|
| 200 |
+
{
|
| 201 |
+
"path": "reproduction/build_embedding_native_composition.py",
|
| 202 |
+
"sha256": "321a901ecfb2be7a6f4d267a43186bf6741a53d9548ec1270a4aeac3cdf305b0",
|
| 203 |
+
"size": 7885,
|
| 204 |
+
"artifact_group": "optional_reproduction"
|
| 205 |
+
},
|
| 206 |
+
{
|
| 207 |
+
"path": "reproduction/candle/README.md",
|
| 208 |
+
"sha256": "d9afd156b31ec14de3cfbeb0f53c8cd74528c0380d0f0ae9b9ecc04ac6d451ef",
|
| 209 |
+
"size": 3582,
|
| 210 |
+
"artifact_group": "optional_reproduction"
|
| 211 |
+
},
|
| 212 |
+
{
|
| 213 |
+
"path": "reproduction/candle/aggregate.json",
|
| 214 |
+
"sha256": "4a7812c783e77f3365e3c041ba14aebc5fe27b2f7154576a6da2401e12149383",
|
| 215 |
+
"size": 8264,
|
| 216 |
+
"artifact_group": "optional_reproduction"
|
| 217 |
+
},
|
| 218 |
+
{
|
| 219 |
+
"path": "reproduction/candle/publication-adaptations.json",
|
| 220 |
+
"sha256": "c01e97fe846420585701eaf9fcd5456a6221fed5f6a7c3b3f913cd9bf0608be9",
|
| 221 |
+
"size": 1480,
|
| 222 |
+
"artifact_group": "optional_reproduction"
|
| 223 |
+
},
|
| 224 |
+
{
|
| 225 |
+
"path": "reproduction/candle/qualification-v1/hf-fp32-vectors.npz",
|
| 226 |
+
"sha256": "9610e70d992ece3ebc4eff4a8b0d4cfab3597363594836d928c2c581d12fab5f",
|
| 227 |
+
"size": 395062,
|
| 228 |
+
"artifact_group": "optional_reproduction"
|
| 229 |
+
},
|
| 230 |
+
{
|
| 231 |
+
"path": "reproduction/candle/qualification-v1/inputs.jsonl",
|
| 232 |
+
"sha256": "617295b3aa1fa67310a282302b7d2f099fb501a63a633a35ad6f27546a9536b4",
|
| 233 |
+
"size": 355406,
|
| 234 |
+
"artifact_group": "optional_reproduction"
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"path": "reproduction/candle/qualification-v1/native-vectors.npz",
|
| 238 |
+
"sha256": "79e5172d95147325f39859effd7f80f65a8bce95ac187707ea6b4fc813ffcee2",
|
| 239 |
+
"size": 115800,
|
| 240 |
+
"artifact_group": "optional_reproduction"
|
| 241 |
+
},
|
| 242 |
+
{
|
| 243 |
+
"path": "reproduction/candle/qualification-v1/report.json",
|
| 244 |
+
"sha256": "d16edae02cb85ed93be89d562d797a5e5c9aeaaa61609b7ec65f6817f4473fc4",
|
| 245 |
+
"size": 35630,
|
| 246 |
+
"artifact_group": "optional_reproduction"
|
| 247 |
+
},
|
| 248 |
+
{
|
| 249 |
+
"path": "reproduction/candle/short-reference-v1/report.json",
|
| 250 |
+
"sha256": "c4a2af07731984ddbd69d69fc075f5125b0dad4df0262af61225a776805b7315",
|
| 251 |
+
"size": 14624,
|
| 252 |
+
"artifact_group": "optional_reproduction"
|
| 253 |
+
},
|
| 254 |
+
{
|
| 255 |
+
"path": "reproduction/candle/short_reference.py",
|
| 256 |
+
"sha256": "9bf77b5e3e72a076619bdfe453558994720a340295d4b05cf9a04812edada7a8",
|
| 257 |
+
"size": 3977,
|
| 258 |
+
"artifact_group": "optional_reproduction"
|
| 259 |
+
},
|
| 260 |
+
{
|
| 261 |
+
"path": "reproduction/candle/summarize_candle.py",
|
| 262 |
+
"sha256": "395a789947b69fe4bc65b94434947944f5439505266ce1cb9d135cd11f582d51",
|
| 263 |
+
"size": 5346,
|
| 264 |
+
"artifact_group": "optional_reproduction"
|
| 265 |
+
},
|
| 266 |
+
{
|
| 267 |
+
"path": "reproduction/candle/validate_candle.py",
|
| 268 |
+
"sha256": "552c0cc12662cd54c02ab1b75b11b1b52e347bf13c07d1208470f178962602b3",
|
| 269 |
+
"size": 10228,
|
| 270 |
+
"artifact_group": "optional_reproduction"
|
| 271 |
+
},
|
| 272 |
+
{
|
| 273 |
+
"path": "reproduction/clean_pawsx_scores.py",
|
| 274 |
+
"sha256": "7f50e4dde1827a6f029b5b3700031593f063ca21a9a3f653776a1d7462bdf6db",
|
| 275 |
+
"size": 5177,
|
| 276 |
+
"artifact_group": "optional_reproduction"
|
| 277 |
+
},
|
| 278 |
+
{
|
| 279 |
+
"path": "reproduction/debug_embedding_native_training_step.py",
|
| 280 |
+
"sha256": "eabaf6729f478e18016d1216dd741df651125cf4f9fddf70e77b801144b43d06",
|
| 281 |
+
"size": 7985,
|
| 282 |
+
"artifact_group": "optional_reproduction"
|
| 283 |
+
},
|
| 284 |
+
{
|
| 285 |
+
"path": "reproduction/diagnose_embedding_training_precision.py",
|
| 286 |
+
"sha256": "7ed5325c27b88722629c08fabffd9198f2fbe015bb873b0b8c7ca7281f582f76",
|
| 287 |
+
"size": 5512,
|
| 288 |
+
"artifact_group": "optional_reproduction"
|
| 289 |
+
},
|
| 290 |
+
{
|
| 291 |
+
"path": "reproduction/diagnose_natural_teacher.py",
|
| 292 |
+
"sha256": "9017fe75ae889dc04ca8e266f81868e73f17ad288feb9c9af4ac8047062a8568",
|
| 293 |
+
"size": 4434,
|
| 294 |
+
"artifact_group": "optional_reproduction"
|
| 295 |
+
},
|
| 296 |
+
{
|
| 297 |
+
"path": "reproduction/download_english_retrieval_inputs.py",
|
| 298 |
+
"sha256": "f24ce3a2e2655152acd99f49fe541855afb276986aa9b0aff5446c93b1daa808",
|
| 299 |
+
"size": 4270,
|
| 300 |
+
"artifact_group": "optional_reproduction"
|
| 301 |
+
},
|
| 302 |
+
{
|
| 303 |
+
"path": "reproduction/download_inputs.py",
|
| 304 |
+
"sha256": "f96df813fcbbb3387a1d0ebfcd7cefe8a51d362b3b6ff2bc24d8bb27b046956c",
|
| 305 |
+
"size": 5475,
|
| 306 |
+
"artifact_group": "optional_reproduction"
|
| 307 |
+
},
|
| 308 |
+
{
|
| 309 |
+
"path": "reproduction/embedding_final_protocol.py",
|
| 310 |
+
"sha256": "6e06d74cb521d50d7be8e158eeba1b63c5f39dcc7ad6f3636eab2dfc4bf49ee5",
|
| 311 |
+
"size": 2859,
|
| 312 |
+
"artifact_group": "optional_reproduction"
|
| 313 |
+
},
|
| 314 |
+
{
|
| 315 |
+
"path": "reproduction/embedding_native_training_math.py",
|
| 316 |
+
"sha256": "9c8486246d7482ebcc2c0e4ae6fdbfb863d4cff0104e7b69cc1808771cda01d1",
|
| 317 |
+
"size": 2476,
|
| 318 |
+
"artifact_group": "optional_reproduction"
|
| 319 |
+
},
|
| 320 |
+
{
|
| 321 |
+
"path": "reproduction/embedding_repair_math.py",
|
| 322 |
+
"sha256": "2cd525a87029717206f4b95170f0e9767c209a74c64a744ba3911c092aed092d",
|
| 323 |
+
"size": 1883,
|
| 324 |
+
"artifact_group": "optional_reproduction"
|
| 325 |
+
},
|
| 326 |
+
{
|
| 327 |
+
"path": "reproduction/embedding_repair_math_v2.py",
|
| 328 |
+
"sha256": "b8d446807dadc8f95b1133e86e1107c0611f74d4d08d8daffb46229092afab34",
|
| 329 |
+
"size": 1933,
|
| 330 |
+
"artifact_group": "optional_reproduction"
|
| 331 |
+
},
|
| 332 |
+
{
|
| 333 |
+
"path": "reproduction/embedding_unpadded_native_math.py",
|
| 334 |
+
"sha256": "ddf1561bcc7dd42061548ef7ce2f5a716a534dca437e91da04ee555c086a45a3",
|
| 335 |
+
"size": 2388,
|
| 336 |
+
"artifact_group": "optional_reproduction"
|
| 337 |
+
},
|
| 338 |
+
{
|
| 339 |
+
"path": "reproduction/english_retrieval_data.py",
|
| 340 |
+
"sha256": "d88e4d5af44b2251b40edb30861f66e2c4427fc1966df21c5df4bbbb3bc44c7d",
|
| 341 |
+
"size": 8953,
|
| 342 |
+
"artifact_group": "optional_reproduction"
|
| 343 |
+
},
|
| 344 |
+
{
|
| 345 |
+
"path": "reproduction/evaluate_embedding_composition_cpu_short.py",
|
| 346 |
+
"sha256": "1b1d5105fc95926673b3cb2caa4a6f78ba07c75621c3068c84c2067ad3630868",
|
| 347 |
+
"size": 5174,
|
| 348 |
+
"artifact_group": "optional_reproduction"
|
| 349 |
+
},
|
| 350 |
+
{
|
| 351 |
+
"path": "reproduction/evaluate_embedding_composition_final.py",
|
| 352 |
+
"sha256": "7ff6f64606941a4754a994e925c588292c20f463a6dfd01c63836f7e4fe1af23",
|
| 353 |
+
"size": 11071,
|
| 354 |
+
"artifact_group": "optional_reproduction"
|
| 355 |
+
},
|
| 356 |
+
{
|
| 357 |
+
"path": "reproduction/evaluate_embedding_composition_matrix.py",
|
| 358 |
+
"sha256": "fda1de60dc1e7b329b945d2ebbe4342d42f226cd7ad1f1ca7304e43eb621148f",
|
| 359 |
+
"size": 7519,
|
| 360 |
+
"artifact_group": "optional_reproduction"
|
| 361 |
+
},
|
| 362 |
+
{
|
| 363 |
+
"path": "reproduction/evaluate_embedding_cpu_short.py",
|
| 364 |
+
"sha256": "a81f4e662f06d18c2e693d32847e221bed4858620fec8d1a6445021322441a2d",
|
| 365 |
+
"size": 3647,
|
| 366 |
+
"artifact_group": "optional_reproduction"
|
| 367 |
+
},
|
| 368 |
+
{
|
| 369 |
+
"path": "reproduction/evaluate_embedding_interpolation.py",
|
| 370 |
+
"sha256": "da5f9361a49fd18ff7fa6545ed8c4578b66d0d5e22df6850310eaa361999489a",
|
| 371 |
+
"size": 7181,
|
| 372 |
+
"artifact_group": "optional_reproduction"
|
| 373 |
+
},
|
| 374 |
+
{
|
| 375 |
+
"path": "reproduction/evaluate_embedding_interpolation_v2.py",
|
| 376 |
+
"sha256": "407c766da6d8fc49d3e724305750229892ac597715a1d1ed077d58135cd31bbb",
|
| 377 |
+
"size": 7184,
|
| 378 |
+
"artifact_group": "optional_reproduction"
|
| 379 |
+
},
|
| 380 |
+
{
|
| 381 |
+
"path": "reproduction/evaluate_embedding_native_composition.py",
|
| 382 |
+
"sha256": "75ec92d439d7518bcbe6cd35ce6004a76c33c61dcaae7cb353b4889989462ddb",
|
| 383 |
+
"size": 8186,
|
| 384 |
+
"artifact_group": "optional_reproduction"
|
| 385 |
+
},
|
| 386 |
+
{
|
| 387 |
+
"path": "reproduction/evaluate_embedding_native_final.py",
|
| 388 |
+
"sha256": "8efff0075765984308ed79bfa11c6248256e6b1a3540d116d1dcc63711130f8d",
|
| 389 |
+
"size": 8409,
|
| 390 |
+
"artifact_group": "optional_reproduction"
|
| 391 |
+
},
|
| 392 |
+
{
|
| 393 |
+
"path": "reproduction/evaluate_embedding_successor_final.py",
|
| 394 |
+
"sha256": "bf03222accf71b891e81808b3fb2829ccb6ff0834b1bdb369091105a49ce217e",
|
| 395 |
+
"size": 11139,
|
| 396 |
+
"artifact_group": "optional_reproduction"
|
| 397 |
+
},
|
| 398 |
+
{
|
| 399 |
+
"path": "reproduction/evaluate_embedding_task_diagnostics.py",
|
| 400 |
+
"sha256": "d0b4969dd7208ad118f9d35d26e5b7042b6784405b20cfd77b7bbd88615fe791",
|
| 401 |
+
"size": 7900,
|
| 402 |
+
"artifact_group": "optional_reproduction"
|
| 403 |
+
},
|
| 404 |
+
{
|
| 405 |
+
"path": "reproduction/evaluate_rankings.py",
|
| 406 |
+
"sha256": "ad9aa8a5c5fcf9c3f094948e930e1b26ed3185bae580407ce1b26dbe3aceb160",
|
| 407 |
+
"size": 5295,
|
| 408 |
+
"artifact_group": "optional_reproduction"
|
| 409 |
+
},
|
| 410 |
+
{
|
| 411 |
+
"path": "reproduction/evaluate_reranker_native_final_v2.py",
|
| 412 |
+
"sha256": "ba6ee75a92e77e36ea6d7e7f157bbd14c5f4cf59587f3e4b9b2e101663560fa7",
|
| 413 |
+
"size": 5016,
|
| 414 |
+
"artifact_group": "optional_reproduction"
|
| 415 |
+
},
|
| 416 |
+
{
|
| 417 |
+
"path": "reproduction/evaluate_reranker_task_diagnostics.py",
|
| 418 |
+
"sha256": "2c0a3d747907d1e359b7c337119f71dca6475ea6a356c1d745ada4fdfb32058d",
|
| 419 |
+
"size": 9772,
|
| 420 |
+
"artifact_group": "optional_reproduction"
|
| 421 |
+
},
|
| 422 |
+
{
|
| 423 |
+
"path": "reproduction/evaluate_vela_dev_precision.py",
|
| 424 |
+
"sha256": "f4e33138e843fa64be8d0fa7bf8acf0b95d9d3fc95f9c6173542b937daabb67c",
|
| 425 |
+
"size": 10729,
|
| 426 |
+
"artifact_group": "optional_reproduction"
|
| 427 |
+
},
|
| 428 |
+
{
|
| 429 |
+
"path": "reproduction/evaluate_vela_dev_precision_v2.py",
|
| 430 |
+
"sha256": "aef397aaf2079ff43bae3bf01cc65ab8dcaef19dece43df81b976e2d2b8ae51e",
|
| 431 |
+
"size": 12851,
|
| 432 |
+
"artifact_group": "optional_reproduction"
|
| 433 |
+
},
|
| 434 |
+
{
|
| 435 |
+
"path": "reproduction/evaluate_vela_dev_precision_v3.py",
|
| 436 |
+
"sha256": "9183340532c2ab9cbba292b86adcbc26e93f7e2a310474360109289f6f190f0d",
|
| 437 |
+
"size": 14375,
|
| 438 |
+
"artifact_group": "optional_reproduction"
|
| 439 |
+
},
|
| 440 |
+
{
|
| 441 |
+
"path": "reproduction/evaluate_vela_long_context.py",
|
| 442 |
+
"sha256": "6e150ea5137a10eac4d79f3f28b1f673113b6d8ee277761f898559ede1cc9d48",
|
| 443 |
+
"size": 11007,
|
| 444 |
+
"artifact_group": "optional_reproduction"
|
| 445 |
+
},
|
| 446 |
+
{
|
| 447 |
+
"path": "reproduction/evaluate_vela_long_repair.py",
|
| 448 |
+
"sha256": "c7fc78e63dbd01d367be2a280db266e8a2a24c22cb7d04e89e4506ff65cab019",
|
| 449 |
+
"size": 10610,
|
| 450 |
+
"artifact_group": "optional_reproduction"
|
| 451 |
+
},
|
| 452 |
+
{
|
| 453 |
+
"path": "reproduction/evaluate_vela_long_repair_precision.py",
|
| 454 |
+
"sha256": "f6fc661c84606fa41bd6bea236d88ce7712ea5d9cd22cd802301494062045ede",
|
| 455 |
+
"size": 14418,
|
| 456 |
+
"artifact_group": "optional_reproduction"
|
| 457 |
+
},
|
| 458 |
+
{
|
| 459 |
+
"path": "reproduction/evaluate_vela_miracl.py",
|
| 460 |
+
"sha256": "cce5dca57174a88d956e1b74da77aea0581b274cbfbbe3a542e5624d56d23d56",
|
| 461 |
+
"size": 8120,
|
| 462 |
+
"artifact_group": "optional_reproduction"
|
| 463 |
+
},
|
| 464 |
+
{
|
| 465 |
+
"path": "reproduction/evaluate_vela_qasper.py",
|
| 466 |
+
"sha256": "100a4a09bac1e6318726330863c62a5efc38dd16c1590e89c48d4f96c064d026",
|
| 467 |
+
"size": 9561,
|
| 468 |
+
"artifact_group": "optional_reproduction"
|
| 469 |
+
},
|
| 470 |
+
{
|
| 471 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-composition-cpu-short.plan.json",
|
| 472 |
+
"sha256": "fc20c7d814ec782f2322979cdded1c4cc12ee234968f2ab93682addb4c9e9081",
|
| 473 |
+
"size": 630,
|
| 474 |
+
"artifact_group": "optional_reproduction"
|
| 475 |
+
},
|
| 476 |
+
{
|
| 477 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-composition-matrix.plan.json",
|
| 478 |
+
"sha256": "6cc96d98ed41bd738dcf0541c3a0210c571505cbaf553c64be1512c9c8ad5c2a",
|
| 479 |
+
"size": 756,
|
| 480 |
+
"artifact_group": "optional_reproduction"
|
| 481 |
+
},
|
| 482 |
+
{
|
| 483 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-english-controlled-selection.json",
|
| 484 |
+
"sha256": "f05ecfe47b03c91d199f224c8ef66d574c746babaedf5f907a6bc828978f7545",
|
| 485 |
+
"size": 5743,
|
| 486 |
+
"artifact_group": "optional_reproduction"
|
| 487 |
+
},
|
| 488 |
+
{
|
| 489 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-english-parameter-drift.json",
|
| 490 |
+
"sha256": "bd684c332acb6787eea2e8a504c804ec5933d21047c9422ba6993b54df8c3bb0",
|
| 491 |
+
"size": 7291,
|
| 492 |
+
"artifact_group": "optional_reproduction"
|
| 493 |
+
},
|
| 494 |
+
{
|
| 495 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-english-repair-matched-teacher-plan.json",
|
| 496 |
+
"sha256": "087a4c6c905439a9c9b54b0b116cebefea169892cde9cff702b4b77dbbf4391e",
|
| 497 |
+
"size": 2192,
|
| 498 |
+
"artifact_group": "optional_reproduction"
|
| 499 |
+
},
|
| 500 |
+
{
|
| 501 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-english-repair-paired-precision-plan.json",
|
| 502 |
+
"sha256": "ee7361dae16dd2ac1d66c5fff0d00de4d50889880ab4e3b5801c3e1b324d292f",
|
| 503 |
+
"size": 2142,
|
| 504 |
+
"artifact_group": "optional_reproduction"
|
| 505 |
+
},
|
| 506 |
+
{
|
| 507 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-english-repair-v1-final-exposure-supplement.json",
|
| 508 |
+
"sha256": "ec18831867bdf082f9ab68b429d357c42406d0c4c411eb71aaeeba8fa263b24f",
|
| 509 |
+
"size": 1105,
|
| 510 |
+
"artifact_group": "optional_reproduction"
|
| 511 |
+
},
|
| 512 |
+
{
|
| 513 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-interpolation-v2-final-fp16-candidate/metrics.json",
|
| 514 |
+
"sha256": "f2ac73439cf37fc20b6ce2d41c4e96c4ae2fb1ffda61d617d4c00a490f8b81e7",
|
| 515 |
+
"size": 2612807,
|
| 516 |
+
"artifact_group": "optional_reproduction"
|
| 517 |
+
},
|
| 518 |
+
{
|
| 519 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-interpolation-v2-final-fp16-original/metrics.json",
|
| 520 |
+
"sha256": "d734451f26728c9a4081c37cd4dc4f6e30fcd34601931ae6f49e4e006402e094",
|
| 521 |
+
"size": 2613169,
|
| 522 |
+
"artifact_group": "optional_reproduction"
|
| 523 |
+
},
|
| 524 |
+
{
|
| 525 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-interpolation-v2-final-summary.json",
|
| 526 |
+
"sha256": "43ecb1e85a4bfbb8aef5c8e8010d31753c749f4756ef61217eb92ceeae06e949",
|
| 527 |
+
"size": 22180,
|
| 528 |
+
"artifact_group": "optional_reproduction"
|
| 529 |
+
},
|
| 530 |
+
{
|
| 531 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-matched-training-step-probe.json",
|
| 532 |
+
"sha256": "e068e25bdc3c684bf7b1ed92921f52926326f0417bd6e1874b65a942cd43bc25",
|
| 533 |
+
"size": 1820,
|
| 534 |
+
"artifact_group": "optional_reproduction"
|
| 535 |
+
},
|
| 536 |
+
{
|
| 537 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-miracl-group-audit.json",
|
| 538 |
+
"sha256": "0e475ebe06d3fde641bcda7bc3056c0c7124a202aa298696635adbc349683ef0",
|
| 539 |
+
"size": 34867,
|
| 540 |
+
"artifact_group": "optional_reproduction"
|
| 541 |
+
},
|
| 542 |
+
{
|
| 543 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-native-six-layer-step-probe.json",
|
| 544 |
+
"sha256": "717268fcf82c0a90a39eaa0802314cfea647ffb2b7bf41523463d24a176578f2",
|
| 545 |
+
"size": 3276,
|
| 546 |
+
"artifact_group": "optional_reproduction"
|
| 547 |
+
},
|
| 548 |
+
{
|
| 549 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-native-training-step-debug-scale1.0-separateFalse.json",
|
| 550 |
+
"sha256": "77b2ff8dfbe6567be79fe4a068d1286e92f406e35aa5276a1beac5d68d1c8cb5",
|
| 551 |
+
"size": 1235,
|
| 552 |
+
"artifact_group": "optional_reproduction"
|
| 553 |
+
},
|
| 554 |
+
{
|
| 555 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-native-training-step-debug-scale1.0-separateTrue.json",
|
| 556 |
+
"sha256": "6ffcf500d89e42eb90af13a4b50dd468926b40024b86a7852f43d2d77d9c8176",
|
| 557 |
+
"size": 1778,
|
| 558 |
+
"artifact_group": "optional_reproduction"
|
| 559 |
+
},
|
| 560 |
+
{
|
| 561 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-same-weight-training-precision.json",
|
| 562 |
+
"sha256": "32b2f17ee466fa0fc197867694ce70738ed16674322735917d0f95166398440b",
|
| 563 |
+
"size": 5761,
|
| 564 |
+
"artifact_group": "optional_reproduction"
|
| 565 |
+
},
|
| 566 |
+
{
|
| 567 |
+
"path": "reproduction/evidence/diagnostics/vela-embedding-successor-input-revalidation.json",
|
| 568 |
+
"sha256": "6ee5cb89d2df5017376b879a9cf24f6b97417c3b07157cebc2d4db2a72ec3a4e",
|
| 569 |
+
"size": 730,
|
| 570 |
+
"artifact_group": "optional_reproduction"
|
| 571 |
+
},
|
| 572 |
+
{
|
| 573 |
+
"path": "reproduction/evidence/engine/controller-result.json",
|
| 574 |
+
"sha256": "0d344747a9e5abefeb652e45a77e1ee41bcf0e6b3aa172c0ccdbedd061b44e08",
|
| 575 |
+
"size": 494,
|
| 576 |
+
"artifact_group": "optional_reproduction"
|
| 577 |
+
},
|
| 578 |
+
{
|
| 579 |
+
"path": "reproduction/evidence/engine/controller-v2-result.json",
|
| 580 |
+
"sha256": "3b2f831e220e71a9c0c0355df3af39b4037befe6d2c936ecdeb917807e0c306a",
|
| 581 |
+
"size": 277,
|
| 582 |
+
"artifact_group": "optional_reproduction"
|
| 583 |
+
},
|
| 584 |
+
{
|
| 585 |
+
"path": "reproduction/evidence/engine/ffi-inputs.jsonl",
|
| 586 |
+
"sha256": "617295b3aa1fa67310a282302b7d2f099fb501a63a633a35ad6f27546a9536b4",
|
| 587 |
+
"size": 355406,
|
| 588 |
+
"artifact_group": "optional_reproduction"
|
| 589 |
+
},
|
| 590 |
+
{
|
| 591 |
+
"path": "reproduction/evidence/engine/harness-correction-v2.json",
|
| 592 |
+
"sha256": "27914a18a74d563ff405418e845de3f4b1449c1b00be349ca5dd884d130f5235",
|
| 593 |
+
"size": 1069,
|
| 594 |
+
"artifact_group": "optional_reproduction"
|
| 595 |
+
},
|
| 596 |
+
{
|
| 597 |
+
"path": "reproduction/evidence/engine/native-reference/case-00.npz",
|
| 598 |
+
"sha256": "6b275ebed35b5075f62900990d6936c95b6d905344b84128292c5f63aeb27e9b",
|
| 599 |
+
"size": 303939,
|
| 600 |
+
"artifact_group": "optional_reproduction"
|
| 601 |
+
},
|
| 602 |
+
{
|
| 603 |
+
"path": "reproduction/evidence/engine/native-reference/case-01.npz",
|
| 604 |
+
"sha256": "5d35a16d3f99cf742da29d19d4bce9980b426f4055234490857ef60a2e7dc9da",
|
| 605 |
+
"size": 296481,
|
| 606 |
+
"artifact_group": "optional_reproduction"
|
| 607 |
+
},
|
| 608 |
+
{
|
| 609 |
+
"path": "reproduction/evidence/engine/native-reference/case-02.npz",
|
| 610 |
+
"sha256": "2c8776ef44879d3762782f3e3aad94ff355af43598c25603a6ebb6a8e1d0053a",
|
| 611 |
+
"size": 420957,
|
| 612 |
+
"artifact_group": "optional_reproduction"
|
| 613 |
+
},
|
| 614 |
+
{
|
| 615 |
+
"path": "reproduction/evidence/engine/native-reference/case-03.npz",
|
| 616 |
+
"sha256": "47b3c46cb983b85c45ea820e6896e4da43ec8ee1051298ef4ba73e45746d1da3",
|
| 617 |
+
"size": 304173,
|
| 618 |
+
"artifact_group": "optional_reproduction"
|
| 619 |
+
},
|
| 620 |
+
{
|
| 621 |
+
"path": "reproduction/evidence/engine/native-reference/case-04.npz",
|
| 622 |
+
"sha256": "890462393bcfdb7f5f03595715a3e4d714440c9ae6bf7cbbd1244947ef787b60",
|
| 623 |
+
"size": 57464,
|
| 624 |
+
"artifact_group": "optional_reproduction"
|
| 625 |
+
},
|
| 626 |
+
{
|
| 627 |
+
"path": "reproduction/evidence/engine/native-reference/case-05.npz",
|
| 628 |
+
"sha256": "b5c9d65a9c20740a59ab3eee6682c1c4b41eeb056a95d975550cdcfdce5d3940",
|
| 629 |
+
"size": 58284,
|
| 630 |
+
"artifact_group": "optional_reproduction"
|
| 631 |
+
},
|
| 632 |
+
{
|
| 633 |
+
"path": "reproduction/evidence/engine/native-reference/case-06.npz",
|
| 634 |
+
"sha256": "f0b06df175d5690ebce92bb8d2b44abf55e2aa45f154accc9aabd3d23037ebd3",
|
| 635 |
+
"size": 289860,
|
| 636 |
+
"artifact_group": "optional_reproduction"
|
| 637 |
+
},
|
| 638 |
+
{
|
| 639 |
+
"path": "reproduction/evidence/engine/native-reference/case-07.npz",
|
| 640 |
+
"sha256": "7857ff73e91e9c8d68a0244abcc4060d2279bc2b8848f71202b2273e588794f1",
|
| 641 |
+
"size": 567148,
|
| 642 |
+
"artifact_group": "optional_reproduction"
|
| 643 |
+
},
|
| 644 |
+
{
|
| 645 |
+
"path": "reproduction/evidence/engine/native-reference/case-08.npz",
|
| 646 |
+
"sha256": "ef499347658a2cbfa4352a8b1578189ec29eea7685ae150a5ec7b9aa60ee19ed",
|
| 647 |
+
"size": 296867,
|
| 648 |
+
"artifact_group": "optional_reproduction"
|
| 649 |
+
},
|
| 650 |
+
{
|
| 651 |
+
"path": "reproduction/evidence/engine/native-reference/case-09.npz",
|
| 652 |
+
"sha256": "a72eb5ce7c691b7eb11c526f18642ead788d8fc6e52e6b4549f5c70cd23b76ed",
|
| 653 |
+
"size": 574336,
|
| 654 |
+
"artifact_group": "optional_reproduction"
|
| 655 |
+
},
|
| 656 |
+
{
|
| 657 |
+
"path": "reproduction/evidence/engine/native-reference/case-10.npz",
|
| 658 |
+
"sha256": "86a412968f30f8f2a06f4fb686e1a7295444e3589450f67aab9d7e08243bcdcd",
|
| 659 |
+
"size": 304215,
|
| 660 |
+
"artifact_group": "optional_reproduction"
|
| 661 |
+
},
|
| 662 |
+
{
|
| 663 |
+
"path": "reproduction/evidence/engine/native-reference/case-11.npz",
|
| 664 |
+
"sha256": "1415cd4d46592c0966893faea991672de8e6700fa90b1664266a7c7463640d25",
|
| 665 |
+
"size": 581991,
|
| 666 |
+
"artifact_group": "optional_reproduction"
|
| 667 |
+
},
|
| 668 |
+
{
|
| 669 |
+
"path": "reproduction/evidence/engine/native-reference/case-12.npz",
|
| 670 |
+
"sha256": "c0eea8069fe33f077fba1534c92b492866b164dd9dbb9e150e21ae09c9ea0fba",
|
| 671 |
+
"size": 319615,
|
| 672 |
+
"artifact_group": "optional_reproduction"
|
| 673 |
+
},
|
| 674 |
+
{
|
| 675 |
+
"path": "reproduction/evidence/engine/native-reference/case-13.npz",
|
| 676 |
+
"sha256": "b18a6215b955b2dba5e4675618de28a1b7d57c766a3bab41a1ca4f0640da8fbf",
|
| 677 |
+
"size": 618411,
|
| 678 |
+
"artifact_group": "optional_reproduction"
|
| 679 |
+
},
|
| 680 |
+
{
|
| 681 |
+
"path": "reproduction/evidence/engine/native-reference/case-14.npz",
|
| 682 |
+
"sha256": "6e072dd3eab15b723197f274da7374ea43ddda934a98724e5c9eb97080d88541",
|
| 683 |
+
"size": 326351,
|
| 684 |
+
"artifact_group": "optional_reproduction"
|
| 685 |
+
},
|
| 686 |
+
{
|
| 687 |
+
"path": "reproduction/evidence/engine/native-reference/case-15.npz",
|
| 688 |
+
"sha256": "0dc1b8d17ee3ab518467ff69e1fe360c023e226336620baa91484305ab836e0e",
|
| 689 |
+
"size": 626409,
|
| 690 |
+
"artifact_group": "optional_reproduction"
|
| 691 |
+
},
|
| 692 |
+
{
|
| 693 |
+
"path": "reproduction/evidence/engine/native-reference/case-16.npz",
|
| 694 |
+
"sha256": "c070ab4dd4ecada955cae4923fde4832f229dce3d215b44a9449237f4dff3f2e",
|
| 695 |
+
"size": 333613,
|
| 696 |
+
"artifact_group": "optional_reproduction"
|
| 697 |
+
},
|
| 698 |
+
{
|
| 699 |
+
"path": "reproduction/evidence/engine/native-reference/case-17.npz",
|
| 700 |
+
"sha256": "32f3de43a31ffcf50d434fd15065e82fbae4f02d3c045afb273fe515f3759414",
|
| 701 |
+
"size": 640427,
|
| 702 |
+
"artifact_group": "optional_reproduction"
|
| 703 |
+
},
|
| 704 |
+
{
|
| 705 |
+
"path": "reproduction/evidence/engine/native-reference/case-18.npz",
|
| 706 |
+
"sha256": "f4d372d4feeef87fde6cd7636bdaad566bb111487914cae717d6a82a5f28f6cc",
|
| 707 |
+
"size": 340806,
|
| 708 |
+
"artifact_group": "optional_reproduction"
|
| 709 |
+
},
|
| 710 |
+
{
|
| 711 |
+
"path": "reproduction/evidence/engine/native-reference/case-19.npz",
|
| 712 |
+
"sha256": "0243b0b7c4c4628b951b7741b137e2679adf1d30c770a1db02c4fa05cb44721b",
|
| 713 |
+
"size": 669689,
|
| 714 |
+
"artifact_group": "optional_reproduction"
|
| 715 |
+
},
|
| 716 |
+
{
|
| 717 |
+
"path": "reproduction/evidence/engine/native-reference/case-20.npz",
|
| 718 |
+
"sha256": "801d635f591967cc53e0df575dd46f9a488c2025e3c4908cd09e76cfef2b17a8",
|
| 719 |
+
"size": 340949,
|
| 720 |
+
"artifact_group": "optional_reproduction"
|
| 721 |
+
},
|
| 722 |
+
{
|
| 723 |
+
"path": "reproduction/evidence/engine/native-reference/case-21.npz",
|
| 724 |
+
"sha256": "e3ff19bbdbf96fcf67be1bde625e67db8bce9af8e5a2f762aaad86cd2c2954c6",
|
| 725 |
+
"size": 669974,
|
| 726 |
+
"artifact_group": "optional_reproduction"
|
| 727 |
+
},
|
| 728 |
+
{
|
| 729 |
+
"path": "reproduction/evidence/engine/native-reference/case-22.npz",
|
| 730 |
+
"sha256": "3b2c2b0205259059f69bec87d1c5f7bc42e53473949c436774795108e8457907",
|
| 731 |
+
"size": 341052,
|
| 732 |
+
"artifact_group": "optional_reproduction"
|
| 733 |
+
},
|
| 734 |
+
{
|
| 735 |
+
"path": "reproduction/evidence/engine/native-reference/case-23.npz",
|
| 736 |
+
"sha256": "c254b96fbd660cf8abd248166c719c2ae249e3d088769534543aceaaa23faefb",
|
| 737 |
+
"size": 669580,
|
| 738 |
+
"artifact_group": "optional_reproduction"
|
| 739 |
+
},
|
| 740 |
+
{
|
| 741 |
+
"path": "reproduction/evidence/engine/native-reference/case-24.npz",
|
| 742 |
+
"sha256": "1d31ee2670ce1b4a9481042bc77490806904b935d9f0da9c75a8896c18a55e22",
|
| 743 |
+
"size": 340965,
|
| 744 |
+
"artifact_group": "optional_reproduction"
|
| 745 |
+
},
|
| 746 |
+
{
|
| 747 |
+
"path": "reproduction/evidence/engine/native-reference/case-25.npz",
|
| 748 |
+
"sha256": "179b2509209bf572d838d9aa24b8fd6c27478a8dcb3d649a061bda826fb4d763",
|
| 749 |
+
"size": 669489,
|
| 750 |
+
"artifact_group": "optional_reproduction"
|
| 751 |
+
},
|
| 752 |
+
{
|
| 753 |
+
"path": "reproduction/evidence/engine/native-reference/case-26.npz",
|
| 754 |
+
"sha256": "860f2eba6f27ebf9cbd5cb5e2ca9c690b795491b58476e595d1890f4d5728bc3",
|
| 755 |
+
"size": 348710,
|
| 756 |
+
"artifact_group": "optional_reproduction"
|
| 757 |
+
},
|
| 758 |
+
{
|
| 759 |
+
"path": "reproduction/evidence/engine/native-reference/case-27.npz",
|
| 760 |
+
"sha256": "6a736d494d7a237f8f63a0ace2943807160d8a735c6078cc15c8d4b9c7c77b2c",
|
| 761 |
+
"size": 692455,
|
| 762 |
+
"artifact_group": "optional_reproduction"
|
| 763 |
+
},
|
| 764 |
+
{
|
| 765 |
+
"path": "reproduction/evidence/engine/native-reference/case-28.npz",
|
| 766 |
+
"sha256": "06ad22aa4bdebe09fe95f73297867914769930dda28afedb85d0f21f8f2d4af2",
|
| 767 |
+
"size": 356307,
|
| 768 |
+
"artifact_group": "optional_reproduction"
|
| 769 |
+
},
|
| 770 |
+
{
|
| 771 |
+
"path": "reproduction/evidence/engine/native-reference/case-29.npz",
|
| 772 |
+
"sha256": "696e02fb4214c90544837d96461e1ed248d2b88d6cffcf7dfe3583121c6dd00e",
|
| 773 |
+
"size": 700308,
|
| 774 |
+
"artifact_group": "optional_reproduction"
|
| 775 |
+
},
|
| 776 |
+
{
|
| 777 |
+
"path": "reproduction/evidence/engine/native-reference/case-30.npz",
|
| 778 |
+
"sha256": "506c4b8f800aaf7044360db54eeebb21e4948fbf0377f00240eb187e29cb1432",
|
| 779 |
+
"size": 356667,
|
| 780 |
+
"artifact_group": "optional_reproduction"
|
| 781 |
+
},
|
| 782 |
+
{
|
| 783 |
+
"path": "reproduction/evidence/engine/native-reference/case-31.npz",
|
| 784 |
+
"sha256": "c5015a584d99b7a04ce9a472b5cba059acdcea8abbfbf82ae46cfddbba64decb",
|
| 785 |
+
"size": 700775,
|
| 786 |
+
"artifact_group": "optional_reproduction"
|
| 787 |
+
},
|
| 788 |
+
{
|
| 789 |
+
"path": "reproduction/evidence/engine/native-reference/case-32.npz",
|
| 790 |
+
"sha256": "711ced2869811ab8ed25476570e0829a8a33af5aa0c07f7ab1885d40f1894ed5",
|
| 791 |
+
"size": 358179,
|
| 792 |
+
"artifact_group": "optional_reproduction"
|
| 793 |
+
},
|
| 794 |
+
{
|
| 795 |
+
"path": "reproduction/evidence/engine/native-reference/case-33.npz",
|
| 796 |
+
"sha256": "83689411404c935f19277645a619c3df2a2e8c86c9147f5c32af534a59589eb0",
|
| 797 |
+
"size": 703866,
|
| 798 |
+
"artifact_group": "optional_reproduction"
|
| 799 |
+
},
|
| 800 |
+
{
|
| 801 |
+
"path": "reproduction/evidence/engine/native-reference/case-34.npz",
|
| 802 |
+
"sha256": "2fd71ba4de1f3b4d338e6887d95da4b0d799e3a4dd6ae5e53403e738b8614ab4",
|
| 803 |
+
"size": 610986,
|
| 804 |
+
"artifact_group": "optional_reproduction"
|
| 805 |
+
},
|
| 806 |
+
{
|
| 807 |
+
"path": "reproduction/evidence/engine/native-reference/case-35.npz",
|
| 808 |
+
"sha256": "d9cbd62d0ae78a98cfb0ebed987285336fa031eca46fc9dff3e5c7385ac8ca32",
|
| 809 |
+
"size": 618502,
|
| 810 |
+
"artifact_group": "optional_reproduction"
|
| 811 |
+
},
|
| 812 |
+
{
|
| 813 |
+
"path": "reproduction/evidence/engine/native-reference/case-36.npz",
|
| 814 |
+
"sha256": "66007fc14936e24bff75dc0c47e4b5b23e4246e4c82bf276a70a185e39b9bdc8",
|
| 815 |
+
"size": 638888,
|
| 816 |
+
"artifact_group": "optional_reproduction"
|
| 817 |
+
},
|
| 818 |
+
{
|
| 819 |
+
"path": "reproduction/evidence/engine/native-reference/manifest.json",
|
| 820 |
+
"sha256": "ef866c327c7caac19139b4bead15a354271932439f477c0de2cae64fe7b6cd34",
|
| 821 |
+
"size": 19761,
|
| 822 |
+
"artifact_group": "optional_reproduction"
|
| 823 |
+
},
|
| 824 |
+
{
|
| 825 |
+
"path": "reproduction/evidence/engine/native-reference/plan.json",
|
| 826 |
+
"sha256": "d391b004b1952557e2c541fb40a00a48b0e83736adbbc94f248c42aa129e714d",
|
| 827 |
+
"size": 11078,
|
| 828 |
+
"artifact_group": "optional_reproduction"
|
| 829 |
+
},
|
| 830 |
+
{
|
| 831 |
+
"path": "reproduction/evidence/engine/ort-ffi-cpu.json",
|
| 832 |
+
"sha256": "73eb313fbfb6bcd383529f789d5e28544a3fb46a3c458f6da16cf3e7ae70a7eb",
|
| 833 |
+
"size": 27188,
|
| 834 |
+
"artifact_group": "optional_reproduction"
|
| 835 |
+
},
|
| 836 |
+
{
|
| 837 |
+
"path": "reproduction/evidence/engine/ort-ffi-cpu.plan.json",
|
| 838 |
+
"sha256": "23a92544fcb1a7de2f5f00c798f8967a12801975c969aa338f2a796ffb462d8e",
|
| 839 |
+
"size": 915,
|
| 840 |
+
"artifact_group": "optional_reproduction"
|
| 841 |
+
},
|
| 842 |
+
{
|
| 843 |
+
"path": "reproduction/evidence/engine/ort-ffi-rocm.json",
|
| 844 |
+
"sha256": "e01fbefc788218913adbaff991333cef40c839c77bf388134a81df1c9055aecd",
|
| 845 |
+
"size": 30023,
|
| 846 |
+
"artifact_group": "optional_reproduction"
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"path": "reproduction/evidence/engine/ort-ffi-rocm.plan.json",
|
| 850 |
+
"sha256": "8a12573e828f9dec0d7a8648e955ee7a6bb6b889133b6acb7459cff5b4b92434",
|
| 851 |
+
"size": 976,
|
| 852 |
+
"artifact_group": "optional_reproduction"
|
| 853 |
+
},
|
| 854 |
+
{
|
| 855 |
+
"path": "reproduction/evidence/engine/public-candle-aggregate-recomputed.json",
|
| 856 |
+
"sha256": "ca9be2215d2199575ec85aeb4722b129f243c8bc640816eadeaace0a497a4221",
|
| 857 |
+
"size": 8264,
|
| 858 |
+
"artifact_group": "optional_reproduction"
|
| 859 |
+
},
|
| 860 |
+
{
|
| 861 |
+
"path": "reproduction/evidence/engine/public-composition-reproduction.json",
|
| 862 |
+
"sha256": "e54e17e03d839658d052de8cdf9f88f77f3e510a1e240d9e0ebfa47d3292d456",
|
| 863 |
+
"size": 924,
|
| 864 |
+
"artifact_group": "optional_reproduction"
|
| 865 |
+
},
|
| 866 |
+
{
|
| 867 |
+
"path": "reproduction/evidence/engine/public-contract-tests.txt",
|
| 868 |
+
"sha256": "3bf08c01ecc41071eb22e1a8c983961348cd8b752a016a7e56b4d219c56b9921",
|
| 869 |
+
"size": 115,
|
| 870 |
+
"artifact_group": "optional_reproduction"
|
| 871 |
+
},
|
| 872 |
+
{
|
| 873 |
+
"path": "reproduction/evidence/engine/qualification-11.json",
|
| 874 |
+
"sha256": "218c9be4d3526ea1ab69c187a2463adfdda57f20aacfcf47d2e6be545404b257",
|
| 875 |
+
"size": 64967,
|
| 876 |
+
"artifact_group": "optional_reproduction"
|
| 877 |
+
},
|
| 878 |
+
{
|
| 879 |
+
"path": "reproduction/evidence/engine/qualification-22.json",
|
| 880 |
+
"sha256": "b12ce94b3a18d1ea3095eaeb3ce9f86aaec66059f9920655ca30adf398fedbac",
|
| 881 |
+
"size": 65342,
|
| 882 |
+
"artifact_group": "optional_reproduction"
|
| 883 |
+
},
|
| 884 |
+
{
|
| 885 |
+
"path": "reproduction/evidence/engine/qualification-3.json",
|
| 886 |
+
"sha256": "8255324bf0018309e622ae1360f1946681480ed2ae458edf48ae0e79187b4758",
|
| 887 |
+
"size": 64877,
|
| 888 |
+
"artifact_group": "optional_reproduction"
|
| 889 |
+
},
|
| 890 |
+
{
|
| 891 |
+
"path": "reproduction/evidence/engine/qualification-6.json",
|
| 892 |
+
"sha256": "a5880638a3a0afd5882db8a813f2caa8c1225d54c6c76e0ee5ca5b0b4a0330b9",
|
| 893 |
+
"size": 64939,
|
| 894 |
+
"artifact_group": "optional_reproduction"
|
| 895 |
+
},
|
| 896 |
+
{
|
| 897 |
+
"path": "reproduction/evidence/engine/qualification-summary.json",
|
| 898 |
+
"sha256": "be169f82e37164d6df78dd16828dbd2bee8e5bdfb53a3c9a6eea0a43164c4096",
|
| 899 |
+
"size": 644,
|
| 900 |
+
"artifact_group": "optional_reproduction"
|
| 901 |
+
},
|
| 902 |
+
{
|
| 903 |
+
"path": "reproduction/evidence/engine/short-materialization/inputs.npz",
|
| 904 |
+
"sha256": "67b2f0a81f3e01017c8000d034cbe95eaebe28580dbc9a1b0a39195edd5efca1",
|
| 905 |
+
"size": 216165,
|
| 906 |
+
"artifact_group": "optional_reproduction"
|
| 907 |
+
},
|
| 908 |
+
{
|
| 909 |
+
"path": "reproduction/evidence/engine/short-materialization/manifest.json",
|
| 910 |
+
"sha256": "e908778bd30a65d1f648562558c0d5ad776ecb24de60628fc54fe3bbb0a9c307",
|
| 911 |
+
"size": 40515,
|
| 912 |
+
"artifact_group": "optional_reproduction"
|
| 913 |
+
},
|
| 914 |
+
{
|
| 915 |
+
"path": "reproduction/evidence/engine/source-freeze.json",
|
| 916 |
+
"sha256": "6dfbc20512ebaa9598b6edde268d440e1d9ec2591ba031a63df899784d206846",
|
| 917 |
+
"size": 803,
|
| 918 |
+
"artifact_group": "optional_reproduction"
|
| 919 |
+
},
|
| 920 |
+
{
|
| 921 |
+
"path": "reproduction/evidence/engine/standard-api-qualification.json",
|
| 922 |
+
"sha256": "d03728c9999d3eed7d783b42ac4daa313bf66369d487409ef9ef8a2eb29a02fa",
|
| 923 |
+
"size": 1143,
|
| 924 |
+
"artifact_group": "optional_reproduction"
|
| 925 |
+
},
|
| 926 |
+
{
|
| 927 |
+
"path": "reproduction/evidence/engine/task-replay/metrics.json",
|
| 928 |
+
"sha256": "b28bd927c3d8693cc2b0df37c989a40a6ba959a66a4004f2a7871fe25b70c84a",
|
| 929 |
+
"size": 3288184,
|
| 930 |
+
"artifact_group": "optional_reproduction"
|
| 931 |
+
},
|
| 932 |
+
{
|
| 933 |
+
"path": "reproduction/evidence/engine/task-replay/plan.json",
|
| 934 |
+
"sha256": "fa992de02951bc9a064c2737d43ebb66bce510653a302ee07848cd3cdce8870b",
|
| 935 |
+
"size": 1830,
|
| 936 |
+
"artifact_group": "optional_reproduction"
|
| 937 |
+
},
|
| 938 |
+
{
|
| 939 |
+
"path": "reproduction/evidence/engine/task-replay-summary.json",
|
| 940 |
+
"sha256": "c3621d487817e80f83f71ec6d42bd52dbd6460fde577b2a1ff7094f0a4c4b279",
|
| 941 |
+
"size": 102899,
|
| 942 |
+
"artifact_group": "optional_reproduction"
|
| 943 |
+
},
|
| 944 |
+
{
|
| 945 |
+
"path": "reproduction/evidence/engine/warm-benchmark.json",
|
| 946 |
+
"sha256": "7fc92635dad5b85c8e08737e2ea015dcd95b815640360d9bfac24570523a65fe",
|
| 947 |
+
"size": 95219,
|
| 948 |
+
"artifact_group": "optional_reproduction"
|
| 949 |
+
},
|
| 950 |
+
{
|
| 951 |
+
"path": "reproduction/evidence/engine/warm-benchmark.plan.json",
|
| 952 |
+
"sha256": "b65f3c27a512b401eca9a663b777d60f14261e21c3cb91cd9819e6cbe19c1f63",
|
| 953 |
+
"size": 1220,
|
| 954 |
+
"artifact_group": "optional_reproduction"
|
| 955 |
+
},
|
| 956 |
+
{
|
| 957 |
+
"path": "reproduction/evidence/export/export-fp16.json",
|
| 958 |
+
"sha256": "ec958fc1fcfcbbcedfff8f5fa7767145a12bc27c5a7df8937440967820171cf1",
|
| 959 |
+
"size": 78569,
|
| 960 |
+
"artifact_group": "optional_reproduction"
|
| 961 |
+
},
|
| 962 |
+
{
|
| 963 |
+
"path": "reproduction/evidence/export/export-fp32.json",
|
| 964 |
+
"sha256": "08f44fcbe44ff259e2d3cb2ba6499258f759dbff4b684325b851a80198c1b71f",
|
| 965 |
+
"size": 75633,
|
| 966 |
+
"artifact_group": "optional_reproduction"
|
| 967 |
+
},
|
| 968 |
+
{
|
| 969 |
+
"path": "reproduction/evidence/export/source_identity.json",
|
| 970 |
+
"sha256": "38785fe616ecdc8edf993d94645a44393f1bd60575248be18bfaf24b3b9131e1",
|
| 971 |
+
"size": 1367,
|
| 972 |
+
"artifact_group": "optional_reproduction"
|
| 973 |
+
},
|
| 974 |
+
{
|
| 975 |
+
"path": "reproduction/evidence/history/embedding-english-repair-matched-v1/development-splits.json",
|
| 976 |
+
"sha256": "bb46c856adfaa1c033aaa3f647250df96b844a45031b33fb869d6596a56b5346",
|
| 977 |
+
"size": 17271,
|
| 978 |
+
"artifact_group": "optional_reproduction"
|
| 979 |
+
},
|
| 980 |
+
{
|
| 981 |
+
"path": "reproduction/evidence/history/embedding-english-repair-matched-v1/english-data-manifest.json",
|
| 982 |
+
"sha256": "4b879073f3dc613b07eaec3c9421864d905cd29f40f18f278b542904eb144969",
|
| 983 |
+
"size": 4088052,
|
| 984 |
+
"artifact_group": "optional_reproduction"
|
| 985 |
+
},
|
| 986 |
+
{
|
| 987 |
+
"path": "reproduction/evidence/history/embedding-english-repair-matched-v1/natural-training-manifest.json",
|
| 988 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 989 |
+
"size": 1034641,
|
| 990 |
+
"artifact_group": "optional_reproduction"
|
| 991 |
+
},
|
| 992 |
+
{
|
| 993 |
+
"path": "reproduction/evidence/history/embedding-english-repair-matched-v1/protocol.json",
|
| 994 |
+
"sha256": "a4ea0158721065b2672282016bb49122e09deee0197bb6a38dc3a4b65e007983",
|
| 995 |
+
"size": 18050,
|
| 996 |
+
"artifact_group": "optional_reproduction"
|
| 997 |
+
},
|
| 998 |
+
{
|
| 999 |
+
"path": "reproduction/evidence/history/embedding-english-repair-matched-v1/results.json",
|
| 1000 |
+
"sha256": "b1855ad6277c70e82db6fbb02c9c776662db2c999eb32a29e9929eb46f4e8b22",
|
| 1001 |
+
"size": 2536738,
|
| 1002 |
+
"artifact_group": "optional_reproduction"
|
| 1003 |
+
},
|
| 1004 |
+
{
|
| 1005 |
+
"path": "reproduction/evidence/history/embedding-english-repair-v1/development-splits.json",
|
| 1006 |
+
"sha256": "bb46c856adfaa1c033aaa3f647250df96b844a45031b33fb869d6596a56b5346",
|
| 1007 |
+
"size": 17271,
|
| 1008 |
+
"artifact_group": "optional_reproduction"
|
| 1009 |
+
},
|
| 1010 |
+
{
|
| 1011 |
+
"path": "reproduction/evidence/history/embedding-english-repair-v1/english-data-manifest.json",
|
| 1012 |
+
"sha256": "4b879073f3dc613b07eaec3c9421864d905cd29f40f18f278b542904eb144969",
|
| 1013 |
+
"size": 4088052,
|
| 1014 |
+
"artifact_group": "optional_reproduction"
|
| 1015 |
+
},
|
| 1016 |
+
{
|
| 1017 |
+
"path": "reproduction/evidence/history/embedding-english-repair-v1/natural-training-manifest.json",
|
| 1018 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1019 |
+
"size": 1034641,
|
| 1020 |
+
"artifact_group": "optional_reproduction"
|
| 1021 |
+
},
|
| 1022 |
+
{
|
| 1023 |
+
"path": "reproduction/evidence/history/embedding-english-repair-v1/protocol.json",
|
| 1024 |
+
"sha256": "6fc259f640de2c96b59736582ffeb2faf56ab4aa5e1850f67dcdf13ff9662a6f",
|
| 1025 |
+
"size": 17676,
|
| 1026 |
+
"artifact_group": "optional_reproduction"
|
| 1027 |
+
},
|
| 1028 |
+
{
|
| 1029 |
+
"path": "reproduction/evidence/history/embedding-english-repair-v1/results.json",
|
| 1030 |
+
"sha256": "b49e1284a2a119d6e1a31648041c4e9255a51119f726428250b5a243714000c4",
|
| 1031 |
+
"size": 2536549,
|
| 1032 |
+
"artifact_group": "optional_reproduction"
|
| 1033 |
+
},
|
| 1034 |
+
{
|
| 1035 |
+
"path": "reproduction/evidence/history/embedding-interpolation-v1/interpolation.json",
|
| 1036 |
+
"sha256": "a035ef3199f14623e303d7c441bb963423d368d0510cd29adaecf74e7b0177fd",
|
| 1037 |
+
"size": 11480,
|
| 1038 |
+
"artifact_group": "optional_reproduction"
|
| 1039 |
+
},
|
| 1040 |
+
{
|
| 1041 |
+
"path": "reproduction/evidence/history/embedding-interpolation-v2/interpolation.json",
|
| 1042 |
+
"sha256": "e5fdba1a03f447900dde0a1bb360197d5fa2c741f7fe162563a7d20b023bccbc",
|
| 1043 |
+
"size": 11763,
|
| 1044 |
+
"artifact_group": "optional_reproduction"
|
| 1045 |
+
},
|
| 1046 |
+
{
|
| 1047 |
+
"path": "reproduction/evidence/history/embedding-long-clean1/long-dev-inputs-manifest.json",
|
| 1048 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1049 |
+
"size": 384753,
|
| 1050 |
+
"artifact_group": "optional_reproduction"
|
| 1051 |
+
},
|
| 1052 |
+
{
|
| 1053 |
+
"path": "reproduction/evidence/history/embedding-long-clean1/qasper-split-manifest.json",
|
| 1054 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1055 |
+
"size": 2986,
|
| 1056 |
+
"artifact_group": "optional_reproduction"
|
| 1057 |
+
},
|
| 1058 |
+
{
|
| 1059 |
+
"path": "reproduction/evidence/history/embedding-long-clean1/results.json",
|
| 1060 |
+
"sha256": "45b96a86b901a76e9d767c61251216cc5134ec90649bf1c5cd139bfb926e158c",
|
| 1061 |
+
"size": 2124149,
|
| 1062 |
+
"artifact_group": "optional_reproduction"
|
| 1063 |
+
},
|
| 1064 |
+
{
|
| 1065 |
+
"path": "reproduction/evidence/history/embedding-long-clean1/split-manifest.json",
|
| 1066 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1067 |
+
"size": 13052,
|
| 1068 |
+
"artifact_group": "optional_reproduction"
|
| 1069 |
+
},
|
| 1070 |
+
{
|
| 1071 |
+
"path": "reproduction/evidence/history/embedding-long-repair1/long-dev-inputs-manifest.json",
|
| 1072 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1073 |
+
"size": 384753,
|
| 1074 |
+
"artifact_group": "optional_reproduction"
|
| 1075 |
+
},
|
| 1076 |
+
{
|
| 1077 |
+
"path": "reproduction/evidence/history/embedding-long-repair1/qasper-split-manifest.json",
|
| 1078 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1079 |
+
"size": 2986,
|
| 1080 |
+
"artifact_group": "optional_reproduction"
|
| 1081 |
+
},
|
| 1082 |
+
{
|
| 1083 |
+
"path": "reproduction/evidence/history/embedding-long-repair1/results.json",
|
| 1084 |
+
"sha256": "72a23d87cee717c7a407c17aa77af2a8a5c5fa4b5c3030b8040277311aa9d3ca",
|
| 1085 |
+
"size": 3276288,
|
| 1086 |
+
"artifact_group": "optional_reproduction"
|
| 1087 |
+
},
|
| 1088 |
+
{
|
| 1089 |
+
"path": "reproduction/evidence/history/embedding-long-repair1/split-manifest.json",
|
| 1090 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1091 |
+
"size": 13052,
|
| 1092 |
+
"artifact_group": "optional_reproduction"
|
| 1093 |
+
},
|
| 1094 |
+
{
|
| 1095 |
+
"path": "reproduction/evidence/history/embedding-native-composition-v1/composition.json",
|
| 1096 |
+
"sha256": "258705c9434032e10f6fa3fc9a1def248cce56630217a2200cf5b1b542b63d37",
|
| 1097 |
+
"size": 67128,
|
| 1098 |
+
"artifact_group": "optional_reproduction"
|
| 1099 |
+
},
|
| 1100 |
+
{
|
| 1101 |
+
"path": "reproduction/evidence/history/embedding-native-composition-v1/plan.json",
|
| 1102 |
+
"sha256": "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da",
|
| 1103 |
+
"size": 3613,
|
| 1104 |
+
"artifact_group": "optional_reproduction"
|
| 1105 |
+
},
|
| 1106 |
+
{
|
| 1107 |
+
"path": "reproduction/evidence/history/embedding-native-repair3/long-dev-inputs-manifest.json",
|
| 1108 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1109 |
+
"size": 384753,
|
| 1110 |
+
"artifact_group": "optional_reproduction"
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"path": "reproduction/evidence/history/embedding-native-repair3/natural-training-manifest.json",
|
| 1114 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1115 |
+
"size": 1034641,
|
| 1116 |
+
"artifact_group": "optional_reproduction"
|
| 1117 |
+
},
|
| 1118 |
+
{
|
| 1119 |
+
"path": "reproduction/evidence/history/embedding-native-repair3/qasper-split-manifest.json",
|
| 1120 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1121 |
+
"size": 2986,
|
| 1122 |
+
"artifact_group": "optional_reproduction"
|
| 1123 |
+
},
|
| 1124 |
+
{
|
| 1125 |
+
"path": "reproduction/evidence/history/embedding-native-repair3/split-manifest.json",
|
| 1126 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1127 |
+
"size": 13052,
|
| 1128 |
+
"artifact_group": "optional_reproduction"
|
| 1129 |
+
},
|
| 1130 |
+
{
|
| 1131 |
+
"path": "reproduction/evidence/history/embedding-native-repair3b/long-dev-inputs-manifest.json",
|
| 1132 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1133 |
+
"size": 384753,
|
| 1134 |
+
"artifact_group": "optional_reproduction"
|
| 1135 |
+
},
|
| 1136 |
+
{
|
| 1137 |
+
"path": "reproduction/evidence/history/embedding-native-repair3b/natural-training-manifest.json",
|
| 1138 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1139 |
+
"size": 1034641,
|
| 1140 |
+
"artifact_group": "optional_reproduction"
|
| 1141 |
+
},
|
| 1142 |
+
{
|
| 1143 |
+
"path": "reproduction/evidence/history/embedding-native-repair3b/qasper-split-manifest.json",
|
| 1144 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1145 |
+
"size": 2986,
|
| 1146 |
+
"artifact_group": "optional_reproduction"
|
| 1147 |
+
},
|
| 1148 |
+
{
|
| 1149 |
+
"path": "reproduction/evidence/history/embedding-native-repair3b/results.json",
|
| 1150 |
+
"sha256": "87a36444fb8f78955d077dd0fb2994940c90ba82cb607d73dddfe2e4de8f2d5b",
|
| 1151 |
+
"size": 2170692,
|
| 1152 |
+
"artifact_group": "optional_reproduction"
|
| 1153 |
+
},
|
| 1154 |
+
{
|
| 1155 |
+
"path": "reproduction/evidence/history/embedding-native-repair3b/split-manifest.json",
|
| 1156 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1157 |
+
"size": 13052,
|
| 1158 |
+
"artifact_group": "optional_reproduction"
|
| 1159 |
+
},
|
| 1160 |
+
{
|
| 1161 |
+
"path": "reproduction/evidence/history/embedding-native-rows-repair-v1/development-splits.json",
|
| 1162 |
+
"sha256": "bb46c856adfaa1c033aaa3f647250df96b844a45031b33fb869d6596a56b5346",
|
| 1163 |
+
"size": 17271,
|
| 1164 |
+
"artifact_group": "optional_reproduction"
|
| 1165 |
+
},
|
| 1166 |
+
{
|
| 1167 |
+
"path": "reproduction/evidence/history/embedding-native-rows-repair-v1/english-data-manifest.json",
|
| 1168 |
+
"sha256": "4b879073f3dc613b07eaec3c9421864d905cd29f40f18f278b542904eb144969",
|
| 1169 |
+
"size": 4088052,
|
| 1170 |
+
"artifact_group": "optional_reproduction"
|
| 1171 |
+
},
|
| 1172 |
+
{
|
| 1173 |
+
"path": "reproduction/evidence/history/embedding-native-rows-repair-v1/natural-training-manifest.json",
|
| 1174 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1175 |
+
"size": 1034641,
|
| 1176 |
+
"artifact_group": "optional_reproduction"
|
| 1177 |
+
},
|
| 1178 |
+
{
|
| 1179 |
+
"path": "reproduction/evidence/history/embedding-native-rows-repair-v1/protocol.json",
|
| 1180 |
+
"sha256": "4410fa0032cb3dff32a1b69adbacfa5caf4e7fcd1f1ac5336d47924b1425eabc",
|
| 1181 |
+
"size": 17460,
|
| 1182 |
+
"artifact_group": "optional_reproduction"
|
| 1183 |
+
},
|
| 1184 |
+
{
|
| 1185 |
+
"path": "reproduction/evidence/history/embedding-native-rows-repair-v1/results.json",
|
| 1186 |
+
"sha256": "12304349b6393ce3a1e14842695ec8ec41eb0ed2c430ebee290dc17140d314e2",
|
| 1187 |
+
"size": 2341169,
|
| 1188 |
+
"artifact_group": "optional_reproduction"
|
| 1189 |
+
},
|
| 1190 |
+
{
|
| 1191 |
+
"path": "reproduction/evidence/history/embedding-natural-repair2/long-dev-inputs-manifest.json",
|
| 1192 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1193 |
+
"size": 384753,
|
| 1194 |
+
"artifact_group": "optional_reproduction"
|
| 1195 |
+
},
|
| 1196 |
+
{
|
| 1197 |
+
"path": "reproduction/evidence/history/embedding-natural-repair2/natural-training-manifest.json",
|
| 1198 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1199 |
+
"size": 1034641,
|
| 1200 |
+
"artifact_group": "optional_reproduction"
|
| 1201 |
+
},
|
| 1202 |
+
{
|
| 1203 |
+
"path": "reproduction/evidence/history/embedding-natural-repair2/qasper-split-manifest.json",
|
| 1204 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1205 |
+
"size": 2986,
|
| 1206 |
+
"artifact_group": "optional_reproduction"
|
| 1207 |
+
},
|
| 1208 |
+
{
|
| 1209 |
+
"path": "reproduction/evidence/history/embedding-natural-repair2/results.json",
|
| 1210 |
+
"sha256": "efeb7aa939346d7d1cf3d0d2439bd22bb9e9758b597557a901ac56fdb62fda2b",
|
| 1211 |
+
"size": 2244916,
|
| 1212 |
+
"artifact_group": "optional_reproduction"
|
| 1213 |
+
},
|
| 1214 |
+
{
|
| 1215 |
+
"path": "reproduction/evidence/history/embedding-natural-repair2/split-manifest.json",
|
| 1216 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1217 |
+
"size": 13052,
|
| 1218 |
+
"artifact_group": "optional_reproduction"
|
| 1219 |
+
},
|
| 1220 |
+
{
|
| 1221 |
+
"path": "reproduction/evidence/history/embedding-trial1/data-manifest.json",
|
| 1222 |
+
"sha256": "c1b4af9cd070d00a116de7fe0c2e242bab53c597ad63c2878a7d77eeaab0cfbe",
|
| 1223 |
+
"size": 2331593,
|
| 1224 |
+
"artifact_group": "optional_reproduction"
|
| 1225 |
+
},
|
| 1226 |
+
{
|
| 1227 |
+
"path": "reproduction/evidence/history/embedding-trial1/results.json",
|
| 1228 |
+
"sha256": "9882d891e079a8dfa5ea2fdbe0c1f21123b59d7cad04c10fe15a0e898151ffc2",
|
| 1229 |
+
"size": 6734,
|
| 1230 |
+
"artifact_group": "optional_reproduction"
|
| 1231 |
+
},
|
| 1232 |
+
{
|
| 1233 |
+
"path": "reproduction/evidence/history/embedding-trial2/data-manifest.json",
|
| 1234 |
+
"sha256": "c1b4af9cd070d00a116de7fe0c2e242bab53c597ad63c2878a7d77eeaab0cfbe",
|
| 1235 |
+
"size": 2331593,
|
| 1236 |
+
"artifact_group": "optional_reproduction"
|
| 1237 |
+
},
|
| 1238 |
+
{
|
| 1239 |
+
"path": "reproduction/evidence/history/embedding-trial2/results.json",
|
| 1240 |
+
"sha256": "2d59666856e83f1d520b1bc46172f0befe7eff35705232b08e3d991da11223db",
|
| 1241 |
+
"size": 3743,
|
| 1242 |
+
"artifact_group": "optional_reproduction"
|
| 1243 |
+
},
|
| 1244 |
+
{
|
| 1245 |
+
"path": "reproduction/evidence/history/embedding-trial3/data-manifest.json",
|
| 1246 |
+
"sha256": "c1b4af9cd070d00a116de7fe0c2e242bab53c597ad63c2878a7d77eeaab0cfbe",
|
| 1247 |
+
"size": 2331593,
|
| 1248 |
+
"artifact_group": "optional_reproduction"
|
| 1249 |
+
},
|
| 1250 |
+
{
|
| 1251 |
+
"path": "reproduction/evidence/history/embedding-trial3/results.json",
|
| 1252 |
+
"sha256": "550551ce9ae9d391e9682b6a59154285d07fe80ed6cd8cd6cbe0993344560a30",
|
| 1253 |
+
"size": 10429,
|
| 1254 |
+
"artifact_group": "optional_reproduction"
|
| 1255 |
+
},
|
| 1256 |
+
{
|
| 1257 |
+
"path": "reproduction/evidence/vela-embedding-composition-cpu-short/metrics.json",
|
| 1258 |
+
"sha256": "e5083dc52bc19cdcbd83a1e7aeef472b6e738ea1a9edcf99d2e445f486851e79",
|
| 1259 |
+
"size": 207484,
|
| 1260 |
+
"artifact_group": "optional_reproduction"
|
| 1261 |
+
},
|
| 1262 |
+
{
|
| 1263 |
+
"path": "reproduction/evidence/vela-embedding-composition-export-summary.json",
|
| 1264 |
+
"sha256": "c9bc7c27b3b682ac758d9e24afec66dd35951787b8571f0c2b80fb636c469330",
|
| 1265 |
+
"size": 2056,
|
| 1266 |
+
"artifact_group": "optional_reproduction"
|
| 1267 |
+
},
|
| 1268 |
+
{
|
| 1269 |
+
"path": "reproduction/evidence/vela-embedding-composition-final-candidate/metrics.json",
|
| 1270 |
+
"sha256": "94b221f1066968f33aa8a967458cb6394a6387c3e3b70f83fef1f45d33dbed74",
|
| 1271 |
+
"size": 3330820,
|
| 1272 |
+
"artifact_group": "optional_reproduction"
|
| 1273 |
+
},
|
| 1274 |
+
{
|
| 1275 |
+
"path": "reproduction/evidence/vela-embedding-composition-final-original/metrics.json",
|
| 1276 |
+
"sha256": "510c0546b637ca6745ff855d1827bd6cd3ea463f8c48d6e08422653f75096a7a",
|
| 1277 |
+
"size": 3330730,
|
| 1278 |
+
"artifact_group": "optional_reproduction"
|
| 1279 |
+
},
|
| 1280 |
+
{
|
| 1281 |
+
"path": "reproduction/evidence/vela-embedding-composition-final-summary.json",
|
| 1282 |
+
"sha256": "276cfac78ac80767b8aafc2386d7d3f43e4f1f8a512ffcb8be45e8fec3c2fa01",
|
| 1283 |
+
"size": 75296,
|
| 1284 |
+
"artifact_group": "optional_reproduction"
|
| 1285 |
+
},
|
| 1286 |
+
{
|
| 1287 |
+
"path": "reproduction/evidence/vela-embedding-composition-matrix.json",
|
| 1288 |
+
"sha256": "4fdd7db25dcb42eaa626b84295c8c985bbd11736ff646fb34200e96a7bf93ab5",
|
| 1289 |
+
"size": 6729274,
|
| 1290 |
+
"artifact_group": "optional_reproduction"
|
| 1291 |
+
},
|
| 1292 |
+
{
|
| 1293 |
+
"path": "reproduction/evidence/vela-embedding-native-composition-v1-dev/metrics.json",
|
| 1294 |
+
"sha256": "4b4f4f0ff8b4aeeff1f9a14889a249b84895ba8429dee13261fc9dd3cc27e816",
|
| 1295 |
+
"size": 2279589,
|
| 1296 |
+
"artifact_group": "optional_reproduction"
|
| 1297 |
+
},
|
| 1298 |
+
{
|
| 1299 |
+
"path": "reproduction/evidence/vela-embedding-native-rows-repair-v1-selection.json",
|
| 1300 |
+
"sha256": "cdf8dbdba3484b14efb9bd22544b8e27e0c0af22ca70b87e54c2a67cf2aeacab",
|
| 1301 |
+
"size": 3641,
|
| 1302 |
+
"artifact_group": "optional_reproduction"
|
| 1303 |
+
},
|
| 1304 |
+
{
|
| 1305 |
+
"path": "reproduction/evidence-publication-map.json",
|
| 1306 |
+
"sha256": "093b9fabb895301d614845763f36d19525695eb975e39756728862260b5b3a86",
|
| 1307 |
+
"size": 73175,
|
| 1308 |
+
"artifact_group": "optional_reproduction"
|
| 1309 |
+
},
|
| 1310 |
+
{
|
| 1311 |
+
"path": "reproduction/export_2d_matryoshka.py",
|
| 1312 |
+
"sha256": "851124cb3d3084d109129c5c8ce2b769b105e5be22abbae7731adaa6fb28175e",
|
| 1313 |
+
"size": 16634,
|
| 1314 |
+
"artifact_group": "optional_reproduction"
|
| 1315 |
+
},
|
| 1316 |
+
{
|
| 1317 |
+
"path": "reproduction/freeze_embedding_interpolation.py",
|
| 1318 |
+
"sha256": "b5d07aecbcb34f96feea53971f266b009b65f44990119d531b84dc5b5de9595a",
|
| 1319 |
+
"size": 6114,
|
| 1320 |
+
"artifact_group": "optional_reproduction"
|
| 1321 |
+
},
|
| 1322 |
+
{
|
| 1323 |
+
"path": "reproduction/freeze_embedding_interpolation_v2.py",
|
| 1324 |
+
"sha256": "71585bf528c0ea0d76013220f076c3d795d787ac31224494710f496030f0fc43",
|
| 1325 |
+
"size": 6117,
|
| 1326 |
+
"artifact_group": "optional_reproduction"
|
| 1327 |
+
},
|
| 1328 |
+
{
|
| 1329 |
+
"path": "reproduction/freeze_embedding_native_composition.py",
|
| 1330 |
+
"sha256": "1844b05e20f0157a66c5c7f8bb895e864b64b7120154d757648637726378e66c",
|
| 1331 |
+
"size": 9880,
|
| 1332 |
+
"artifact_group": "optional_reproduction"
|
| 1333 |
+
},
|
| 1334 |
+
{
|
| 1335 |
+
"path": "reproduction/freeze_embedding_native_rows_repair.py",
|
| 1336 |
+
"sha256": "d47a4dad014a7c3c9f512f8a26127e606b43af8e02ce37ce21c2c4e839ccf6e5",
|
| 1337 |
+
"size": 8028,
|
| 1338 |
+
"artifact_group": "optional_reproduction"
|
| 1339 |
+
},
|
| 1340 |
+
{
|
| 1341 |
+
"path": "reproduction/freeze_embedding_successor_holdout.py",
|
| 1342 |
+
"sha256": "0084c36eade20994c713773ef7c8bec786f8230a7a0ced35a16c519d02d94e23",
|
| 1343 |
+
"size": 10640,
|
| 1344 |
+
"artifact_group": "optional_reproduction"
|
| 1345 |
+
},
|
| 1346 |
+
{
|
| 1347 |
+
"path": "reproduction/freeze_reranker_next_final_ids.py",
|
| 1348 |
+
"sha256": "aa8effbfca7fe3f07b85aa84008bc3b80949535953e3702216792b5c44763f76",
|
| 1349 |
+
"size": 3366,
|
| 1350 |
+
"artifact_group": "optional_reproduction"
|
| 1351 |
+
},
|
| 1352 |
+
{
|
| 1353 |
+
"path": "reproduction/freeze_vela_native_text.py",
|
| 1354 |
+
"sha256": "77c08a54cfd093d8a3bbcad2a404b37c2ddf0d8f71a6f211ad11c408d07db1ad",
|
| 1355 |
+
"size": 5786,
|
| 1356 |
+
"artifact_group": "optional_reproduction"
|
| 1357 |
+
},
|
| 1358 |
+
{
|
| 1359 |
+
"path": "reproduction/freeze_vela_text.py",
|
| 1360 |
+
"sha256": "899ccbd7aa666e066c3cb59568e607b19d5d98847b12f6a5636980d4a226e8e3",
|
| 1361 |
+
"size": 3421,
|
| 1362 |
+
"artifact_group": "optional_reproduction"
|
| 1363 |
+
},
|
| 1364 |
+
{
|
| 1365 |
+
"path": "reproduction/freeze_vela_text_repair.py",
|
| 1366 |
+
"sha256": "90796ec6246d440fa65a974aadc5146efa061f6379aa7c442cea1e0ebe918da7",
|
| 1367 |
+
"size": 6662,
|
| 1368 |
+
"artifact_group": "optional_reproduction"
|
| 1369 |
+
},
|
| 1370 |
+
{
|
| 1371 |
+
"path": "reproduction/frozen-inputs/final/background-members.json",
|
| 1372 |
+
"sha256": "b825c375328e766673d3d647b91bc804a351cdb16c35620d3f5d44b8ec16a524",
|
| 1373 |
+
"size": 3739686,
|
| 1374 |
+
"artifact_group": "optional_reproduction"
|
| 1375 |
+
},
|
| 1376 |
+
{
|
| 1377 |
+
"path": "reproduction/frozen-inputs/final/fixture.json",
|
| 1378 |
+
"sha256": "adfb1313bac3f6faa2248129ed5759e0aaa9b4eaaa53232b5ad20d342044bb46",
|
| 1379 |
+
"size": 3605,
|
| 1380 |
+
"artifact_group": "optional_reproduction"
|
| 1381 |
+
},
|
| 1382 |
+
{
|
| 1383 |
+
"path": "reproduction/frozen-inputs/final/long-inputs-manifest.json",
|
| 1384 |
+
"sha256": "91bba859c596421a5e1312700129987be0dcf30e60db0e7b758f473145a8fa38",
|
| 1385 |
+
"size": 2502394,
|
| 1386 |
+
"artifact_group": "optional_reproduction"
|
| 1387 |
+
},
|
| 1388 |
+
{
|
| 1389 |
+
"path": "reproduction/frozen-inputs/final/long-inputs.jsonl.gz",
|
| 1390 |
+
"sha256": "775914d51d3b887fbf7450186bf468927f0a0f7781b700ad48ff585d9dc37db9",
|
| 1391 |
+
"size": 67767972,
|
| 1392 |
+
"artifact_group": "optional_reproduction"
|
| 1393 |
+
},
|
| 1394 |
+
{
|
| 1395 |
+
"path": "reproduction/frozen-inputs/final/natural-inputs.json",
|
| 1396 |
+
"sha256": "5b8d52eae607e350cde730adf5b12ec6e1ea6479b49d5c60e5c0bee58aa68e9e",
|
| 1397 |
+
"size": 1999390,
|
| 1398 |
+
"artifact_group": "optional_reproduction"
|
| 1399 |
+
},
|
| 1400 |
+
{
|
| 1401 |
+
"path": "reproduction/frozen-inputs/final/short-inputs.json",
|
| 1402 |
+
"sha256": "d9d73fcab02faad8f922da742d36a7ef05790ad6977d3eb6c4fdbc2df7b2045c",
|
| 1403 |
+
"size": 440805,
|
| 1404 |
+
"artifact_group": "optional_reproduction"
|
| 1405 |
+
},
|
| 1406 |
+
{
|
| 1407 |
+
"path": "reproduction/frozen-inputs/identity/manifest.json",
|
| 1408 |
+
"sha256": "670f28a6df201462413a2886646509fa298c02b9c94d24d2ea49203ae2cd716e",
|
| 1409 |
+
"size": 43304,
|
| 1410 |
+
"artifact_group": "optional_reproduction"
|
| 1411 |
+
},
|
| 1412 |
+
{
|
| 1413 |
+
"path": "reproduction/frozen-inputs/identity/miracl-rows.json.gz",
|
| 1414 |
+
"sha256": "48ac1596b8e86b76da67cb122eebe039ae5763d2786b09a2fd4512ac2e25a691",
|
| 1415 |
+
"size": 160210,
|
| 1416 |
+
"artifact_group": "optional_reproduction"
|
| 1417 |
+
},
|
| 1418 |
+
{
|
| 1419 |
+
"path": "reproduction/frozen-inputs/identity/natural-inputs.json.gz",
|
| 1420 |
+
"sha256": "74411261fe1a4406ea962320491d4c5cfb50667929067a1550506b6278c9e379",
|
| 1421 |
+
"size": 549890,
|
| 1422 |
+
"artifact_group": "optional_reproduction"
|
| 1423 |
+
},
|
| 1424 |
+
{
|
| 1425 |
+
"path": "reproduction/frozen-inputs/prerequisites/vela-embedding-english-repair-v1-data-manifest.json",
|
| 1426 |
+
"sha256": "4b879073f3dc613b07eaec3c9421864d905cd29f40f18f278b542904eb144969",
|
| 1427 |
+
"size": 4088052,
|
| 1428 |
+
"artifact_group": "optional_reproduction"
|
| 1429 |
+
},
|
| 1430 |
+
{
|
| 1431 |
+
"path": "reproduction/frozen-inputs/prerequisites/vela-embedding-native-repair3-constraints.json",
|
| 1432 |
+
"sha256": "88e8e1e2c2af2df128fe8c9ce54e653bb80ecacedfa852cd588f56f013520bb0",
|
| 1433 |
+
"size": 492139,
|
| 1434 |
+
"artifact_group": "optional_reproduction"
|
| 1435 |
+
},
|
| 1436 |
+
{
|
| 1437 |
+
"path": "reproduction/frozen-inputs/reference-run/long-dev-inputs-manifest.json",
|
| 1438 |
+
"sha256": "d96069079435ba767193041c66ae0a5d7fd8aebe6aa8a01611a3d4eacdad8199",
|
| 1439 |
+
"size": 384753,
|
| 1440 |
+
"artifact_group": "optional_reproduction"
|
| 1441 |
+
},
|
| 1442 |
+
{
|
| 1443 |
+
"path": "reproduction/frozen-inputs/reference-run/natural-training-manifest.json",
|
| 1444 |
+
"sha256": "eea3b4a1c2b971e5d95cb5f25b5465be999d3b25fd5c3fe10dd9e22a0b4d361f",
|
| 1445 |
+
"size": 1034641,
|
| 1446 |
+
"artifact_group": "optional_reproduction"
|
| 1447 |
+
},
|
| 1448 |
+
{
|
| 1449 |
+
"path": "reproduction/frozen-inputs/reference-run/qasper-split-manifest.json",
|
| 1450 |
+
"sha256": "90b9517ac0a316318fd000b28b68b873e70a66e9e635be4d9ab505e0ce96faba",
|
| 1451 |
+
"size": 2986,
|
| 1452 |
+
"artifact_group": "optional_reproduction"
|
| 1453 |
+
},
|
| 1454 |
+
{
|
| 1455 |
+
"path": "reproduction/frozen-inputs/reference-run/split-manifest.json",
|
| 1456 |
+
"sha256": "86021762e7373010113e3c809c7e03a61560318a116a3d7d9eba68583d24f78f",
|
| 1457 |
+
"size": 13052,
|
| 1458 |
+
"artifact_group": "optional_reproduction"
|
| 1459 |
+
},
|
| 1460 |
+
{
|
| 1461 |
+
"path": "reproduction/inference.py",
|
| 1462 |
+
"sha256": "f274399f52d08ff8d545d6a27b39a47eb87907fe23c62fd583dabd7eee80ac58",
|
| 1463 |
+
"size": 5152,
|
| 1464 |
+
"artifact_group": "optional_reproduction"
|
| 1465 |
+
},
|
| 1466 |
+
{
|
| 1467 |
+
"path": "reproduction/install_frozen_inputs.py",
|
| 1468 |
+
"sha256": "3f03db15e40109c098d4b7835a6de1a88b2804ebec011c8884d528f9fd291dd9",
|
| 1469 |
+
"size": 2229,
|
| 1470 |
+
"artifact_group": "optional_reproduction"
|
| 1471 |
+
},
|
| 1472 |
+
{
|
| 1473 |
+
"path": "reproduction/intermediates/clean1/1_Pooling/config.json",
|
| 1474 |
+
"sha256": "ffe35d1251a99bc1f8187575f90682524294a62c51d7f27d2c520bb9e34371e4",
|
| 1475 |
+
"size": 297,
|
| 1476 |
+
"artifact_group": "optional_reproduction"
|
| 1477 |
+
},
|
| 1478 |
+
{
|
| 1479 |
+
"path": "reproduction/intermediates/clean1/config.json",
|
| 1480 |
+
"sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 1481 |
+
"size": 1470,
|
| 1482 |
+
"artifact_group": "optional_reproduction"
|
| 1483 |
+
},
|
| 1484 |
+
{
|
| 1485 |
+
"path": "reproduction/intermediates/clean1/config_sentence_transformers.json",
|
| 1486 |
+
"sha256": "ccf45df8438a7510d071f4cf0495a0925a3f045027d8c05b857079024984e277",
|
| 1487 |
+
"size": 294,
|
| 1488 |
+
"artifact_group": "optional_reproduction"
|
| 1489 |
+
},
|
| 1490 |
+
{
|
| 1491 |
+
"path": "reproduction/intermediates/clean1/model.safetensors",
|
| 1492 |
+
"sha256": "f2d9b7b559e6897e5ffe37eb892d366b9478945634579b04bea09071abdcb064",
|
| 1493 |
+
"size": 1227771776,
|
| 1494 |
+
"artifact_group": "optional_reproduction"
|
| 1495 |
+
},
|
| 1496 |
+
{
|
| 1497 |
+
"path": "reproduction/intermediates/clean1/modules.json",
|
| 1498 |
+
"sha256": "8f4b264b80206c830bebbdcae377e137925650a433b689343a63bdc9b3145460",
|
| 1499 |
+
"size": 229,
|
| 1500 |
+
"artifact_group": "optional_reproduction"
|
| 1501 |
+
},
|
| 1502 |
+
{
|
| 1503 |
+
"path": "reproduction/intermediates/clean1/sentence_bert_config.json",
|
| 1504 |
+
"sha256": "0b1d25d4d13c72c255a7eaaf8921ca481c4cd61ad894e7209c52dc5e1ac3f3bd",
|
| 1505 |
+
"size": 56,
|
| 1506 |
+
"artifact_group": "optional_reproduction"
|
| 1507 |
+
},
|
| 1508 |
+
{
|
| 1509 |
+
"path": "reproduction/intermediates/clean1/special_tokens_map.json",
|
| 1510 |
+
"sha256": "6e3204c5a4004719c185007a745d1940471a6fb02521cfa0a00306dbb6bc5903",
|
| 1511 |
+
"size": 1051,
|
| 1512 |
+
"artifact_group": "optional_reproduction"
|
| 1513 |
+
},
|
| 1514 |
+
{
|
| 1515 |
+
"path": "reproduction/intermediates/clean1/tokenizer.json",
|
| 1516 |
+
"sha256": "22fd4a60565f25fee8ebd2866aab07456dd46cbbeb45eaf506529ed8451ee58f",
|
| 1517 |
+
"size": 34363343,
|
| 1518 |
+
"artifact_group": "optional_reproduction"
|
| 1519 |
+
},
|
| 1520 |
+
{
|
| 1521 |
+
"path": "reproduction/intermediates/clean1/tokenizer_config.json",
|
| 1522 |
+
"sha256": "65f203e93f3ccd1943d4317006ec9a4660e1102a085c5bc9f4f934062b318ceb",
|
| 1523 |
+
"size": 46636,
|
| 1524 |
+
"artifact_group": "optional_reproduction"
|
| 1525 |
+
},
|
| 1526 |
+
{
|
| 1527 |
+
"path": "reproduction/intermediates/native1440/1_Pooling/config.json",
|
| 1528 |
+
"sha256": "35bbd47d7fdf1e378db6130bcc668b09d1aa67a7bbf7c8f89a9c71f4cc8ebcc6",
|
| 1529 |
+
"size": 312,
|
| 1530 |
+
"artifact_group": "optional_reproduction"
|
| 1531 |
+
},
|
| 1532 |
+
{
|
| 1533 |
+
"path": "reproduction/intermediates/native1440/config.json",
|
| 1534 |
+
"sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 1535 |
+
"size": 1470,
|
| 1536 |
+
"artifact_group": "optional_reproduction"
|
| 1537 |
+
},
|
| 1538 |
+
{
|
| 1539 |
+
"path": "reproduction/intermediates/native1440/config_sentence_transformers.json",
|
| 1540 |
+
"sha256": "d73c909f5e2ed5cd0c6bf696491285cb33a28ec13d197bf80ec17e65c7222675",
|
| 1541 |
+
"size": 293,
|
| 1542 |
+
"artifact_group": "optional_reproduction"
|
| 1543 |
+
},
|
| 1544 |
+
{
|
| 1545 |
+
"path": "reproduction/intermediates/native1440/model.safetensors",
|
| 1546 |
+
"sha256": "af88753104a2b21462e7be8c1762b603b4b2f651ad46893a48deedef5ebe5761",
|
| 1547 |
+
"size": 1227771776,
|
| 1548 |
+
"artifact_group": "optional_reproduction"
|
| 1549 |
+
},
|
| 1550 |
+
{
|
| 1551 |
+
"path": "reproduction/intermediates/native1440/modules.json",
|
| 1552 |
+
"sha256": "8f4b264b80206c830bebbdcae377e137925650a433b689343a63bdc9b3145460",
|
| 1553 |
+
"size": 229,
|
| 1554 |
+
"artifact_group": "optional_reproduction"
|
| 1555 |
+
},
|
| 1556 |
+
{
|
| 1557 |
+
"path": "reproduction/intermediates/native1440/sentence_bert_config.json",
|
| 1558 |
+
"sha256": "ae8658c7cf91db1a3ceee800af0f9bda2c7ad60a88b5c2b4d6d5cb0a4394c9c1",
|
| 1559 |
+
"size": 59,
|
| 1560 |
+
"artifact_group": "optional_reproduction"
|
| 1561 |
+
},
|
| 1562 |
+
{
|
| 1563 |
+
"path": "reproduction/intermediates/native1440/special_tokens_map.json",
|
| 1564 |
+
"sha256": "6e3204c5a4004719c185007a745d1940471a6fb02521cfa0a00306dbb6bc5903",
|
| 1565 |
+
"size": 1051,
|
| 1566 |
+
"artifact_group": "optional_reproduction"
|
| 1567 |
+
},
|
| 1568 |
+
{
|
| 1569 |
+
"path": "reproduction/intermediates/native1440/tokenizer.json",
|
| 1570 |
+
"sha256": "609d8f4c067cd3950f88594c5a802616cea245823836ef5848ee4fc40aab5b6f",
|
| 1571 |
+
"size": 34363188,
|
| 1572 |
+
"artifact_group": "optional_reproduction"
|
| 1573 |
+
},
|
| 1574 |
+
{
|
| 1575 |
+
"path": "reproduction/intermediates/native1440/tokenizer_config.json",
|
| 1576 |
+
"sha256": "65f203e93f3ccd1943d4317006ec9a4660e1102a085c5bc9f4f934062b318ceb",
|
| 1577 |
+
"size": 46636,
|
| 1578 |
+
"artifact_group": "optional_reproduction"
|
| 1579 |
+
},
|
| 1580 |
+
{
|
| 1581 |
+
"path": "reproduction/intermediates/native960/1_Pooling/config.json",
|
| 1582 |
+
"sha256": "35bbd47d7fdf1e378db6130bcc668b09d1aa67a7bbf7c8f89a9c71f4cc8ebcc6",
|
| 1583 |
+
"size": 312,
|
| 1584 |
+
"artifact_group": "optional_reproduction"
|
| 1585 |
+
},
|
| 1586 |
+
{
|
| 1587 |
+
"path": "reproduction/intermediates/native960/config.json",
|
| 1588 |
+
"sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 1589 |
+
"size": 1470,
|
| 1590 |
+
"artifact_group": "optional_reproduction"
|
| 1591 |
+
},
|
| 1592 |
+
{
|
| 1593 |
+
"path": "reproduction/intermediates/native960/config_sentence_transformers.json",
|
| 1594 |
+
"sha256": "d73c909f5e2ed5cd0c6bf696491285cb33a28ec13d197bf80ec17e65c7222675",
|
| 1595 |
+
"size": 293,
|
| 1596 |
+
"artifact_group": "optional_reproduction"
|
| 1597 |
+
},
|
| 1598 |
+
{
|
| 1599 |
+
"path": "reproduction/intermediates/native960/model.safetensors",
|
| 1600 |
+
"sha256": "2b1871b4823af473256a564877b7b2b15742c1152478da60bd80c57ebc5de5b3",
|
| 1601 |
+
"size": 1227771776,
|
| 1602 |
+
"artifact_group": "optional_reproduction"
|
| 1603 |
+
},
|
| 1604 |
+
{
|
| 1605 |
+
"path": "reproduction/intermediates/native960/modules.json",
|
| 1606 |
+
"sha256": "8f4b264b80206c830bebbdcae377e137925650a433b689343a63bdc9b3145460",
|
| 1607 |
+
"size": 229,
|
| 1608 |
+
"artifact_group": "optional_reproduction"
|
| 1609 |
+
},
|
| 1610 |
+
{
|
| 1611 |
+
"path": "reproduction/intermediates/native960/sentence_bert_config.json",
|
| 1612 |
+
"sha256": "ae8658c7cf91db1a3ceee800af0f9bda2c7ad60a88b5c2b4d6d5cb0a4394c9c1",
|
| 1613 |
+
"size": 59,
|
| 1614 |
+
"artifact_group": "optional_reproduction"
|
| 1615 |
+
},
|
| 1616 |
+
{
|
| 1617 |
+
"path": "reproduction/intermediates/native960/special_tokens_map.json",
|
| 1618 |
+
"sha256": "6e3204c5a4004719c185007a745d1940471a6fb02521cfa0a00306dbb6bc5903",
|
| 1619 |
+
"size": 1051,
|
| 1620 |
+
"artifact_group": "optional_reproduction"
|
| 1621 |
+
},
|
| 1622 |
+
{
|
| 1623 |
+
"path": "reproduction/intermediates/native960/tokenizer.json",
|
| 1624 |
+
"sha256": "609d8f4c067cd3950f88594c5a802616cea245823836ef5848ee4fc40aab5b6f",
|
| 1625 |
+
"size": 34363188,
|
| 1626 |
+
"artifact_group": "optional_reproduction"
|
| 1627 |
+
},
|
| 1628 |
+
{
|
| 1629 |
+
"path": "reproduction/intermediates/native960/tokenizer_config.json",
|
| 1630 |
+
"sha256": "65f203e93f3ccd1943d4317006ec9a4660e1102a085c5bc9f4f934062b318ceb",
|
| 1631 |
+
"size": 46636,
|
| 1632 |
+
"artifact_group": "optional_reproduction"
|
| 1633 |
+
},
|
| 1634 |
+
{
|
| 1635 |
+
"path": "reproduction/materialize_english_repair_final.py",
|
| 1636 |
+
"sha256": "ca0b206811724ebd03edf617a8164c095fc86477039d4bf354882fda01c91840",
|
| 1637 |
+
"size": 6427,
|
| 1638 |
+
"artifact_group": "optional_reproduction"
|
| 1639 |
+
},
|
| 1640 |
+
{
|
| 1641 |
+
"path": "reproduction/model_code/mmbert_32k/__init__.py",
|
| 1642 |
+
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
| 1643 |
+
"size": 0,
|
| 1644 |
+
"artifact_group": "optional_reproduction"
|
| 1645 |
+
},
|
| 1646 |
+
{
|
| 1647 |
+
"path": "reproduction/model_code/mmbert_32k/pawsx_data.py",
|
| 1648 |
+
"sha256": "7b2474f10e47b013e1cdee4264e5d7a78ce9788cd26cd8cc1b8a605686df4d1d",
|
| 1649 |
+
"size": 1396,
|
| 1650 |
+
"artifact_group": "optional_reproduction"
|
| 1651 |
+
},
|
| 1652 |
+
{
|
| 1653 |
+
"path": "reproduction/model_code/mmbert_32k/representation_contract.py",
|
| 1654 |
+
"sha256": "c4ac38b37507ee154097bd8d932a7e7c0e30d3501f231214ed03926cc7fae66e",
|
| 1655 |
+
"size": 2594,
|
| 1656 |
+
"artifact_group": "optional_reproduction"
|
| 1657 |
+
},
|
| 1658 |
+
{
|
| 1659 |
+
"path": "reproduction/model_code/mmbert_32k/representation_outputs.py",
|
| 1660 |
+
"sha256": "9f2c8cab7a71a08e38c992ef484d093ecebde592023f252db529652a8c759901",
|
| 1661 |
+
"size": 3582,
|
| 1662 |
+
"artifact_group": "optional_reproduction"
|
| 1663 |
+
},
|
| 1664 |
+
{
|
| 1665 |
+
"path": "reproduction/model_code/mmbert_32k/representation_sentence_transformers.py",
|
| 1666 |
+
"sha256": "94f42ecd46e1eb15f2dc29da156fc3ae344ac01212c3beaf9ecacc68f071b250",
|
| 1667 |
+
"size": 2203,
|
| 1668 |
+
"artifact_group": "optional_reproduction"
|
| 1669 |
+
},
|
| 1670 |
+
{
|
| 1671 |
+
"path": "reproduction/model_code/mmbert_32k/reranker_model.py",
|
| 1672 |
+
"sha256": "e3dea40018513553854cc6763384ec50933c8fc2d900cf632d147b46122a1dbe",
|
| 1673 |
+
"size": 13841,
|
| 1674 |
+
"artifact_group": "optional_reproduction"
|
| 1675 |
+
},
|
| 1676 |
+
{
|
| 1677 |
+
"path": "reproduction/model_precision.py",
|
| 1678 |
+
"sha256": "57018a544510d7c218ba2845f41a5b22be7881f30e5273a62f2ae2ddc409673e",
|
| 1679 |
+
"size": 1409,
|
| 1680 |
+
"artifact_group": "optional_reproduction"
|
| 1681 |
+
},
|
| 1682 |
+
{
|
| 1683 |
+
"path": "reproduction/natural_paper_curriculum.py",
|
| 1684 |
+
"sha256": "ff8faca619882140a0ee6ba43a7fe39661d73723e8f69d4a3ef278fb173bc796",
|
| 1685 |
+
"size": 5685,
|
| 1686 |
+
"artifact_group": "optional_reproduction"
|
| 1687 |
+
},
|
| 1688 |
+
{
|
| 1689 |
+
"path": "reproduction/onnx/benchmark_onnx.py",
|
| 1690 |
+
"sha256": "55f037bc242b0c8550787e8c981725c311aa99bceca1d111bba043e9bfd166ca",
|
| 1691 |
+
"size": 4532,
|
| 1692 |
+
"artifact_group": "optional_reproduction"
|
| 1693 |
+
},
|
| 1694 |
+
{
|
| 1695 |
+
"path": "reproduction/onnx/embedding_final_protocol.py",
|
| 1696 |
+
"sha256": "6e06d74cb521d50d7be8e158eeba1b63c5f39dcc7ad6f3636eab2dfc4bf49ee5",
|
| 1697 |
+
"size": 2859,
|
| 1698 |
+
"artifact_group": "optional_reproduction"
|
| 1699 |
+
},
|
| 1700 |
+
{
|
| 1701 |
+
"path": "reproduction/onnx/engine_contract.py",
|
| 1702 |
+
"sha256": "f3f923daa4c001845f7696c8959467fea42410f8a42ed7a919bfeb3592543fc0",
|
| 1703 |
+
"size": 3589,
|
| 1704 |
+
"artifact_group": "optional_reproduction"
|
| 1705 |
+
},
|
| 1706 |
+
{
|
| 1707 |
+
"path": "reproduction/onnx/evaluate_rankings.py",
|
| 1708 |
+
"sha256": "2f1df1d2924eea7f33d61f2b5d7073f3d1da090f9c800e0a19b44f04f5cb49c7",
|
| 1709 |
+
"size": 5304,
|
| 1710 |
+
"artifact_group": "optional_reproduction"
|
| 1711 |
+
},
|
| 1712 |
+
{
|
| 1713 |
+
"path": "reproduction/onnx/materialize_short.py",
|
| 1714 |
+
"sha256": "2ec98797574e082f0c6415dad4ea948274f24f50dd8678c440cf4308bd2877be",
|
| 1715 |
+
"size": 3078,
|
| 1716 |
+
"artifact_group": "optional_reproduction"
|
| 1717 |
+
},
|
| 1718 |
+
{
|
| 1719 |
+
"path": "reproduction/onnx/native_reference.py",
|
| 1720 |
+
"sha256": "34af1d5620e0c19025fe61402ccc19b83077af1791c530415a525e6f507f9542",
|
| 1721 |
+
"size": 7294,
|
| 1722 |
+
"artifact_group": "optional_reproduction"
|
| 1723 |
+
},
|
| 1724 |
+
{
|
| 1725 |
+
"path": "reproduction/onnx/publication-adaptations.json",
|
| 1726 |
+
"sha256": "e76aa559af4b116e9e9cee40a62bde125b9d96ce85d1c0d0b276aae05771da08",
|
| 1727 |
+
"size": 2690,
|
| 1728 |
+
"artifact_group": "optional_reproduction"
|
| 1729 |
+
},
|
| 1730 |
+
{
|
| 1731 |
+
"path": "reproduction/onnx/qualify_onnx.py",
|
| 1732 |
+
"sha256": "699c5298c902d787847d4831df2011c025831d3c4dc9ad8f109617d15841b0b6",
|
| 1733 |
+
"size": 4764,
|
| 1734 |
+
"artifact_group": "optional_reproduction"
|
| 1735 |
+
},
|
| 1736 |
+
{
|
| 1737 |
+
"path": "reproduction/onnx/qualify_ort_ffi.py",
|
| 1738 |
+
"sha256": "142390eb60f3a178fdb7e35425c41dc0d1efe6a2b3132439946f74bd69dfa41d",
|
| 1739 |
+
"size": 7875,
|
| 1740 |
+
"artifact_group": "optional_reproduction"
|
| 1741 |
+
},
|
| 1742 |
+
{
|
| 1743 |
+
"path": "reproduction/onnx/replay_tasks.py",
|
| 1744 |
+
"sha256": "f2e5b396cedcfd35eb88bfbe834a58918ab5a1a0deafc081762833cd75a40e1d",
|
| 1745 |
+
"size": 8690,
|
| 1746 |
+
"artifact_group": "optional_reproduction"
|
| 1747 |
+
},
|
| 1748 |
+
{
|
| 1749 |
+
"path": "reproduction/onnx/rewrite_graph.py",
|
| 1750 |
+
"sha256": "34672e6260b00a6c43298e55e9d082ee0e6c9e3d6102785f3e16bcfd3e56cfd8",
|
| 1751 |
+
"size": 37410,
|
| 1752 |
+
"artifact_group": "optional_reproduction"
|
| 1753 |
+
},
|
| 1754 |
+
{
|
| 1755 |
+
"path": "reproduction/onnx/stable_pooling.py",
|
| 1756 |
+
"sha256": "8b67fdd8b11a975fe6a2a09e33970b7969c3f682f81f0e6cdb1ec534c90bb221",
|
| 1757 |
+
"size": 10439,
|
| 1758 |
+
"artifact_group": "optional_reproduction"
|
| 1759 |
+
},
|
| 1760 |
+
{
|
| 1761 |
+
"path": "reproduction/onnx/summarize_reranker_native_final.py",
|
| 1762 |
+
"sha256": "c8f046944e7b964c60e2a1494d33dc9ff9e7820b41c104461f440a42555ce07e",
|
| 1763 |
+
"size": 7623,
|
| 1764 |
+
"artifact_group": "optional_reproduction"
|
| 1765 |
+
},
|
| 1766 |
+
{
|
| 1767 |
+
"path": "reproduction/onnx/summarize_tasks.py",
|
| 1768 |
+
"sha256": "01815706d056f89350719204b3c2b415f2bf8c5c5aab1e2dc5d151ff19a28115",
|
| 1769 |
+
"size": 4171,
|
| 1770 |
+
"artifact_group": "optional_reproduction"
|
| 1771 |
+
},
|
| 1772 |
+
{
|
| 1773 |
+
"path": "reproduction/onnx_artifacts.py",
|
| 1774 |
+
"sha256": "324d3d4f1de13643e09d64e69e72a562fad9e0d30eada9f793d0aab64e2e56d0",
|
| 1775 |
+
"size": 3937,
|
| 1776 |
+
"artifact_group": "optional_reproduction"
|
| 1777 |
+
},
|
| 1778 |
+
{
|
| 1779 |
+
"path": "reproduction/pack_shared_weights.py",
|
| 1780 |
+
"sha256": "a3d5b3487d4fb231d17652e97da607f477aa1af8ca0ecb753df1529161df5ca4",
|
| 1781 |
+
"size": 16247,
|
| 1782 |
+
"artifact_group": "optional_reproduction"
|
| 1783 |
+
},
|
| 1784 |
+
{
|
| 1785 |
+
"path": "reproduction/pawsx_data.py",
|
| 1786 |
+
"sha256": "7b2474f10e47b013e1cdee4264e5d7a78ce9788cd26cd8cc1b8a605686df4d1d",
|
| 1787 |
+
"size": 1396,
|
| 1788 |
+
"artifact_group": "optional_reproduction"
|
| 1789 |
+
},
|
| 1790 |
+
{
|
| 1791 |
+
"path": "reproduction/portable-fp16/layer-11/model_sdpa_fp16.onnx",
|
| 1792 |
+
"sha256": "3627d6236ec8267244ab2ed93306afaa4ac50d22b7c3a445ca9607ffe3607b61",
|
| 1793 |
+
"size": 83516,
|
| 1794 |
+
"artifact_group": "optional_reproduction"
|
| 1795 |
+
},
|
| 1796 |
+
{
|
| 1797 |
+
"path": "reproduction/portable-fp16/layer-11/model_sdpa_fp16.onnx.data",
|
| 1798 |
+
"sha256": "80afb7e694c2007770afa4114b179e10483678795a65a5d92069dccc6c1fd562",
|
| 1799 |
+
"size": 503578624,
|
| 1800 |
+
"artifact_group": "optional_reproduction"
|
| 1801 |
+
},
|
| 1802 |
+
{
|
| 1803 |
+
"path": "reproduction/portable-fp16/layer-22/model_sdpa_fp16.onnx",
|
| 1804 |
+
"sha256": "bfaac236145f0249549a953d5a20c377fe4f83b4a97482e7e7c4ed21a76ddaa9",
|
| 1805 |
+
"size": 163996,
|
| 1806 |
+
"artifact_group": "optional_reproduction"
|
| 1807 |
+
},
|
| 1808 |
+
{
|
| 1809 |
+
"path": "reproduction/portable-fp16/layer-22/model_sdpa_fp16.onnx.data",
|
| 1810 |
+
"sha256": "7244198fc1b0876596c2317c496f9aac16f59403912a1f5e714b743a11807486",
|
| 1811 |
+
"size": 613941248,
|
| 1812 |
+
"artifact_group": "optional_reproduction"
|
| 1813 |
+
},
|
| 1814 |
+
{
|
| 1815 |
+
"path": "reproduction/portable-fp16/layer-3/model_sdpa_fp16.onnx",
|
| 1816 |
+
"sha256": "e351f358f31f2ccaf927f3d204d114af03a4e4b3eb678029051b542fbe7cb01c",
|
| 1817 |
+
"size": 26115,
|
| 1818 |
+
"artifact_group": "optional_reproduction"
|
| 1819 |
+
},
|
| 1820 |
+
{
|
| 1821 |
+
"path": "reproduction/portable-fp16/layer-3/model_sdpa_fp16.onnx.data",
|
| 1822 |
+
"sha256": "0c6f59ad039a98dd5bd841b19f07c5a3d92eb16ad1a3bd44478f584638e5a982",
|
| 1823 |
+
"size": 423362560,
|
| 1824 |
+
"artifact_group": "optional_reproduction"
|
| 1825 |
+
},
|
| 1826 |
+
{
|
| 1827 |
+
"path": "reproduction/portable-fp16/layer-6/model_sdpa_fp16.onnx",
|
| 1828 |
+
"sha256": "1820f63b2ddff60bb5fffc6591762db4db95c5cf646b8bdd6abec9b347e066af",
|
| 1829 |
+
"size": 47438,
|
| 1830 |
+
"artifact_group": "optional_reproduction"
|
| 1831 |
+
},
|
| 1832 |
+
{
|
| 1833 |
+
"path": "reproduction/portable-fp16/layer-6/model_sdpa_fp16.onnx.data",
|
| 1834 |
+
"sha256": "46e2f58be8477377133237c2a7e745218d5de4c555e0315af6c9f1047e083a54",
|
| 1835 |
+
"size": 453443584,
|
| 1836 |
+
"artifact_group": "optional_reproduction"
|
| 1837 |
+
},
|
| 1838 |
+
{
|
| 1839 |
+
"path": "reproduction/prepare_embedding_native_final.py",
|
| 1840 |
+
"sha256": "9e9d21f02cf6277b664b729fb52d28e939b1d8dbf969577c7c67be33e7c22db2",
|
| 1841 |
+
"size": 9546,
|
| 1842 |
+
"artifact_group": "optional_reproduction"
|
| 1843 |
+
},
|
| 1844 |
+
{
|
| 1845 |
+
"path": "reproduction/prepare_english_repair_data.py",
|
| 1846 |
+
"sha256": "20d9057af34adbd48205ed2af20ef6eab2305669285c37e51c22a0de3760715c",
|
| 1847 |
+
"size": 852,
|
| 1848 |
+
"artifact_group": "optional_reproduction"
|
| 1849 |
+
},
|
| 1850 |
+
{
|
| 1851 |
+
"path": "reproduction/prepare_native_natural_constraints.py",
|
| 1852 |
+
"sha256": "17deb434fa8bf0834ec7e9986b90d7cfa3adb35e05ac5b67f66b808032bd12c6",
|
| 1853 |
+
"size": 2251,
|
| 1854 |
+
"artifact_group": "optional_reproduction"
|
| 1855 |
+
},
|
| 1856 |
+
{
|
| 1857 |
+
"path": "reproduction/prepare_natural_repair2.py",
|
| 1858 |
+
"sha256": "d932440366b3684dc22f55261d6df66f849b9c1f80db196cb420c25873202c2a",
|
| 1859 |
+
"size": 1534,
|
| 1860 |
+
"artifact_group": "optional_reproduction"
|
| 1861 |
+
},
|
| 1862 |
+
{
|
| 1863 |
+
"path": "reproduction/prepare_reranker_native_final_v2.py",
|
| 1864 |
+
"sha256": "61e7e1b73062c00f222025b93bf1f96994cdcaabf84912e3cdd327236f2f00ba",
|
| 1865 |
+
"size": 6652,
|
| 1866 |
+
"artifact_group": "optional_reproduction"
|
| 1867 |
+
},
|
| 1868 |
+
{
|
| 1869 |
+
"path": "reproduction/prepare_reranker_next_final.py",
|
| 1870 |
+
"sha256": "17df98184bca744a5668316f63b7103bebf8527ff2577f1ad69e6745b835e1b0",
|
| 1871 |
+
"size": 2816,
|
| 1872 |
+
"artifact_group": "optional_reproduction"
|
| 1873 |
+
},
|
| 1874 |
+
{
|
| 1875 |
+
"path": "reproduction/probe_embedding_matched_training_step.py",
|
| 1876 |
+
"sha256": "18a2b13a9ec034ab6aacfccfd3be3de1857bc1ca0a8205192c1be07804f9dc38",
|
| 1877 |
+
"size": 6135,
|
| 1878 |
+
"artifact_group": "optional_reproduction"
|
| 1879 |
+
},
|
| 1880 |
+
{
|
| 1881 |
+
"path": "reproduction/probe_embedding_native_six_layers.py",
|
| 1882 |
+
"sha256": "124739a4ca3bc2c7586cc05350d114f411cb0210f7d00dd629d7675e5dd3e3b8",
|
| 1883 |
+
"size": 6371,
|
| 1884 |
+
"artifact_group": "optional_reproduction"
|
| 1885 |
+
},
|
| 1886 |
+
{
|
| 1887 |
+
"path": "reproduction/protocols/embedding-independent-final-v1.json",
|
| 1888 |
+
"sha256": "37d06626c7896914cef6a7130692ab4cd02af69c81c6530841f23f152b672780",
|
| 1889 |
+
"size": 5258,
|
| 1890 |
+
"artifact_group": "optional_reproduction"
|
| 1891 |
+
},
|
| 1892 |
+
{
|
| 1893 |
+
"path": "reproduction/protocols/native-composition-final-tooling-freeze-v2.json",
|
| 1894 |
+
"sha256": "593e886bae59af84242646f2a972532c287b10ac492b02be278adbb437e914e8",
|
| 1895 |
+
"size": 924,
|
| 1896 |
+
"artifact_group": "optional_reproduction"
|
| 1897 |
+
},
|
| 1898 |
+
{
|
| 1899 |
+
"path": "reproduction/protocols/native-composition-plan-v1.json",
|
| 1900 |
+
"sha256": "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da",
|
| 1901 |
+
"size": 3613,
|
| 1902 |
+
"artifact_group": "optional_reproduction"
|
| 1903 |
+
},
|
| 1904 |
+
{
|
| 1905 |
+
"path": "reproduction/protocols/native-composition-source-freeze-v1.json",
|
| 1906 |
+
"sha256": "09cd7d878239c8e01dc3d9ea155e1768c57e4701e3f058cbf2b8bede9f3dba33",
|
| 1907 |
+
"size": 1123,
|
| 1908 |
+
"artifact_group": "optional_reproduction"
|
| 1909 |
+
},
|
| 1910 |
+
{
|
| 1911 |
+
"path": "reproduction/protocols/native-rows-repair-plan.json",
|
| 1912 |
+
"sha256": "4d1a3444999cfb2e2043395fc8fd92b4b7ab855f43c61f790a7990ae14d449da",
|
| 1913 |
+
"size": 4223,
|
| 1914 |
+
"artifact_group": "optional_reproduction"
|
| 1915 |
+
},
|
| 1916 |
+
{
|
| 1917 |
+
"path": "reproduction/publication-adaptations.json",
|
| 1918 |
+
"sha256": "3631a16aa4ee7282e92f4134c58ca3274873a8516c0b6b6e6218b30803db1ef6",
|
| 1919 |
+
"size": 43609,
|
| 1920 |
+
"artifact_group": "optional_reproduction"
|
| 1921 |
+
},
|
| 1922 |
+
{
|
| 1923 |
+
"path": "reproduction/publication-status.json",
|
| 1924 |
+
"sha256": "caf2e19df3a5453f82bcceab62384d0a555049d6afe100023bb56f65cd5285de",
|
| 1925 |
+
"size": 580,
|
| 1926 |
+
"artifact_group": "optional_reproduction"
|
| 1927 |
+
},
|
| 1928 |
+
{
|
| 1929 |
+
"path": "reproduction/qualify_standard_api.py",
|
| 1930 |
+
"sha256": "958aa16c700c01536a93decb99f2cda41f3cb33c2833382f1437d2c5fac87143",
|
| 1931 |
+
"size": 3909,
|
| 1932 |
+
"artifact_group": "optional_reproduction"
|
| 1933 |
+
},
|
| 1934 |
+
{
|
| 1935 |
+
"path": "reproduction/report_reranker_short_precisions.py",
|
| 1936 |
+
"sha256": "f83c8d7b078ad0a8622f9b12ce8ce6a4a873c32dd5f044fc18e4299049154b12",
|
| 1937 |
+
"size": 3434,
|
| 1938 |
+
"artifact_group": "optional_reproduction"
|
| 1939 |
+
},
|
| 1940 |
+
{
|
| 1941 |
+
"path": "reproduction/requirements.txt",
|
| 1942 |
+
"sha256": "5d0894dcba291fd6e45ace684bc1ef5d09dc66514f5064d83c04603424fc8fa9",
|
| 1943 |
+
"size": 332,
|
| 1944 |
+
"artifact_group": "optional_reproduction"
|
| 1945 |
+
},
|
| 1946 |
+
{
|
| 1947 |
+
"path": "reproduction/run_pawsx_baseline.py",
|
| 1948 |
+
"sha256": "c577f258f72c268c5926e41b73f6caf54272d5285b7f0c72ad6e47aea943c040",
|
| 1949 |
+
"size": 6315,
|
| 1950 |
+
"artifact_group": "optional_reproduction"
|
| 1951 |
+
},
|
| 1952 |
+
{
|
| 1953 |
+
"path": "reproduction/run_reranker_baseline.py",
|
| 1954 |
+
"sha256": "bf74aa30d5e967c401159d69b463f618d478ebee98eece7c7d18cf82da02c6ed",
|
| 1955 |
+
"size": 4153,
|
| 1956 |
+
"artifact_group": "optional_reproduction"
|
| 1957 |
+
},
|
| 1958 |
+
{
|
| 1959 |
+
"path": "reproduction/run_text_baseline.py",
|
| 1960 |
+
"sha256": "7373f901bc9d22276d399adf3b1f899d046326a94c3214e1e264fb874e602cd7",
|
| 1961 |
+
"size": 6496,
|
| 1962 |
+
"artifact_group": "optional_reproduction"
|
| 1963 |
+
},
|
| 1964 |
+
{
|
| 1965 |
+
"path": "reproduction/select_english_repair.py",
|
| 1966 |
+
"sha256": "b47abc7fc777be7092c458c7b1a74e549031726d20bf8497f6f78a6798202c24",
|
| 1967 |
+
"size": 6206,
|
| 1968 |
+
"artifact_group": "optional_reproduction"
|
| 1969 |
+
},
|
| 1970 |
+
{
|
| 1971 |
+
"path": "reproduction/select_fixed_native_dev.py",
|
| 1972 |
+
"sha256": "4d1fd2d94b78a4d2bb60fd6ed80bd41ac515d47de193597091a3b6a8de6d3ffa",
|
| 1973 |
+
"size": 4055,
|
| 1974 |
+
"artifact_group": "optional_reproduction"
|
| 1975 |
+
},
|
| 1976 |
+
{
|
| 1977 |
+
"path": "reproduction/select_vela_dev_precision.py",
|
| 1978 |
+
"sha256": "79bd41c0c4bc13f744fe95b7cabd0e0c6d7feac02a5c7e794f5c5862f01a0290",
|
| 1979 |
+
"size": 3089,
|
| 1980 |
+
"artifact_group": "optional_reproduction"
|
| 1981 |
+
},
|
| 1982 |
+
{
|
| 1983 |
+
"path": "reproduction/select_vela_fp16_dev.py",
|
| 1984 |
+
"sha256": "d7c5c95ba084b567f865859a0267201e7eb62fb1ba9eb5dd3548b844210743c7",
|
| 1985 |
+
"size": 2950,
|
| 1986 |
+
"artifact_group": "optional_reproduction"
|
| 1987 |
+
},
|
| 1988 |
+
{
|
| 1989 |
+
"path": "reproduction/summarize_embedding_native_final.py",
|
| 1990 |
+
"sha256": "723ce39688869cdaf14040dfa8954cb803c8ce68f35d18ae6342a60780b4e15e",
|
| 1991 |
+
"size": 5476,
|
| 1992 |
+
"artifact_group": "optional_reproduction"
|
| 1993 |
+
},
|
| 1994 |
+
{
|
| 1995 |
+
"path": "reproduction/summarize_embedding_successor_final.py",
|
| 1996 |
+
"sha256": "37be7d04d6490a7a1158ef3a8026bea83c72cd0114c95224f3eb0cb626003028",
|
| 1997 |
+
"size": 8795,
|
| 1998 |
+
"artifact_group": "optional_reproduction"
|
| 1999 |
+
},
|
| 2000 |
+
{
|
| 2001 |
+
"path": "reproduction/summarize_reranker_native_final.py",
|
| 2002 |
+
"sha256": "c8f046944e7b964c60e2a1494d33dc9ff9e7820b41c104461f440a42555ce07e",
|
| 2003 |
+
"size": 7623,
|
| 2004 |
+
"artifact_group": "optional_reproduction"
|
| 2005 |
+
},
|
| 2006 |
+
{
|
| 2007 |
+
"path": "reproduction/test_dev_selection.py",
|
| 2008 |
+
"sha256": "d17396a03342b9522936eb85677232c663d08436201329dbb86f2b1b66be6092",
|
| 2009 |
+
"size": 2890,
|
| 2010 |
+
"artifact_group": "optional_reproduction"
|
| 2011 |
+
},
|
| 2012 |
+
{
|
| 2013 |
+
"path": "reproduction/test_embedding_composition_selection.py",
|
| 2014 |
+
"sha256": "cc0f870286fe08b3a947530eb65577ca30ec63501a732897838632d1b5b154f5",
|
| 2015 |
+
"size": 4609,
|
| 2016 |
+
"artifact_group": "optional_reproduction"
|
| 2017 |
+
},
|
| 2018 |
+
{
|
| 2019 |
+
"path": "reproduction/test_embedding_final_protocol.py",
|
| 2020 |
+
"sha256": "9d3f29db76492446f07644fcfc07d0ccff45a28cecb56b75b9ee325295d77cc8",
|
| 2021 |
+
"size": 3283,
|
| 2022 |
+
"artifact_group": "optional_reproduction"
|
| 2023 |
+
},
|
| 2024 |
+
{
|
| 2025 |
+
"path": "reproduction/test_embedding_final_summary.py",
|
| 2026 |
+
"sha256": "fd6c7c72d7143b5a0e2ab5e3de8f9ef5d7f456370bf8579356f083796e0f4eaa",
|
| 2027 |
+
"size": 5968,
|
| 2028 |
+
"artifact_group": "optional_reproduction"
|
| 2029 |
+
},
|
| 2030 |
+
{
|
| 2031 |
+
"path": "reproduction/test_embedding_interpolation.py",
|
| 2032 |
+
"sha256": "c504097c24cc3ada602ad0431cc9b34c7c21f5a64631ba48392f8dc9d966c20d",
|
| 2033 |
+
"size": 1819,
|
| 2034 |
+
"artifact_group": "optional_reproduction"
|
| 2035 |
+
},
|
| 2036 |
+
{
|
| 2037 |
+
"path": "reproduction/test_embedding_native_composition.py",
|
| 2038 |
+
"sha256": "ee7043ff0316b3be62630726d79d664ed1edc52673641a81c9e7c0a4fa4e1f51",
|
| 2039 |
+
"size": 2205,
|
| 2040 |
+
"artifact_group": "optional_reproduction"
|
| 2041 |
+
},
|
| 2042 |
+
{
|
| 2043 |
+
"path": "reproduction/test_embedding_native_training_math.py",
|
| 2044 |
+
"sha256": "3a7708eaca7260969a1312bdc9ddebe94ffb3de3ef4e3a3f9669b92b569c5e6a",
|
| 2045 |
+
"size": 3224,
|
| 2046 |
+
"artifact_group": "optional_reproduction"
|
| 2047 |
+
},
|
| 2048 |
+
{
|
| 2049 |
+
"path": "reproduction/test_embedding_unpadded_native_math.py",
|
| 2050 |
+
"sha256": "24851ab57a92d14468e3df139083308c678c4a967dbdfe6964bc1bebd9288f49",
|
| 2051 |
+
"size": 2659,
|
| 2052 |
+
"artifact_group": "optional_reproduction"
|
| 2053 |
+
},
|
| 2054 |
+
{
|
| 2055 |
+
"path": "reproduction/test_english_repair_boundaries.py",
|
| 2056 |
+
"sha256": "e5e8fe9f1196ecb0fcf8c9f8a4449963b465c4ac7c371acfc2cf3ef5e13ecd03",
|
| 2057 |
+
"size": 3434,
|
| 2058 |
+
"artifact_group": "optional_reproduction"
|
| 2059 |
+
},
|
| 2060 |
+
{
|
| 2061 |
+
"path": "reproduction/test_english_selection.py",
|
| 2062 |
+
"sha256": "c5e580ce436a230762bc1bd3696645e542e681d7408023cc6af56f648235c738",
|
| 2063 |
+
"size": 3005,
|
| 2064 |
+
"artifact_group": "optional_reproduction"
|
| 2065 |
+
},
|
| 2066 |
+
{
|
| 2067 |
+
"path": "reproduction/test_fixed_native_selection.py",
|
| 2068 |
+
"sha256": "ed08d74d3bb625b268a62a181149b3293c27f0631554afd28bd37f17e5615e69",
|
| 2069 |
+
"size": 2357,
|
| 2070 |
+
"artifact_group": "optional_reproduction"
|
| 2071 |
+
},
|
| 2072 |
+
{
|
| 2073 |
+
"path": "reproduction/test_native_rows_curriculum.py",
|
| 2074 |
+
"sha256": "c45e49aa76e0a3ca36358c7fd4ea3e5dda5ee9a3e725181c912e2ee1dac2b732",
|
| 2075 |
+
"size": 1317,
|
| 2076 |
+
"artifact_group": "optional_reproduction"
|
| 2077 |
+
},
|
| 2078 |
+
{
|
| 2079 |
+
"path": "reproduction/test_native_rows_selection.py",
|
| 2080 |
+
"sha256": "28d461eaadf52feb48961ece9e94cdda4b0bd988bd206338c8bf9a5680733664",
|
| 2081 |
+
"size": 2685,
|
| 2082 |
+
"artifact_group": "optional_reproduction"
|
| 2083 |
+
},
|
| 2084 |
+
{
|
| 2085 |
+
"path": "reproduction/test_natural_deployment_validation.py",
|
| 2086 |
+
"sha256": "d92624aad0a80a096c9f0d7f64f254a8af446d1f69877cd3e31865d0b7453614",
|
| 2087 |
+
"size": 2348,
|
| 2088 |
+
"artifact_group": "optional_reproduction"
|
| 2089 |
+
},
|
| 2090 |
+
{
|
| 2091 |
+
"path": "reproduction/test_natural_deployment_validation_v2.py",
|
| 2092 |
+
"sha256": "ebd9a2ab245a34643e116ec4f148ac6d16bd38cbb40bd68ab6518a36f740b23a",
|
| 2093 |
+
"size": 2571,
|
| 2094 |
+
"artifact_group": "optional_reproduction"
|
| 2095 |
+
},
|
| 2096 |
+
{
|
| 2097 |
+
"path": "reproduction/test_natural_paper_curriculum.py",
|
| 2098 |
+
"sha256": "0658f66102a765aed10cf988b33d30a9d1ac8875762b93b9a2606f0c4b0a5a4a",
|
| 2099 |
+
"size": 2190,
|
| 2100 |
+
"artifact_group": "optional_reproduction"
|
| 2101 |
+
},
|
| 2102 |
+
{
|
| 2103 |
+
"path": "reproduction/test_precision_reader.py",
|
| 2104 |
+
"sha256": "1f32314311c617b4edaf22a0c98961a54e064673e77bee20a0adadc6b63c2fde",
|
| 2105 |
+
"size": 4365,
|
| 2106 |
+
"artifact_group": "optional_reproduction"
|
| 2107 |
+
},
|
| 2108 |
+
{
|
| 2109 |
+
"path": "reproduction/test_reproduction_inputs.py",
|
| 2110 |
+
"sha256": "f16628b915b9e249cd756f1f2c13fb23eab5bf9df4ecc3eac0cf3463e087a313",
|
| 2111 |
+
"size": 1786,
|
| 2112 |
+
"artifact_group": "optional_reproduction"
|
| 2113 |
+
},
|
| 2114 |
+
{
|
| 2115 |
+
"path": "reproduction/test_reranker_native_repair.py",
|
| 2116 |
+
"sha256": "7c3fe44f7e888c0c547874cb7dc5debb78de34a47919a78801ab220244fcc47f",
|
| 2117 |
+
"size": 2951,
|
| 2118 |
+
"artifact_group": "optional_reproduction"
|
| 2119 |
+
},
|
| 2120 |
+
{
|
| 2121 |
+
"path": "reproduction/test_reranker_native_repair_v2.py",
|
| 2122 |
+
"sha256": "54d2654860023c01fb847595850052bda5825996c010478b41f8e8d0cb444d29",
|
| 2123 |
+
"size": 3107,
|
| 2124 |
+
"artifact_group": "optional_reproduction"
|
| 2125 |
+
},
|
| 2126 |
+
{
|
| 2127 |
+
"path": "reproduction/train_embedding_english_repair.py",
|
| 2128 |
+
"sha256": "95b846f096b7a953c40294bd6d0310c40b215f9bc78f0475d70507e402d4d698",
|
| 2129 |
+
"size": 23052,
|
| 2130 |
+
"artifact_group": "optional_reproduction"
|
| 2131 |
+
},
|
| 2132 |
+
{
|
| 2133 |
+
"path": "reproduction/train_embedding_english_repair_matched.py",
|
| 2134 |
+
"sha256": "6a6aad6611366c75f76b2e409803d1d4fdf6df4a1592d4f9a22e20a49132164f",
|
| 2135 |
+
"size": 24209,
|
| 2136 |
+
"artifact_group": "optional_reproduction"
|
| 2137 |
+
},
|
| 2138 |
+
{
|
| 2139 |
+
"path": "reproduction/train_embedding_english_repair_native.py",
|
| 2140 |
+
"sha256": "de9491dfbb785730a6a0bcd86a308bed57fcea80ac1b747607c784c454e720fd",
|
| 2141 |
+
"size": 24222,
|
| 2142 |
+
"artifact_group": "optional_reproduction"
|
| 2143 |
+
},
|
| 2144 |
+
{
|
| 2145 |
+
"path": "reproduction/train_embedding_native_rows_repair.py",
|
| 2146 |
+
"sha256": "ec84262bfd89e4e6b6da9a7545b9861d4f43e128b3e5e8265b6d2966f1486714",
|
| 2147 |
+
"size": 24202,
|
| 2148 |
+
"artifact_group": "optional_reproduction"
|
| 2149 |
+
},
|
| 2150 |
+
{
|
| 2151 |
+
"path": "reproduction/train_reranker_trial1.py",
|
| 2152 |
+
"sha256": "be3be0cbaeeaac6f54b8c3824f27236eef5e5d2aa88ac1dfb6281071a0324436",
|
| 2153 |
+
"size": 14538,
|
| 2154 |
+
"artifact_group": "optional_reproduction"
|
| 2155 |
+
},
|
| 2156 |
+
{
|
| 2157 |
+
"path": "reproduction/train_vela_long_repair.py",
|
| 2158 |
+
"sha256": "2fa280da4d49d5de129d08fdb3275806a37459037f819e63c4f0458aad6c2633",
|
| 2159 |
+
"size": 19613,
|
| 2160 |
+
"artifact_group": "optional_reproduction"
|
| 2161 |
+
},
|
| 2162 |
+
{
|
| 2163 |
+
"path": "reproduction/train_vela_long_repair_clean.py",
|
| 2164 |
+
"sha256": "c6e496d8875501d9c926d18e384bfb58f57754ef7fe9ca556b39a8f4c29899c1",
|
| 2165 |
+
"size": 20615,
|
| 2166 |
+
"artifact_group": "optional_reproduction"
|
| 2167 |
+
},
|
| 2168 |
+
{
|
| 2169 |
+
"path": "reproduction/train_vela_natural_repair.py",
|
| 2170 |
+
"sha256": "7ccfc81d9b2aa24a850715b66380eee8fc54c43ebf906a1339942e0d223e4323",
|
| 2171 |
+
"size": 23290,
|
| 2172 |
+
"artifact_group": "optional_reproduction"
|
| 2173 |
+
},
|
| 2174 |
+
{
|
| 2175 |
+
"path": "reproduction/train_vela_natural_repair_v2.py",
|
| 2176 |
+
"sha256": "c0983a0921c7d2f55c0fd5e1925444b1b0247531036be5c1dd657d9feb4e2630",
|
| 2177 |
+
"size": 23442,
|
| 2178 |
+
"artifact_group": "optional_reproduction"
|
| 2179 |
+
},
|
| 2180 |
+
{
|
| 2181 |
+
"path": "reproduction/train_vela_natural_repair_v3.py",
|
| 2182 |
+
"sha256": "7826562ced965b3bd82f449070733138ce12042e451c926b7cbc119233967a53",
|
| 2183 |
+
"size": 25162,
|
| 2184 |
+
"artifact_group": "optional_reproduction"
|
| 2185 |
+
},
|
| 2186 |
+
{
|
| 2187 |
+
"path": "reproduction/train_vela_natural_repair_v3b.py",
|
| 2188 |
+
"sha256": "bec2765a7a0545ec44a77c8b5f9e44ef7113f9e61345a32fbc276fd127d5ac8f",
|
| 2189 |
+
"size": 25168,
|
| 2190 |
+
"artifact_group": "optional_reproduction"
|
| 2191 |
+
},
|
| 2192 |
+
{
|
| 2193 |
+
"path": "reproduction/train_vela_reranker_native_repair.py",
|
| 2194 |
+
"sha256": "dedd3dffc293adde75dcdd983c3441ccac3113f32ed909192346531c14f11e38",
|
| 2195 |
+
"size": 13895,
|
| 2196 |
+
"artifact_group": "optional_reproduction"
|
| 2197 |
+
},
|
| 2198 |
+
{
|
| 2199 |
+
"path": "reproduction/train_vela_reranker_native_repair_v2.py",
|
| 2200 |
+
"sha256": "3a99f00a86c5052356a63208c5f7b943e71e4d5f264625306349bb400d02d47b",
|
| 2201 |
+
"size": 14058,
|
| 2202 |
+
"artifact_group": "optional_reproduction"
|
| 2203 |
+
},
|
| 2204 |
+
{
|
| 2205 |
+
"path": "reproduction/train_vela_text.py",
|
| 2206 |
+
"sha256": "ef1429d7c1b846742ec0381574e8f02fd420a45b875d21f426aa552bc4fbb1b0",
|
| 2207 |
+
"size": 17882,
|
| 2208 |
+
"artifact_group": "optional_reproduction"
|
| 2209 |
+
},
|
| 2210 |
+
{
|
| 2211 |
+
"path": "reproduction/vela_long_quality_data.py",
|
| 2212 |
+
"sha256": "a9415198fa6e1487bea8eacc6d9d7090f114557b93b8ae53020f025ae9d26af7",
|
| 2213 |
+
"size": 9783,
|
| 2214 |
+
"artifact_group": "optional_reproduction"
|
| 2215 |
+
},
|
| 2216 |
+
{
|
| 2217 |
+
"path": "reproduction/vela_text_data.py",
|
| 2218 |
+
"sha256": "cd9ba057424b85f28cefb56bbcf535f3b28f622cc82fe50350ef90675c309d4d",
|
| 2219 |
+
"size": 5109,
|
| 2220 |
+
"artifact_group": "optional_reproduction"
|
| 2221 |
+
},
|
| 2222 |
+
{
|
| 2223 |
+
"path": "sentence_bert_config.json",
|
| 2224 |
+
"sha256": "0b1d25d4d13c72c255a7eaaf8921ca481c4cd61ad894e7209c52dc5e1ac3f3bd",
|
| 2225 |
+
"size": 56,
|
| 2226 |
+
"artifact_group": "native_and_documentation"
|
| 2227 |
+
},
|
| 2228 |
+
{
|
| 2229 |
+
"path": "special_tokens_map.json",
|
| 2230 |
+
"sha256": "6e3204c5a4004719c185007a745d1940471a6fb02521cfa0a00306dbb6bc5903",
|
| 2231 |
+
"size": 1051,
|
| 2232 |
+
"artifact_group": "native_and_documentation"
|
| 2233 |
+
},
|
| 2234 |
+
{
|
| 2235 |
+
"path": "tokenizer.json",
|
| 2236 |
+
"sha256": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c",
|
| 2237 |
+
"size": 34363443,
|
| 2238 |
+
"artifact_group": "native_and_documentation"
|
| 2239 |
+
},
|
| 2240 |
+
{
|
| 2241 |
+
"path": "tokenizer_config.json",
|
| 2242 |
+
"sha256": "4048e30832fdfe352ff622328d23590b2f2d9a7661ebb48cabe4ec11427697f0",
|
| 2243 |
+
"size": 47955,
|
| 2244 |
+
"artifact_group": "native_and_documentation"
|
| 2245 |
+
},
|
| 2246 |
+
{
|
| 2247 |
+
"path": "training_provenance.json",
|
| 2248 |
+
"sha256": "a4f35f0898a37fbaad1a2ff6a4c04a5aa8af0bffec07e09f0cf4b6aaccef7f5c",
|
| 2249 |
+
"size": 10501,
|
| 2250 |
+
"artifact_group": "native_and_documentation"
|
| 2251 |
+
}
|
| 2252 |
+
],
|
| 2253 |
+
"file_count": 374,
|
| 2254 |
+
"total_bytes": 13199817279,
|
| 2255 |
+
"manifest_self_reference": "This file is deliberately excluded from its own file list.",
|
| 2256 |
+
"runtime_download_scope": "Native and per-layer ONNX files are runtime artifacts. reproduction/ contains optional training intermediates, source FP16 exports and evidence; consumers may exclude it.",
|
| 2257 |
+
"checks": {
|
| 2258 |
+
"all_four_quality_final": true,
|
| 2259 |
+
"all_740_ck_numerical": true,
|
| 2260 |
+
"all_four_ck_task_replay": true,
|
| 2261 |
+
"rust_ort_cpu_and_rocm_abi": true,
|
| 2262 |
+
"standard_transformers_cpu_bit_identical": true,
|
| 2263 |
+
"all_four_public_composition_cpu_bit_identical": true,
|
| 2264 |
+
"candle_cpu_long_reference": true
|
| 2265 |
+
}
|
| 2266 |
+
}
|
README.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language:
|
| 3 |
+
- multilingual
|
| 4 |
+
license: apache-2.0
|
| 5 |
+
library_name: transformers
|
| 6 |
+
pipeline_tag: sentence-similarity
|
| 7 |
+
base_model: llm-semantic-router/mmbert-embed-32k-2d-matryoshka
|
| 8 |
+
tags:
|
| 9 |
+
- semantic-router
|
| 10 |
+
- vela
|
| 11 |
+
- text-embeddings
|
| 12 |
+
- matryoshka
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# Vela 1.0 · Embedding
|
| 16 |
+
|
| 17 |
+
**Find context by meaning.**
|
| 18 |
+
|
| 19 |
+
307M · Multilingual · 32K context
|
| 20 |
+
|
| 21 |
+
[Collection](https://huggingface.co/collections/llm-semantic-router/vela-10-router-models-6aa555ba70cc6997d6d67798) · [vLLM Semantic Router](https://github.com/vllm-project/semantic-router)
|
| 22 |
+
|
| 23 |
+
Vela Embedding turns requests and documents into comparable vectors. Retrieve useful context, match requests with examples, and group related conversations.
|
| 24 |
+
|
| 25 |
+
## What it brings
|
| 26 |
+
|
| 27 |
+
- **A choice of vector sizes.** Four depths and five dimensions offer measured tradeoffs.
|
| 28 |
+
- **Longer documents.** Encode up to 32K tokens.
|
| 29 |
+
|
| 30 |
+
## At a glance
|
| 31 |
+
|
| 32 |
+
| Evaluation | Previous model | Vela |
|
| 33 |
+
|---|---:|---:|
|
| 34 |
+
| Multilingual judged-pool retrieval · 48 queries · nDCG@10 | 0.807 | **0.814** |
|
| 35 |
+
| Constructed long-document retrieval · 1,152 scenarios · pair accuracy | 55.6% | **57.5%** |
|
| 36 |
+
|
| 37 |
+
Native FP16; gains vary by language. Natural-paper and 32K end-position quality were retained. AMD ONNX has separate results, including a 1.04 percentage-point decrease at the 32K end position.
|
| 38 |
+
|
| 39 |
+
## Quick start
|
| 40 |
+
|
| 41 |
+
Install `torch` and `transformers==4.57.6`, then encode with the standard Transformers API:
|
| 42 |
+
|
| 43 |
+
```python
|
| 44 |
+
import torch
|
| 45 |
+
import torch.nn.functional as F
|
| 46 |
+
from transformers import AutoModel, AutoTokenizer
|
| 47 |
+
|
| 48 |
+
model_id = "llm-semantic-router/Vela-1.0-Encoder-307M-Embedding"
|
| 49 |
+
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
| 50 |
+
model = AutoModel.from_pretrained(model_id).eval()
|
| 51 |
+
inputs = tokenizer(
|
| 52 |
+
["Find evidence about climate change.", "查找气候变化的科学证据。"],
|
| 53 |
+
padding=True, truncation=False, return_tensors="pt",
|
| 54 |
+
)
|
| 55 |
+
if inputs["input_ids"].shape[1] > 32768:
|
| 56 |
+
raise ValueError("Input exceeds 32,768 tokens, including special tokens")
|
| 57 |
+
with torch.inference_mode():
|
| 58 |
+
hidden = model(**inputs).last_hidden_state.float()
|
| 59 |
+
mask = inputs["attention_mask"].unsqueeze(-1).float()
|
| 60 |
+
vectors = F.normalize((hidden * mask).sum(1) / mask.sum(1), dim=1)
|
| 61 |
+
print(vectors.shape) # torch.Size([2, 768])
|
| 62 |
+
```
|
| 63 |
+
|
| 64 |
+
The CPU example returns normalized 768-dimensional vectors. A larger dot product indicates greater similarity, not a calibrated probability. The default is 22 layers and 768 dimensions; shallow exits reduce quality.
|
| 65 |
+
|
| 66 |
+
## The Vela family
|
| 67 |
+
|
| 68 |
+
Choose the signals your router needs. Every model has a focused role.
|
| 69 |
+
|
| 70 |
+
| Role | Models |
|
| 71 |
+
|---|---|
|
| 72 |
+
| Understand requests | [Domain](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-Domain) · [Feedback](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-Feedback) · [Modality](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-Modality) |
|
| 73 |
+
| Detect risks | PromptGuard¹ · [PII](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-PII) · Safety¹ · Hazard¹ |
|
| 74 |
+
| Decide when to verify | [FactCheck](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-FactCheck) |
|
| 75 |
+
| Retrieve context | [Embedding](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-Embedding) · [Reranker](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M-Reranker) |
|
| 76 |
+
| Build new capabilities | [Encoder](https://huggingface.co/llm-semantic-router/Vela-1.0-Encoder-307M) |
|
| 77 |
+
|
| 78 |
+
¹ Coming soon. Explore available models in the [Vela collection](https://huggingface.co/collections/llm-semantic-router/vela-10-router-models-6aa555ba70cc6997d6d67798).
|
| 79 |
+
|
| 80 |
+
[Documentation and evaluation](TECHNICAL.md)
|
RELEASE_STATUS.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"status": "All frozen model-quality and engine conditions passed; ready for publication review; not yet published",
|
| 3 |
+
"publishable": true,
|
| 4 |
+
"model_id": "llm-semantic-router/Vela-1.0-Encoder-307M-Embedding",
|
| 5 |
+
"selected_weights_sha256": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 6 |
+
"selected_config_sha256": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 7 |
+
"selected_tokenizer_sha256": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c",
|
| 8 |
+
"selection_evidence": {
|
| 9 |
+
"development_report_sha256": "4b4f4f0ff8b4aeeff1f9a14889a249b84895ba8429dee13261fc9dd3cc27e816",
|
| 10 |
+
"selected_candidate": "clean-0.45",
|
| 11 |
+
"composition_addendum_sha256": "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da",
|
| 12 |
+
"artifact_manifest_sha256": "6661160e3b2fe54c638f4bd87a4a70622ceb3a9ff0ce2fb59ed2aa4548dbb534"
|
| 13 |
+
},
|
| 14 |
+
"independent_final_evidence": {
|
| 15 |
+
"summary_sha256": "276cfac78ac80767b8aafc2386d7d3f43e4f1f8a512ffcb8be45e8fec3c2fa01",
|
| 16 |
+
"all_four_passed": true,
|
| 17 |
+
"configuration": "22x768",
|
| 18 |
+
"precision": "native fp16"
|
| 19 |
+
},
|
| 20 |
+
"engine_qualification": {
|
| 21 |
+
"portable_export": {
|
| 22 |
+
"fp32_cases": 64,
|
| 23 |
+
"fp16_cases": 64,
|
| 24 |
+
"dimensions_per_case": 5,
|
| 25 |
+
"passed": true
|
| 26 |
+
},
|
| 27 |
+
"amd_ck": {
|
| 28 |
+
"configuration_checks": 740,
|
| 29 |
+
"passed": true,
|
| 30 |
+
"same_input_task_replay_all_four_passed": true
|
| 31 |
+
},
|
| 32 |
+
"rust_ort_ffi": {
|
| 33 |
+
"cpu_successful_calls": 53,
|
| 34 |
+
"rocm_successful_calls": 59,
|
| 35 |
+
"rejections_each": 4,
|
| 36 |
+
"passed": true
|
| 37 |
+
},
|
| 38 |
+
"standard_transformers_cpu": {
|
| 39 |
+
"cases": 6,
|
| 40 |
+
"hidden_and_vectors_byte_identical": true
|
| 41 |
+
},
|
| 42 |
+
"warm_benchmark": {
|
| 43 |
+
"cases": 40,
|
| 44 |
+
"warmup": 5,
|
| 45 |
+
"repeats": 30,
|
| 46 |
+
"completed": true
|
| 47 |
+
},
|
| 48 |
+
"candle_cpu": {
|
| 49 |
+
"passed": true,
|
| 50 |
+
"precision": "CPU-to-CPU FP32, no autocast",
|
| 51 |
+
"actual_numerical_calls": 60,
|
| 52 |
+
"functional_and_derived_checks": 26,
|
| 53 |
+
"additional_short_calls": 80,
|
| 54 |
+
"actual_32768_token_calls": 4,
|
| 55 |
+
"long_dimensions_actually_called": [
|
| 56 |
+
768
|
| 57 |
+
],
|
| 58 |
+
"smaller_long_dimensions_derived_checks": 16,
|
| 59 |
+
"b1_only": true,
|
| 60 |
+
"max_abs_error_actual_calls": 2.5391578674316406e-05,
|
| 61 |
+
"max_abs_error_derived_long_dimensions": 3.7863850593566895e-05,
|
| 62 |
+
"min_cosine_fp64": 0.9999999907799374,
|
| 63 |
+
"report_sha256": "d16edae02cb85ed93be89d562d797a5e5c9aeaaa61609b7ec65f6817f4473fc4",
|
| 64 |
+
"aggregate_sha256": "4a7812c783e77f3365e3c041ba14aebc5fe27b2f7154576a6da2401e12149383",
|
| 65 |
+
"full_32k_single_call_seconds": 1863.06,
|
| 66 |
+
"timing_scope": "Single functional qualification call, not a warm benchmark"
|
| 67 |
+
}
|
| 68 |
+
},
|
| 69 |
+
"notes": "Natural-paper and 32K-end native results are retention. CK tail is 1.0417 percentage points below native and within the frozen 5-point tolerance. No prior candidate engine result substitutes for these weights."
|
| 70 |
+
}
|
TECHNICAL.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Vela text embedding: technical evidence
|
| 2 |
+
|
| 3 |
+
This record binds the immutable weights that passed all four independently frozen final quality conditions. Fresh portable ONNX exports, AMD CK inference, actual Rust ONNX binding calls, and same-input deployment task replay use these weights. Candle CPU FFI also passed a separate CPU-to-CPU FP32 comparison through all four 32K depths. Historical quality or deployment results do not qualify later weights. See `RELEASE_STATUS.json` for current digests and status.
|
| 4 |
+
|
| 5 |
+
## Model and representation
|
| 6 |
+
|
| 7 |
+
The architecture has 306,939,648 encoder parameters, 22 layers, width 768, and a maximum sequence budget of 32,768 tokens including special tokens. The original task ancestry is `llm-semantic-router/mmbert-embed-32k-2d-matryoshka` at `c544097d7603b10c546560e8be5d7fe0965a7909`, whose weight SHA-256 is `173eb71beab911ddccf5c23d46129890894f1b741bedbf15e6d0f46084da3391`. This is not a continuation of the separately released Vela Base weights.
|
| 8 |
+
|
| 9 |
+
The explicit representation contract is raw intermediate hidden states, final normalization exactly once at the complete 22-layer output, attention-mask mean pooling accumulated in FP32, truncation of the pooled feature dimension, then FP32 L2 normalization. Native inference disables autocast and preserves the original FP32 rotary buffers while loading the requested parameter precision. Raw hidden-state ONNX outputs require the same pooling and normalization after the graph. The standard Transformers FP32 CPU example on the homepage was executed on six English/Chinese/Arabic/Japanese/Spanish inputs: hidden states and normalized vectors were byte-identical to the explicit full-layer reader. Early exits and lower-precision loading require the documented reader and precision helpers; the homepage example does not promise that arbitrary pooling or `.half()` conversions preserve this contract.
|
| 10 |
+
|
| 11 |
+
The default remains 22 layers and 768 dimensions. Lower exits and dimensions require separate measured results; interface availability does not establish lossless quality. A valid 32K input and finite logits establish execution, not long-document retrieval accuracy.
|
| 12 |
+
|
| 13 |
+
## Data and evaluation separation
|
| 14 |
+
|
| 15 |
+
The English repair starts again from the original task weights. It combines MIRACL training query/passage pairs, Natural Questions training-derived query/answer passages, SciFact official training claims and evidence abstracts, STS-B training pairs, and full QASPER training papers. Both SUPPORT and CONTRADICT SciFact evidence are relevant documents for retrieval. Mined and in-batch alternatives are unjudged, not human-verified irrelevant documents.
|
| 16 |
+
|
| 17 |
+
Natural Questions development uses reserved answer groups from its training-derived source, not the official NQ benchmark. Its 128-query/128-document pool is comparatively easy. SciFact development comprises 48 separately reserved training claims and the 5,183-document corpus; those claims and their positive articles are excluded from training. Keep these measurements separate from the historical 300-query BEIR SciFact result. Component-specific attribution is in `ENGLISH_RETRIEVAL_NOTICES.md`.
|
| 18 |
+
|
| 19 |
+
The original five development conditions remain fixed: short retrieval at least 0.7463755866448661; constructed long retrieval at least 0.5525; 32K tail at least 0.5333333333333333; STS Spearman at least 0.850266278642743; natural-paper retrieval at least 0.3324478867607128. New English development retention is original minus 0.005: NQ at least 0.9586264788148332 and SciFact at least 0.6428299811637794. Measurements use the fixed native FP16 reader. Candidates must satisfy all seven before the frozen final is evaluated.
|
| 20 |
+
|
| 21 |
+
The successor final reserves 64 QASPER validation papers and 48 MIRACL query/positive-article groups: 16 Arabic, 16 Spanish, 16 Japanese, and zero Chinese groups satisfying the recorded historical exposure exclusions. QASPER papers reach 21,816 tokens; this natural set is not a 32K natural-paper benchmark. Constructed retrieval covers 4K/8K/16K/32K, three target positions, and two backgrounds per query, totaling 1,152 scenarios. The shared background corpus has historical exposure; target-group exclusion does not make all background documents unseen. Upstream pretraining exposure is unknown.
|
| 22 |
+
|
| 23 |
+
Embedding's independently frozen final terms use the same native FP16 22×768 representation for both models. Short MIRACL nDCG must be strictly higher as a point estimate; natural QASPER nDCG must be at least original minus 0.005; constructed-long macro pair accuracy at least original minus 0.01; and the 32K-end slice at least original minus 0.05. All four must pass. Confidence intervals are reported, not used to select a checkpoint or claim significance in advance. Natural length reporting is derived from the frozen input records: there are zero exact-32K natural papers, whereas the constructed set has genuine 32K scenarios.
|
| 24 |
+
|
| 25 |
+
The previous interpolation candidate failed its separate 64-paper final: nDCG changed from 0.3471103064 to 0.3374762319, exceeding the fixed 0.005 regression budget. That candidate is not publishable. Its final is now an observed diagnostic and is excluded from subsequent training or selection.
|
| 26 |
+
|
| 27 |
+
## Training precision control
|
| 28 |
+
|
| 29 |
+
The bounded English experiment trains only eight linear matrices in the last two layers: 10,027,008 parameters. Earlier layers, normalization parameters, embeddings, and rotary buffers remain fixed. The 400-step schedule draws 100 NQ, 80 MIRACL, 80 natural-paper, 60 SciFact, 40 STS, and 40 constructed-long batches. Those 40 long batches do not cover the complete language/length/position grid: Chinese examples cover the four lengths only at the beginning position.
|
| 30 |
+
|
| 31 |
+
The initial arm used a BF16-autocast student with a native FP16 frozen teacher. A zero-update, same-weight probe found nonzero retention differences growing with natural-paper length. A matched BF16 student/teacher arm keeps data, seed, batching, optimizer, trainable tensors, schedule, and native FP16 development evaluation fixed. Its actual padded 32K backward preflight had finite loss and gradients and preserved all frozen parameters and buffers.
|
| 32 |
+
|
| 33 |
+
A separately retained native-FP16 training prototype had finite padded 32K forward output but nonfinite gradients in one local-attention projection on the tested Torch/ROCm stack. Running the same three examples individually removed that failure. This is a bounded training-backward observation, not an inference failure or an untested-platform claim. No weights from that probe were selected.
|
| 34 |
+
|
| 35 |
+
Both completed 400-step arms failed the fixed seven-condition development selection. A separately planned native-row repair starts again from the original checkpoint, trains the upper six layers' 24 linear matrices (30,081,024 parameters), and freezes lower layers, normalization, embeddings, and all original buffers. It runs 1,440 steps with native FP16 row-by-row forwards from FP32 master parameters, no padding or autocast during training, and the original native FP16 development evaluator at steps 480/960/1,440. Each checkpoint interval covers all four training languages, four long-context budgets, and three payload positions. Its actual train-only 32K preflight verified finite loss and all 24 gradients, with frozen parameters and buffers unchanged. This is a bounded repair phase, not a one-factor causal comparison or a qualified model result.
|
| 36 |
+
|
| 37 |
+
The complete native-row run did not satisfy all seven conditions. At step 1,440, short/long/STS were 0.7460378250/0.5486111111/0.8491038314, below their fixed minima; natural 0.3345058864, tail 0.5416666667, NQ 0.9695719034, and SciFact 0.6741878228 passed. The completion audit verifies all 1,440 finite optimizer steps, all three 48-cell long cycles, and 110 frozen parameter tensors unchanged in each saved checkpoint. No successor-final prediction was consumed.
|
| 38 |
+
|
| 39 |
+
A separate predeclared composition addendum binds exactly four DEV candidates: an equal native960/1440 parameter average and native1440/clean1 convex combinations with alpha 0.15/0.30/0.45. This tests a possible complement between natural/English retention in the new native-row checkpoint and short/long/STS improvements in clean1. Compatibility and actual parameter deltas are audited before scoring. All seven DEV gates, four independent final acceptance terms, final bytes, native FP16 precision and 22×768 default remain unchanged. Neither component's historical final result qualifies a combination, and there is no post-hoc alpha expansion in this experiment.
|
| 40 |
+
|
| 41 |
+
## Frozen development selection
|
| 42 |
+
|
| 43 |
+
All four predefined compositions completed the same seven-condition development evaluation. `clean-0.45` was the only admissible candidate: short MIRACL 0.7498023253, constructed long 0.5555555556, 32K end 0.5833333333, STS Spearman 0.8507032029, natural QASPER 0.3335742032, NQ 0.9638051808, and SciFact 0.6650686065. These are development measurements, not independent final results.
|
| 44 |
+
|
| 45 |
+
The selected parameters are computed in FP32 as `native1440 + 0.45 * (clean1 - native1440)`. Original non-parameter buffers and the common tokenizer/configuration contract are preserved. The frozen parameter-file SHA-256 is `e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab`. The same frozen weights completed evaluation against the original on the reserved final inputs; no final-driven alpha, dtype, depth or checkpoint choice is permitted. Exact native960/native1440/clean1 source checkpoints and their training provenance are provided as optional reproduction artifacts. An independent CPU execution of the published composition builder reconstructed all four predeclared parameter files byte-for-byte, including the selected file. Full training remains dependent on accelerator numerical behavior and is distinguished from this exact composition reproduction.
|
| 46 |
+
|
| 47 |
+
## Independent final quality
|
| 48 |
+
|
| 49 |
+
The complete paired final passed all four previously frozen conditions at native FP16,22×768. The plan SHA-256 is `37d06626c7896914cef6a7130692ab4cd02af69c81c6530841f23f152b672780`; the summary SHA-256 is `276cfac78ac80767b8aafc2386d7d3f43e4f1f8a512ffcb8be45e8fec3c2fa01`.
|
| 50 |
+
|
| 51 |
+
| Fixed metric | Original | Candidate | Paired group-bootstrap delta95%CI |
|
| 52 |
+
| --- | ---: | ---: | --- |
|
| 53 |
+
| MIRACL short nDCG@10,48query groups | 0.807275 | 0.813533 | [0.000379,0.014960] |
|
| 54 |
+
| Constructed-long macro pair accuracy,1152scenarios | 0.555556 | 0.574653 | [0.007813,0.031250] |
|
| 55 |
+
| 32K end pair accuracy,96scenarios | 0.572917 | 0.572917 | [-0.031250,0.031250] |
|
| 56 |
+
| Natural-paper nDCG@10,64QASPER papers | 0.398696 | 0.398969 | [-0.001575,0.001915] |
|
| 57 |
+
|
| 58 |
+
Natural-paper retrieval and the32K-end slice demonstrate retention; neither is presented as a significant improvement. Natural inputs contain1428–21816tokens and zero exact32768-token papers. The constructed set supplies the actual32K scenarios. All outputs were finite and all inputs untruncated. Language/length/position and recorded-exposure subsets accompany the full reports; no final score changed the weights, precision, default exit or acceptance criteria.
|
| 59 |
+
|
| 60 |
+
## CPU FP32 short-query characterization
|
| 61 |
+
|
| 62 |
+
The already frozen original/candidate weights were also evaluated in native FP32 on CPU using the same 48 reserved short-query identities. This supplementary mode does not replace or alter the native-FP16 final acceptance protocol and provides no CPU long-document quality result.
|
| 63 |
+
|
| 64 |
+
| Depth × dimension | Original | Candidate |
|
| 65 |
+
| --- | ---: | ---: |
|
| 66 |
+
| 22 × 768 | 0.807275 | 0.813533 |
|
| 67 |
+
| 22 × 256 | 0.791504 | 0.800873 |
|
| 68 |
+
| 11 × 768 | 0.722331 | 0.724179 |
|
| 69 |
+
| 6 × 768 | 0.663604 | 0.671777 |
|
| 70 |
+
|
| 71 |
+
Values are nDCG@10 on the supplied MIRACL judged pools, not a full-corpus leaderboard. The 22 × 768 paired-query-group bootstrap interval for the difference is [0.000379, 0.014960] over 48 Arabic/Spanish/Japanese groups. Detailed language tradeoffs remain in the report: the 11-layer Japanese score, for example, decreases slightly. Lower-depth absolute quality is materially below the complete model on this slice, so the default remains 22 × 768. This table does not establish unmeasured depth/dimension combinations.
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
## All supported exits: fixed development characterization
|
| 75 |
+
|
| 76 |
+
The following nDCG@10 measurements use the same320fixed development query groups (80each Arabic,Spanish,Japanese,Chinese), under the same raw-early/full-final-normalized contract for both checkpoints. This characterization made no new model or default choice; it is distinct from the independent final.
|
| 77 |
+
|
| 78 |
+
| Depth×dimension | Original | Candidate |
|
| 79 |
+
| --- | ---: | ---: |
|
| 80 |
+
| 3x768 | 0.612834 | 0.613090 |
|
| 81 |
+
| 3x512 | 0.617150 | 0.616785 |
|
| 82 |
+
| 3x256 | 0.623532 | 0.621973 |
|
| 83 |
+
| 3x128 | 0.621020 | 0.623245 |
|
| 84 |
+
| 3x64 | 0.613306 | 0.612281 |
|
| 85 |
+
| 6x768 | 0.614345 | 0.614736 |
|
| 86 |
+
| 6x512 | 0.616433 | 0.617741 |
|
| 87 |
+
| 6x256 | 0.619077 | 0.619174 |
|
| 88 |
+
| 6x128 | 0.613332 | 0.611403 |
|
| 89 |
+
| 6x64 | 0.607523 | 0.609524 |
|
| 90 |
+
| 11x768 | 0.594127 | 0.598119 |
|
| 91 |
+
| 11x512 | 0.609677 | 0.611739 |
|
| 92 |
+
| 11x256 | 0.602542 | 0.604180 |
|
| 93 |
+
| 11x128 | 0.607377 | 0.608819 |
|
| 94 |
+
| 11x64 | 0.609871 | 0.607288 |
|
| 95 |
+
| 22x768 | 0.746095 | 0.749802 |
|
| 96 |
+
| 22x512 | 0.741445 | 0.749594 |
|
| 97 |
+
| 22x256 | 0.737390 | 0.742011 |
|
| 98 |
+
| 22x128 | 0.724478 | 0.725485 |
|
| 99 |
+
| 22x64 | 0.715678 | 0.716905 |
|
| 100 |
+
|
| 101 |
+
Shallow exits have substantially lower absolute quality. Some small-width shallow configurations regress slightly; all per-language values and group intervals are retained. The default remains22×768. Interface availability is not a claim that every compression setting preserves quality.
|
| 102 |
+
|
| 103 |
+
## Engine evidence
|
| 104 |
+
|
| 105 |
+
The runtime layout contains four layer directories, each with portable FP32 `model.onnx` plus external data and AMD CK `model_fa_fp16.onnx`. Portable FP16 source graphs are optional reproduction artifacts. All graphs are freshly exported from the same selected parameters; none reuse a previous candidate's graph. Graph outputs are raw states shaped `[batch, sequence, 768]`, exposed as FP32 even when CK encoder mathematics use FP16. The five consumer dimensions are 64, 128, 256, 512, and 768. This is four graph exits and twenty consumer configurations, not twenty separately trained embedding heads.
|
| 106 |
+
|
| 107 |
+
### Portable export and AMD numerical checks
|
| 108 |
+
|
| 109 |
+
FP32 and FP16 portable exports each completed 64 CPU cases and 320 pooled dimension checks. FP32 maximum raw-state error was 0.00002861 and maximum vector error was 0.000001907. Portable FP16 versus its FP32 physical-prefix reference had maximum raw-state error 0.017767 and vector error 0.0006584; this is a cross-precision characterization, not the same-native-FP16 AMD comparison below. Prefix execution preserves raw early states and applies final normalization only at all 22 layers.
|
| 110 |
+
|
| 111 |
+
The AMD reference uses native FP16 parameters, original FP32 rotary buffers, no autocast, and the same pooling contract. Each CK exit completed 37 cases, with every vector dimension checked: 740 configuration checks passed the predeclared elementwise `atol=0.003, rtol=0.001` and cosine-at-least-0.9999 criteria. Coverage includes multilingual B2 inputs, B1/B2 lengths 2 through 32,768, 63/64/65 and 127/128/129 boundaries, 511/512/513, 1,025, 4K/8K/16K, right padding, and B2 left padding through 32K. Maximum vector absolute error was 0.0019889623, minimum cosine 0.99997926, and maximum allowed-error ratio 0.6352994. Outputs were finite. ORT profiling found no CPU fallback for heavy graph operations. CUDA hardware was not available for equivalent qualification; AMD results do not establish CUDA performance.
|
| 112 |
+
|
| 113 |
+
An initial qualification harness expected FP16 graph output despite the rewrite's intentional FP32 output cast and stopped before numerical checks. Its failed record and explicit correction are retained. The correction changed the harness output-dtype expectation, not model weights, graph bytes, precision or thresholds. A separate initial Rust-ABI layout setup incorrectly expected an external data file for an inline CK graph; its failed setup is also retained.
|
| 114 |
+
|
| 115 |
+
### Actual Rust ONNX binding calls
|
| 116 |
+
|
| 117 |
+
Both modes were tested through the compiled Rust C ABI, including real allocation and release, against Python ORT using the same graph. CPU completed 53 successful calls and four intended rejections; AMD completed 59 successful calls and four intended rejections. Both passed `atol=0.0002, rtol=0.0001` and cosine-at-least-0.99999. Maximum differences were respectively 0.0000003577 and 0.0000002981. Short tests cover all twenty configurations and actual batching. AMD additionally covers all four depths at 32K and a padded B2 pair of 32K/4K. CPU long numerical evidence is supplied by the separate Candle run, not inferred from CPU short calls.
|
| 118 |
+
|
| 119 |
+
Inputs over 32,768 tokens, layer 23, dimension 769, and invalid UTF-8 were rejected. This legacy ABI maps nonpositive layer/dimension arguments to defaults; callers requesting explicit settings should use positive values. Its `sequence_length` field reports whitespace segments, not tokenizer tokens; the qualification separately verifies exact encoded lengths including BOS/EOS. There is no claim of a model-singleton teardown API. Neutral repeated-text engineering fixtures test boundaries and numerical behavior, not retrieval quality.
|
| 120 |
+
|
| 121 |
+
### Actual Candle CPU binding calls
|
| 122 |
+
|
| 123 |
+
The same frozen weights passed the actual Candle C ABI against Transformers running on CPU in FP32, with original FP32 rotary buffers and no autocast. The primary run contains 60 numerical calls and 26 functional or derived checks, plus a separate 80-call short matrix. The fixed gate is `atol=0.0002, rtol=0.0001` and cosine-at-least-0.99999. Maximum absolute error over actual calls was 0.0000253916, and minimum cosine recomputed entirely in FP64 was 0.9999999908. The original report, saved vectors and independent FP64 summary remain available; FP32 norm rounding in the original cosine calculation is disclosed without changing any threshold or inference result.
|
| 124 |
+
|
| 125 |
+
All four depths made a real 32,768-token call at dimension 768. Sixteen smaller-dimension checks derive from those four returned vectors; they are not sixteen additional long FFI calls. The maximum error among these derived comparisons was 0.0000378639. This Candle entrypoint is B1 only, so no native Candle batched-padding qualification is claimed. Real token counts include BOS/EOS. Oversize input, invalid dimensions/layers and invalid UTF-8 were rejected, and each returned allocation was freed exactly once.
|
| 126 |
+
|
| 127 |
+
The full 22-layer Candle 32K call took 1,863.06 seconds (about 31 minutes); the corresponding single Transformers CPU reference forward took 91.92 seconds. These were engineering qualification timings, not a controlled warm comparison or a throughput benchmark. CPU 32K is functionally verified here but the tested Candle path has a substantial practical latency cost. The AMD timings below come from a separate controlled benchmark and should not be presented as a like-for-like speedup against this CPU call.
|
| 128 |
+
|
| 129 |
+
`reproduction/candle/` contains the original completed reports, neutral inputs, both vector archives and public qualification scripts. It includes source-to-publication digest mappings; only invocation paths, optional expected-library input and non-overwriting summary output were adapted. A rebuilt binary must be qualified independently and is not assumed to reproduce the original library SHA.
|
| 130 |
+
|
| 131 |
+
### Actual deployment task quality
|
| 132 |
+
|
| 133 |
+
The final CK full 22 × 768 graph replayed exactly the frozen 48 short groups, 1,152 constructed-long scenarios, and 64 natural papers. This occurred after selection and did not change the weights, precision, exit or gates. Every original four-condition acceptance test passed. Native and CK outcomes remain separate:
|
| 134 |
+
|
| 135 |
+
| Metric | Original native | Selected native | Selected AMD CK |
|
| 136 |
+
| --- | ---: | ---: | ---: |
|
| 137 |
+
| Short nDCG@10 | 0.807275 | 0.813533 | 0.813533 |
|
| 138 |
+
| Constructed-long pair accuracy | 0.555556 | 0.574653 | 0.572917 |
|
| 139 |
+
| 32K end pair accuracy | 0.572917 | 0.572917 | 0.562500 |
|
| 140 |
+
| Natural-paper nDCG@10 | 0.398696 | 0.398969 | 0.398969 |
|
| 141 |
+
|
| 142 |
+
The CK 32K-end result decreases by 1.0417 percentage points from both native rows; it is within the originally frozen 5-point retention tolerance and is not an improvement claim. Full grouped intervals and language/length/position breakdowns are retained. This task replay complements numerical tolerance tests and does not infer ranking preservation solely from close vectors.
|
| 143 |
+
|
| 144 |
+
### Measured AMD latency
|
| 145 |
+
|
| 146 |
+
The final four CK exits were benchmarked serially on one AMD MI300X, with five warmups and thirty timed repetitions for each of forty cases: four exits × five lengths × B1/B2. Profiling was disabled. B2 pads its second row to two-thirds of the first row's length. The synchronous graph measurement includes full FP32 hidden-state transfer to CPU; the consumer measurement also includes FP32 masked mean and 768-dimensional L2 normalization. Repeated outputs were identical.
|
| 147 |
+
|
| 148 |
+
| Full 22-layer input | Graph median (ms) | Graph + consumer median (ms) |
|
| 149 |
+
| --- | ---: | ---: |
|
| 150 |
+
| B1 × 128 | 3.881 | 4.136 |
|
| 151 |
+
| B1 × 512 | 4.399 | 4.925 |
|
| 152 |
+
| B1 × 2,048 | 7.646 | 9.265 |
|
| 153 |
+
| B1 × 8,192 | 24.852 | 31.484 |
|
| 154 |
+
| B1 × 32,768 | 171.000 | 208.989 |
|
| 155 |
+
| B2 × 32,768 | 323.809 | 412.070 |
|
| 156 |
+
|
| 157 |
+
All samples, p95 values, other exits and plans are in the warm-benchmark report. These are measured latencies for this stack and workload, not a speedup versus an unmeasured baseline or a production throughput guarantee.
|
| 158 |
+
|
| 159 |
+
### Evidence locations
|
| 160 |
+
|
| 161 |
+
`reproduction/evidence/engine/` contains numerical, ABI, task-replay and benchmark reports, native reference fixtures, and source bindings. `reproduction/evidence/` also retains the complete DEV selector, paired quality final, supplementary FP32 results, twenty-configuration DEV matrix, failed histories and precision diagnostics. `reproduction/evidence-publication-map.json` maps original report digests to sanitized publication copies; only experiment-local paths and actual device identifiers are removed. `reproduction/README.md` explains executable training, composition, evaluation and export paths. BF16 historical diagnostics do not qualify a BF16 deployment variant.
|
THIRD_PARTY_NOTICES.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Source and license notices
|
| 2 |
+
|
| 3 |
+
The model's inherited weight license and accompanying Semantic Router software license are Apache-2.0; see `LICENSE`. Source data retain their own attribution and reuse terms. Optional reproduction artifacts include fixed derived evaluation inputs, token sequences, limited query/passage text, source identifiers, scripts, and metadata; they do not contain the complete source corpora. These derived inputs retain their source attribution and applicable reuse terms. Frozen download manifests and source notices accompany the numerical results.
|
| 4 |
+
|
| 5 |
+
| Source | Fixed input and use | Attribution and scope |
|
| 6 |
+
|---|---|---|
|
| 7 |
+
| Original text embedding | `llm-semantic-router/mmbert-embed-32k-2d-matryoshka@c544097d7603b10c546560e8be5d7fe0965a7909` | [Original model](https://huggingface.co/llm-semantic-router/mmbert-embed-32k-2d-matryoshka), Apache-2.0. Inherited pretraining exposures are not fully known. |
|
| 8 |
+
| MIRACL | `miracl/miracl@ad2acf33f265b8fba92e5096c9d2cf569a82b067`; AR/ES/JA/ZH training and reserved official-dev groups | [MIRACL](https://github.com/project-miracl/miracl). Preserve annotation notices and Wikipedia article attribution; annotation/code terms do not replace the text's applicable reuse terms. |
|
| 9 |
+
| QASPER | `allenai/qasper@06806e4608976fc2fac0a090ac425d5b2b29caf4`; official train for natural-paper supervision, reserved validation papers for development/final | [QASPER](https://github.com/allenai/qasper), CC-BY-4.0. Retain paper/source attribution. Other candidate papers are unjudged for this retrieval adaptation. |
|
| 10 |
+
| Natural Questions | `sentence-transformers/natural-questions@f9e894e1081e206e577b4eaa9ee6de2b06ae6f17`; source-training query/answer pairs | [Official source](https://github.com/google-research-datasets/natural-questions). Data are CC-BY-SA-3.0, distinct from the source repository's software license. See the detailed English-data notice. |
|
| 11 |
+
| SciFact | Official archive SHA-256 `11c621288d41ac144d29b13b0f8503b3820b7d6e8b1f6ff24dff335c196d76be`; official train claims/evidence for supervision and reserved development | [Official component license](https://github.com/allenai/scifact/blob/68b98a56d93e0f9da0d2aab4e6c3294699a0f72e/LICENSE.md): claims/evidence CC-BY-4.0; S2ORC abstracts ODC-By-1.0; code Apache-2.0. Historical BEIR evaluation uses `BeIR/scifact@cf10ab6856b15b0e670ef8ae5dae4e266c12d035`, a separate 300-query test split. |
|
| 12 |
+
| STS-B | `sentence-transformers/stsb@ab7a5ac0e35aa22088bdcf23e7fd99b220e53308`; training pairs and fixed retention development | [STS benchmark](https://ixa2.si.ehu.eus/stswiki/index.php/STSbenchmark). Preserve annotation and underlying text-source terms; the full corpus is not relabeled Apache-2.0. |
|
| 13 |
+
| PAWS-X | `google-research-datasets/paws-x@4cd8187c404bda33cb1f62b49b001115862acf37`; the selected clean1 component's training ancestry and multilingual diagnostics | [PAWS-X](https://github.com/google-research-datasets/paws/tree/master/pawsx). Preserve PAWS-Wiki-derived data notices. The original-start English/native-row arm does not train on PAWS-X, but the selected parameter composition also includes clean1, which does. Its reusable loader removes empty/untranslated NS placeholders with case-insensitive matching by default; archived pre-cleaning results remain identified. |
|
| 14 |
+
|
| 15 |
+
`ENGLISH_RETRIEVAL_NOTICES.md` gives the SciFact/NQ author attributions, source revisions, preprocessing, and split boundaries. The downloaders preserve upstream README/license files and record requested revision plus content digests. Do not infer an article-unseen benchmark merely because query groups are held out, or infer ownership of source text from a derived numerical score.
|
artifact_sha256.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"1_Pooling/config.json": "35bbd47d7fdf1e378db6130bcc668b09d1aa67a7bbf7c8f89a9c71f4cc8ebcc6",
|
| 3 |
+
"composition-plan.json": "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da",
|
| 4 |
+
"config.json": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 5 |
+
"config_sentence_transformers.json": "ccf45df8438a7510d071f4cf0495a0925a3f045027d8c05b857079024984e277",
|
| 6 |
+
"model.safetensors": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 7 |
+
"modules.json": "8f4b264b80206c830bebbdcae377e137925650a433b689343a63bdc9b3145460",
|
| 8 |
+
"sentence_bert_config.json": "0b1d25d4d13c72c255a7eaaf8921ca481c4cd61ad894e7209c52dc5e1ac3f3bd",
|
| 9 |
+
"special_tokens_map.json": "6e3204c5a4004719c185007a745d1940471a6fb02521cfa0a00306dbb6bc5903",
|
| 10 |
+
"tokenizer.json": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c",
|
| 11 |
+
"tokenizer_config.json": "4048e30832fdfe352ff622328d23590b2f2d9a7661ebb48cabe4ec11427697f0",
|
| 12 |
+
"training_provenance.json": "a4f35f0898a37fbaad1a2ff6a4c04a5aa8af0bffec07e09f0cf4b6aaccef7f5c"
|
| 13 |
+
}
|
composition-plan.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"version": 1,
|
| 3 |
+
"experiment": "vela-embedding-native-composition-v1",
|
| 4 |
+
"development_only": true,
|
| 5 |
+
"rationale": "Native1440 preserves English and natural development but misses short/long/STS; clean1 has complementary same-contract short/long/STS improvements but fails natural. Test one endpoint average and three fixed convex combinations; no new optimization or heldout scoring.",
|
| 6 |
+
"parent_training_completion_sha256": "cdf8dbdba3484b14efb9bd22544b8e27e0c0af22ca70b87e54c2a67cf2aeacab",
|
| 7 |
+
"source_weights_sha256": {
|
| 8 |
+
"original": "173eb71beab911ddccf5c23d46129890894f1b741bedbf15e6d0f46084da3391",
|
| 9 |
+
"native960": "2b1871b4823af473256a564877b7b2b15742c1152478da60bd80c57ebc5de5b3",
|
| 10 |
+
"native1440": "af88753104a2b21462e7be8c1762b603b4b2f651ad46893a48deedef5ebe5761",
|
| 11 |
+
"clean1": "f2d9b7b559e6897e5ffe37eb892d366b9478945634579b04bea09071abdcb064"
|
| 12 |
+
},
|
| 13 |
+
"candidates": [
|
| 14 |
+
{
|
| 15 |
+
"name": "native-mean",
|
| 16 |
+
"base": "native1440",
|
| 17 |
+
"other": "native960",
|
| 18 |
+
"alpha": 0.5
|
| 19 |
+
},
|
| 20 |
+
{
|
| 21 |
+
"name": "clean-0.15",
|
| 22 |
+
"base": "native1440",
|
| 23 |
+
"other": "clean1",
|
| 24 |
+
"alpha": 0.15
|
| 25 |
+
},
|
| 26 |
+
{
|
| 27 |
+
"name": "clean-0.30",
|
| 28 |
+
"base": "native1440",
|
| 29 |
+
"other": "clean1",
|
| 30 |
+
"alpha": 0.3
|
| 31 |
+
},
|
| 32 |
+
{
|
| 33 |
+
"name": "clean-0.45",
|
| 34 |
+
"base": "native1440",
|
| 35 |
+
"other": "clean1",
|
| 36 |
+
"alpha": 0.45
|
| 37 |
+
}
|
| 38 |
+
],
|
| 39 |
+
"composition": "FP32 parameter-only base + alpha*(other-base); buffers, tokenizer, architecture and Vela representation contract remain common. Verify all source key/shape/dtype/buffer/config/tokenizer identities before any combination; differing buffers refuse experiment.",
|
| 40 |
+
"control": "The fixed original and all three failed native checkpoints remain recorded controls; alpha=0 is not a new trained candidate and cannot be promoted. Prior clean1 and prior interpolation finals are observed history, excluded from all training/selection; no final result used to choose this grid.",
|
| 41 |
+
"precision": {
|
| 42 |
+
"layers": 22,
|
| 43 |
+
"dimensions": 768,
|
| 44 |
+
"precision": "fp16",
|
| 45 |
+
"inference_autocast": false,
|
| 46 |
+
"parameters": "native FP16 with original FP32 non-parameter RoPE buffers",
|
| 47 |
+
"pooling": "attention-mask mean accumulated in FP32; truncate before FP32 L2",
|
| 48 |
+
"normalization": "early raw; full depth final_norm exactly once"
|
| 49 |
+
},
|
| 50 |
+
"development_thresholds": {
|
| 51 |
+
"short": 0.7463755866448661,
|
| 52 |
+
"long": 0.5525,
|
| 53 |
+
"tail": 0.5333333333333333,
|
| 54 |
+
"sts": 0.850266278642743,
|
| 55 |
+
"natural": 0.3324478867607128,
|
| 56 |
+
"nq": 0.9586264788148332,
|
| 57 |
+
"scifact": 0.6428299811637794
|
| 58 |
+
},
|
| 59 |
+
"selector": "After all four complete: all seven original gates must pass; maximize long+.25short; ties choose earlier candidate in the frozen list. No grid expansion in this experiment.",
|
| 60 |
+
"final_protocol_addendum": {
|
| 61 |
+
"acceptance_protocol_sha256": "37d06626c7896914cef6a7130692ab4cd02af69c81c6530841f23f152b672780",
|
| 62 |
+
"change": "Candidate generation extends from the failed complete native1440 training to only this frozen composition grid. This addendum does not replace or rewrite the original protocol.",
|
| 63 |
+
"unchanged": "All four final criteria, seven development gates, final identities/bytes, precision, 22x768 default and group bootstrap; new final remains unscored before complete DEV-only selection."
|
| 64 |
+
},
|
| 65 |
+
"data_contract": "Same frozen 320 short /144 constructed long /64 natural development plus128 NQ and48 SciFact grouped development; complete data/manifest equality before scoring; all four candidates see the same bytes.",
|
| 66 |
+
"allocation": "One GPU1 process; four serial fixed candidates; no new training, no new data download, no final predictions."
|
| 67 |
+
}
|
config.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"ModernBertModel"
|
| 4 |
+
],
|
| 5 |
+
"attention_bias": false,
|
| 6 |
+
"attention_dropout": 0.0,
|
| 7 |
+
"bos_token_id": 2,
|
| 8 |
+
"classifier_activation": "gelu",
|
| 9 |
+
"classifier_bias": false,
|
| 10 |
+
"classifier_dropout": 0.0,
|
| 11 |
+
"classifier_pooling": "mean",
|
| 12 |
+
"cls_token_id": 1,
|
| 13 |
+
"decoder_bias": true,
|
| 14 |
+
"deterministic_flash_attn": false,
|
| 15 |
+
"dtype": "float32",
|
| 16 |
+
"embedding_dropout": 0.0,
|
| 17 |
+
"eos_token_id": 1,
|
| 18 |
+
"global_attn_every_n_layers": 3,
|
| 19 |
+
"global_rope_theta": 160000,
|
| 20 |
+
"gradient_checkpointing": false,
|
| 21 |
+
"hidden_activation": "gelu",
|
| 22 |
+
"hidden_size": 768,
|
| 23 |
+
"initializer_cutoff_factor": 2.0,
|
| 24 |
+
"initializer_range": 0.02,
|
| 25 |
+
"intermediate_size": 1152,
|
| 26 |
+
"layer_norm_eps": 1e-05,
|
| 27 |
+
"local_attention": 128,
|
| 28 |
+
"local_rope_theta": 160000,
|
| 29 |
+
"mask_token_id": 4,
|
| 30 |
+
"max_position_embeddings": 32768,
|
| 31 |
+
"mlp_bias": false,
|
| 32 |
+
"mlp_dropout": 0.0,
|
| 33 |
+
"model_type": "modernbert",
|
| 34 |
+
"norm_bias": false,
|
| 35 |
+
"norm_eps": 1e-05,
|
| 36 |
+
"num_attention_heads": 12,
|
| 37 |
+
"num_hidden_layers": 22,
|
| 38 |
+
"pad_token_id": 0,
|
| 39 |
+
"position_embedding_type": "sans_pos",
|
| 40 |
+
"repad_logits_with_grad": false,
|
| 41 |
+
"representation_contract": {
|
| 42 |
+
"final_normalization": "final_norm",
|
| 43 |
+
"intermediate_normalization": "none",
|
| 44 |
+
"pooling": "attention_mask_mean",
|
| 45 |
+
"pooling_accumulation_dtype": "float32",
|
| 46 |
+
"truncate_before_l2_normalize": true,
|
| 47 |
+
"version": 1
|
| 48 |
+
},
|
| 49 |
+
"sep_token_id": 1,
|
| 50 |
+
"sparse_pred_ignore_index": -100,
|
| 51 |
+
"sparse_prediction": false,
|
| 52 |
+
"transformers_version": "4.57.6",
|
| 53 |
+
"vocab_size": 256000
|
| 54 |
+
}
|
config_sentence_transformers.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_type": "SentenceTransformer",
|
| 3 |
+
"__version__": {
|
| 4 |
+
"sentence_transformers": "5.3.0.dev0",
|
| 5 |
+
"transformers": "4.57.6",
|
| 6 |
+
"pytorch": "2.9.1+git8907517"
|
| 7 |
+
},
|
| 8 |
+
"prompts": {
|
| 9 |
+
"query": "",
|
| 10 |
+
"document": ""
|
| 11 |
+
},
|
| 12 |
+
"default_prompt_name": null,
|
| 13 |
+
"similarity_fn_name": "cosine"
|
| 14 |
+
}
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab
|
| 3 |
+
size 1227771776
|
modules.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
[
|
| 2 |
+
{
|
| 3 |
+
"idx": 0,
|
| 4 |
+
"name": "0",
|
| 5 |
+
"path": "",
|
| 6 |
+
"type": "sentence_transformers.models.Transformer"
|
| 7 |
+
},
|
| 8 |
+
{
|
| 9 |
+
"idx": 1,
|
| 10 |
+
"name": "1",
|
| 11 |
+
"path": "1_Pooling",
|
| 12 |
+
"type": "sentence_transformers.models.Pooling"
|
| 13 |
+
}
|
| 14 |
+
]
|
onnx/layer-11/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:025b35c9b7245f1057d0108e31df1b8c72de3f11b514978db47920efd7195216
|
| 3 |
+
size 82662
|
onnx/layer-11/model.onnx.data
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4b6e2e6cf3d4ad6fe71a24d7a03722c54edd39631955f4e8b34e5aa3af0cd7f1
|
| 3 |
+
size 1007157248
|
onnx/layer-11/model_fa_fp16.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6b40cc6df12bad5d99e8b4635e53fbffc3072a6b33c910ff1ca32f345734ec17
|
| 3 |
+
size 503617018
|
onnx/layer-22/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b88757358e272ded08eb3e19f620d85b9634d3d0ce690385099fa9b372d76ee9
|
| 3 |
+
size 162486
|
onnx/layer-22/model.onnx.data
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:926a1ab0bf7e7b45c6cad4865a81fcc880dfb0244f82d92ac2eba17f2fe4e7be
|
| 3 |
+
size 1227816960
|
onnx/layer-22/model_fa_fp16.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1d214776171b8711a53044e84d92feb4eea2b6794b98d28940a3f0cb5d476dc5
|
| 3 |
+
size 614015934
|
onnx/layer-3/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:257835ac57b148b88910fcfc490fe2e75b0c3c4590f2917d4e06fe7470eadff5
|
| 3 |
+
size 25723
|
onnx/layer-3/model.onnx.data
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c75e5dfefa11bd2238211219662cc155f340c1c4e1663f4f7cc5c6aa7d1b9362
|
| 3 |
+
size 846659584
|
onnx/layer-3/model_fa_fp16.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b06ee533865382b941d72077307829b197c5c45ee57db49847a2c91bbbec135b
|
| 3 |
+
size 423328828
|
onnx/layer-6/model.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:91de3bbfb45ac40f375a5d023f80b16063f1c6283c641abe5377884fda8f1e6f
|
| 3 |
+
size 46870
|
onnx/layer-6/model.onnx.data
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d3ba575381c22f7b78e5b677c0d16cc4a47cadba0c6397c9079cd0c69cdbc98b
|
| 3 |
+
size 906821632
|
onnx/layer-6/model_fa_fp16.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6ecbe612478e8d13749d90b7f6c719f16afb6aa4c2d26214eb35f16049bed9cc
|
| 3 |
+
size 453436745
|
onnx/model_config.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"available_layers": [
|
| 3 |
+
3,
|
| 4 |
+
6,
|
| 5 |
+
11,
|
| 6 |
+
22
|
| 7 |
+
],
|
| 8 |
+
"dimensions": [
|
| 9 |
+
768,
|
| 10 |
+
512,
|
| 11 |
+
256,
|
| 12 |
+
128,
|
| 13 |
+
64
|
| 14 |
+
],
|
| 15 |
+
"total_layers": 22,
|
| 16 |
+
"hidden_size": 768,
|
| 17 |
+
"task": "embedding",
|
| 18 |
+
"representation_contract": {
|
| 19 |
+
"final_normalization": "final_norm",
|
| 20 |
+
"intermediate_normalization": "none",
|
| 21 |
+
"pooling": "attention_mask_mean",
|
| 22 |
+
"pooling_accumulation_dtype": "float32",
|
| 23 |
+
"truncate_before_l2_normalize": true,
|
| 24 |
+
"version": 1
|
| 25 |
+
}
|
| 26 |
+
}
|
reproduction/README.md
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Reproducing the text-embedding experiment
|
| 2 |
+
|
| 3 |
+
The homepage shows ordinary inference. This optional package reproduces the training components, fixed four-candidate composition, development selection, paired final, and newly exported engines. Scripts preserve the experiment's mathematical implementation while replacing workspace paths with `VELA_REPRODUCTION_ROOT` and bundling the public model reader. `publication-adaptations.json` records original and portable-copy source digests. Exact frozen inputs, selected run evidence, and the three source intermediates are included. Published final scores are now observed evidence, not a fresh holdout for choosing another model.
|
| 4 |
+
|
| 5 |
+
Commands below run from the downloaded `reproduction/` directory. Download this optional directory, including intermediate weights, only when reproducing the experiment; ordinary inference does not need it. Start from a new empty experiment directory. Exact composition from preserved checkpoints and full optimizer retraining are separate procedures: the former was reproduced byte-for-byte on CPU, while the latter can depend on numerical behavior of the accelerator and library versions.
|
| 6 |
+
|
| 7 |
+
Use Python 3.12.3 and the pinned dependencies in `requirements.txt`, with PyTorch 2.10 installed for the selected accelerator. The actual training evidence uses AMD MI300X, ROCm 7, and Transformers 4.57.6. CPU reader support and any CUDA code path must be distinguished from accelerator training that was actually run. No repository credentials or host configuration are required by the published scripts.
|
| 8 |
+
|
| 9 |
+
Set a new empty experiment directory. Download upstream model and dataset snapshots with `download_inputs.py`, then the additional official English retrieval inputs with `download_english_retrieval_inputs.py`. The initial downloader includes historical text-model inputs needed by archived evaluation scripts; it does not download multimodal models. Dataset attribution and redistribution terms remain with the upstream sources. Fixed derived evaluation inputs, token sequences and limited query/passage text are included; complete source corpora are not bundled.
|
| 10 |
+
|
| 11 |
+
```bash
|
| 12 |
+
export VELA_REPRODUCTION_ROOT="$PWD/experiment"
|
| 13 |
+
python download_inputs.py --root "$VELA_REPRODUCTION_ROOT"
|
| 14 |
+
python download_english_retrieval_inputs.py --root "$VELA_REPRODUCTION_ROOT"
|
| 15 |
+
python install_frozen_inputs.py \
|
| 16 |
+
--experiment "$VELA_REPRODUCTION_ROOT" --include-intermediates
|
| 17 |
+
```
|
| 18 |
+
|
| 19 |
+
The installer copies exact development prerequisites, reference-run manifests, successor-final identities and materialized final inputs to the script-relative locations, verifies copied digests and refuses to overwrite different files. `--include-intermediates` additionally installs native960/native1440/clean1 at their expected paths; omit it in a separate empty experiment when retraining those components. The hash-bound recipe rejects changed original weights, English groups, or development constraints. Do not regenerate a new holdout to reproduce a published result. Exact materialized long backgrounds retain pinned corpus membership, original target identity and exposed-background disclosures.
|
| 20 |
+
|
| 21 |
+
The two historical controlled training commands below use fresh output directories. They are retained failed experiments, not prerequisites for exact composition from the supplied intermediates:
|
| 22 |
+
|
| 23 |
+
```bash
|
| 24 |
+
python train_embedding_english_repair.py \
|
| 25 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 26 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-english-repair-v1" \
|
| 27 |
+
--steps 400 --eval-every 100 --lr 0.000002
|
| 28 |
+
python train_embedding_english_repair_matched.py \
|
| 29 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 30 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-english-repair-matched-v1" \
|
| 31 |
+
--steps 400 --eval-every 100 --lr 0.000002
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
Both start from the pinned original task checkpoint. Neither completed arm produced a checkpoint satisfying all seven development conditions; their evidence is retained and they never reached successor-final evaluation. The paired selector maximizes long retrieval plus 0.25 times short retrieval among admissible checkpoints, then prefers the earlier checkpoint and the matched-teacher arm for an exact cross-arm tie.
|
| 35 |
+
|
| 36 |
+
The subsequent native-row repair uses the original checkpoint again, with a separately frozen 1,440-step budget. It trains only the linear matrices in the upper six layers, retaining FP32 master parameters and original FP32 rotary buffers. Each input row receives a differentiable native-FP16 parameter forward without padding or autocast; contrastive losses still share the logical batch. This avoids the diagnosed padded-FP16 backward failure without changing the fixed native-FP16 development reader.
|
| 37 |
+
|
| 38 |
+
```bash
|
| 39 |
+
python train_embedding_native_rows_repair.py \
|
| 40 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 41 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-native-rows-repair-v1" \
|
| 42 |
+
--steps 1440 --eval-every 480 --lr 0.00001
|
| 43 |
+
```
|
| 44 |
+
|
| 45 |
+
`protocols/native-rows-repair-plan.json` binds the mixture, seed, trainable tensors, and seven unchanged development gates. Every 480 steps contains all 48 constructed-long language/length/position cells. The selector requires the completed three-checkpoint schedule and cannot freeze a checkpoint from an incomplete or failed run:
|
| 46 |
+
|
| 47 |
+
```bash
|
| 48 |
+
python freeze_embedding_native_rows_repair.py \
|
| 49 |
+
--run "$VELA_REPRODUCTION_ROOT/vela/embedding-native-rows-repair-v1" \
|
| 50 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/frozen-native-rows-embedding" \
|
| 51 |
+
--final-protocol protocols/embedding-independent-final-v1.json
|
| 52 |
+
```
|
| 53 |
+
|
| 54 |
+
The complete native-row run also failed the seven-gate selector. Its 480/960/1440 checkpoints remain preserved, and the freeze command above correctly refuses them. A separate fixed DEV-only composition addendum tests the native960/1440 equal average and three convex combinations of native1440 with clean1-last (alpha 0.15/0.30/0.45). It does not overwrite either training protocol or any source checkpoint. Full FP32 parameter keys/shapes and native buffers, architecture and tokenizer semantics must match before constructing candidates; the original and all failed candidates remain controls.
|
| 55 |
+
|
| 56 |
+
```bash
|
| 57 |
+
python build_embedding_native_composition.py \
|
| 58 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 59 |
+
--plan protocols/native-composition-plan-v1.json \
|
| 60 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-native-composition-v1"
|
| 61 |
+
python evaluate_embedding_native_composition.py \
|
| 62 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 63 |
+
--bundle "$VELA_REPRODUCTION_ROOT/vela/embedding-native-composition-v1" \
|
| 64 |
+
--reference-run "$VELA_REPRODUCTION_ROOT/vela/embedding-natural-repair2" \
|
| 65 |
+
--output "$VELA_REPRODUCTION_ROOT/evidence/vela-embedding-native-composition-v1-dev"
|
| 66 |
+
```
|
| 67 |
+
|
| 68 |
+
Only the complete four-candidate report may select an admissible combination using the unchanged seven development gates and fixed score/order. `freeze_embedding_native_composition.py` verifies source/file identities and copies the chosen weights without modifying them; `evaluate_embedding_composition_final.py` validates this explicitly typed selection and its addendum instead of pretending a parameter combination was a training step. The original failed native freeze/scorer remain separately reproducible. Exact source intermediates are provided in `intermediates/`: native960 (`2b1871b4823af473256a564877b7b2b15742c1152478da60bd80c57ebc5de5b3`), native1440 (`af88753104a2b21462e7be8c1762b603b4b2f651ad46893a48deedef5ebe5761`) and clean1-last (`f2d9b7b559e6897e5ffe37eb892d366b9478945634579b04bea09071abdcb064`). Their original tokenizer bytes are preserved; the compatibility check verifies equivalent tokenization semantics rather than rewriting them.
|
| 69 |
+
|
| 70 |
+
Only `clean-0.45` passed the complete fixed DEV selector. A separate actual CPU execution of the published builder reconstructed all four original parameter files byte-for-byte, including the selected SHA `e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab`; see `evidence/engine/public-composition-reproduction.json`.
|
| 71 |
+
|
| 72 |
+
```bash
|
| 73 |
+
python freeze_embedding_native_composition.py \
|
| 74 |
+
--bundle "$VELA_REPRODUCTION_ROOT/vela/embedding-native-composition-v1" \
|
| 75 |
+
--development "$VELA_REPRODUCTION_ROOT/evidence/vela-embedding-native-composition-v1-dev/metrics.json" \
|
| 76 |
+
--final-protocol protocols/embedding-independent-final-v1.json \
|
| 77 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/selected-embedding"
|
| 78 |
+
```
|
| 79 |
+
|
| 80 |
+
`protocols/embedding-independent-final-v1.json` independently fixes the Embedding final: 22 layers, 768 dimensions, native FP16; short retrieval must improve strictly, natural-paper nDCG may fall by at most 0.005, constructed-long macro pair accuracy by at most 0.01, and 32K-end accuracy by at most 0.05. The paired final scorer and summarizer both require the exact protocol SHA-256. They report all language/length/position slices and group bootstrap intervals. A failed final remains an observed result and cannot choose another checkpoint, dtype, exit, or background.
|
| 81 |
+
|
| 82 |
+
The homepage standard Transformers FP32 CPU example was actually compared with the explicit full-layer reader on six multilingual inputs; hidden states and vectors matched byte-for-byte. For explicit early exits or precision, the optional native reader accepts local files, applies no silent truncation, and rejects input exceeding 32,768 tokens including special tokens:
|
| 83 |
+
|
| 84 |
+
```bash
|
| 85 |
+
python inference.py --model model-snapshot --task embedding \
|
| 86 |
+
--layer 22 --dimension 768 --device cpu --precision fp32 \
|
| 87 |
+
--text "Route a customer-support request" "Find scientific evidence"
|
| 88 |
+
```
|
| 89 |
+
|
| 90 |
+
The output vectors use the explicit representation contract. `export_2d_matryoshka.py`, `model_precision.py`, and `onnx_artifacts.py` are bundled together; export fresh graphs from the selected snapshot. ONNX graph outputs are raw hidden states, so a consuming application must apply the same mask-aware FP32 pooling, dimension truncation, and L2 normalization. Storage packing may share byte-identical initializer data, but never qualifies a different checkpoint's quality.
|
| 91 |
+
|
| 92 |
+
## Retraining clean1's lineage
|
| 93 |
+
|
| 94 |
+
Use a separate empty experiment root without installing intermediate weights. Install the exact frozen input prerequisites and download the same public sources. The native-row branch above starts from the original task model; clean1 follows the separate continued-task lineage below. Initial best step 1,250, archived long-repair best step 200, and clean1 `last/` are historical identities, not claims that these intermediate models independently passed the eventual release protocol.
|
| 95 |
+
|
| 96 |
+
```bash
|
| 97 |
+
python train_vela_text.py --kind embedding --run trial3 \
|
| 98 |
+
--steps 1500 --eval-every 250 --lr 0.000001 --batch-size 12 \
|
| 99 |
+
--embedding-mixture v2 --long-lengths 4096,8192,16384,32768 \
|
| 100 |
+
--retention-weight 20 --sts-margin 0.002
|
| 101 |
+
python freeze_vela_text.py --kind embedding
|
| 102 |
+
python train_vela_long_repair.py --kind embedding \
|
| 103 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 104 |
+
--source "$VELA_REPRODUCTION_ROOT/vela/frozen/Vela-1.0-Encoder-307M-Embedding-step1250" \
|
| 105 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-long-repair1" \
|
| 106 |
+
--steps 400 --eval-every 100 --lr 0.000001
|
| 107 |
+
python freeze_vela_text_repair.py --kind embedding \
|
| 108 |
+
--run "$VELA_REPRODUCTION_ROOT/vela/embedding-long-repair1" \
|
| 109 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/frozen/Vela-1.0-Encoder-307M-Embedding-long-repair1-step200" \
|
| 110 |
+
--legacy-training-selection
|
| 111 |
+
python train_vela_long_repair_clean.py --kind embedding \
|
| 112 |
+
--root "$VELA_REPRODUCTION_ROOT" \
|
| 113 |
+
--source "$VELA_REPRODUCTION_ROOT/vela/frozen/Vela-1.0-Encoder-307M-Embedding-long-repair1-step200" \
|
| 114 |
+
--output "$VELA_REPRODUCTION_ROOT/vela/embedding-long-clean1" \
|
| 115 |
+
--steps 100 --eval-every 50 --lr 0.0000005
|
| 116 |
+
```
|
| 117 |
+
|
| 118 |
+
`--legacy-training-selection` reproduces an archived training choice, not a new deployment qualification. Clean1 uses the corrected PAWS-X loader, with case-insensitive empty/untranslated NS filtering enabled by default. Its PAWS-X ancestry remains part of the selected composition's data attribution. Initial training length reports retain their actual measured coverage rather than treating every requested budget as an exact 32K example. Full run results and failed predecessors remain in `evidence/history/`.
|
| 119 |
+
|
| 120 |
+
## Replaying the final and engines
|
| 121 |
+
|
| 122 |
+
The final scorer requires both the original checkpoint and the development-selected candidate, validates their identities, and refuses changed frozen input bytes. Execute the two commands with the same native FP16 reader and fixed final protocol:
|
| 123 |
+
|
| 124 |
+
```bash
|
| 125 |
+
python evaluate_embedding_composition_final.py \
|
| 126 |
+
--model "$VELA_REPRODUCTION_ROOT/models/mmbert-embed-32k-2d-matryoshka" \
|
| 127 |
+
--candidate "$VELA_REPRODUCTION_ROOT/vela/selected-embedding" --label original \
|
| 128 |
+
--fixtures "$VELA_REPRODUCTION_ROOT/evidence/vela-embedding-english-repair-v1-final-fixtures" \
|
| 129 |
+
--output "$VELA_REPRODUCTION_ROOT/evidence/replayed-final-original" \
|
| 130 |
+
--precision fp16 --final-protocol protocols/embedding-independent-final-v1.json
|
| 131 |
+
python evaluate_embedding_composition_final.py \
|
| 132 |
+
--model "$VELA_REPRODUCTION_ROOT/vela/selected-embedding" \
|
| 133 |
+
--candidate "$VELA_REPRODUCTION_ROOT/vela/selected-embedding" --label candidate \
|
| 134 |
+
--fixtures "$VELA_REPRODUCTION_ROOT/evidence/vela-embedding-english-repair-v1-final-fixtures" \
|
| 135 |
+
--output "$VELA_REPRODUCTION_ROOT/evidence/replayed-final-candidate" \
|
| 136 |
+
--precision fp16 --final-protocol protocols/embedding-independent-final-v1.json
|
| 137 |
+
python summarize_embedding_successor_final.py \
|
| 138 |
+
--original "$VELA_REPRODUCTION_ROOT/evidence/replayed-final-original/metrics.json" \
|
| 139 |
+
--candidate "$VELA_REPRODUCTION_ROOT/evidence/replayed-final-candidate/metrics.json" \
|
| 140 |
+
--fixture "$VELA_REPRODUCTION_ROOT/evidence/vela-embedding-english-repair-v1-final-fixtures/fixture.json" \
|
| 141 |
+
--final-protocol protocols/embedding-independent-final-v1.json \
|
| 142 |
+
--output "$VELA_REPRODUCTION_ROOT/evidence/replayed-final-summary.json"
|
| 143 |
+
```
|
| 144 |
+
|
| 145 |
+
Export both precisions to a new, separate directory. The exporter binds source weights/config/tokenizer before appending variants and rejects a different source checkpoint in an existing output directory. Resume and verify-only modes revalidate artifacts rather than silently reusing another model. Native parameter casting preserves original FP32 rotary buffers; generic `.half()` is not substituted for that preparation.
|
| 146 |
+
|
| 147 |
+
```bash
|
| 148 |
+
python export_2d_matryoshka.py --model .. --task embedding \
|
| 149 |
+
--layers 3 6 11 22 --dimensions 768 512 256 128 64 \
|
| 150 |
+
--precision fp32 --device cpu --output "$VELA_REPRODUCTION_ROOT/exports"
|
| 151 |
+
python export_2d_matryoshka.py --model .. --task embedding \
|
| 152 |
+
--layers 3 6 11 22 --dimensions 768 512 256 128 64 \
|
| 153 |
+
--precision fp16 --device cpu --output "$VELA_REPRODUCTION_ROOT/exports"
|
| 154 |
+
```
|
| 155 |
+
|
| 156 |
+
`onnx/` contains the public CK rewriter, native reference generator, numerical contract and qualifier, real Rust-ABI test, exact-input task replay and warm benchmark. Each exposes `--help`; published plans retain all arguments. Portable FP32 runs with standard ONNX Runtime. CK additionally requires a compatible ROCm ONNX Runtime and the Semantic Router CK custom-op library. The ABI test's recorded binary digest binds the measured build, not an arbitrary rebuilt library. Graph outputs require explicit FP32 mask-aware pooling and normalization by their consumer. Export success is separate from numerical qualification, task accuracy and performance evidence.
|
| 157 |
+
|
| 158 |
+
The published CPU contract suite was actually run: 16 tests passed. The standard-API and exact-composition checks also ran against real weights; these small tests do not substitute for model evaluation.
|
| 159 |
+
|
| 160 |
+
```bash
|
| 161 |
+
python -m unittest test_embedding_native_composition \
|
| 162 |
+
test_embedding_composition_selection test_embedding_final_protocol \
|
| 163 |
+
test_embedding_final_summary
|
| 164 |
+
```
|
| 165 |
+
|
| 166 |
+
|
| 167 |
+
## Recheck the native Candle C ABI
|
| 168 |
+
|
| 169 |
+
`candle/` contains the completed CPU-to-CPU FP32 reports and neutral numerical fixtures. `validate_candle.py` tests actual allocation/release, boundary rejection, four depths and five dimensions, with four real 32K calls at dimension 768. The saved-vector summary can be recalculated without model inference:
|
| 170 |
+
|
| 171 |
+
```sh
|
| 172 |
+
python candle/summarize_candle.py --root candle --output candle/aggregate-recomputed.json
|
| 173 |
+
```
|
| 174 |
+
|
| 175 |
+
The original aggregate and reports remain unchanged. `candle/README.md` documents library verification and the source checkout needed for a fresh run. Rebuilt library bytes are not assumed identical across machines. The observed full-depth 32K Candle qualification forward took about 31 minutes, so this check is optional and materially more expensive than the short suite.
|
reproduction/audit_miracl_groups.py
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Audit real query IDs and passage/article overlap; reaggregate fixed outputs.
|
| 2 |
+
|
| 3 |
+
MIRACL query_id is a query identifier, NOT a Wikipedia article identifier.
|
| 4 |
+
Article groups here explicitly use the prefix of actual passage docid before #.
|
| 5 |
+
The conservative subset is an additional sensitivity check, not a new selection
|
| 6 |
+
set or a claim that retrieval's shared corpus is inherently invalid.
|
| 7 |
+
"""
|
| 8 |
+
import os
|
| 9 |
+
import argparse
|
| 10 |
+
import hashlib
|
| 11 |
+
import json
|
| 12 |
+
from pathlib import Path
|
| 13 |
+
import numpy as np
|
| 14 |
+
from vela_text_data import load_data
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def query_text(row):return ' '.join(row['query'].casefold().split())
|
| 18 |
+
def pages(row,kind):return {row['language']+':'+p['docid'].split('#',1)[0] for p in row[kind+'_passages']}
|
| 19 |
+
def documents(row,kind):return {row['language']+':'+p['docid'] for p in row[kind+'_passages']}
|
| 20 |
+
def qid(row):return row['language']+':'+row['query_id']
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def components(rows):
|
| 24 |
+
parent={qid(r):qid(r) for r in rows};seen={}
|
| 25 |
+
def find(x):
|
| 26 |
+
while parent[x]!=x:parent[x]=parent[parent[x]];x=parent[x]
|
| 27 |
+
return x
|
| 28 |
+
for row in rows:
|
| 29 |
+
for article in pages(row,'positive'):
|
| 30 |
+
if article in seen:parent[find(qid(row))]=find(seen[article])
|
| 31 |
+
else:seen[article]=qid(row)
|
| 32 |
+
return {qid(r):find(qid(r)) for r in rows}
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
def summary(old,new,rows,groups):
|
| 36 |
+
report={};rng=np.random.default_rng(20260912)
|
| 37 |
+
for config,values in old['per_query'].items():
|
| 38 |
+
aggregate={};by_language={}
|
| 39 |
+
for row in rows:
|
| 40 |
+
before=values[qid(row)]['nDCG@10'];after=new['per_query'][config][qid(row)]['nDCG@10']
|
| 41 |
+
aggregate.setdefault(groups[qid(row)],[]).append((before,after))
|
| 42 |
+
by_language.setdefault(row['language'],[]).append((before,after))
|
| 43 |
+
if not aggregate:raise ValueError('Empty conservative subset')
|
| 44 |
+
arrays=[np.asarray(x) for x in aggregate.values()];full=np.concatenate(arrays);draws=[]
|
| 45 |
+
# Whole connected article groups; do not treat correlated query scores as independent.
|
| 46 |
+
for _ in range(2000):
|
| 47 |
+
chosen=rng.integers(0,len(arrays),len(arrays));sample=np.concatenate([arrays[i] for i in chosen]);draws.append(float(np.mean(sample[:,1]-sample[:,0])))
|
| 48 |
+
report[config]={'old_ndcg10':float(full[:,0].mean()),'candidate_ndcg10':float(full[:,1].mean()),'delta':float(np.mean(full[:,1]-full[:,0])),
|
| 49 |
+
'queries':len(full),'bootstrap_groups':len(arrays),'group_delta_95pct':list(map(float,np.quantile(draws,[.025,.975]))),
|
| 50 |
+
'by_language':{lang:{'queries':len(vals),'old':float(np.mean(vals,axis=0)[0]),'candidate':float(np.mean(vals,axis=0)[1])} for lang,vals in by_language.items()}}
|
| 51 |
+
return report
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
def main():
|
| 55 |
+
p=argparse.ArgumentParser();p.add_argument('--metrics',type=Path,required=True);p.add_argument('--output',type=Path,required=True);args=p.parse_args()
|
| 56 |
+
root=Path(os.environ.get('VELA_REPRODUCTION_ROOT', 'reproduction'));train,validation,final,stats=load_data(root)
|
| 57 |
+
selection=[r for lang in ('ar','es','ja','zh') for r in [x for x in validation if x['language']==lang][:80]]
|
| 58 |
+
train_positive=set().union(*(pages(r,'positive') for r in train));train_all=train_positive|set().union(*(pages(r,'negative') for r in train))
|
| 59 |
+
selection_positive=set().union(*(pages(r,'positive') for r in selection));selection_all=selection_positive|set().union(*(pages(r,'negative') for r in selection))
|
| 60 |
+
seen_query_text={r['language']+':'+query_text(r) for r in train+selection}
|
| 61 |
+
strict_query=[r for r in final if r['language']+':'+query_text(r) not in seen_query_text]
|
| 62 |
+
positive_disjoint=[r for r in strict_query if not pages(r,'positive')&(train_positive|selection_positive)]
|
| 63 |
+
conservative=[r for r in strict_query if not pages(r,'positive')&(train_all|selection_all)]
|
| 64 |
+
seen_docids=set().union(*(documents(r,kind) for r in train for kind in ('positive','negative')))
|
| 65 |
+
old=json.loads((args.metrics/'old-metrics.json').read_text());new=json.loads((args.metrics/'candidate-metrics.json').read_text())
|
| 66 |
+
for row in final:
|
| 67 |
+
if qid(row) not in next(iter(old['per_query'].values())):raise ValueError('Missing evaluated query')
|
| 68 |
+
report={'correction':'query_id is query ID, not article ID; previous source-article terminology was incorrect',
|
| 69 |
+
'unchanged_training':'No source weights, train split, validation selection or final predictions were changed by this audit',
|
| 70 |
+
'article_group_definition':'language plus actual passage docid prefix before #; positive articles conservatively represent relevant article groups',
|
| 71 |
+
'shared_corpus_scope':'MIRACL retrieval may reuse corpus passages; article overlap alone is not query-label leakage',
|
| 72 |
+
'training_queries':len(train),'selection_queries':len(selection),'original_final_queries':len(final),
|
| 73 |
+
'exact_query_id_overlap_train_final':len({qid(r) for r in train}&{qid(r) for r in final}),
|
| 74 |
+
'normalized_query_text_overlap_train_or_selection_final':len(final)-len(strict_query),
|
| 75 |
+
'final_queries_with_train_positive_article':sum(bool(pages(r,'positive')&train_positive) for r in final),
|
| 76 |
+
'final_queries_with_any_train_passage_article':sum(bool(pages(r,'positive')&train_all) for r in final),
|
| 77 |
+
'final_queries_with_any_training_passage_docid':sum(bool(documents(r,'positive')&seen_docids) for r in final),
|
| 78 |
+
'query_heldout':{'definition':'No query ID overlap; additionally remove normalized query text in training or selected validation',
|
| 79 |
+
'metrics':summary(old,new,strict_query,components(strict_query))},
|
| 80 |
+
'positive_article_disjoint':{'definition':'Exclude final positive article groups seen among training or selected-validation positives',
|
| 81 |
+
'metrics':summary(old,new,positive_disjoint,components(positive_disjoint))},
|
| 82 |
+
'all_seen_article_disjoint':{'definition':'Exclude final positive article groups seen in either positive or negative training/selected-validation passages',
|
| 83 |
+
'metrics':summary(old,new,conservative,components(conservative)),
|
| 84 |
+
'selected_query_ids':[qid(r) for r in conservative]},
|
| 85 |
+
'source_file_sha256':{str(p.relative_to(root)):hashlib.sha256(p.read_bytes()).hexdigest() for p in sorted((root/'datasets/miracl-vela').glob('*/*/*.parquet'))},
|
| 86 |
+
'evaluated_old_sha256':hashlib.sha256((args.metrics/'old-metrics.json').read_bytes()).hexdigest(),
|
| 87 |
+
'evaluated_candidate_sha256':hashlib.sha256((args.metrics/'candidate-metrics.json').read_bytes()).hexdigest()}
|
| 88 |
+
args.output.write_text(json.dumps(report,indent=2)+'\n');print(json.dumps({k:v for k,v in report.items() if k not in ('source_file_sha256','all_seen_article_disjoint','positive_article_disjoint','query_heldout')}),flush=True)
|
| 89 |
+
for name in ('query_heldout','positive_article_disjoint','all_seen_article_disjoint'):print(json.dumps({name:report[name]['metrics']}),flush=True)
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
if __name__=='__main__':main()
|
reproduction/audit_native_rows_completion.py
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Verify completed training coverage/frozen parameters and select using dev only."""
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
from collections import Counter
|
| 5 |
+
import hashlib
|
| 6 |
+
import itertools
|
| 7 |
+
import json
|
| 8 |
+
from pathlib import Path
|
| 9 |
+
|
| 10 |
+
import torch
|
| 11 |
+
from safetensors import safe_open
|
| 12 |
+
|
| 13 |
+
from embedding_final_protocol import PROTOCOL_SHA256, load_protocol
|
| 14 |
+
from freeze_embedding_native_rows_repair import select_run
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
def sha(path):
|
| 18 |
+
digest = hashlib.sha256()
|
| 19 |
+
with Path(path).open("rb") as stream:
|
| 20 |
+
for block in iter(lambda: stream.read(8 << 20), b""):
|
| 21 |
+
digest.update(block)
|
| 22 |
+
return digest.hexdigest()
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def main():
|
| 26 |
+
parser = argparse.ArgumentParser(description=__doc__)
|
| 27 |
+
for name in ("run", "final-protocol", "output"):
|
| 28 |
+
parser.add_argument("--" + name, type=Path, required=True)
|
| 29 |
+
args = parser.parse_args()
|
| 30 |
+
if args.output.exists():
|
| 31 |
+
raise FileExistsError(args.output)
|
| 32 |
+
report = json.loads((args.run / "results.json").read_text())
|
| 33 |
+
protocol = json.loads((args.run / "protocol.json").read_text())
|
| 34 |
+
if sha(args.run / "protocol.json") != report["protocol_sha256"]:
|
| 35 |
+
raise ValueError("Recorded training protocol changed")
|
| 36 |
+
final = load_protocol(args.final_protocol)
|
| 37 |
+
selection = select_run(protocol, report)
|
| 38 |
+
if (
|
| 39 |
+
selection["thresholds"]
|
| 40 |
+
!= final["candidate_selection"]["development_thresholds"]
|
| 41 |
+
):
|
| 42 |
+
raise ValueError("Changed development thresholds")
|
| 43 |
+
expected = Counter(
|
| 44 |
+
itertools.product(
|
| 45 |
+
("ar", "es", "ja", "zh"),
|
| 46 |
+
(4096, 8192, 16384, 32768),
|
| 47 |
+
("beginning", "middle", "end"),
|
| 48 |
+
)
|
| 49 |
+
)
|
| 50 |
+
intervals = {}
|
| 51 |
+
snapshots = {}
|
| 52 |
+
torch.set_num_threads(1)
|
| 53 |
+
for step in (480, 960, 1440):
|
| 54 |
+
rows = [
|
| 55 |
+
row
|
| 56 |
+
for row in report["training"]
|
| 57 |
+
if row["mode"] == "long" and step - 480 < row["step"] <= step
|
| 58 |
+
]
|
| 59 |
+
cells = Counter(
|
| 60 |
+
(row["query_id"].split(":", 1)[0], row["budget"], row["position"])
|
| 61 |
+
for row in rows
|
| 62 |
+
)
|
| 63 |
+
if cells != expected:
|
| 64 |
+
raise ValueError("Actual long-course interval differs from48-cell plan")
|
| 65 |
+
intervals[str(step)] = {
|
| 66 |
+
"long_batches": len(rows),
|
| 67 |
+
"unique_cells": len(cells),
|
| 68 |
+
"minimum_cell_count": min(cells.values()),
|
| 69 |
+
"maximum_cell_count": max(cells.values()),
|
| 70 |
+
}
|
| 71 |
+
weights = args.run / f"step-{step}" / "model.safetensors"
|
| 72 |
+
actual = {}
|
| 73 |
+
with safe_open(weights, framework="pt", device="cpu") as checkpoint:
|
| 74 |
+
for name in protocol["frozen_parameters"]:
|
| 75 |
+
tensor = checkpoint.get_tensor(name).contiguous()
|
| 76 |
+
actual[name] = hashlib.sha256(
|
| 77 |
+
tensor.view(torch.uint8).numpy().tobytes()
|
| 78 |
+
).hexdigest()
|
| 79 |
+
if actual != protocol["frozen_parameters"]:
|
| 80 |
+
raise ValueError("Saved checkpoint changed a frozen parameter")
|
| 81 |
+
snapshots[str(step)] = {
|
| 82 |
+
"weights_sha256": sha(weights),
|
| 83 |
+
"config_sha256": sha(weights.parent / "config.json"),
|
| 84 |
+
"tokenizer_sha256": sha(weights.parent / "tokenizer.json"),
|
| 85 |
+
"unchanged_frozen_parameter_tensors": len(actual),
|
| 86 |
+
}
|
| 87 |
+
result = {
|
| 88 |
+
"completed": True,
|
| 89 |
+
"training_results_sha256": sha(args.run / "results.json"),
|
| 90 |
+
"training_protocol_sha256": sha(args.run / "protocol.json"),
|
| 91 |
+
"independent_final_protocol_sha256": PROTOCOL_SHA256,
|
| 92 |
+
"actual_long_curriculum": intervals,
|
| 93 |
+
"checkpoints": snapshots,
|
| 94 |
+
"selection": selection,
|
| 95 |
+
"final_predictions_read": False,
|
| 96 |
+
"script_sha256": sha(__file__),
|
| 97 |
+
}
|
| 98 |
+
with args.output.open("x") as stream:
|
| 99 |
+
json.dump(result, stream, indent=2, allow_nan=False)
|
| 100 |
+
stream.write("\n")
|
| 101 |
+
print(
|
| 102 |
+
json.dumps(
|
| 103 |
+
{
|
| 104 |
+
"selected_step": selection["selected_step"],
|
| 105 |
+
"actual_long_curriculum": intervals,
|
| 106 |
+
"report_sha256": sha(args.output),
|
| 107 |
+
},
|
| 108 |
+
allow_nan=False,
|
| 109 |
+
)
|
| 110 |
+
)
|
| 111 |
+
|
| 112 |
+
|
| 113 |
+
if __name__ == "__main__":
|
| 114 |
+
main()
|
reproduction/audit_reranker_final_tokenizers_v2.py
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Verify serialization-only padding differences before the legacy final baseline."""
|
| 2 |
+
import argparse
|
| 3 |
+
import hashlib
|
| 4 |
+
import json
|
| 5 |
+
from pathlib import Path
|
| 6 |
+
|
| 7 |
+
from transformers import AutoTokenizer
|
| 8 |
+
from vela_text_data import text
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
def sha(path):return hashlib.sha256(Path(path).read_bytes()).hexdigest()
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
def main():
|
| 15 |
+
p=argparse.ArgumentParser();p.add_argument('--original',type=Path,required=True);p.add_argument('--candidate',type=Path,required=True)
|
| 16 |
+
p.add_argument('--fixtures',type=Path,required=True);p.add_argument('--output',type=Path,required=True);a=p.parse_args()
|
| 17 |
+
if a.output.exists():raise FileExistsError(a.output)
|
| 18 |
+
raw=[json.loads((path/'tokenizer.json').read_text()) for path in (a.original,a.candidate)]
|
| 19 |
+
for value in raw:
|
| 20 |
+
padding=value.pop('padding',None)
|
| 21 |
+
if padding not in (None,{'strategy':'BatchLongest','direction':'Right','pad_to_multiple_of':None,'pad_id':0,'pad_type_id':0,'pad_token':'<pad>'}):raise ValueError('Unexpected tokenizer padding serialization')
|
| 22 |
+
if raw[0]!=raw[1]:raise ValueError('Tokenization content differs beyond padding serialization')
|
| 23 |
+
configs=[json.loads((path/'tokenizer_config.json').read_text()) for path in (a.original,a.candidate)]
|
| 24 |
+
for value in configs:
|
| 25 |
+
if value.pop('pad_token_type_id',0)!=0:raise ValueError('Unexpected pad token type')
|
| 26 |
+
for key in ('max_length','pad_to_multiple_of'):
|
| 27 |
+
if value.pop(key,None) is not None:raise ValueError('Unexpected serialized padding/length override')
|
| 28 |
+
if configs[0]!=configs[1]:raise ValueError('Tokenizer configuration differs beyond explicit default pad type')
|
| 29 |
+
if json.loads((a.original/'special_tokens_map.json').read_text())!=json.loads((a.candidate/'special_tokens_map.json').read_text()):raise ValueError('Special tokens differ')
|
| 30 |
+
tokenizers=[AutoTokenizer.from_pretrained(path,local_files_only=True) for path in (a.original,a.candidate)]
|
| 31 |
+
for tok in tokenizers:
|
| 32 |
+
tok.backend_tokenizer.no_padding();tok.backend_tokenizer.no_truncation()
|
| 33 |
+
if json.loads(tokenizers[0].backend_tokenizer.to_str())!=json.loads(tokenizers[1].backend_tokenizer.to_str()):raise ValueError('Loaded tokenizer backend semantics differ')
|
| 34 |
+
rows=json.loads((a.fixtures/'short-inputs.json').read_text());pairs=0;batches=0;maximum=0;digest=hashlib.sha256()
|
| 35 |
+
for row in rows:
|
| 36 |
+
passages=row['positive_passages']+row['negative_passages']
|
| 37 |
+
for start in range(0,len(passages),12):
|
| 38 |
+
selected=passages[start:start+12];left=[row['query']]*len(selected);right=[text(p) for p in selected]
|
| 39 |
+
values=[tok(left,right,padding=True,truncation=False) for tok in tokenizers]
|
| 40 |
+
if dict(values[0])!=dict(values[1]):raise ValueError('Actual final paired inputs differ')
|
| 41 |
+
digest.update(json.dumps(dict(values[0]),sort_keys=True).encode());pairs+=len(selected);batches+=1;maximum=max(maximum,len(values[0]['input_ids'][0]))
|
| 42 |
+
report={'equivalent_for_final':True,'script_sha256':sha(__file__),'original_tokenizer_sha256':sha(a.original/'tokenizer.json'),'candidate_tokenizer_sha256':sha(a.candidate/'tokenizer.json'),
|
| 43 |
+
'fixture_sha256':sha(a.fixtures/'fixture.json'),'short_input_sha256':sha(a.fixtures/'short-inputs.json'),
|
| 44 |
+
'scope':'Vocabulary, normalization, pre-tokenization, postprocessing and special tokens exactly equal. Only serialized dynamic-right-padding state and explicit default pad type differ. Loaded backend semantics and all actual short paired inputs agree; long inputs are already shared exact integer arrays.',
|
| 45 |
+
'original_tokenizer_files_sha256':{name:sha(a.original/name) for name in ('tokenizer.json','tokenizer_config.json','special_tokens_map.json')},'candidate_tokenizer_files_sha256':{name:sha(a.candidate/name) for name in ('tokenizer.json','tokenizer_config.json','special_tokens_map.json')},'serialized_default_differences':['BatchLongest/right/pad0 tokenizer state','pad_token_type_id=0','max_length=null','pad_to_multiple_of=null'],'query_groups':len(rows),'pairs':pairs,'batches':batches,'max_tokens':maximum,'encoded_inputs_sha256':digest.hexdigest()}
|
| 46 |
+
a.output.write_text(json.dumps(report,indent=2)+'\n');print(json.dumps(report),flush=True)
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
if __name__=='__main__':main()
|
reproduction/build_embedding_interpolation.py
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Fixed development-only parameter interpolation; preserves native buffers."""
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
import copy
|
| 5 |
+
import hashlib
|
| 6 |
+
import json
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
import shutil
|
| 9 |
+
import sys
|
| 10 |
+
|
| 11 |
+
import torch
|
| 12 |
+
from safetensors import safe_open
|
| 13 |
+
from transformers import AutoModel, AutoTokenizer
|
| 14 |
+
|
| 15 |
+
sys.path.insert(0, str(Path(__file__).resolve().parent / 'model_code'))
|
| 16 |
+
from mmbert_32k.representation_contract import (
|
| 17 |
+
set_vela_representation_contract,
|
| 18 |
+
vela_representation_contract,
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
ALPHAS = (0.25, 0.5, 0.75)
|
| 22 |
+
EXPECTED_WEIGHTS = (
|
| 23 |
+
"173eb71beab911ddccf5c23d46129890894f1b741bedbf15e6d0f46084da3391",
|
| 24 |
+
"f2d9b7b559e6897e5ffe37eb892d366b9478945634579b04bea09071abdcb064",
|
| 25 |
+
)
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def sha(path):
|
| 29 |
+
value = hashlib.sha256()
|
| 30 |
+
with Path(path).open("rb") as handle:
|
| 31 |
+
for chunk in iter(lambda: handle.read(8 << 20), b""):
|
| 32 |
+
value.update(chunk)
|
| 33 |
+
return value.hexdigest()
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def canonical_sha(value):
|
| 37 |
+
return hashlib.sha256(
|
| 38 |
+
json.dumps(value, sort_keys=True, separators=(",", ":")).encode()
|
| 39 |
+
).hexdigest()
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def verify_models(old, new):
|
| 43 |
+
left, right = dict(old.named_parameters()), dict(new.named_parameters())
|
| 44 |
+
if left.keys() != right.keys():
|
| 45 |
+
raise ValueError("Parameter keys differ")
|
| 46 |
+
for key in left:
|
| 47 |
+
if (
|
| 48 |
+
left[key].shape != right[key].shape
|
| 49 |
+
or left[key].dtype != torch.float32
|
| 50 |
+
or right[key].dtype != torch.float32
|
| 51 |
+
):
|
| 52 |
+
raise ValueError(f"Parameter shape/dtype mismatch: {key}")
|
| 53 |
+
if not torch.isfinite(left[key]).all() or not torch.isfinite(right[key]).all():
|
| 54 |
+
raise ValueError(f"Non-finite source parameter: {key}")
|
| 55 |
+
left_buffers, right_buffers = dict(old.named_buffers()), dict(new.named_buffers())
|
| 56 |
+
if left_buffers.keys() != right_buffers.keys():
|
| 57 |
+
raise ValueError("Buffer keys differ")
|
| 58 |
+
for key in left_buffers:
|
| 59 |
+
x, y = left_buffers[key], right_buffers[key]
|
| 60 |
+
if x.dtype != y.dtype or x.shape != y.shape or not torch.equal(x, y):
|
| 61 |
+
raise ValueError(f"Buffer value/shape/dtype differs: {key}")
|
| 62 |
+
if old.state_dict().keys() != new.state_dict().keys():
|
| 63 |
+
raise ValueError("Serialized state keys differ")
|
| 64 |
+
return {
|
| 65 |
+
"parameters": sum(p.numel() for p in left.values()),
|
| 66 |
+
"parameter_tensors": len(left),
|
| 67 |
+
"parameter_shapes_sha256": canonical_sha(
|
| 68 |
+
{k: list(v.shape) for k, v in left.items()}
|
| 69 |
+
),
|
| 70 |
+
"buffers": {
|
| 71 |
+
k: {
|
| 72 |
+
"shape": list(v.shape),
|
| 73 |
+
"dtype": str(v.dtype),
|
| 74 |
+
"sha256": hashlib.sha256(v.contiguous().numpy().tobytes()).hexdigest(),
|
| 75 |
+
}
|
| 76 |
+
for k, v in left_buffers.items()
|
| 77 |
+
},
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
def interpolate(old, new, alpha):
|
| 82 |
+
if alpha not in ALPHAS:
|
| 83 |
+
raise ValueError("Alpha is not in the fixed development grid")
|
| 84 |
+
result = copy.deepcopy(old)
|
| 85 |
+
new_parameters = dict(new.named_parameters())
|
| 86 |
+
with torch.no_grad():
|
| 87 |
+
for key, value in result.named_parameters():
|
| 88 |
+
value.mul_(1.0 - alpha).add_(new_parameters[key], alpha=alpha)
|
| 89 |
+
return result
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
def verify_metadata(original, candidate):
|
| 93 |
+
configs = [
|
| 94 |
+
json.loads((path / "config.json").read_text()) for path in (original, candidate)
|
| 95 |
+
]
|
| 96 |
+
contract = configs[1].get("representation_contract")
|
| 97 |
+
if configs[0].get(
|
| 98 |
+
"representation_contract"
|
| 99 |
+
) is not None or contract != vela_representation_contract("embedding"):
|
| 100 |
+
raise ValueError("Unexpected endpoint representation contracts")
|
| 101 |
+
for config in configs:
|
| 102 |
+
config.pop("dtype", None)
|
| 103 |
+
config.pop("representation_contract", None)
|
| 104 |
+
if configs[0] != configs[1]:
|
| 105 |
+
raise ValueError("Architecture/RoPE/norm/dropout configuration differs")
|
| 106 |
+
auxiliary = (
|
| 107 |
+
"modules.json",
|
| 108 |
+
"sentence_bert_config.json",
|
| 109 |
+
"config_sentence_transformers.json",
|
| 110 |
+
"1_Pooling/config.json",
|
| 111 |
+
"special_tokens_map.json",
|
| 112 |
+
)
|
| 113 |
+
for name in auxiliary:
|
| 114 |
+
if json.loads((original / name).read_text()) != json.loads(
|
| 115 |
+
(candidate / name).read_text()
|
| 116 |
+
):
|
| 117 |
+
raise ValueError(f"Auxiliary model configuration differs: {name}")
|
| 118 |
+
tokenizers = [
|
| 119 |
+
AutoTokenizer.from_pretrained(path, local_files_only=True)
|
| 120 |
+
for path in (original, candidate)
|
| 121 |
+
]
|
| 122 |
+
for tokenizer in tokenizers:
|
| 123 |
+
tokenizer.backend_tokenizer.no_padding()
|
| 124 |
+
tokenizer.backend_tokenizer.no_truncation()
|
| 125 |
+
backends = [
|
| 126 |
+
json.loads(tokenizer.backend_tokenizer.to_str()) for tokenizer in tokenizers
|
| 127 |
+
]
|
| 128 |
+
if backends[0] != backends[1]:
|
| 129 |
+
raise ValueError("Loaded tokenizer semantic graph differs")
|
| 130 |
+
tests = [
|
| 131 |
+
"A short paper about multilingual retrieval.",
|
| 132 |
+
"تجربة استرجاع طويلة",
|
| 133 |
+
"日本語の文章と質問",
|
| 134 |
+
"长文本与检索测试",
|
| 135 |
+
"",
|
| 136 |
+
"Hola, el artículo explica esto.",
|
| 137 |
+
]
|
| 138 |
+
if dict(tokenizers[0](tests, padding=True, truncation=False)) != dict(
|
| 139 |
+
tokenizers[1](tests, padding=True, truncation=False)
|
| 140 |
+
):
|
| 141 |
+
raise ValueError("Tokenizer padding outputs differ")
|
| 142 |
+
return {
|
| 143 |
+
"common_architecture_config": configs[0],
|
| 144 |
+
"common_architecture_config_sha256": canonical_sha(configs[0]),
|
| 145 |
+
"common_tokenizer_backend_sha256": canonical_sha(backends[0]),
|
| 146 |
+
"auxiliary_equal": list(auxiliary),
|
| 147 |
+
"representation_contract": contract,
|
| 148 |
+
"baseline_reader_contract": "Existing V3 baseline evaluates last_hidden_state at full depth and raw intermediate hidden states; new artifacts declare that same effective contract explicitly. This is not an assertion about historical source training.",
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
def main():
|
| 153 |
+
parser = argparse.ArgumentParser()
|
| 154 |
+
parser.add_argument("--original", type=Path, required=True)
|
| 155 |
+
parser.add_argument("--candidate", type=Path, required=True)
|
| 156 |
+
parser.add_argument("--constraints", type=Path, required=True)
|
| 157 |
+
parser.add_argument("--output", type=Path, required=True)
|
| 158 |
+
args = parser.parse_args()
|
| 159 |
+
if args.output.exists():
|
| 160 |
+
raise FileExistsError(args.output)
|
| 161 |
+
torch.set_num_threads(8)
|
| 162 |
+
sources = (args.original, args.candidate)
|
| 163 |
+
actual = tuple(sha(path / "model.safetensors") for path in sources)
|
| 164 |
+
if actual != EXPECTED_WEIGHTS:
|
| 165 |
+
raise ValueError("Endpoint checkpoint bytes changed")
|
| 166 |
+
metadata = verify_metadata(*sources)
|
| 167 |
+
models = [
|
| 168 |
+
AutoModel.from_pretrained(
|
| 169 |
+
path,
|
| 170 |
+
local_files_only=True,
|
| 171 |
+
torch_dtype=torch.float32,
|
| 172 |
+
attn_implementation="sdpa",
|
| 173 |
+
reference_compile=False,
|
| 174 |
+
).eval()
|
| 175 |
+
for path in sources
|
| 176 |
+
]
|
| 177 |
+
compatibility = verify_models(*models)
|
| 178 |
+
if compatibility["parameters"] != 306939648:
|
| 179 |
+
raise ValueError("Unexpected encoder parameter count")
|
| 180 |
+
stored_dtypes = []
|
| 181 |
+
for path in sources:
|
| 182 |
+
with safe_open(
|
| 183 |
+
path / "model.safetensors", framework="pt", device="cpu"
|
| 184 |
+
) as archive:
|
| 185 |
+
stored_dtypes.append(
|
| 186 |
+
sorted(
|
| 187 |
+
{str(archive.get_slice(key).get_dtype()) for key in archive.keys()}
|
| 188 |
+
)
|
| 189 |
+
)
|
| 190 |
+
thresholds = json.loads(args.constraints.read_text())["thresholds"]
|
| 191 |
+
if set(thresholds) != {"short", "long", "tail", "sts", "natural"}:
|
| 192 |
+
raise ValueError("Unexpected gates")
|
| 193 |
+
args.output.mkdir(parents=True)
|
| 194 |
+
report = {
|
| 195 |
+
"method": "FP32 parameter-only weighted sum: (1-alpha)*original + alpha*clean1-last; no optimization steps",
|
| 196 |
+
"alphas": list(ALPHAS),
|
| 197 |
+
"source_weights_sha256": dict(zip(("original", "clean1_last"), actual)),
|
| 198 |
+
"source_stored_dtypes": stored_dtypes,
|
| 199 |
+
"compatibility": compatibility,
|
| 200 |
+
"metadata": metadata,
|
| 201 |
+
"constraints_sha256": sha(args.constraints),
|
| 202 |
+
"thresholds": thresholds,
|
| 203 |
+
"development_only": True,
|
| 204 |
+
"selection_objective": "Among candidates passing every original fixed gate, maximize long macro + .25 short judged-pool nDCG; ties prefer smaller alpha.",
|
| 205 |
+
"script_sha256": sha(__file__),
|
| 206 |
+
"candidates": {},
|
| 207 |
+
"complete": False,
|
| 208 |
+
}
|
| 209 |
+
for alpha in ALPHAS:
|
| 210 |
+
label = f"alpha-{alpha:.2f}"
|
| 211 |
+
dest = args.output / label
|
| 212 |
+
model = interpolate(*models, alpha)
|
| 213 |
+
set_vela_representation_contract(model.config, "embedding")
|
| 214 |
+
model.save_pretrained(dest, safe_serialization=True)
|
| 215 |
+
for name in (
|
| 216 |
+
"modules.json",
|
| 217 |
+
"sentence_bert_config.json",
|
| 218 |
+
"config_sentence_transformers.json",
|
| 219 |
+
"special_tokens_map.json",
|
| 220 |
+
"tokenizer.json",
|
| 221 |
+
"tokenizer_config.json",
|
| 222 |
+
):
|
| 223 |
+
shutil.copy2(args.original / name, dest / name)
|
| 224 |
+
shutil.copytree(args.original / "1_Pooling", dest / "1_Pooling")
|
| 225 |
+
report["candidates"][label] = {
|
| 226 |
+
"alpha": alpha,
|
| 227 |
+
"files_sha256": {
|
| 228 |
+
str(p.relative_to(dest)): sha(p)
|
| 229 |
+
for p in sorted(dest.rglob("*"))
|
| 230 |
+
if p.is_file()
|
| 231 |
+
},
|
| 232 |
+
"parameters_only": True,
|
| 233 |
+
"buffers_from": "original",
|
| 234 |
+
}
|
| 235 |
+
(args.output / "interpolation.json").write_text(
|
| 236 |
+
json.dumps(report, indent=2, allow_nan=False) + "\n"
|
| 237 |
+
)
|
| 238 |
+
print(
|
| 239 |
+
json.dumps(
|
| 240 |
+
{
|
| 241 |
+
"candidate": label,
|
| 242 |
+
"weights_sha256": report["candidates"][label]["files_sha256"][
|
| 243 |
+
"model.safetensors"
|
| 244 |
+
],
|
| 245 |
+
}
|
| 246 |
+
),
|
| 247 |
+
flush=True,
|
| 248 |
+
)
|
| 249 |
+
del model
|
| 250 |
+
if tuple(sha(path / "model.safetensors") for path in sources) != actual:
|
| 251 |
+
raise ValueError("Endpoint mutated")
|
| 252 |
+
report["complete"] = True
|
| 253 |
+
(args.output / "interpolation.json").write_text(
|
| 254 |
+
json.dumps(report, indent=2, allow_nan=False) + "\n"
|
| 255 |
+
)
|
| 256 |
+
print(
|
| 257 |
+
json.dumps(
|
| 258 |
+
{
|
| 259 |
+
"compatibility": compatibility,
|
| 260 |
+
"report_sha256": sha(args.output / "interpolation.json"),
|
| 261 |
+
}
|
| 262 |
+
),
|
| 263 |
+
flush=True,
|
| 264 |
+
)
|
| 265 |
+
|
| 266 |
+
|
| 267 |
+
if __name__ == "__main__":
|
| 268 |
+
main()
|
reproduction/build_embedding_interpolation_v2.py
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Fixed development-only parameter interpolation; preserves native buffers."""
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
import copy
|
| 5 |
+
import hashlib
|
| 6 |
+
import json
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
import shutil
|
| 9 |
+
import sys
|
| 10 |
+
|
| 11 |
+
import torch
|
| 12 |
+
from safetensors import safe_open
|
| 13 |
+
from transformers import AutoModel, AutoTokenizer
|
| 14 |
+
|
| 15 |
+
sys.path.insert(0, str(Path(__file__).resolve().parent / 'model_code'))
|
| 16 |
+
from mmbert_32k.representation_contract import (
|
| 17 |
+
set_vela_representation_contract,
|
| 18 |
+
vela_representation_contract,
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
ALPHAS = (0.55, 0.60, 0.65)
|
| 22 |
+
EXPECTED_WEIGHTS = (
|
| 23 |
+
"173eb71beab911ddccf5c23d46129890894f1b741bedbf15e6d0f46084da3391",
|
| 24 |
+
"f2d9b7b559e6897e5ffe37eb892d366b9478945634579b04bea09071abdcb064",
|
| 25 |
+
)
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def sha(path):
|
| 29 |
+
value = hashlib.sha256()
|
| 30 |
+
with Path(path).open("rb") as handle:
|
| 31 |
+
for chunk in iter(lambda: handle.read(8 << 20), b""):
|
| 32 |
+
value.update(chunk)
|
| 33 |
+
return value.hexdigest()
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
def canonical_sha(value):
|
| 37 |
+
return hashlib.sha256(
|
| 38 |
+
json.dumps(value, sort_keys=True, separators=(",", ":")).encode()
|
| 39 |
+
).hexdigest()
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def verify_models(old, new):
|
| 43 |
+
left, right = dict(old.named_parameters()), dict(new.named_parameters())
|
| 44 |
+
if left.keys() != right.keys():
|
| 45 |
+
raise ValueError("Parameter keys differ")
|
| 46 |
+
for key in left:
|
| 47 |
+
if (
|
| 48 |
+
left[key].shape != right[key].shape
|
| 49 |
+
or left[key].dtype != torch.float32
|
| 50 |
+
or right[key].dtype != torch.float32
|
| 51 |
+
):
|
| 52 |
+
raise ValueError(f"Parameter shape/dtype mismatch: {key}")
|
| 53 |
+
if not torch.isfinite(left[key]).all() or not torch.isfinite(right[key]).all():
|
| 54 |
+
raise ValueError(f"Non-finite source parameter: {key}")
|
| 55 |
+
left_buffers, right_buffers = dict(old.named_buffers()), dict(new.named_buffers())
|
| 56 |
+
if left_buffers.keys() != right_buffers.keys():
|
| 57 |
+
raise ValueError("Buffer keys differ")
|
| 58 |
+
for key in left_buffers:
|
| 59 |
+
x, y = left_buffers[key], right_buffers[key]
|
| 60 |
+
if x.dtype != y.dtype or x.shape != y.shape or not torch.equal(x, y):
|
| 61 |
+
raise ValueError(f"Buffer value/shape/dtype differs: {key}")
|
| 62 |
+
if old.state_dict().keys() != new.state_dict().keys():
|
| 63 |
+
raise ValueError("Serialized state keys differ")
|
| 64 |
+
return {
|
| 65 |
+
"parameters": sum(p.numel() for p in left.values()),
|
| 66 |
+
"parameter_tensors": len(left),
|
| 67 |
+
"parameter_shapes_sha256": canonical_sha(
|
| 68 |
+
{k: list(v.shape) for k, v in left.items()}
|
| 69 |
+
),
|
| 70 |
+
"buffers": {
|
| 71 |
+
k: {
|
| 72 |
+
"shape": list(v.shape),
|
| 73 |
+
"dtype": str(v.dtype),
|
| 74 |
+
"sha256": hashlib.sha256(v.contiguous().numpy().tobytes()).hexdigest(),
|
| 75 |
+
}
|
| 76 |
+
for k, v in left_buffers.items()
|
| 77 |
+
},
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
def interpolate(old, new, alpha):
|
| 82 |
+
if alpha not in ALPHAS:
|
| 83 |
+
raise ValueError("Alpha is not in the fixed development grid")
|
| 84 |
+
result = copy.deepcopy(old)
|
| 85 |
+
new_parameters = dict(new.named_parameters())
|
| 86 |
+
with torch.no_grad():
|
| 87 |
+
for key, value in result.named_parameters():
|
| 88 |
+
value.mul_(1.0 - alpha).add_(new_parameters[key], alpha=alpha)
|
| 89 |
+
return result
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
def verify_metadata(original, candidate):
|
| 93 |
+
configs = [
|
| 94 |
+
json.loads((path / "config.json").read_text()) for path in (original, candidate)
|
| 95 |
+
]
|
| 96 |
+
contract = configs[1].get("representation_contract")
|
| 97 |
+
if configs[0].get(
|
| 98 |
+
"representation_contract"
|
| 99 |
+
) is not None or contract != vela_representation_contract("embedding"):
|
| 100 |
+
raise ValueError("Unexpected endpoint representation contracts")
|
| 101 |
+
for config in configs:
|
| 102 |
+
config.pop("dtype", None)
|
| 103 |
+
config.pop("representation_contract", None)
|
| 104 |
+
if configs[0] != configs[1]:
|
| 105 |
+
raise ValueError("Architecture/RoPE/norm/dropout configuration differs")
|
| 106 |
+
auxiliary = (
|
| 107 |
+
"modules.json",
|
| 108 |
+
"sentence_bert_config.json",
|
| 109 |
+
"config_sentence_transformers.json",
|
| 110 |
+
"1_Pooling/config.json",
|
| 111 |
+
"special_tokens_map.json",
|
| 112 |
+
)
|
| 113 |
+
for name in auxiliary:
|
| 114 |
+
if json.loads((original / name).read_text()) != json.loads(
|
| 115 |
+
(candidate / name).read_text()
|
| 116 |
+
):
|
| 117 |
+
raise ValueError(f"Auxiliary model configuration differs: {name}")
|
| 118 |
+
tokenizers = [
|
| 119 |
+
AutoTokenizer.from_pretrained(path, local_files_only=True)
|
| 120 |
+
for path in (original, candidate)
|
| 121 |
+
]
|
| 122 |
+
for tokenizer in tokenizers:
|
| 123 |
+
tokenizer.backend_tokenizer.no_padding()
|
| 124 |
+
tokenizer.backend_tokenizer.no_truncation()
|
| 125 |
+
backends = [
|
| 126 |
+
json.loads(tokenizer.backend_tokenizer.to_str()) for tokenizer in tokenizers
|
| 127 |
+
]
|
| 128 |
+
if backends[0] != backends[1]:
|
| 129 |
+
raise ValueError("Loaded tokenizer semantic graph differs")
|
| 130 |
+
tests = [
|
| 131 |
+
"A short paper about multilingual retrieval.",
|
| 132 |
+
"تجربة استرجاع طويلة",
|
| 133 |
+
"日本語の文章と質問",
|
| 134 |
+
"长文本与检索测试",
|
| 135 |
+
"",
|
| 136 |
+
"Hola, el artículo explica esto.",
|
| 137 |
+
]
|
| 138 |
+
if dict(tokenizers[0](tests, padding=True, truncation=False)) != dict(
|
| 139 |
+
tokenizers[1](tests, padding=True, truncation=False)
|
| 140 |
+
):
|
| 141 |
+
raise ValueError("Tokenizer padding outputs differ")
|
| 142 |
+
return {
|
| 143 |
+
"common_architecture_config": configs[0],
|
| 144 |
+
"common_architecture_config_sha256": canonical_sha(configs[0]),
|
| 145 |
+
"common_tokenizer_backend_sha256": canonical_sha(backends[0]),
|
| 146 |
+
"auxiliary_equal": list(auxiliary),
|
| 147 |
+
"representation_contract": contract,
|
| 148 |
+
"baseline_reader_contract": "Existing V3 baseline evaluates last_hidden_state at full depth and raw intermediate hidden states; new artifacts declare that same effective contract explicitly. This is not an assertion about historical source training.",
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
def main():
|
| 153 |
+
parser = argparse.ArgumentParser()
|
| 154 |
+
parser.add_argument("--original", type=Path, required=True)
|
| 155 |
+
parser.add_argument("--candidate", type=Path, required=True)
|
| 156 |
+
parser.add_argument("--constraints", type=Path, required=True)
|
| 157 |
+
parser.add_argument("--prior-development", type=Path, required=True)
|
| 158 |
+
parser.add_argument("--output", type=Path, required=True)
|
| 159 |
+
args = parser.parse_args()
|
| 160 |
+
if args.output.exists():
|
| 161 |
+
raise FileExistsError(args.output)
|
| 162 |
+
if (
|
| 163 |
+
sha(args.prior_development)
|
| 164 |
+
!= "56376c7a5c141ab88a0e76b4f6cbbe806c144ccebdc4194dbb829443e281b5b0"
|
| 165 |
+
):
|
| 166 |
+
raise ValueError("The completed initial grid differs from the refinement plan")
|
| 167 |
+
prior = json.loads(args.prior_development.read_text())
|
| 168 |
+
if not prior["complete"] or prior["selected"] is not None:
|
| 169 |
+
raise ValueError("Refinement requires the preserved failed initial grid")
|
| 170 |
+
torch.set_num_threads(8)
|
| 171 |
+
sources = (args.original, args.candidate)
|
| 172 |
+
actual = tuple(sha(path / "model.safetensors") for path in sources)
|
| 173 |
+
if actual != EXPECTED_WEIGHTS:
|
| 174 |
+
raise ValueError("Endpoint checkpoint bytes changed")
|
| 175 |
+
metadata = verify_metadata(*sources)
|
| 176 |
+
models = [
|
| 177 |
+
AutoModel.from_pretrained(
|
| 178 |
+
path,
|
| 179 |
+
local_files_only=True,
|
| 180 |
+
torch_dtype=torch.float32,
|
| 181 |
+
attn_implementation="sdpa",
|
| 182 |
+
reference_compile=False,
|
| 183 |
+
).eval()
|
| 184 |
+
for path in sources
|
| 185 |
+
]
|
| 186 |
+
compatibility = verify_models(*models)
|
| 187 |
+
if compatibility["parameters"] != 306939648:
|
| 188 |
+
raise ValueError("Unexpected encoder parameter count")
|
| 189 |
+
stored_dtypes = []
|
| 190 |
+
for path in sources:
|
| 191 |
+
with safe_open(
|
| 192 |
+
path / "model.safetensors", framework="pt", device="cpu"
|
| 193 |
+
) as archive:
|
| 194 |
+
stored_dtypes.append(
|
| 195 |
+
sorted(
|
| 196 |
+
{str(archive.get_slice(key).get_dtype()) for key in archive.keys()}
|
| 197 |
+
)
|
| 198 |
+
)
|
| 199 |
+
thresholds = json.loads(args.constraints.read_text())["thresholds"]
|
| 200 |
+
if thresholds != prior["thresholds"]:
|
| 201 |
+
raise ValueError("Refinement may not change the original five thresholds")
|
| 202 |
+
if set(thresholds) != {"short", "long", "tail", "sts", "natural"}:
|
| 203 |
+
raise ValueError("Unexpected gates")
|
| 204 |
+
args.output.mkdir(parents=True)
|
| 205 |
+
report = {
|
| 206 |
+
"method": "FP32 parameter-only weighted sum: (1-alpha)*original + alpha*clean1-last; no optimization steps",
|
| 207 |
+
"alphas": list(ALPHAS),
|
| 208 |
+
"prior_development_sha256": sha(args.prior_development),
|
| 209 |
+
"refinement_policy": "One predeclared .55/.60/.65 refinement after the preserved initial .25/.50/.75 failure; all five gates and selection objective unchanged; no final scores used",
|
| 210 |
+
"source_weights_sha256": dict(zip(("original", "clean1_last"), actual)),
|
| 211 |
+
"source_stored_dtypes": stored_dtypes,
|
| 212 |
+
"compatibility": compatibility,
|
| 213 |
+
"metadata": metadata,
|
| 214 |
+
"constraints_sha256": sha(args.constraints),
|
| 215 |
+
"thresholds": thresholds,
|
| 216 |
+
"development_only": True,
|
| 217 |
+
"selection_objective": "Among candidates passing every original fixed gate, maximize long macro + .25 short judged-pool nDCG; ties prefer smaller alpha.",
|
| 218 |
+
"script_sha256": sha(__file__),
|
| 219 |
+
"candidates": {},
|
| 220 |
+
"complete": False,
|
| 221 |
+
}
|
| 222 |
+
for alpha in ALPHAS:
|
| 223 |
+
label = f"alpha-{alpha:.2f}"
|
| 224 |
+
dest = args.output / label
|
| 225 |
+
model = interpolate(*models, alpha)
|
| 226 |
+
set_vela_representation_contract(model.config, "embedding")
|
| 227 |
+
model.save_pretrained(dest, safe_serialization=True)
|
| 228 |
+
for name in (
|
| 229 |
+
"modules.json",
|
| 230 |
+
"sentence_bert_config.json",
|
| 231 |
+
"config_sentence_transformers.json",
|
| 232 |
+
"special_tokens_map.json",
|
| 233 |
+
"tokenizer.json",
|
| 234 |
+
"tokenizer_config.json",
|
| 235 |
+
):
|
| 236 |
+
shutil.copy2(args.original / name, dest / name)
|
| 237 |
+
shutil.copytree(args.original / "1_Pooling", dest / "1_Pooling")
|
| 238 |
+
report["candidates"][label] = {
|
| 239 |
+
"alpha": alpha,
|
| 240 |
+
"files_sha256": {
|
| 241 |
+
str(p.relative_to(dest)): sha(p)
|
| 242 |
+
for p in sorted(dest.rglob("*"))
|
| 243 |
+
if p.is_file()
|
| 244 |
+
},
|
| 245 |
+
"parameters_only": True,
|
| 246 |
+
"buffers_from": "original",
|
| 247 |
+
}
|
| 248 |
+
(args.output / "interpolation.json").write_text(
|
| 249 |
+
json.dumps(report, indent=2, allow_nan=False) + "\n"
|
| 250 |
+
)
|
| 251 |
+
print(
|
| 252 |
+
json.dumps(
|
| 253 |
+
{
|
| 254 |
+
"candidate": label,
|
| 255 |
+
"weights_sha256": report["candidates"][label]["files_sha256"][
|
| 256 |
+
"model.safetensors"
|
| 257 |
+
],
|
| 258 |
+
}
|
| 259 |
+
),
|
| 260 |
+
flush=True,
|
| 261 |
+
)
|
| 262 |
+
del model
|
| 263 |
+
if tuple(sha(path / "model.safetensors") for path in sources) != actual:
|
| 264 |
+
raise ValueError("Endpoint mutated")
|
| 265 |
+
report["complete"] = True
|
| 266 |
+
(args.output / "interpolation.json").write_text(
|
| 267 |
+
json.dumps(report, indent=2, allow_nan=False) + "\n"
|
| 268 |
+
)
|
| 269 |
+
print(
|
| 270 |
+
json.dumps(
|
| 271 |
+
{
|
| 272 |
+
"compatibility": compatibility,
|
| 273 |
+
"report_sha256": sha(args.output / "interpolation.json"),
|
| 274 |
+
}
|
| 275 |
+
),
|
| 276 |
+
flush=True,
|
| 277 |
+
)
|
| 278 |
+
|
| 279 |
+
|
| 280 |
+
if __name__ == "__main__":
|
| 281 |
+
main()
|
reproduction/build_embedding_native_composition.py
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Four frozen DEV-only FP32 parameter combinations; never consume final scores."""
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
import copy
|
| 5 |
+
import json
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
import shutil
|
| 8 |
+
|
| 9 |
+
import torch
|
| 10 |
+
from transformers import AutoModel
|
| 11 |
+
from build_embedding_interpolation_v2 import (
|
| 12 |
+
canonical_sha,
|
| 13 |
+
sha,
|
| 14 |
+
verify_metadata,
|
| 15 |
+
verify_models,
|
| 16 |
+
set_vela_representation_contract,
|
| 17 |
+
)
|
| 18 |
+
|
| 19 |
+
PLAN_SHA256 = "65fb796aa7660e0142fb1216c7f2f9a575a27aab7c9658032782830f2060a8da"
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
def load_plan(path):
|
| 23 |
+
if sha(path) != PLAN_SHA256:
|
| 24 |
+
raise ValueError("Composition plan changed")
|
| 25 |
+
return json.loads(Path(path).read_text())
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
def combine(base, other, alpha):
|
| 29 |
+
if not 0 <= alpha <= 1:
|
| 30 |
+
raise ValueError("Only convex parameter combinations are supported")
|
| 31 |
+
verify_models(base, other)
|
| 32 |
+
result = copy.deepcopy(base)
|
| 33 |
+
right = dict(other.named_parameters())
|
| 34 |
+
with torch.no_grad():
|
| 35 |
+
for key, parameter in result.named_parameters():
|
| 36 |
+
# Equal endpoint tensors remain bit-identical; never round frozen
|
| 37 |
+
# equal parameters through separate weighted multiplies.
|
| 38 |
+
parameter.add_(right[key] - parameter, alpha=alpha)
|
| 39 |
+
if not torch.isfinite(parameter).all():
|
| 40 |
+
raise ValueError("Nonfinite combined parameter")
|
| 41 |
+
return result
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def parameter_delta(left, right):
|
| 45 |
+
right = dict(right.named_parameters())
|
| 46 |
+
count = 0
|
| 47 |
+
square = 0.0
|
| 48 |
+
maximum = 0.0
|
| 49 |
+
groups = {}
|
| 50 |
+
for name, parameter in left.named_parameters():
|
| 51 |
+
delta = parameter.detach() - right[name].detach()
|
| 52 |
+
if torch.count_nonzero(delta):
|
| 53 |
+
count += 1
|
| 54 |
+
norm2 = float(delta.double().square().sum())
|
| 55 |
+
square += norm2
|
| 56 |
+
maximum = max(maximum, float(delta.abs().max()))
|
| 57 |
+
group = ".".join(name.split(".")[:2])
|
| 58 |
+
groups[group] = groups.get(group, 0.0) + norm2
|
| 59 |
+
return {
|
| 60 |
+
"changed_parameter_tensors": count,
|
| 61 |
+
"l2": square**0.5,
|
| 62 |
+
"max_abs": maximum,
|
| 63 |
+
"group_squared_l2": groups,
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
def main():
|
| 68 |
+
parser = argparse.ArgumentParser(description=__doc__)
|
| 69 |
+
for name in ("root", "plan", "output"):
|
| 70 |
+
parser.add_argument("--" + name, required=True, type=Path)
|
| 71 |
+
args = parser.parse_args()
|
| 72 |
+
plan = load_plan(args.plan)
|
| 73 |
+
if args.output.exists():
|
| 74 |
+
raise FileExistsError(args.output)
|
| 75 |
+
torch.set_num_threads(8)
|
| 76 |
+
sources = {
|
| 77 |
+
"original": args.root / "models/mmbert-embed-32k-2d-matryoshka",
|
| 78 |
+
"native960": args.root / "vela/embedding-native-rows-repair-v1/step-960",
|
| 79 |
+
"native1440": args.root / "vela/embedding-native-rows-repair-v1/step-1440",
|
| 80 |
+
"clean1": args.root / "vela/embedding-long-clean1/last",
|
| 81 |
+
}
|
| 82 |
+
if {
|
| 83 |
+
name: sha(path / "model.safetensors") for name, path in sources.items()
|
| 84 |
+
} != plan["source_weights_sha256"]:
|
| 85 |
+
raise ValueError("Source checkpoint bytes changed")
|
| 86 |
+
models, metadata, compatibility = {}, {}, {}
|
| 87 |
+
for name, path in sources.items():
|
| 88 |
+
if name != "original":
|
| 89 |
+
metadata[name] = verify_metadata(sources["original"], path)
|
| 90 |
+
model, loading = AutoModel.from_pretrained(
|
| 91 |
+
path,
|
| 92 |
+
local_files_only=True,
|
| 93 |
+
torch_dtype=torch.float32,
|
| 94 |
+
attn_implementation="sdpa",
|
| 95 |
+
reference_compile=False,
|
| 96 |
+
output_loading_info=True,
|
| 97 |
+
)
|
| 98 |
+
if any(
|
| 99 |
+
loading.get(key)
|
| 100 |
+
for key in (
|
| 101 |
+
"missing_keys",
|
| 102 |
+
"unexpected_keys",
|
| 103 |
+
"mismatched_keys",
|
| 104 |
+
"error_msgs",
|
| 105 |
+
)
|
| 106 |
+
):
|
| 107 |
+
raise ValueError("Incomplete checkpoint loading: " + str(loading))
|
| 108 |
+
models[name] = model.eval()
|
| 109 |
+
if name != "original":
|
| 110 |
+
compatibility[name] = verify_models(models["original"], model)
|
| 111 |
+
if compatibility[name]["parameters"] != 306939648:
|
| 112 |
+
raise ValueError("Unexpected encoder parameter count")
|
| 113 |
+
deltas = {
|
| 114 |
+
name: parameter_delta(model, models["original"])
|
| 115 |
+
for name, model in models.items()
|
| 116 |
+
if name != "original"
|
| 117 |
+
}
|
| 118 |
+
report = {
|
| 119 |
+
"plan_sha256": PLAN_SHA256,
|
| 120 |
+
"development_only": True,
|
| 121 |
+
"complete": False,
|
| 122 |
+
"plan": plan,
|
| 123 |
+
"metadata": metadata,
|
| 124 |
+
"compatibility": compatibility,
|
| 125 |
+
"source_parameter_deltas_from_original": deltas,
|
| 126 |
+
"source_files_sha256": {
|
| 127 |
+
name: {
|
| 128 |
+
key: sha(path / key)
|
| 129 |
+
for key in ("model.safetensors", "config.json", "tokenizer.json")
|
| 130 |
+
}
|
| 131 |
+
for name, path in sources.items()
|
| 132 |
+
},
|
| 133 |
+
"script_sha256": sha(__file__),
|
| 134 |
+
"compatibility_helper_sha256": sha(
|
| 135 |
+
Path(__file__).with_name("build_embedding_interpolation_v2.py")
|
| 136 |
+
),
|
| 137 |
+
"candidates": {},
|
| 138 |
+
}
|
| 139 |
+
args.output.mkdir(parents=True)
|
| 140 |
+
shutil.copy2(args.plan, args.output / "plan.json")
|
| 141 |
+
manifest = args.output / "composition.json"
|
| 142 |
+
manifest.write_text(json.dumps(report, indent=2, allow_nan=False) + "\n")
|
| 143 |
+
for choice in plan["candidates"]:
|
| 144 |
+
name = choice["name"]
|
| 145 |
+
combined = combine(
|
| 146 |
+
models[choice["base"]], models[choice["other"]], choice["alpha"]
|
| 147 |
+
)
|
| 148 |
+
set_vela_representation_contract(combined.config, "embedding")
|
| 149 |
+
output = args.output / name
|
| 150 |
+
combined.save_pretrained(output, safe_serialization=True)
|
| 151 |
+
for auxiliary in (
|
| 152 |
+
"modules.json",
|
| 153 |
+
"sentence_bert_config.json",
|
| 154 |
+
"config_sentence_transformers.json",
|
| 155 |
+
"special_tokens_map.json",
|
| 156 |
+
"tokenizer.json",
|
| 157 |
+
"tokenizer_config.json",
|
| 158 |
+
):
|
| 159 |
+
shutil.copy2(sources["original"] / auxiliary, output / auxiliary)
|
| 160 |
+
shutil.copytree(sources["original"] / "1_Pooling", output / "1_Pooling")
|
| 161 |
+
# Verify after serialization using native FP32 construction; later DEV
|
| 162 |
+
# independently reloads FP16 Parameters and native FP32 buffers.
|
| 163 |
+
loaded = AutoModel.from_pretrained(
|
| 164 |
+
output,
|
| 165 |
+
local_files_only=True,
|
| 166 |
+
torch_dtype=torch.float32,
|
| 167 |
+
attn_implementation="sdpa",
|
| 168 |
+
reference_compile=False,
|
| 169 |
+
).eval()
|
| 170 |
+
verify_models(combined, loaded)
|
| 171 |
+
if any(
|
| 172 |
+
not torch.equal(value, dict(loaded.named_parameters())[key])
|
| 173 |
+
for key, value in combined.named_parameters()
|
| 174 |
+
):
|
| 175 |
+
raise ValueError("Saved combination parameter changed")
|
| 176 |
+
report["candidates"][name] = {
|
| 177 |
+
"choice": choice,
|
| 178 |
+
"parameter_delta_from_original": parameter_delta(
|
| 179 |
+
combined, models["original"]
|
| 180 |
+
),
|
| 181 |
+
"parameter_delta_from_native1440": parameter_delta(
|
| 182 |
+
combined, models["native1440"]
|
| 183 |
+
),
|
| 184 |
+
"files_sha256": {
|
| 185 |
+
str(path.relative_to(output)): sha(path)
|
| 186 |
+
for path in sorted(output.rglob("*"))
|
| 187 |
+
if path.is_file()
|
| 188 |
+
},
|
| 189 |
+
"parameters_only": True,
|
| 190 |
+
"unchanged_native_buffers": compatibility["native1440"]["buffers"],
|
| 191 |
+
}
|
| 192 |
+
manifest.write_text(json.dumps(report, indent=2, allow_nan=False) + "\n")
|
| 193 |
+
print(
|
| 194 |
+
json.dumps(
|
| 195 |
+
{
|
| 196 |
+
"candidate": name,
|
| 197 |
+
"weights_sha256": report["candidates"][name]["files_sha256"][
|
| 198 |
+
"model.safetensors"
|
| 199 |
+
],
|
| 200 |
+
}
|
| 201 |
+
),
|
| 202 |
+
flush=True,
|
| 203 |
+
)
|
| 204 |
+
del combined, loaded
|
| 205 |
+
if {
|
| 206 |
+
name: sha(path / "model.safetensors") for name, path in sources.items()
|
| 207 |
+
} != plan["source_weights_sha256"]:
|
| 208 |
+
raise ValueError("Source bytes were modified")
|
| 209 |
+
report["complete"] = True
|
| 210 |
+
manifest.write_text(json.dumps(report, indent=2, allow_nan=False) + "\n")
|
| 211 |
+
print(
|
| 212 |
+
json.dumps({"complete": True, "composition_sha256": sha(manifest)}), flush=True
|
| 213 |
+
)
|
| 214 |
+
|
| 215 |
+
|
| 216 |
+
if __name__ == "__main__":
|
| 217 |
+
main()
|
reproduction/candle/README.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Frozen Embedding Candle CPU qualification
|
| 2 |
+
|
| 3 |
+
`validate_candle.py` runs the actual `init_mmbert_embedding_model`, `get_embedding_2d_matryoshka`, `embedding_text_exceeds_window`, and `free_embedding` C ABI. It pins the model, tokenizer, configuration and library by SHA256 before loading. The comparison is against the same native HF weights in FP32, with inference autocast disabled and the explicit Vela representation contract.
|
| 4 |
+
|
| 5 |
+
The numerical gate is fixed before inference: elementwise atol=2e-4, rtol=1e-4, and cosine >=0.99999. No tolerance is adjusted after inspecting results.
|
| 6 |
+
|
| 7 |
+
```sh
|
| 8 |
+
OMP_NUM_THREADS=8 RAYON_NUM_THREADS=8 TOKENIZERS_PARALLELISM=false \
|
| 9 |
+
python validate_candle.py --model /path/to/frozen/model \
|
| 10 |
+
--library /path/to/libcandle_semantic_router.so \
|
| 11 |
+
--source /path/to/semantic-router --output /path/to/new/evidence
|
| 12 |
+
```
|
| 13 |
+
|
| 14 |
+
The script requires Torch, Transformers, NumPy and the supplied repository's `mmbert_32k.representation_outputs` module. It reads no task-quality final or test dataset. `inputs.jsonl` contains authored engine fixtures, including repeated neutral filler; these are numerical and functional probes, not long-document quality evidence. Exact lengths come from the frozen tokenizer's actual encode path, including BOS and EOS.
|
| 15 |
+
|
| 16 |
+
Two short texts execute all four advertised layers and five dimensions through the FFI. Boundary lengths execute the full22-layer768-dimensional path. Each32K layer is a separate real FFI invocation at768 dimensions; comparisons at smaller32K dimensions are explicitly marked as derived, not separate API executions. This entrypoint is single-input; no native batched-padding claim is made.
|
| 17 |
+
|
| 18 |
+
Every returned vector allocation is freed once using its exact returned length, including repeated calls. The model is a process-global singleton with no teardown API, so these checks cover result-buffer release, not model unload. Existing FFI nonpositive layer/dimension values choose defaults. Its `sequence_length` field counts whitespace-separated words; the evidence separately records the true tokenizer length and does not mislabel that legacy field as token count.
|
| 19 |
+
|
| 20 |
+
`qualification-v1/report.json` is incremental until `complete:true`. Only then may `all_pass` be interpreted. Raw vectors and the HF FP32 references are retained in separate NPZ files; inference wall times are CPU engine measurements, not Router HTTP or accelerator latency.
|
| 21 |
+
|
| 22 |
+
## Published evidence and rebuilt libraries
|
| 23 |
+
|
| 24 |
+
The primary and aggregate reports and retained vectors are the original completed evidence. Their source-script digests describe the executed originals. `publication-adaptations.json` maps those originals to the public copies, which replace task-specific paths with command-line arguments and allow an explicit expected library digest. Rebuilt libraries can have different byte digests; passing their digest does not make them the originally qualified binary. The same numerical checks must pass independently.
|
| 25 |
+
|
| 26 |
+
The default `--expected-library-sha256` is the qualified library digest. For a new build, supply the SHA256 you independently computed. `short_reference.py` accepts `--root`, `--model`, `--library`, and `--source`; use a new root containing the neutral `qualification-v1/inputs.jsonl` so the preserved short report is not overwritten. To recompute saved-vector cosine in FP64 without loading a model:
|
| 27 |
+
|
| 28 |
+
```sh
|
| 29 |
+
python summarize_candle.py --root . --output aggregate-recomputed.json
|
| 30 |
+
```
|
| 31 |
+
|
| 32 |
+
This computes new arithmetic summaries from the unchanged retained arrays. It cannot establish task quality or benchmark performance.
|
reproduction/candle/aggregate.json
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"complete": true,
|
| 3 |
+
"all_pass": true,
|
| 4 |
+
"scope": "Candle CPU FFI against the same frozen native weights through Transformers CPU FP32. Engine equivalence, not a task-quality benchmark.",
|
| 5 |
+
"model_sha256": {
|
| 6 |
+
"model.safetensors": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 7 |
+
"config.json": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 8 |
+
"tokenizer.json": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c"
|
| 9 |
+
},
|
| 10 |
+
"library_sha256": "0eefcc9e21bf790efd3861cd6f1ddc396774dd65d65aa67e097c4ed9691e72a6",
|
| 11 |
+
"source_sha256": {
|
| 12 |
+
"candle-binding/src/ffi/embedding.rs": "dd18a095c6174ae39b98107e83e22f51ac3e880cfefbd3e69ba7ae46e21d284e",
|
| 13 |
+
"candle-binding/src/ffi/types.rs": "a71d3f7b22132d0f0902051e4bc3a36634ac3275c8932b00d21424751d06d236",
|
| 14 |
+
"candle-binding/src/ffi/memory.rs": "0193f8754c8e78e6c40b6740905d4bf1b0289f484f5321580d351a2c0ff20d64",
|
| 15 |
+
"candle-binding/src/model_architectures/embedding/mmbert_embedding.rs": "dc8f1a238cd5f2c38a77f699bffd22ac482eff4702d87f0a9052f4787463a2c8",
|
| 16 |
+
"src/training/model_embeddings/mmbert_32k/representation_outputs.py": "9f2c8cab7a71a08e38c992ef484d093ecebde592023f252db529652a8c759901"
|
| 17 |
+
},
|
| 18 |
+
"versions": {
|
| 19 |
+
"torch": "2.10.0+rocm7.0",
|
| 20 |
+
"transformers": "4.57.6",
|
| 21 |
+
"numpy": "2.5.3"
|
| 22 |
+
},
|
| 23 |
+
"gate": {
|
| 24 |
+
"vector_atol": 0.0002,
|
| 25 |
+
"vector_rtol": 0.0001,
|
| 26 |
+
"cosine_min": 0.99999
|
| 27 |
+
},
|
| 28 |
+
"actual_ffi_case_count": 60,
|
| 29 |
+
"functional_and_derived_check_count": 26,
|
| 30 |
+
"max_abs_error": 2.5391578674316406e-05,
|
| 31 |
+
"minimum_cosine_fp64": 0.9999999907799374,
|
| 32 |
+
"cosine_note": "This summary recomputes both norms and the dot product in FP64 from the retained vectors. The unchanged primary report used FP32 norms, which can round slightly above one. No model inference or numerical threshold was changed.",
|
| 33 |
+
"long_actual_calls": [
|
| 34 |
+
{
|
| 35 |
+
"input_id": "tokens-32768",
|
| 36 |
+
"layer": 3,
|
| 37 |
+
"dimension": 768,
|
| 38 |
+
"max_abs_error": 2.5391578674316406e-05,
|
| 39 |
+
"cosine_fp64": 0.9999999994151797,
|
| 40 |
+
"pass": true
|
| 41 |
+
},
|
| 42 |
+
{
|
| 43 |
+
"input_id": "tokens-32768",
|
| 44 |
+
"layer": 6,
|
| 45 |
+
"dimension": 768,
|
| 46 |
+
"max_abs_error": 3.516674041748047e-06,
|
| 47 |
+
"cosine_fp64": 0.9999999999487885,
|
| 48 |
+
"pass": true
|
| 49 |
+
},
|
| 50 |
+
{
|
| 51 |
+
"input_id": "tokens-32768",
|
| 52 |
+
"layer": 11,
|
| 53 |
+
"dimension": 768,
|
| 54 |
+
"max_abs_error": 4.410743713378906e-06,
|
| 55 |
+
"cosine_fp64": 0.9999999998132494,
|
| 56 |
+
"pass": true
|
| 57 |
+
},
|
| 58 |
+
{
|
| 59 |
+
"input_id": "tokens-32768",
|
| 60 |
+
"layer": 22,
|
| 61 |
+
"dimension": 768,
|
| 62 |
+
"max_abs_error": 1.7130747437477112e-05,
|
| 63 |
+
"cosine_fp64": 0.9999999907799374,
|
| 64 |
+
"pass": true
|
| 65 |
+
}
|
| 66 |
+
],
|
| 67 |
+
"long_derived_dimensions": [
|
| 68 |
+
{
|
| 69 |
+
"layer": 3,
|
| 70 |
+
"dimension": 64,
|
| 71 |
+
"max_abs_error": 2.0742416381835938e-05,
|
| 72 |
+
"cosine_fp64": 0.9999999996990654,
|
| 73 |
+
"pass": true,
|
| 74 |
+
"separate_ffi_invocation": false
|
| 75 |
+
},
|
| 76 |
+
{
|
| 77 |
+
"layer": 3,
|
| 78 |
+
"dimension": 128,
|
| 79 |
+
"max_abs_error": 1.671910285949707e-05,
|
| 80 |
+
"cosine_fp64": 0.9999999997413231,
|
| 81 |
+
"pass": true,
|
| 82 |
+
"separate_ffi_invocation": false
|
| 83 |
+
},
|
| 84 |
+
{
|
| 85 |
+
"layer": 3,
|
| 86 |
+
"dimension": 256,
|
| 87 |
+
"max_abs_error": 1.2248754501342773e-05,
|
| 88 |
+
"cosine_fp64": 0.9999999997443485,
|
| 89 |
+
"pass": true,
|
| 90 |
+
"separate_ffi_invocation": false
|
| 91 |
+
},
|
| 92 |
+
{
|
| 93 |
+
"layer": 3,
|
| 94 |
+
"dimension": 512,
|
| 95 |
+
"max_abs_error": 8.553266525268555e-06,
|
| 96 |
+
"cosine_fp64": 0.9999999998376079,
|
| 97 |
+
"pass": true,
|
| 98 |
+
"separate_ffi_invocation": false
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"layer": 6,
|
| 102 |
+
"dimension": 64,
|
| 103 |
+
"max_abs_error": 7.331371307373047e-06,
|
| 104 |
+
"cosine_fp64": 0.9999999999378367,
|
| 105 |
+
"pass": true,
|
| 106 |
+
"separate_ffi_invocation": false
|
| 107 |
+
},
|
| 108 |
+
{
|
| 109 |
+
"layer": 6,
|
| 110 |
+
"dimension": 128,
|
| 111 |
+
"max_abs_error": 6.705522537231445e-06,
|
| 112 |
+
"cosine_fp64": 0.999999999933312,
|
| 113 |
+
"pass": true,
|
| 114 |
+
"separate_ffi_invocation": false
|
| 115 |
+
},
|
| 116 |
+
{
|
| 117 |
+
"layer": 6,
|
| 118 |
+
"dimension": 256,
|
| 119 |
+
"max_abs_error": 5.4836273193359375e-06,
|
| 120 |
+
"cosine_fp64": 0.999999999934767,
|
| 121 |
+
"pass": true,
|
| 122 |
+
"separate_ffi_invocation": false
|
| 123 |
+
},
|
| 124 |
+
{
|
| 125 |
+
"layer": 6,
|
| 126 |
+
"dimension": 512,
|
| 127 |
+
"max_abs_error": 3.7997961044311523e-06,
|
| 128 |
+
"cosine_fp64": 0.9999999999413497,
|
| 129 |
+
"pass": true,
|
| 130 |
+
"separate_ffi_invocation": false
|
| 131 |
+
},
|
| 132 |
+
{
|
| 133 |
+
"layer": 11,
|
| 134 |
+
"dimension": 64,
|
| 135 |
+
"max_abs_error": 5.453824996948242e-06,
|
| 136 |
+
"cosine_fp64": 0.9999999998581759,
|
| 137 |
+
"pass": true,
|
| 138 |
+
"separate_ffi_invocation": false
|
| 139 |
+
},
|
| 140 |
+
{
|
| 141 |
+
"layer": 11,
|
| 142 |
+
"dimension": 128,
|
| 143 |
+
"max_abs_error": 5.207955837249756e-06,
|
| 144 |
+
"cosine_fp64": 0.9999999998220728,
|
| 145 |
+
"pass": true,
|
| 146 |
+
"separate_ffi_invocation": false
|
| 147 |
+
},
|
| 148 |
+
{
|
| 149 |
+
"layer": 11,
|
| 150 |
+
"dimension": 256,
|
| 151 |
+
"max_abs_error": 4.231929779052734e-06,
|
| 152 |
+
"cosine_fp64": 0.9999999997576076,
|
| 153 |
+
"pass": true,
|
| 154 |
+
"separate_ffi_invocation": false
|
| 155 |
+
},
|
| 156 |
+
{
|
| 157 |
+
"layer": 11,
|
| 158 |
+
"dimension": 512,
|
| 159 |
+
"max_abs_error": 2.9169023036956787e-06,
|
| 160 |
+
"cosine_fp64": 0.9999999997663125,
|
| 161 |
+
"pass": true,
|
| 162 |
+
"separate_ffi_invocation": false
|
| 163 |
+
},
|
| 164 |
+
{
|
| 165 |
+
"layer": 22,
|
| 166 |
+
"dimension": 64,
|
| 167 |
+
"max_abs_error": 3.7863850593566895e-05,
|
| 168 |
+
"cosine_fp64": 0.9999999913652787,
|
| 169 |
+
"pass": true,
|
| 170 |
+
"separate_ffi_invocation": false
|
| 171 |
+
},
|
| 172 |
+
{
|
| 173 |
+
"layer": 22,
|
| 174 |
+
"dimension": 128,
|
| 175 |
+
"max_abs_error": 2.9355287551879883e-05,
|
| 176 |
+
"cosine_fp64": 0.9999999921722509,
|
| 177 |
+
"pass": true,
|
| 178 |
+
"separate_ffi_invocation": false
|
| 179 |
+
},
|
| 180 |
+
{
|
| 181 |
+
"layer": 22,
|
| 182 |
+
"dimension": 256,
|
| 183 |
+
"max_abs_error": 2.655666321516037e-05,
|
| 184 |
+
"cosine_fp64": 0.9999999900902025,
|
| 185 |
+
"pass": true,
|
| 186 |
+
"separate_ffi_invocation": false
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"layer": 22,
|
| 190 |
+
"dimension": 512,
|
| 191 |
+
"max_abs_error": 1.857895404100418e-05,
|
| 192 |
+
"cosine_fp64": 0.999999990635099,
|
| 193 |
+
"pass": true,
|
| 194 |
+
"separate_ffi_invocation": false
|
| 195 |
+
}
|
| 196 |
+
],
|
| 197 |
+
"additional_short_matrix": {
|
| 198 |
+
"actual_ffi_cases": 80,
|
| 199 |
+
"all_pass": true,
|
| 200 |
+
"max_abs_error": 1.0728836059570312e-06,
|
| 201 |
+
"scope": "Additional short-only CPU FP32 comparison; no long or batch claim. Same frozen gate, not replacing ongoing long proof."
|
| 202 |
+
},
|
| 203 |
+
"coverage_and_limits": {
|
| 204 |
+
"short": "Two multilingual texts: every advertised4 layers x5 dimensions through real FFI",
|
| 205 |
+
"boundaries": "Full22x768 real FFI at2,63,64,65,127,128,129,512,4096 tokens",
|
| 206 |
+
"long": "32768 tokens, four real FFI calls at layers3/6/11/22 x768; smaller dimensions derived, not separately executed",
|
| 207 |
+
"batch": "This FFI entry is B1 only; no native B2 qualification claimed",
|
| 208 |
+
"ownership": "Each returned allocation freed exactly once via free_embedding. Global model singleton has no release API; result-buffer release is tested, not model teardown."
|
| 209 |
+
},
|
| 210 |
+
"timing_note": "Single CPU qualification forwards are recorded in the primary report. They are neither a warm latency benchmark nor Router HTTP or accelerator latency.",
|
| 211 |
+
"artifacts": {
|
| 212 |
+
"validate_candle.py": {
|
| 213 |
+
"sha256": "5bd589fb2160385ab6899ebfdc4e317efa88192cc806382aa71374a6efead5b8",
|
| 214 |
+
"bytes": 10150
|
| 215 |
+
},
|
| 216 |
+
"short_reference.py": {
|
| 217 |
+
"sha256": "ca7dfee99b4f990c12e12a5e9da652a77bb6440f7195c9773ff6b32ccaf446d6",
|
| 218 |
+
"bytes": 3826
|
| 219 |
+
},
|
| 220 |
+
"summarize_candle.py": {
|
| 221 |
+
"sha256": "17f0678f8338e134109d9880ace170aef84ac48a693b9f347320d36b128821c6",
|
| 222 |
+
"bytes": 5273
|
| 223 |
+
},
|
| 224 |
+
"README.md": {
|
| 225 |
+
"sha256": "657aa22f2029a2541f48faf72fefc43c7a5158e029d0adeb26a9c0a7abeaf022",
|
| 226 |
+
"bytes": 2406
|
| 227 |
+
},
|
| 228 |
+
"qualification-v1/report.json": {
|
| 229 |
+
"sha256": "d16edae02cb85ed93be89d562d797a5e5c9aeaaa61609b7ec65f6817f4473fc4",
|
| 230 |
+
"bytes": 35630
|
| 231 |
+
},
|
| 232 |
+
"qualification-v1/inputs.jsonl": {
|
| 233 |
+
"sha256": "617295b3aa1fa67310a282302b7d2f099fb501a63a633a35ad6f27546a9536b4",
|
| 234 |
+
"bytes": 355406
|
| 235 |
+
},
|
| 236 |
+
"qualification-v1/native-vectors.npz": {
|
| 237 |
+
"sha256": "79e5172d95147325f39859effd7f80f65a8bce95ac187707ea6b4fc813ffcee2",
|
| 238 |
+
"bytes": 115800
|
| 239 |
+
},
|
| 240 |
+
"qualification-v1/hf-fp32-vectors.npz": {
|
| 241 |
+
"sha256": "9610e70d992ece3ebc4eff4a8b0d4cfab3597363594836d928c2c581d12fab5f",
|
| 242 |
+
"bytes": 395062
|
| 243 |
+
},
|
| 244 |
+
"short-reference-v1/report.json": {
|
| 245 |
+
"sha256": "c4a2af07731984ddbd69d69fc075f5125b0dad4df0262af61225a776805b7315",
|
| 246 |
+
"bytes": 14624
|
| 247 |
+
}
|
| 248 |
+
}
|
| 249 |
+
}
|
reproduction/candle/publication-adaptations.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"validate_candle.py": {
|
| 3 |
+
"source_sha256": "5bd589fb2160385ab6899ebfdc4e317efa88192cc806382aa71374a6efead5b8",
|
| 4 |
+
"published_sha256": "552c0cc12662cd54c02ab1b75b11b1b52e347bf13c07d1208470f178962602b3",
|
| 5 |
+
"adaptation": "Replace experiment-local paths with explicit CLI arguments; allow an explicit expected library digest; no model, fixture, numerical equation, or tolerance changes."
|
| 6 |
+
},
|
| 7 |
+
"short_reference.py": {
|
| 8 |
+
"source_sha256": "ca7dfee99b4f990c12e12a5e9da652a77bb6440f7195c9773ff6b32ccaf446d6",
|
| 9 |
+
"published_sha256": "9bf77b5e3e72a076619bdfe453558994720a340295d4b05cf9a04812edada7a8",
|
| 10 |
+
"adaptation": "Replace experiment-local paths with explicit CLI arguments; allow an explicit expected library digest; no model, fixture, numerical equation, or tolerance changes."
|
| 11 |
+
},
|
| 12 |
+
"summarize_candle.py": {
|
| 13 |
+
"source_sha256": "17f0678f8338e134109d9880ace170aef84ac48a693b9f347320d36b128821c6",
|
| 14 |
+
"published_sha256": "395a789947b69fe4bc65b94434947944f5439505266ce1cb9d135cd11f582d51",
|
| 15 |
+
"adaptation": "Replace experiment-local paths with explicit CLI arguments; allow an explicit expected library digest; no model, fixture, numerical equation, or tolerance changes."
|
| 16 |
+
},
|
| 17 |
+
"README.md": {
|
| 18 |
+
"source_sha256": "657aa22f2029a2541f48faf72fefc43c7a5158e029d0adeb26a9c0a7abeaf022",
|
| 19 |
+
"published_sha256": "d9afd156b31ec14de3cfbeb0f53c8cd74528c0380d0f0ae9b9ecc04ac6d451ef",
|
| 20 |
+
"adaptation": "Add publication provenance and portable invocation instructions."
|
| 21 |
+
}
|
| 22 |
+
}
|
reproduction/candle/qualification-v1/hf-fp32-vectors.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9610e70d992ece3ebc4eff4a8b0d4cfab3597363594836d928c2c581d12fab5f
|
| 3 |
+
size 395062
|
reproduction/candle/qualification-v1/inputs.jsonl
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
reproduction/candle/qualification-v1/native-vectors.npz
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:79e5172d95147325f39859effd7f80f65a8bce95ac187707ea6b4fc813ffcee2
|
| 3 |
+
size 115800
|
reproduction/candle/qualification-v1/report.json
ADDED
|
@@ -0,0 +1,1297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_sha256": {
|
| 3 |
+
"model.safetensors": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 4 |
+
"config.json": "1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017",
|
| 5 |
+
"tokenizer.json": "5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c"
|
| 6 |
+
},
|
| 7 |
+
"library_sha256": "0eefcc9e21bf790efd3861cd6f1ddc396774dd65d65aa67e097c4ed9691e72a6",
|
| 8 |
+
"script_sha256": "5bd589fb2160385ab6899ebfdc4e317efa88192cc806382aa71374a6efead5b8",
|
| 9 |
+
"source_sha256": {
|
| 10 |
+
"candle-binding/src/ffi/embedding.rs": "dd18a095c6174ae39b98107e83e22f51ac3e880cfefbd3e69ba7ae46e21d284e",
|
| 11 |
+
"candle-binding/src/ffi/types.rs": "a71d3f7b22132d0f0902051e4bc3a36634ac3275c8932b00d21424751d06d236",
|
| 12 |
+
"candle-binding/src/ffi/memory.rs": "0193f8754c8e78e6c40b6740905d4bf1b0289f484f5321580d351a2c0ff20d64",
|
| 13 |
+
"candle-binding/src/model_architectures/embedding/mmbert_embedding.rs": "dc8f1a238cd5f2c38a77f699bffd22ac482eff4702d87f0a9052f4787463a2c8",
|
| 14 |
+
"src/training/model_embeddings/mmbert_32k/representation_outputs.py": "9f2c8cab7a71a08e38c992ef484d093ecebde592023f252db529652a8c759901"
|
| 15 |
+
},
|
| 16 |
+
"gate": {
|
| 17 |
+
"vector_atol": 0.0002,
|
| 18 |
+
"vector_rtol": 0.0001,
|
| 19 |
+
"cosine_min": 0.99999
|
| 20 |
+
},
|
| 21 |
+
"device": "CPU",
|
| 22 |
+
"threads": 8,
|
| 23 |
+
"precision": "FP32 weights, original FP32 RoPE buffers, FP32 mean and L2; no autocast",
|
| 24 |
+
"coverage": {
|
| 25 |
+
"short": "Two multilingual texts: every advertised4 layers x5 dimensions through real FFI",
|
| 26 |
+
"boundaries": "Full22x768 real FFI at2,63,64,65,127,128,129,512,4096 tokens",
|
| 27 |
+
"long": "32768 tokens, four real FFI calls at layers3/6/11/22 x768; smaller dimensions derived, not separately executed",
|
| 28 |
+
"batch": "This FFI entry is B1 only; no native B2 qualification claimed",
|
| 29 |
+
"ownership": "Each returned allocation freed exactly once via free_embedding. Global model singleton has no release API; result-buffer release is tested, not model teardown."
|
| 30 |
+
},
|
| 31 |
+
"cases": [
|
| 32 |
+
{
|
| 33 |
+
"input_id": "short-en",
|
| 34 |
+
"actual_tokens": 17,
|
| 35 |
+
"layer": 3,
|
| 36 |
+
"dimension": 64,
|
| 37 |
+
"status": 0,
|
| 38 |
+
"error": false,
|
| 39 |
+
"returned_length": 64,
|
| 40 |
+
"ffi_sequence_length_field": 14,
|
| 41 |
+
"wall_seconds": 0.07352404901757836,
|
| 42 |
+
"ffi_ms": 73.51539611816406,
|
| 43 |
+
"finite": true,
|
| 44 |
+
"norm": 0.9999999403953552,
|
| 45 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 46 |
+
"cosine": 0.9999999721808451,
|
| 47 |
+
"pass_parity": true
|
| 48 |
+
},
|
| 49 |
+
{
|
| 50 |
+
"input_id": "short-en",
|
| 51 |
+
"actual_tokens": 17,
|
| 52 |
+
"layer": 3,
|
| 53 |
+
"dimension": 128,
|
| 54 |
+
"status": 0,
|
| 55 |
+
"error": false,
|
| 56 |
+
"returned_length": 128,
|
| 57 |
+
"ffi_sequence_length_field": 14,
|
| 58 |
+
"wall_seconds": 0.04335330193862319,
|
| 59 |
+
"ffi_ms": 43.34237289428711,
|
| 60 |
+
"finite": true,
|
| 61 |
+
"norm": 1.0,
|
| 62 |
+
"max_abs_error": 1.1548399925231934e-07,
|
| 63 |
+
"cosine": 1.0000000192041345,
|
| 64 |
+
"pass_parity": true
|
| 65 |
+
},
|
| 66 |
+
{
|
| 67 |
+
"input_id": "short-en",
|
| 68 |
+
"actual_tokens": 17,
|
| 69 |
+
"layer": 3,
|
| 70 |
+
"dimension": 256,
|
| 71 |
+
"status": 0,
|
| 72 |
+
"error": false,
|
| 73 |
+
"returned_length": 256,
|
| 74 |
+
"ffi_sequence_length_field": 14,
|
| 75 |
+
"wall_seconds": 0.04158396099228412,
|
| 76 |
+
"ffi_ms": 41.574066162109375,
|
| 77 |
+
"finite": true,
|
| 78 |
+
"norm": 1.0,
|
| 79 |
+
"max_abs_error": 1.2665987014770508e-07,
|
| 80 |
+
"cosine": 0.9999999980897961,
|
| 81 |
+
"pass_parity": true
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"input_id": "short-en",
|
| 85 |
+
"actual_tokens": 17,
|
| 86 |
+
"layer": 3,
|
| 87 |
+
"dimension": 512,
|
| 88 |
+
"status": 0,
|
| 89 |
+
"error": false,
|
| 90 |
+
"returned_length": 512,
|
| 91 |
+
"ffi_sequence_length_field": 14,
|
| 92 |
+
"wall_seconds": 0.04126402095425874,
|
| 93 |
+
"ffi_ms": 41.2540397644043,
|
| 94 |
+
"finite": true,
|
| 95 |
+
"norm": 1.000000238418579,
|
| 96 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 97 |
+
"cosine": 0.9999998864747806,
|
| 98 |
+
"pass_parity": true
|
| 99 |
+
},
|
| 100 |
+
{
|
| 101 |
+
"input_id": "short-en",
|
| 102 |
+
"actual_tokens": 17,
|
| 103 |
+
"layer": 3,
|
| 104 |
+
"dimension": 768,
|
| 105 |
+
"status": 0,
|
| 106 |
+
"error": false,
|
| 107 |
+
"returned_length": 768,
|
| 108 |
+
"ffi_sequence_length_field": 14,
|
| 109 |
+
"wall_seconds": 0.04121709696482867,
|
| 110 |
+
"ffi_ms": 41.20733642578125,
|
| 111 |
+
"finite": true,
|
| 112 |
+
"norm": 1.0,
|
| 113 |
+
"max_abs_error": 5.960464477539063e-08,
|
| 114 |
+
"cosine": 1.0000000822871402,
|
| 115 |
+
"pass_parity": true
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"input_id": "short-en",
|
| 119 |
+
"actual_tokens": 17,
|
| 120 |
+
"layer": 6,
|
| 121 |
+
"dimension": 64,
|
| 122 |
+
"status": 0,
|
| 123 |
+
"error": false,
|
| 124 |
+
"returned_length": 64,
|
| 125 |
+
"ffi_sequence_length_field": 14,
|
| 126 |
+
"wall_seconds": 0.05103311699349433,
|
| 127 |
+
"ffi_ms": 51.022483825683594,
|
| 128 |
+
"finite": true,
|
| 129 |
+
"norm": 1.0,
|
| 130 |
+
"max_abs_error": 2.384185791015625e-07,
|
| 131 |
+
"cosine": 1.000000016439566,
|
| 132 |
+
"pass_parity": true
|
| 133 |
+
},
|
| 134 |
+
{
|
| 135 |
+
"input_id": "short-en",
|
| 136 |
+
"actual_tokens": 17,
|
| 137 |
+
"layer": 6,
|
| 138 |
+
"dimension": 128,
|
| 139 |
+
"status": 0,
|
| 140 |
+
"error": false,
|
| 141 |
+
"returned_length": 128,
|
| 142 |
+
"ffi_sequence_length_field": 14,
|
| 143 |
+
"wall_seconds": 0.04765107005368918,
|
| 144 |
+
"ffi_ms": 47.640953063964844,
|
| 145 |
+
"finite": true,
|
| 146 |
+
"norm": 1.0,
|
| 147 |
+
"max_abs_error": 1.7881393432617188e-07,
|
| 148 |
+
"cosine": 1.000000043061299,
|
| 149 |
+
"pass_parity": true
|
| 150 |
+
},
|
| 151 |
+
{
|
| 152 |
+
"input_id": "short-en",
|
| 153 |
+
"actual_tokens": 17,
|
| 154 |
+
"layer": 6,
|
| 155 |
+
"dimension": 256,
|
| 156 |
+
"status": 0,
|
| 157 |
+
"error": false,
|
| 158 |
+
"returned_length": 256,
|
| 159 |
+
"ffi_sequence_length_field": 14,
|
| 160 |
+
"wall_seconds": 0.04859767691232264,
|
| 161 |
+
"ffi_ms": 48.587860107421875,
|
| 162 |
+
"finite": true,
|
| 163 |
+
"norm": 0.9999998211860657,
|
| 164 |
+
"max_abs_error": 1.825392246246338e-07,
|
| 165 |
+
"cosine": 1.0000000028054645,
|
| 166 |
+
"pass_parity": true
|
| 167 |
+
},
|
| 168 |
+
{
|
| 169 |
+
"input_id": "short-en",
|
| 170 |
+
"actual_tokens": 17,
|
| 171 |
+
"layer": 6,
|
| 172 |
+
"dimension": 512,
|
| 173 |
+
"status": 0,
|
| 174 |
+
"error": false,
|
| 175 |
+
"returned_length": 512,
|
| 176 |
+
"ffi_sequence_length_field": 14,
|
| 177 |
+
"wall_seconds": 0.0474844720447436,
|
| 178 |
+
"ffi_ms": 47.47441101074219,
|
| 179 |
+
"finite": true,
|
| 180 |
+
"norm": 1.0000001192092896,
|
| 181 |
+
"max_abs_error": 2.384185791015625e-07,
|
| 182 |
+
"cosine": 0.9999999985733496,
|
| 183 |
+
"pass_parity": true
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"input_id": "short-en",
|
| 187 |
+
"actual_tokens": 17,
|
| 188 |
+
"layer": 6,
|
| 189 |
+
"dimension": 768,
|
| 190 |
+
"status": 0,
|
| 191 |
+
"error": false,
|
| 192 |
+
"returned_length": 768,
|
| 193 |
+
"ffi_sequence_length_field": 14,
|
| 194 |
+
"wall_seconds": 0.04998411796987057,
|
| 195 |
+
"ffi_ms": 49.973751068115234,
|
| 196 |
+
"finite": true,
|
| 197 |
+
"norm": 1.0000001192092896,
|
| 198 |
+
"max_abs_error": 7.450580596923828e-08,
|
| 199 |
+
"cosine": 0.9999999905373957,
|
| 200 |
+
"pass_parity": true
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"input_id": "short-en",
|
| 204 |
+
"actual_tokens": 17,
|
| 205 |
+
"layer": 11,
|
| 206 |
+
"dimension": 64,
|
| 207 |
+
"status": 0,
|
| 208 |
+
"error": false,
|
| 209 |
+
"returned_length": 64,
|
| 210 |
+
"ffi_sequence_length_field": 14,
|
| 211 |
+
"wall_seconds": 0.05827485106419772,
|
| 212 |
+
"ffi_ms": 58.263877868652344,
|
| 213 |
+
"finite": true,
|
| 214 |
+
"norm": 1.0,
|
| 215 |
+
"max_abs_error": 4.470348358154297e-07,
|
| 216 |
+
"cosine": 0.999999958666834,
|
| 217 |
+
"pass_parity": true
|
| 218 |
+
},
|
| 219 |
+
{
|
| 220 |
+
"input_id": "short-en",
|
| 221 |
+
"actual_tokens": 17,
|
| 222 |
+
"layer": 11,
|
| 223 |
+
"dimension": 128,
|
| 224 |
+
"status": 0,
|
| 225 |
+
"error": false,
|
| 226 |
+
"returned_length": 128,
|
| 227 |
+
"ffi_sequence_length_field": 14,
|
| 228 |
+
"wall_seconds": 0.06452716595958918,
|
| 229 |
+
"ffi_ms": 64.51631164550781,
|
| 230 |
+
"finite": true,
|
| 231 |
+
"norm": 1.0000001192092896,
|
| 232 |
+
"max_abs_error": 2.980232238769531e-07,
|
| 233 |
+
"cosine": 1.0000000176256918,
|
| 234 |
+
"pass_parity": true
|
| 235 |
+
},
|
| 236 |
+
{
|
| 237 |
+
"input_id": "short-en",
|
| 238 |
+
"actual_tokens": 17,
|
| 239 |
+
"layer": 11,
|
| 240 |
+
"dimension": 256,
|
| 241 |
+
"status": 0,
|
| 242 |
+
"error": false,
|
| 243 |
+
"returned_length": 256,
|
| 244 |
+
"ffi_sequence_length_field": 14,
|
| 245 |
+
"wall_seconds": 0.06078739196527749,
|
| 246 |
+
"ffi_ms": 60.777183532714844,
|
| 247 |
+
"finite": true,
|
| 248 |
+
"norm": 1.0,
|
| 249 |
+
"max_abs_error": 2.8312206268310547e-07,
|
| 250 |
+
"cosine": 1.0000000965129094,
|
| 251 |
+
"pass_parity": true
|
| 252 |
+
},
|
| 253 |
+
{
|
| 254 |
+
"input_id": "short-en",
|
| 255 |
+
"actual_tokens": 17,
|
| 256 |
+
"layer": 11,
|
| 257 |
+
"dimension": 512,
|
| 258 |
+
"status": 0,
|
| 259 |
+
"error": false,
|
| 260 |
+
"returned_length": 512,
|
| 261 |
+
"ffi_sequence_length_field": 14,
|
| 262 |
+
"wall_seconds": 0.06003961805254221,
|
| 263 |
+
"ffi_ms": 60.02958679199219,
|
| 264 |
+
"finite": true,
|
| 265 |
+
"norm": 1.0000001192092896,
|
| 266 |
+
"max_abs_error": 1.1920928955078125e-07,
|
| 267 |
+
"cosine": 1.0000000463993302,
|
| 268 |
+
"pass_parity": true
|
| 269 |
+
},
|
| 270 |
+
{
|
| 271 |
+
"input_id": "short-en",
|
| 272 |
+
"actual_tokens": 17,
|
| 273 |
+
"layer": 11,
|
| 274 |
+
"dimension": 768,
|
| 275 |
+
"status": 0,
|
| 276 |
+
"error": false,
|
| 277 |
+
"returned_length": 768,
|
| 278 |
+
"ffi_sequence_length_field": 14,
|
| 279 |
+
"wall_seconds": 0.059782386058941483,
|
| 280 |
+
"ffi_ms": 59.77064514160156,
|
| 281 |
+
"finite": true,
|
| 282 |
+
"norm": 0.999999463558197,
|
| 283 |
+
"max_abs_error": 3.5762786865234375e-07,
|
| 284 |
+
"cosine": 1.0000000052344211,
|
| 285 |
+
"pass_parity": true
|
| 286 |
+
},
|
| 287 |
+
{
|
| 288 |
+
"input_id": "short-en",
|
| 289 |
+
"actual_tokens": 17,
|
| 290 |
+
"layer": 22,
|
| 291 |
+
"dimension": 64,
|
| 292 |
+
"status": 0,
|
| 293 |
+
"error": false,
|
| 294 |
+
"returned_length": 64,
|
| 295 |
+
"ffi_sequence_length_field": 14,
|
| 296 |
+
"wall_seconds": 0.08368178806267679,
|
| 297 |
+
"ffi_ms": 83.66869354248047,
|
| 298 |
+
"finite": true,
|
| 299 |
+
"norm": 1.0,
|
| 300 |
+
"max_abs_error": 3.427267074584961e-07,
|
| 301 |
+
"cosine": 0.9999999906121615,
|
| 302 |
+
"pass_parity": true
|
| 303 |
+
},
|
| 304 |
+
{
|
| 305 |
+
"input_id": "short-en",
|
| 306 |
+
"actual_tokens": 17,
|
| 307 |
+
"layer": 22,
|
| 308 |
+
"dimension": 128,
|
| 309 |
+
"status": 0,
|
| 310 |
+
"error": false,
|
| 311 |
+
"returned_length": 128,
|
| 312 |
+
"ffi_sequence_length_field": 14,
|
| 313 |
+
"wall_seconds": 0.09818504704162478,
|
| 314 |
+
"ffi_ms": 98.17113494873047,
|
| 315 |
+
"finite": true,
|
| 316 |
+
"norm": 1.0,
|
| 317 |
+
"max_abs_error": 2.4586915969848633e-07,
|
| 318 |
+
"cosine": 1.0000000724727505,
|
| 319 |
+
"pass_parity": true
|
| 320 |
+
},
|
| 321 |
+
{
|
| 322 |
+
"input_id": "short-en",
|
| 323 |
+
"actual_tokens": 17,
|
| 324 |
+
"layer": 22,
|
| 325 |
+
"dimension": 256,
|
| 326 |
+
"status": 0,
|
| 327 |
+
"error": false,
|
| 328 |
+
"returned_length": 256,
|
| 329 |
+
"ffi_sequence_length_field": 14,
|
| 330 |
+
"wall_seconds": 0.09158447594381869,
|
| 331 |
+
"ffi_ms": 91.57025909423828,
|
| 332 |
+
"finite": true,
|
| 333 |
+
"norm": 1.0,
|
| 334 |
+
"max_abs_error": 1.862645149230957e-07,
|
| 335 |
+
"cosine": 1.000000074981958,
|
| 336 |
+
"pass_parity": true
|
| 337 |
+
},
|
| 338 |
+
{
|
| 339 |
+
"input_id": "short-en",
|
| 340 |
+
"actual_tokens": 17,
|
| 341 |
+
"layer": 22,
|
| 342 |
+
"dimension": 512,
|
| 343 |
+
"status": 0,
|
| 344 |
+
"error": false,
|
| 345 |
+
"returned_length": 512,
|
| 346 |
+
"ffi_sequence_length_field": 14,
|
| 347 |
+
"wall_seconds": 0.09315352595876902,
|
| 348 |
+
"ffi_ms": 93.13975524902344,
|
| 349 |
+
"finite": true,
|
| 350 |
+
"norm": 1.0000001192092896,
|
| 351 |
+
"max_abs_error": 1.6763806343078613e-07,
|
| 352 |
+
"cosine": 1.0000000652533545,
|
| 353 |
+
"pass_parity": true
|
| 354 |
+
},
|
| 355 |
+
{
|
| 356 |
+
"input_id": "short-en",
|
| 357 |
+
"actual_tokens": 17,
|
| 358 |
+
"layer": 22,
|
| 359 |
+
"dimension": 768,
|
| 360 |
+
"status": 0,
|
| 361 |
+
"error": false,
|
| 362 |
+
"returned_length": 768,
|
| 363 |
+
"ffi_sequence_length_field": 14,
|
| 364 |
+
"wall_seconds": 0.09209871606435627,
|
| 365 |
+
"ffi_ms": 92.08436584472656,
|
| 366 |
+
"finite": true,
|
| 367 |
+
"norm": 1.0000001192092896,
|
| 368 |
+
"max_abs_error": 1.4062970876693726e-07,
|
| 369 |
+
"cosine": 1.000000004329943,
|
| 370 |
+
"pass_parity": true
|
| 371 |
+
},
|
| 372 |
+
{
|
| 373 |
+
"input_id": "short-zh",
|
| 374 |
+
"actual_tokens": 21,
|
| 375 |
+
"layer": 3,
|
| 376 |
+
"dimension": 64,
|
| 377 |
+
"status": 0,
|
| 378 |
+
"error": false,
|
| 379 |
+
"returned_length": 64,
|
| 380 |
+
"ffi_sequence_length_field": 1,
|
| 381 |
+
"wall_seconds": 0.05469667399302125,
|
| 382 |
+
"ffi_ms": 54.68404769897461,
|
| 383 |
+
"finite": true,
|
| 384 |
+
"norm": 1.0,
|
| 385 |
+
"max_abs_error": 2.1606683731079102e-07,
|
| 386 |
+
"cosine": 1.0000000478718052,
|
| 387 |
+
"pass_parity": true
|
| 388 |
+
},
|
| 389 |
+
{
|
| 390 |
+
"input_id": "short-zh",
|
| 391 |
+
"actual_tokens": 21,
|
| 392 |
+
"layer": 3,
|
| 393 |
+
"dimension": 128,
|
| 394 |
+
"status": 0,
|
| 395 |
+
"error": false,
|
| 396 |
+
"returned_length": 128,
|
| 397 |
+
"ffi_sequence_length_field": 1,
|
| 398 |
+
"wall_seconds": 0.048163113999180496,
|
| 399 |
+
"ffi_ms": 48.15096664428711,
|
| 400 |
+
"finite": true,
|
| 401 |
+
"norm": 1.0,
|
| 402 |
+
"max_abs_error": 1.6391277313232422e-07,
|
| 403 |
+
"cosine": 1.0000000247820346,
|
| 404 |
+
"pass_parity": true
|
| 405 |
+
},
|
| 406 |
+
{
|
| 407 |
+
"input_id": "short-zh",
|
| 408 |
+
"actual_tokens": 21,
|
| 409 |
+
"layer": 3,
|
| 410 |
+
"dimension": 256,
|
| 411 |
+
"status": 0,
|
| 412 |
+
"error": false,
|
| 413 |
+
"returned_length": 256,
|
| 414 |
+
"ffi_sequence_length_field": 1,
|
| 415 |
+
"wall_seconds": 0.043940476956777275,
|
| 416 |
+
"ffi_ms": 43.92920684814453,
|
| 417 |
+
"finite": true,
|
| 418 |
+
"norm": 0.9999998807907104,
|
| 419 |
+
"max_abs_error": 1.1920928955078125e-07,
|
| 420 |
+
"cosine": 1.0000000109076452,
|
| 421 |
+
"pass_parity": true
|
| 422 |
+
},
|
| 423 |
+
{
|
| 424 |
+
"input_id": "short-zh",
|
| 425 |
+
"actual_tokens": 21,
|
| 426 |
+
"layer": 3,
|
| 427 |
+
"dimension": 512,
|
| 428 |
+
"status": 0,
|
| 429 |
+
"error": false,
|
| 430 |
+
"returned_length": 512,
|
| 431 |
+
"ffi_sequence_length_field": 1,
|
| 432 |
+
"wall_seconds": 0.04201822099275887,
|
| 433 |
+
"ffi_ms": 42.00856018066406,
|
| 434 |
+
"finite": true,
|
| 435 |
+
"norm": 0.9999999403953552,
|
| 436 |
+
"max_abs_error": 7.450580596923828e-08,
|
| 437 |
+
"cosine": 1.000000061202781,
|
| 438 |
+
"pass_parity": true
|
| 439 |
+
},
|
| 440 |
+
{
|
| 441 |
+
"input_id": "short-zh",
|
| 442 |
+
"actual_tokens": 21,
|
| 443 |
+
"layer": 3,
|
| 444 |
+
"dimension": 768,
|
| 445 |
+
"status": 0,
|
| 446 |
+
"error": false,
|
| 447 |
+
"returned_length": 768,
|
| 448 |
+
"ffi_sequence_length_field": 1,
|
| 449 |
+
"wall_seconds": 0.04216696496587247,
|
| 450 |
+
"ffi_ms": 42.15530776977539,
|
| 451 |
+
"finite": true,
|
| 452 |
+
"norm": 1.0,
|
| 453 |
+
"max_abs_error": 1.1920928955078125e-07,
|
| 454 |
+
"cosine": 1.0000000743286885,
|
| 455 |
+
"pass_parity": true
|
| 456 |
+
},
|
| 457 |
+
{
|
| 458 |
+
"input_id": "short-zh",
|
| 459 |
+
"actual_tokens": 21,
|
| 460 |
+
"layer": 6,
|
| 461 |
+
"dimension": 64,
|
| 462 |
+
"status": 0,
|
| 463 |
+
"error": false,
|
| 464 |
+
"returned_length": 64,
|
| 465 |
+
"ffi_sequence_length_field": 1,
|
| 466 |
+
"wall_seconds": 0.048598820925690234,
|
| 467 |
+
"ffi_ms": 48.588687896728516,
|
| 468 |
+
"finite": true,
|
| 469 |
+
"norm": 1.0,
|
| 470 |
+
"max_abs_error": 3.203749656677246e-07,
|
| 471 |
+
"cosine": 1.0000000551323012,
|
| 472 |
+
"pass_parity": true
|
| 473 |
+
},
|
| 474 |
+
{
|
| 475 |
+
"input_id": "short-zh",
|
| 476 |
+
"actual_tokens": 21,
|
| 477 |
+
"layer": 6,
|
| 478 |
+
"dimension": 128,
|
| 479 |
+
"status": 0,
|
| 480 |
+
"error": false,
|
| 481 |
+
"returned_length": 128,
|
| 482 |
+
"ffi_sequence_length_field": 1,
|
| 483 |
+
"wall_seconds": 0.051573885953985155,
|
| 484 |
+
"ffi_ms": 51.563392639160156,
|
| 485 |
+
"finite": true,
|
| 486 |
+
"norm": 1.0,
|
| 487 |
+
"max_abs_error": 1.8998980522155762e-07,
|
| 488 |
+
"cosine": 1.0000000170369325,
|
| 489 |
+
"pass_parity": true
|
| 490 |
+
},
|
| 491 |
+
{
|
| 492 |
+
"input_id": "short-zh",
|
| 493 |
+
"actual_tokens": 21,
|
| 494 |
+
"layer": 6,
|
| 495 |
+
"dimension": 256,
|
| 496 |
+
"status": 0,
|
| 497 |
+
"error": false,
|
| 498 |
+
"returned_length": 256,
|
| 499 |
+
"ffi_sequence_length_field": 1,
|
| 500 |
+
"wall_seconds": 0.0493649470154196,
|
| 501 |
+
"ffi_ms": 49.35435485839844,
|
| 502 |
+
"finite": true,
|
| 503 |
+
"norm": 1.0,
|
| 504 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 505 |
+
"cosine": 1.0000000846850565,
|
| 506 |
+
"pass_parity": true
|
| 507 |
+
},
|
| 508 |
+
{
|
| 509 |
+
"input_id": "short-zh",
|
| 510 |
+
"actual_tokens": 21,
|
| 511 |
+
"layer": 6,
|
| 512 |
+
"dimension": 512,
|
| 513 |
+
"status": 0,
|
| 514 |
+
"error": false,
|
| 515 |
+
"returned_length": 512,
|
| 516 |
+
"ffi_sequence_length_field": 1,
|
| 517 |
+
"wall_seconds": 0.04883848095778376,
|
| 518 |
+
"ffi_ms": 48.82835006713867,
|
| 519 |
+
"finite": true,
|
| 520 |
+
"norm": 1.0,
|
| 521 |
+
"max_abs_error": 1.6391277313232422e-07,
|
| 522 |
+
"cosine": 0.9999999925390471,
|
| 523 |
+
"pass_parity": true
|
| 524 |
+
},
|
| 525 |
+
{
|
| 526 |
+
"input_id": "short-zh",
|
| 527 |
+
"actual_tokens": 21,
|
| 528 |
+
"layer": 6,
|
| 529 |
+
"dimension": 768,
|
| 530 |
+
"status": 0,
|
| 531 |
+
"error": false,
|
| 532 |
+
"returned_length": 768,
|
| 533 |
+
"ffi_sequence_length_field": 1,
|
| 534 |
+
"wall_seconds": 0.048676051083020866,
|
| 535 |
+
"ffi_ms": 48.666290283203125,
|
| 536 |
+
"finite": true,
|
| 537 |
+
"norm": 1.0000001192092896,
|
| 538 |
+
"max_abs_error": 1.7881393432617188e-07,
|
| 539 |
+
"cosine": 1.0000000845969579,
|
| 540 |
+
"pass_parity": true
|
| 541 |
+
},
|
| 542 |
+
{
|
| 543 |
+
"input_id": "short-zh",
|
| 544 |
+
"actual_tokens": 21,
|
| 545 |
+
"layer": 11,
|
| 546 |
+
"dimension": 64,
|
| 547 |
+
"status": 0,
|
| 548 |
+
"error": false,
|
| 549 |
+
"returned_length": 64,
|
| 550 |
+
"ffi_sequence_length_field": 1,
|
| 551 |
+
"wall_seconds": 0.06051719898823649,
|
| 552 |
+
"ffi_ms": 60.506263732910156,
|
| 553 |
+
"finite": true,
|
| 554 |
+
"norm": 1.0,
|
| 555 |
+
"max_abs_error": 2.253800630569458e-07,
|
| 556 |
+
"cosine": 1.0000000878185407,
|
| 557 |
+
"pass_parity": true
|
| 558 |
+
},
|
| 559 |
+
{
|
| 560 |
+
"input_id": "short-zh",
|
| 561 |
+
"actual_tokens": 21,
|
| 562 |
+
"layer": 11,
|
| 563 |
+
"dimension": 128,
|
| 564 |
+
"status": 0,
|
| 565 |
+
"error": false,
|
| 566 |
+
"returned_length": 128,
|
| 567 |
+
"ffi_sequence_length_field": 1,
|
| 568 |
+
"wall_seconds": 0.06776046205777675,
|
| 569 |
+
"ffi_ms": 67.74873352050781,
|
| 570 |
+
"finite": true,
|
| 571 |
+
"norm": 1.0,
|
| 572 |
+
"max_abs_error": 1.3504177331924438e-07,
|
| 573 |
+
"cosine": 1.0000000464076944,
|
| 574 |
+
"pass_parity": true
|
| 575 |
+
},
|
| 576 |
+
{
|
| 577 |
+
"input_id": "short-zh",
|
| 578 |
+
"actual_tokens": 21,
|
| 579 |
+
"layer": 11,
|
| 580 |
+
"dimension": 256,
|
| 581 |
+
"status": 0,
|
| 582 |
+
"error": false,
|
| 583 |
+
"returned_length": 256,
|
| 584 |
+
"ffi_sequence_length_field": 1,
|
| 585 |
+
"wall_seconds": 0.06547262298408896,
|
| 586 |
+
"ffi_ms": 65.46107482910156,
|
| 587 |
+
"finite": true,
|
| 588 |
+
"norm": 0.9999998211860657,
|
| 589 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 590 |
+
"cosine": 1.0000000695567814,
|
| 591 |
+
"pass_parity": true
|
| 592 |
+
},
|
| 593 |
+
{
|
| 594 |
+
"input_id": "short-zh",
|
| 595 |
+
"actual_tokens": 21,
|
| 596 |
+
"layer": 11,
|
| 597 |
+
"dimension": 512,
|
| 598 |
+
"status": 0,
|
| 599 |
+
"error": false,
|
| 600 |
+
"returned_length": 512,
|
| 601 |
+
"ffi_sequence_length_field": 1,
|
| 602 |
+
"wall_seconds": 0.06581331405322999,
|
| 603 |
+
"ffi_ms": 65.79988098144531,
|
| 604 |
+
"finite": true,
|
| 605 |
+
"norm": 0.9999999403953552,
|
| 606 |
+
"max_abs_error": 1.0058283805847168e-07,
|
| 607 |
+
"cosine": 1.0000000114762304,
|
| 608 |
+
"pass_parity": true
|
| 609 |
+
},
|
| 610 |
+
{
|
| 611 |
+
"input_id": "short-zh",
|
| 612 |
+
"actual_tokens": 21,
|
| 613 |
+
"layer": 11,
|
| 614 |
+
"dimension": 768,
|
| 615 |
+
"status": 0,
|
| 616 |
+
"error": false,
|
| 617 |
+
"returned_length": 768,
|
| 618 |
+
"ffi_sequence_length_field": 1,
|
| 619 |
+
"wall_seconds": 0.07375219895038754,
|
| 620 |
+
"ffi_ms": 73.73992156982422,
|
| 621 |
+
"finite": true,
|
| 622 |
+
"norm": 1.0,
|
| 623 |
+
"max_abs_error": 5.960464477539063e-08,
|
| 624 |
+
"cosine": 1.000000107178668,
|
| 625 |
+
"pass_parity": true
|
| 626 |
+
},
|
| 627 |
+
{
|
| 628 |
+
"input_id": "short-zh",
|
| 629 |
+
"actual_tokens": 21,
|
| 630 |
+
"layer": 22,
|
| 631 |
+
"dimension": 64,
|
| 632 |
+
"status": 0,
|
| 633 |
+
"error": false,
|
| 634 |
+
"returned_length": 64,
|
| 635 |
+
"ffi_sequence_length_field": 1,
|
| 636 |
+
"wall_seconds": 0.09504696202930063,
|
| 637 |
+
"ffi_ms": 95.03307342529297,
|
| 638 |
+
"finite": true,
|
| 639 |
+
"norm": 1.0,
|
| 640 |
+
"max_abs_error": 2.980232238769531e-07,
|
| 641 |
+
"cosine": 1.000000035292586,
|
| 642 |
+
"pass_parity": true
|
| 643 |
+
},
|
| 644 |
+
{
|
| 645 |
+
"input_id": "short-zh",
|
| 646 |
+
"actual_tokens": 21,
|
| 647 |
+
"layer": 22,
|
| 648 |
+
"dimension": 128,
|
| 649 |
+
"status": 0,
|
| 650 |
+
"error": false,
|
| 651 |
+
"returned_length": 128,
|
| 652 |
+
"ffi_sequence_length_field": 1,
|
| 653 |
+
"wall_seconds": 0.10682931507471949,
|
| 654 |
+
"ffi_ms": 106.81417846679688,
|
| 655 |
+
"finite": true,
|
| 656 |
+
"norm": 1.0,
|
| 657 |
+
"max_abs_error": 2.123415470123291e-07,
|
| 658 |
+
"cosine": 1.000000096714245,
|
| 659 |
+
"pass_parity": true
|
| 660 |
+
},
|
| 661 |
+
{
|
| 662 |
+
"input_id": "short-zh",
|
| 663 |
+
"actual_tokens": 21,
|
| 664 |
+
"layer": 22,
|
| 665 |
+
"dimension": 256,
|
| 666 |
+
"status": 0,
|
| 667 |
+
"error": false,
|
| 668 |
+
"returned_length": 256,
|
| 669 |
+
"ffi_sequence_length_field": 1,
|
| 670 |
+
"wall_seconds": 0.10433819401077926,
|
| 671 |
+
"ffi_ms": 104.32311248779297,
|
| 672 |
+
"finite": true,
|
| 673 |
+
"norm": 0.9999999403953552,
|
| 674 |
+
"max_abs_error": 2.3096799850463867e-07,
|
| 675 |
+
"cosine": 0.999999997067408,
|
| 676 |
+
"pass_parity": true
|
| 677 |
+
},
|
| 678 |
+
{
|
| 679 |
+
"input_id": "short-zh",
|
| 680 |
+
"actual_tokens": 21,
|
| 681 |
+
"layer": 22,
|
| 682 |
+
"dimension": 512,
|
| 683 |
+
"status": 0,
|
| 684 |
+
"error": false,
|
| 685 |
+
"returned_length": 512,
|
| 686 |
+
"ffi_sequence_length_field": 1,
|
| 687 |
+
"wall_seconds": 0.10202557290904224,
|
| 688 |
+
"ffi_ms": 102.00984191894531,
|
| 689 |
+
"finite": true,
|
| 690 |
+
"norm": 0.9999997615814209,
|
| 691 |
+
"max_abs_error": 1.862645149230957e-07,
|
| 692 |
+
"cosine": 1.0000000330443395,
|
| 693 |
+
"pass_parity": true
|
| 694 |
+
},
|
| 695 |
+
{
|
| 696 |
+
"input_id": "short-zh",
|
| 697 |
+
"actual_tokens": 21,
|
| 698 |
+
"layer": 22,
|
| 699 |
+
"dimension": 768,
|
| 700 |
+
"status": 0,
|
| 701 |
+
"error": false,
|
| 702 |
+
"returned_length": 768,
|
| 703 |
+
"ffi_sequence_length_field": 1,
|
| 704 |
+
"wall_seconds": 0.10219176497776061,
|
| 705 |
+
"ffi_ms": 102.1760482788086,
|
| 706 |
+
"finite": true,
|
| 707 |
+
"norm": 1.000000238418579,
|
| 708 |
+
"max_abs_error": 2.086162567138672e-07,
|
| 709 |
+
"cosine": 1.000000008793068,
|
| 710 |
+
"pass_parity": true
|
| 711 |
+
},
|
| 712 |
+
{
|
| 713 |
+
"input_id": "tokens-2",
|
| 714 |
+
"actual_tokens": 2,
|
| 715 |
+
"layer": 22,
|
| 716 |
+
"dimension": 768,
|
| 717 |
+
"status": 0,
|
| 718 |
+
"error": false,
|
| 719 |
+
"returned_length": 768,
|
| 720 |
+
"ffi_sequence_length_field": 0,
|
| 721 |
+
"wall_seconds": 0.06899695401079953,
|
| 722 |
+
"ffi_ms": 68.98296356201172,
|
| 723 |
+
"finite": true,
|
| 724 |
+
"norm": 0.9999999403953552,
|
| 725 |
+
"max_abs_error": 3.241002559661865e-07,
|
| 726 |
+
"cosine": 1.0000000484596474,
|
| 727 |
+
"pass_parity": true
|
| 728 |
+
},
|
| 729 |
+
{
|
| 730 |
+
"input_id": "tokens-63",
|
| 731 |
+
"actual_tokens": 63,
|
| 732 |
+
"layer": 22,
|
| 733 |
+
"dimension": 768,
|
| 734 |
+
"status": 0,
|
| 735 |
+
"error": false,
|
| 736 |
+
"returned_length": 768,
|
| 737 |
+
"ffi_sequence_length_field": 61,
|
| 738 |
+
"wall_seconds": 0.161852149059996,
|
| 739 |
+
"ffi_ms": 161.83753967285156,
|
| 740 |
+
"finite": true,
|
| 741 |
+
"norm": 0.9999997615814209,
|
| 742 |
+
"max_abs_error": 2.384185791015625e-07,
|
| 743 |
+
"cosine": 1.0000000784101282,
|
| 744 |
+
"pass_parity": true
|
| 745 |
+
},
|
| 746 |
+
{
|
| 747 |
+
"input_id": "tokens-64",
|
| 748 |
+
"actual_tokens": 64,
|
| 749 |
+
"layer": 22,
|
| 750 |
+
"dimension": 768,
|
| 751 |
+
"status": 0,
|
| 752 |
+
"error": false,
|
| 753 |
+
"returned_length": 768,
|
| 754 |
+
"ffi_sequence_length_field": 62,
|
| 755 |
+
"wall_seconds": 0.16378953692037612,
|
| 756 |
+
"ffi_ms": 163.76321411132812,
|
| 757 |
+
"finite": true,
|
| 758 |
+
"norm": 0.9999998807907104,
|
| 759 |
+
"max_abs_error": 1.1920928955078125e-07,
|
| 760 |
+
"cosine": 1.0000000424235516,
|
| 761 |
+
"pass_parity": true
|
| 762 |
+
},
|
| 763 |
+
{
|
| 764 |
+
"input_id": "tokens-65",
|
| 765 |
+
"actual_tokens": 65,
|
| 766 |
+
"layer": 22,
|
| 767 |
+
"dimension": 768,
|
| 768 |
+
"status": 0,
|
| 769 |
+
"error": false,
|
| 770 |
+
"returned_length": 768,
|
| 771 |
+
"ffi_sequence_length_field": 63,
|
| 772 |
+
"wall_seconds": 0.16418158204760402,
|
| 773 |
+
"ffi_ms": 164.16639709472656,
|
| 774 |
+
"finite": true,
|
| 775 |
+
"norm": 0.9999999403953552,
|
| 776 |
+
"max_abs_error": 7.450580596923828e-08,
|
| 777 |
+
"cosine": 1.000000063211883,
|
| 778 |
+
"pass_parity": true
|
| 779 |
+
},
|
| 780 |
+
{
|
| 781 |
+
"input_id": "tokens-127",
|
| 782 |
+
"actual_tokens": 127,
|
| 783 |
+
"layer": 22,
|
| 784 |
+
"dimension": 768,
|
| 785 |
+
"status": 0,
|
| 786 |
+
"error": false,
|
| 787 |
+
"returned_length": 768,
|
| 788 |
+
"ffi_sequence_length_field": 104,
|
| 789 |
+
"wall_seconds": 0.29436111892573535,
|
| 790 |
+
"ffi_ms": 294.3453369140625,
|
| 791 |
+
"finite": true,
|
| 792 |
+
"norm": 0.9999999403953552,
|
| 793 |
+
"max_abs_error": 1.1175870895385742e-07,
|
| 794 |
+
"cosine": 1.000000042187335,
|
| 795 |
+
"pass_parity": true
|
| 796 |
+
},
|
| 797 |
+
{
|
| 798 |
+
"input_id": "tokens-128",
|
| 799 |
+
"actual_tokens": 128,
|
| 800 |
+
"layer": 22,
|
| 801 |
+
"dimension": 768,
|
| 802 |
+
"status": 0,
|
| 803 |
+
"error": false,
|
| 804 |
+
"returned_length": 768,
|
| 805 |
+
"ffi_sequence_length_field": 105,
|
| 806 |
+
"wall_seconds": 0.30126551096327603,
|
| 807 |
+
"ffi_ms": 301.24847412109375,
|
| 808 |
+
"finite": true,
|
| 809 |
+
"norm": 0.9999999403953552,
|
| 810 |
+
"max_abs_error": 1.043081283569336e-07,
|
| 811 |
+
"cosine": 1.0000000259043007,
|
| 812 |
+
"pass_parity": true
|
| 813 |
+
},
|
| 814 |
+
{
|
| 815 |
+
"input_id": "tokens-129",
|
| 816 |
+
"actual_tokens": 129,
|
| 817 |
+
"layer": 22,
|
| 818 |
+
"dimension": 768,
|
| 819 |
+
"status": 0,
|
| 820 |
+
"error": false,
|
| 821 |
+
"returned_length": 768,
|
| 822 |
+
"ffi_sequence_length_field": 106,
|
| 823 |
+
"wall_seconds": 0.31042664393316954,
|
| 824 |
+
"ffi_ms": 310.4099426269531,
|
| 825 |
+
"finite": true,
|
| 826 |
+
"norm": 0.9999998211860657,
|
| 827 |
+
"max_abs_error": 1.4156103134155273e-07,
|
| 828 |
+
"cosine": 1.0000000680781156,
|
| 829 |
+
"pass_parity": true
|
| 830 |
+
},
|
| 831 |
+
{
|
| 832 |
+
"input_id": "tokens-512",
|
| 833 |
+
"actual_tokens": 512,
|
| 834 |
+
"layer": 22,
|
| 835 |
+
"dimension": 768,
|
| 836 |
+
"status": 0,
|
| 837 |
+
"error": false,
|
| 838 |
+
"returned_length": 768,
|
| 839 |
+
"ffi_sequence_length_field": 489,
|
| 840 |
+
"wall_seconds": 1.4100490380078554,
|
| 841 |
+
"ffi_ms": 1410.026611328125,
|
| 842 |
+
"finite": true,
|
| 843 |
+
"norm": 0.9999996423721313,
|
| 844 |
+
"max_abs_error": 6.109476089477539e-07,
|
| 845 |
+
"cosine": 0.9999999953448192,
|
| 846 |
+
"pass_parity": true
|
| 847 |
+
},
|
| 848 |
+
{
|
| 849 |
+
"input_id": "tokens-4096",
|
| 850 |
+
"actual_tokens": 4096,
|
| 851 |
+
"layer": 22,
|
| 852 |
+
"dimension": 768,
|
| 853 |
+
"status": 0,
|
| 854 |
+
"error": false,
|
| 855 |
+
"returned_length": 768,
|
| 856 |
+
"ffi_sequence_length_field": 4073,
|
| 857 |
+
"wall_seconds": 33.45112029998563,
|
| 858 |
+
"ffi_ms": 33451.07421875,
|
| 859 |
+
"finite": true,
|
| 860 |
+
"norm": 1.0000003576278687,
|
| 861 |
+
"max_abs_error": 7.152557373046875e-07,
|
| 862 |
+
"cosine": 1.0000000362328352,
|
| 863 |
+
"pass_parity": true
|
| 864 |
+
},
|
| 865 |
+
{
|
| 866 |
+
"input_id": "short-en",
|
| 867 |
+
"actual_tokens": 17,
|
| 868 |
+
"layer": 0,
|
| 869 |
+
"dimension": 0,
|
| 870 |
+
"status": 0,
|
| 871 |
+
"error": false,
|
| 872 |
+
"returned_length": 768,
|
| 873 |
+
"ffi_sequence_length_field": 14,
|
| 874 |
+
"wall_seconds": 0.10379315994214267,
|
| 875 |
+
"ffi_ms": 103.77715301513672,
|
| 876 |
+
"finite": true,
|
| 877 |
+
"norm": 1.0000001192092896,
|
| 878 |
+
"max_abs_error": 1.4062970876693726e-07,
|
| 879 |
+
"cosine": 1.000000004329943,
|
| 880 |
+
"pass_parity": true
|
| 881 |
+
},
|
| 882 |
+
{
|
| 883 |
+
"input_id": "short-en",
|
| 884 |
+
"actual_tokens": 17,
|
| 885 |
+
"layer": -1,
|
| 886 |
+
"dimension": -1,
|
| 887 |
+
"status": 0,
|
| 888 |
+
"error": false,
|
| 889 |
+
"returned_length": 768,
|
| 890 |
+
"ffi_sequence_length_field": 14,
|
| 891 |
+
"wall_seconds": 0.0980934890685603,
|
| 892 |
+
"ffi_ms": 98.07894134521484,
|
| 893 |
+
"finite": true,
|
| 894 |
+
"norm": 1.0000001192092896,
|
| 895 |
+
"max_abs_error": 1.4062970876693726e-07,
|
| 896 |
+
"cosine": 1.000000004329943,
|
| 897 |
+
"pass_parity": true
|
| 898 |
+
},
|
| 899 |
+
{
|
| 900 |
+
"input_id": "short-en",
|
| 901 |
+
"actual_tokens": 17,
|
| 902 |
+
"layer": 3,
|
| 903 |
+
"dimension": 64,
|
| 904 |
+
"status": 0,
|
| 905 |
+
"error": false,
|
| 906 |
+
"returned_length": 64,
|
| 907 |
+
"ffi_sequence_length_field": 14,
|
| 908 |
+
"wall_seconds": 0.055349049041979015,
|
| 909 |
+
"ffi_ms": 55.3360481262207,
|
| 910 |
+
"finite": true,
|
| 911 |
+
"norm": 0.9999999403953552,
|
| 912 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 913 |
+
"cosine": 0.9999999721808451,
|
| 914 |
+
"pass_parity": true
|
| 915 |
+
},
|
| 916 |
+
{
|
| 917 |
+
"input_id": "short-en",
|
| 918 |
+
"actual_tokens": 17,
|
| 919 |
+
"layer": 3,
|
| 920 |
+
"dimension": 64,
|
| 921 |
+
"status": 0,
|
| 922 |
+
"error": false,
|
| 923 |
+
"returned_length": 64,
|
| 924 |
+
"ffi_sequence_length_field": 14,
|
| 925 |
+
"wall_seconds": 0.047103020013310015,
|
| 926 |
+
"ffi_ms": 47.09037780761719,
|
| 927 |
+
"finite": true,
|
| 928 |
+
"norm": 0.9999999403953552,
|
| 929 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 930 |
+
"cosine": 0.9999999721808451,
|
| 931 |
+
"pass_parity": true
|
| 932 |
+
},
|
| 933 |
+
{
|
| 934 |
+
"input_id": "short-en",
|
| 935 |
+
"actual_tokens": 17,
|
| 936 |
+
"layer": 3,
|
| 937 |
+
"dimension": 64,
|
| 938 |
+
"status": 0,
|
| 939 |
+
"error": false,
|
| 940 |
+
"returned_length": 64,
|
| 941 |
+
"ffi_sequence_length_field": 14,
|
| 942 |
+
"wall_seconds": 0.044253936037421227,
|
| 943 |
+
"ffi_ms": 44.24277877807617,
|
| 944 |
+
"finite": true,
|
| 945 |
+
"norm": 0.9999999403953552,
|
| 946 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 947 |
+
"cosine": 0.9999999721808451,
|
| 948 |
+
"pass_parity": true
|
| 949 |
+
},
|
| 950 |
+
{
|
| 951 |
+
"input_id": "short-en",
|
| 952 |
+
"actual_tokens": 17,
|
| 953 |
+
"layer": 3,
|
| 954 |
+
"dimension": 64,
|
| 955 |
+
"status": 0,
|
| 956 |
+
"error": false,
|
| 957 |
+
"returned_length": 64,
|
| 958 |
+
"ffi_sequence_length_field": 14,
|
| 959 |
+
"wall_seconds": 0.040766402962617576,
|
| 960 |
+
"ffi_ms": 40.7562141418457,
|
| 961 |
+
"finite": true,
|
| 962 |
+
"norm": 0.9999999403953552,
|
| 963 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 964 |
+
"cosine": 0.9999999721808451,
|
| 965 |
+
"pass_parity": true
|
| 966 |
+
},
|
| 967 |
+
{
|
| 968 |
+
"input_id": "short-en",
|
| 969 |
+
"actual_tokens": 17,
|
| 970 |
+
"layer": 3,
|
| 971 |
+
"dimension": 64,
|
| 972 |
+
"status": 0,
|
| 973 |
+
"error": false,
|
| 974 |
+
"returned_length": 64,
|
| 975 |
+
"ffi_sequence_length_field": 14,
|
| 976 |
+
"wall_seconds": 0.04103039496112615,
|
| 977 |
+
"ffi_ms": 41.020145416259766,
|
| 978 |
+
"finite": true,
|
| 979 |
+
"norm": 0.9999999403953552,
|
| 980 |
+
"max_abs_error": 1.4901161193847656e-07,
|
| 981 |
+
"cosine": 0.9999999721808451,
|
| 982 |
+
"pass_parity": true
|
| 983 |
+
},
|
| 984 |
+
{
|
| 985 |
+
"input_id": "tokens-32768",
|
| 986 |
+
"actual_tokens": 32768,
|
| 987 |
+
"layer": 3,
|
| 988 |
+
"dimension": 768,
|
| 989 |
+
"status": 0,
|
| 990 |
+
"error": false,
|
| 991 |
+
"returned_length": 768,
|
| 992 |
+
"ffi_sequence_length_field": 32745,
|
| 993 |
+
"wall_seconds": 234.80449119501282,
|
| 994 |
+
"ffi_ms": 234804.265625,
|
| 995 |
+
"finite": true,
|
| 996 |
+
"norm": 1.0000001192092896,
|
| 997 |
+
"max_abs_error": 2.5391578674316406e-05,
|
| 998 |
+
"cosine": 1.0000000502350979,
|
| 999 |
+
"pass_parity": true
|
| 1000 |
+
},
|
| 1001 |
+
{
|
| 1002 |
+
"input_id": "tokens-32768",
|
| 1003 |
+
"actual_tokens": 32768,
|
| 1004 |
+
"layer": 6,
|
| 1005 |
+
"dimension": 768,
|
| 1006 |
+
"status": 0,
|
| 1007 |
+
"error": false,
|
| 1008 |
+
"returned_length": 768,
|
| 1009 |
+
"ffi_sequence_length_field": 32745,
|
| 1010 |
+
"wall_seconds": 452.4907670809189,
|
| 1011 |
+
"ffi_ms": 452490.53125,
|
| 1012 |
+
"finite": true,
|
| 1013 |
+
"norm": 1.0000001192092896,
|
| 1014 |
+
"max_abs_error": 3.516674041748047e-06,
|
| 1015 |
+
"cosine": 1.0000000599005705,
|
| 1016 |
+
"pass_parity": true
|
| 1017 |
+
},
|
| 1018 |
+
{
|
| 1019 |
+
"input_id": "tokens-32768",
|
| 1020 |
+
"actual_tokens": 32768,
|
| 1021 |
+
"layer": 11,
|
| 1022 |
+
"dimension": 768,
|
| 1023 |
+
"status": 0,
|
| 1024 |
+
"error": false,
|
| 1025 |
+
"returned_length": 768,
|
| 1026 |
+
"ffi_sequence_length_field": 32745,
|
| 1027 |
+
"wall_seconds": 948.234047235921,
|
| 1028 |
+
"ffi_ms": 948233.8125,
|
| 1029 |
+
"finite": true,
|
| 1030 |
+
"norm": 1.0000001192092896,
|
| 1031 |
+
"max_abs_error": 4.410743713378906e-06,
|
| 1032 |
+
"cosine": 1.0000000170091998,
|
| 1033 |
+
"pass_parity": true
|
| 1034 |
+
},
|
| 1035 |
+
{
|
| 1036 |
+
"input_id": "tokens-32768",
|
| 1037 |
+
"actual_tokens": 32768,
|
| 1038 |
+
"layer": 22,
|
| 1039 |
+
"dimension": 768,
|
| 1040 |
+
"status": 0,
|
| 1041 |
+
"error": false,
|
| 1042 |
+
"returned_length": 768,
|
| 1043 |
+
"ffi_sequence_length_field": 32745,
|
| 1044 |
+
"wall_seconds": 1863.0559577909298,
|
| 1045 |
+
"ffi_ms": 1863055.625,
|
| 1046 |
+
"finite": true,
|
| 1047 |
+
"norm": 1.0000003576278687,
|
| 1048 |
+
"max_abs_error": 1.7130747437477112e-05,
|
| 1049 |
+
"cosine": 1.0000000706478172,
|
| 1050 |
+
"pass_parity": true
|
| 1051 |
+
}
|
| 1052 |
+
],
|
| 1053 |
+
"checks": [
|
| 1054 |
+
{
|
| 1055 |
+
"name": "token-window-32768",
|
| 1056 |
+
"expected": 0,
|
| 1057 |
+
"actual": 0,
|
| 1058 |
+
"pass": true
|
| 1059 |
+
},
|
| 1060 |
+
{
|
| 1061 |
+
"name": "token-window-32769",
|
| 1062 |
+
"expected": 1,
|
| 1063 |
+
"actual": 1,
|
| 1064 |
+
"pass": true
|
| 1065 |
+
},
|
| 1066 |
+
{
|
| 1067 |
+
"input_id": "tokens-32769",
|
| 1068 |
+
"actual_tokens": 32769,
|
| 1069 |
+
"layer": 22,
|
| 1070 |
+
"dimension": 768,
|
| 1071 |
+
"status": -1,
|
| 1072 |
+
"error": true,
|
| 1073 |
+
"returned_length": 0,
|
| 1074 |
+
"ffi_sequence_length_field": 0,
|
| 1075 |
+
"wall_seconds": 0.06285776000004262,
|
| 1076 |
+
"ffi_ms": 0.0,
|
| 1077 |
+
"expected_rejection": true,
|
| 1078 |
+
"pass": true
|
| 1079 |
+
},
|
| 1080 |
+
{
|
| 1081 |
+
"input_id": "short-en",
|
| 1082 |
+
"actual_tokens": 17,
|
| 1083 |
+
"layer": 23,
|
| 1084 |
+
"dimension": 768,
|
| 1085 |
+
"status": -1,
|
| 1086 |
+
"error": true,
|
| 1087 |
+
"returned_length": 0,
|
| 1088 |
+
"ffi_sequence_length_field": 0,
|
| 1089 |
+
"wall_seconds": 0.03536479698959738,
|
| 1090 |
+
"ffi_ms": 0.0,
|
| 1091 |
+
"expected_rejection": true,
|
| 1092 |
+
"pass": true
|
| 1093 |
+
},
|
| 1094 |
+
{
|
| 1095 |
+
"input_id": "short-en",
|
| 1096 |
+
"actual_tokens": 17,
|
| 1097 |
+
"layer": 22,
|
| 1098 |
+
"dimension": 769,
|
| 1099 |
+
"status": -1,
|
| 1100 |
+
"error": true,
|
| 1101 |
+
"returned_length": 0,
|
| 1102 |
+
"ffi_sequence_length_field": 0,
|
| 1103 |
+
"wall_seconds": 0.03475770796649158,
|
| 1104 |
+
"ffi_ms": 0.0,
|
| 1105 |
+
"expected_rejection": true,
|
| 1106 |
+
"pass": true
|
| 1107 |
+
},
|
| 1108 |
+
{
|
| 1109 |
+
"input_id": "short-en",
|
| 1110 |
+
"actual_tokens": 17,
|
| 1111 |
+
"layer": 22,
|
| 1112 |
+
"dimension": 768,
|
| 1113 |
+
"status": -1,
|
| 1114 |
+
"error": true,
|
| 1115 |
+
"returned_length": 0,
|
| 1116 |
+
"ffi_sequence_length_field": 0,
|
| 1117 |
+
"wall_seconds": 1.1502066627144814e-05,
|
| 1118 |
+
"ffi_ms": 0.0,
|
| 1119 |
+
"expected_rejection": true,
|
| 1120 |
+
"pass": true
|
| 1121 |
+
},
|
| 1122 |
+
{
|
| 1123 |
+
"input_id": "short-en",
|
| 1124 |
+
"actual_tokens": 17,
|
| 1125 |
+
"layer": 22,
|
| 1126 |
+
"dimension": 768,
|
| 1127 |
+
"status": -1,
|
| 1128 |
+
"error": true,
|
| 1129 |
+
"returned_length": 0,
|
| 1130 |
+
"ffi_sequence_length_field": 0,
|
| 1131 |
+
"wall_seconds": 5.928915925323963e-06,
|
| 1132 |
+
"ffi_ms": 0.0,
|
| 1133 |
+
"expected_rejection": true,
|
| 1134 |
+
"pass": true
|
| 1135 |
+
},
|
| 1136 |
+
{
|
| 1137 |
+
"name": "zero-default-full",
|
| 1138 |
+
"pass": true
|
| 1139 |
+
},
|
| 1140 |
+
{
|
| 1141 |
+
"name": "negative-values-current-default-semantics",
|
| 1142 |
+
"pass": true,
|
| 1143 |
+
"limitation": "Existing FFI maps all nonpositive layer/dimension values to default; negative rejection is not claimed."
|
| 1144 |
+
},
|
| 1145 |
+
{
|
| 1146 |
+
"name": "repeat-allocation-free",
|
| 1147 |
+
"count": 5,
|
| 1148 |
+
"pass": true
|
| 1149 |
+
},
|
| 1150 |
+
{
|
| 1151 |
+
"name": "long-derived-dimension",
|
| 1152 |
+
"layer": 3,
|
| 1153 |
+
"dimension": 64,
|
| 1154 |
+
"not_separate_ffi_call": true,
|
| 1155 |
+
"max_abs_error": 2.0742416381835938e-05,
|
| 1156 |
+
"pass": true
|
| 1157 |
+
},
|
| 1158 |
+
{
|
| 1159 |
+
"name": "long-derived-dimension",
|
| 1160 |
+
"layer": 3,
|
| 1161 |
+
"dimension": 128,
|
| 1162 |
+
"not_separate_ffi_call": true,
|
| 1163 |
+
"max_abs_error": 1.671910285949707e-05,
|
| 1164 |
+
"pass": true
|
| 1165 |
+
},
|
| 1166 |
+
{
|
| 1167 |
+
"name": "long-derived-dimension",
|
| 1168 |
+
"layer": 3,
|
| 1169 |
+
"dimension": 256,
|
| 1170 |
+
"not_separate_ffi_call": true,
|
| 1171 |
+
"max_abs_error": 1.2248754501342773e-05,
|
| 1172 |
+
"pass": true
|
| 1173 |
+
},
|
| 1174 |
+
{
|
| 1175 |
+
"name": "long-derived-dimension",
|
| 1176 |
+
"layer": 3,
|
| 1177 |
+
"dimension": 512,
|
| 1178 |
+
"not_separate_ffi_call": true,
|
| 1179 |
+
"max_abs_error": 8.553266525268555e-06,
|
| 1180 |
+
"pass": true
|
| 1181 |
+
},
|
| 1182 |
+
{
|
| 1183 |
+
"name": "long-derived-dimension",
|
| 1184 |
+
"layer": 6,
|
| 1185 |
+
"dimension": 64,
|
| 1186 |
+
"not_separate_ffi_call": true,
|
| 1187 |
+
"max_abs_error": 7.331371307373047e-06,
|
| 1188 |
+
"pass": true
|
| 1189 |
+
},
|
| 1190 |
+
{
|
| 1191 |
+
"name": "long-derived-dimension",
|
| 1192 |
+
"layer": 6,
|
| 1193 |
+
"dimension": 128,
|
| 1194 |
+
"not_separate_ffi_call": true,
|
| 1195 |
+
"max_abs_error": 6.705522537231445e-06,
|
| 1196 |
+
"pass": true
|
| 1197 |
+
},
|
| 1198 |
+
{
|
| 1199 |
+
"name": "long-derived-dimension",
|
| 1200 |
+
"layer": 6,
|
| 1201 |
+
"dimension": 256,
|
| 1202 |
+
"not_separate_ffi_call": true,
|
| 1203 |
+
"max_abs_error": 5.4836273193359375e-06,
|
| 1204 |
+
"pass": true
|
| 1205 |
+
},
|
| 1206 |
+
{
|
| 1207 |
+
"name": "long-derived-dimension",
|
| 1208 |
+
"layer": 6,
|
| 1209 |
+
"dimension": 512,
|
| 1210 |
+
"not_separate_ffi_call": true,
|
| 1211 |
+
"max_abs_error": 3.7997961044311523e-06,
|
| 1212 |
+
"pass": true
|
| 1213 |
+
},
|
| 1214 |
+
{
|
| 1215 |
+
"name": "long-derived-dimension",
|
| 1216 |
+
"layer": 11,
|
| 1217 |
+
"dimension": 64,
|
| 1218 |
+
"not_separate_ffi_call": true,
|
| 1219 |
+
"max_abs_error": 5.453824996948242e-06,
|
| 1220 |
+
"pass": true
|
| 1221 |
+
},
|
| 1222 |
+
{
|
| 1223 |
+
"name": "long-derived-dimension",
|
| 1224 |
+
"layer": 11,
|
| 1225 |
+
"dimension": 128,
|
| 1226 |
+
"not_separate_ffi_call": true,
|
| 1227 |
+
"max_abs_error": 5.207955837249756e-06,
|
| 1228 |
+
"pass": true
|
| 1229 |
+
},
|
| 1230 |
+
{
|
| 1231 |
+
"name": "long-derived-dimension",
|
| 1232 |
+
"layer": 11,
|
| 1233 |
+
"dimension": 256,
|
| 1234 |
+
"not_separate_ffi_call": true,
|
| 1235 |
+
"max_abs_error": 4.231929779052734e-06,
|
| 1236 |
+
"pass": true
|
| 1237 |
+
},
|
| 1238 |
+
{
|
| 1239 |
+
"name": "long-derived-dimension",
|
| 1240 |
+
"layer": 11,
|
| 1241 |
+
"dimension": 512,
|
| 1242 |
+
"not_separate_ffi_call": true,
|
| 1243 |
+
"max_abs_error": 2.9169023036956787e-06,
|
| 1244 |
+
"pass": true
|
| 1245 |
+
},
|
| 1246 |
+
{
|
| 1247 |
+
"name": "long-derived-dimension",
|
| 1248 |
+
"layer": 22,
|
| 1249 |
+
"dimension": 64,
|
| 1250 |
+
"not_separate_ffi_call": true,
|
| 1251 |
+
"max_abs_error": 3.7863850593566895e-05,
|
| 1252 |
+
"pass": true
|
| 1253 |
+
},
|
| 1254 |
+
{
|
| 1255 |
+
"name": "long-derived-dimension",
|
| 1256 |
+
"layer": 22,
|
| 1257 |
+
"dimension": 128,
|
| 1258 |
+
"not_separate_ffi_call": true,
|
| 1259 |
+
"max_abs_error": 2.9355287551879883e-05,
|
| 1260 |
+
"pass": true
|
| 1261 |
+
},
|
| 1262 |
+
{
|
| 1263 |
+
"name": "long-derived-dimension",
|
| 1264 |
+
"layer": 22,
|
| 1265 |
+
"dimension": 256,
|
| 1266 |
+
"not_separate_ffi_call": true,
|
| 1267 |
+
"max_abs_error": 2.655666321516037e-05,
|
| 1268 |
+
"pass": true
|
| 1269 |
+
},
|
| 1270 |
+
{
|
| 1271 |
+
"name": "long-derived-dimension",
|
| 1272 |
+
"layer": 22,
|
| 1273 |
+
"dimension": 512,
|
| 1274 |
+
"not_separate_ffi_call": true,
|
| 1275 |
+
"max_abs_error": 1.857895404100418e-05,
|
| 1276 |
+
"pass": true
|
| 1277 |
+
}
|
| 1278 |
+
],
|
| 1279 |
+
"inputs_sha256": "617295b3aa1fa67310a282302b7d2f099fb501a63a633a35ad6f27546a9536b4",
|
| 1280 |
+
"native_vectors_sha256": "79e5172d95147325f39859effd7f80f65a8bce95ac187707ea6b4fc813ffcee2",
|
| 1281 |
+
"contract": {
|
| 1282 |
+
"final_normalization": "final_norm",
|
| 1283 |
+
"intermediate_normalization": "none",
|
| 1284 |
+
"pooling": "attention_mask_mean",
|
| 1285 |
+
"pooling_accumulation_dtype": "float32",
|
| 1286 |
+
"truncate_before_l2_normalize": true,
|
| 1287 |
+
"version": 1
|
| 1288 |
+
},
|
| 1289 |
+
"reference_vectors_sha256": "9610e70d992ece3ebc4eff4a8b0d4cfab3597363594836d928c2c581d12fab5f",
|
| 1290 |
+
"versions": {
|
| 1291 |
+
"torch": "2.10.0+rocm7.0",
|
| 1292 |
+
"transformers": "4.57.6",
|
| 1293 |
+
"numpy": "2.5.3"
|
| 1294 |
+
},
|
| 1295 |
+
"all_pass": true,
|
| 1296 |
+
"complete": true
|
| 1297 |
+
}
|
reproduction/candle/short-reference-v1/report.json
ADDED
|
@@ -0,0 +1,656 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"script_sha256": "ca7dfee99b4f990c12e12a5e9da652a77bb6440f7195c9773ff6b32ccaf446d6",
|
| 3 |
+
"library_sha256": "0eefcc9e21bf790efd3861cd6f1ddc396774dd65d65aa67e097c4ed9691e72a6",
|
| 4 |
+
"weights_sha256": "e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab",
|
| 5 |
+
"fixture_sha256": "617295b3aa1fa67310a282302b7d2f099fb501a63a633a35ad6f27546a9536b4",
|
| 6 |
+
"scope": "Additional short-only CPU FP32 comparison; no long or batch claim. Same frozen gate, not replacing ongoing long proof.",
|
| 7 |
+
"gate": {
|
| 8 |
+
"atol": 0.0002,
|
| 9 |
+
"rtol": 0.0001,
|
| 10 |
+
"cosine_min": 0.99999
|
| 11 |
+
},
|
| 12 |
+
"results": [
|
| 13 |
+
{
|
| 14 |
+
"id": "short-en",
|
| 15 |
+
"layer": 3,
|
| 16 |
+
"dimension": 64,
|
| 17 |
+
"max_abs": 1.4901161193847656e-07,
|
| 18 |
+
"cosine": 0.9999999721808451,
|
| 19 |
+
"pass": true
|
| 20 |
+
},
|
| 21 |
+
{
|
| 22 |
+
"id": "short-en",
|
| 23 |
+
"layer": 3,
|
| 24 |
+
"dimension": 128,
|
| 25 |
+
"max_abs": 1.1548399925231934e-07,
|
| 26 |
+
"cosine": 1.0000000192041345,
|
| 27 |
+
"pass": true
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"id": "short-en",
|
| 31 |
+
"layer": 3,
|
| 32 |
+
"dimension": 256,
|
| 33 |
+
"max_abs": 1.2665987014770508e-07,
|
| 34 |
+
"cosine": 0.9999999980897961,
|
| 35 |
+
"pass": true
|
| 36 |
+
},
|
| 37 |
+
{
|
| 38 |
+
"id": "short-en",
|
| 39 |
+
"layer": 3,
|
| 40 |
+
"dimension": 512,
|
| 41 |
+
"max_abs": 1.4901161193847656e-07,
|
| 42 |
+
"cosine": 0.9999998864747806,
|
| 43 |
+
"pass": true
|
| 44 |
+
},
|
| 45 |
+
{
|
| 46 |
+
"id": "short-en",
|
| 47 |
+
"layer": 3,
|
| 48 |
+
"dimension": 768,
|
| 49 |
+
"max_abs": 5.960464477539063e-08,
|
| 50 |
+
"cosine": 1.0000000822871402,
|
| 51 |
+
"pass": true
|
| 52 |
+
},
|
| 53 |
+
{
|
| 54 |
+
"id": "short-en",
|
| 55 |
+
"layer": 6,
|
| 56 |
+
"dimension": 64,
|
| 57 |
+
"max_abs": 2.384185791015625e-07,
|
| 58 |
+
"cosine": 1.000000016439566,
|
| 59 |
+
"pass": true
|
| 60 |
+
},
|
| 61 |
+
{
|
| 62 |
+
"id": "short-en",
|
| 63 |
+
"layer": 6,
|
| 64 |
+
"dimension": 128,
|
| 65 |
+
"max_abs": 1.7881393432617188e-07,
|
| 66 |
+
"cosine": 1.000000043061299,
|
| 67 |
+
"pass": true
|
| 68 |
+
},
|
| 69 |
+
{
|
| 70 |
+
"id": "short-en",
|
| 71 |
+
"layer": 6,
|
| 72 |
+
"dimension": 256,
|
| 73 |
+
"max_abs": 1.825392246246338e-07,
|
| 74 |
+
"cosine": 1.0000000028054645,
|
| 75 |
+
"pass": true
|
| 76 |
+
},
|
| 77 |
+
{
|
| 78 |
+
"id": "short-en",
|
| 79 |
+
"layer": 6,
|
| 80 |
+
"dimension": 512,
|
| 81 |
+
"max_abs": 2.384185791015625e-07,
|
| 82 |
+
"cosine": 0.9999999985733496,
|
| 83 |
+
"pass": true
|
| 84 |
+
},
|
| 85 |
+
{
|
| 86 |
+
"id": "short-en",
|
| 87 |
+
"layer": 6,
|
| 88 |
+
"dimension": 768,
|
| 89 |
+
"max_abs": 7.450580596923828e-08,
|
| 90 |
+
"cosine": 0.9999999905373957,
|
| 91 |
+
"pass": true
|
| 92 |
+
},
|
| 93 |
+
{
|
| 94 |
+
"id": "short-en",
|
| 95 |
+
"layer": 11,
|
| 96 |
+
"dimension": 64,
|
| 97 |
+
"max_abs": 4.470348358154297e-07,
|
| 98 |
+
"cosine": 0.999999958666834,
|
| 99 |
+
"pass": true
|
| 100 |
+
},
|
| 101 |
+
{
|
| 102 |
+
"id": "short-en",
|
| 103 |
+
"layer": 11,
|
| 104 |
+
"dimension": 128,
|
| 105 |
+
"max_abs": 2.980232238769531e-07,
|
| 106 |
+
"cosine": 1.0000000176256918,
|
| 107 |
+
"pass": true
|
| 108 |
+
},
|
| 109 |
+
{
|
| 110 |
+
"id": "short-en",
|
| 111 |
+
"layer": 11,
|
| 112 |
+
"dimension": 256,
|
| 113 |
+
"max_abs": 2.8312206268310547e-07,
|
| 114 |
+
"cosine": 1.0000000965129094,
|
| 115 |
+
"pass": true
|
| 116 |
+
},
|
| 117 |
+
{
|
| 118 |
+
"id": "short-en",
|
| 119 |
+
"layer": 11,
|
| 120 |
+
"dimension": 512,
|
| 121 |
+
"max_abs": 1.1920928955078125e-07,
|
| 122 |
+
"cosine": 1.0000000463993302,
|
| 123 |
+
"pass": true
|
| 124 |
+
},
|
| 125 |
+
{
|
| 126 |
+
"id": "short-en",
|
| 127 |
+
"layer": 11,
|
| 128 |
+
"dimension": 768,
|
| 129 |
+
"max_abs": 3.5762786865234375e-07,
|
| 130 |
+
"cosine": 1.0000000052344211,
|
| 131 |
+
"pass": true
|
| 132 |
+
},
|
| 133 |
+
{
|
| 134 |
+
"id": "short-en",
|
| 135 |
+
"layer": 22,
|
| 136 |
+
"dimension": 64,
|
| 137 |
+
"max_abs": 3.427267074584961e-07,
|
| 138 |
+
"cosine": 0.9999999906121615,
|
| 139 |
+
"pass": true
|
| 140 |
+
},
|
| 141 |
+
{
|
| 142 |
+
"id": "short-en",
|
| 143 |
+
"layer": 22,
|
| 144 |
+
"dimension": 128,
|
| 145 |
+
"max_abs": 2.4586915969848633e-07,
|
| 146 |
+
"cosine": 1.0000000724727505,
|
| 147 |
+
"pass": true
|
| 148 |
+
},
|
| 149 |
+
{
|
| 150 |
+
"id": "short-en",
|
| 151 |
+
"layer": 22,
|
| 152 |
+
"dimension": 256,
|
| 153 |
+
"max_abs": 1.862645149230957e-07,
|
| 154 |
+
"cosine": 1.000000074981958,
|
| 155 |
+
"pass": true
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"id": "short-en",
|
| 159 |
+
"layer": 22,
|
| 160 |
+
"dimension": 512,
|
| 161 |
+
"max_abs": 1.6763806343078613e-07,
|
| 162 |
+
"cosine": 1.0000000652533545,
|
| 163 |
+
"pass": true
|
| 164 |
+
},
|
| 165 |
+
{
|
| 166 |
+
"id": "short-en",
|
| 167 |
+
"layer": 22,
|
| 168 |
+
"dimension": 768,
|
| 169 |
+
"max_abs": 1.4062970876693726e-07,
|
| 170 |
+
"cosine": 1.000000004329943,
|
| 171 |
+
"pass": true
|
| 172 |
+
},
|
| 173 |
+
{
|
| 174 |
+
"id": "short-zh",
|
| 175 |
+
"layer": 3,
|
| 176 |
+
"dimension": 64,
|
| 177 |
+
"max_abs": 2.1606683731079102e-07,
|
| 178 |
+
"cosine": 1.0000000478718052,
|
| 179 |
+
"pass": true
|
| 180 |
+
},
|
| 181 |
+
{
|
| 182 |
+
"id": "short-zh",
|
| 183 |
+
"layer": 3,
|
| 184 |
+
"dimension": 128,
|
| 185 |
+
"max_abs": 1.6391277313232422e-07,
|
| 186 |
+
"cosine": 1.0000000247820346,
|
| 187 |
+
"pass": true
|
| 188 |
+
},
|
| 189 |
+
{
|
| 190 |
+
"id": "short-zh",
|
| 191 |
+
"layer": 3,
|
| 192 |
+
"dimension": 256,
|
| 193 |
+
"max_abs": 1.1920928955078125e-07,
|
| 194 |
+
"cosine": 1.0000000109076452,
|
| 195 |
+
"pass": true
|
| 196 |
+
},
|
| 197 |
+
{
|
| 198 |
+
"id": "short-zh",
|
| 199 |
+
"layer": 3,
|
| 200 |
+
"dimension": 512,
|
| 201 |
+
"max_abs": 7.450580596923828e-08,
|
| 202 |
+
"cosine": 1.000000061202781,
|
| 203 |
+
"pass": true
|
| 204 |
+
},
|
| 205 |
+
{
|
| 206 |
+
"id": "short-zh",
|
| 207 |
+
"layer": 3,
|
| 208 |
+
"dimension": 768,
|
| 209 |
+
"max_abs": 1.1920928955078125e-07,
|
| 210 |
+
"cosine": 1.0000000743286885,
|
| 211 |
+
"pass": true
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"id": "short-zh",
|
| 215 |
+
"layer": 6,
|
| 216 |
+
"dimension": 64,
|
| 217 |
+
"max_abs": 3.203749656677246e-07,
|
| 218 |
+
"cosine": 1.0000000551323012,
|
| 219 |
+
"pass": true
|
| 220 |
+
},
|
| 221 |
+
{
|
| 222 |
+
"id": "short-zh",
|
| 223 |
+
"layer": 6,
|
| 224 |
+
"dimension": 128,
|
| 225 |
+
"max_abs": 1.8998980522155762e-07,
|
| 226 |
+
"cosine": 1.0000000170369325,
|
| 227 |
+
"pass": true
|
| 228 |
+
},
|
| 229 |
+
{
|
| 230 |
+
"id": "short-zh",
|
| 231 |
+
"layer": 6,
|
| 232 |
+
"dimension": 256,
|
| 233 |
+
"max_abs": 1.4901161193847656e-07,
|
| 234 |
+
"cosine": 1.0000000846850565,
|
| 235 |
+
"pass": true
|
| 236 |
+
},
|
| 237 |
+
{
|
| 238 |
+
"id": "short-zh",
|
| 239 |
+
"layer": 6,
|
| 240 |
+
"dimension": 512,
|
| 241 |
+
"max_abs": 1.6391277313232422e-07,
|
| 242 |
+
"cosine": 0.9999999925390471,
|
| 243 |
+
"pass": true
|
| 244 |
+
},
|
| 245 |
+
{
|
| 246 |
+
"id": "short-zh",
|
| 247 |
+
"layer": 6,
|
| 248 |
+
"dimension": 768,
|
| 249 |
+
"max_abs": 1.7881393432617188e-07,
|
| 250 |
+
"cosine": 1.0000000845969579,
|
| 251 |
+
"pass": true
|
| 252 |
+
},
|
| 253 |
+
{
|
| 254 |
+
"id": "short-zh",
|
| 255 |
+
"layer": 11,
|
| 256 |
+
"dimension": 64,
|
| 257 |
+
"max_abs": 2.253800630569458e-07,
|
| 258 |
+
"cosine": 1.0000000878185407,
|
| 259 |
+
"pass": true
|
| 260 |
+
},
|
| 261 |
+
{
|
| 262 |
+
"id": "short-zh",
|
| 263 |
+
"layer": 11,
|
| 264 |
+
"dimension": 128,
|
| 265 |
+
"max_abs": 1.3504177331924438e-07,
|
| 266 |
+
"cosine": 1.0000000464076944,
|
| 267 |
+
"pass": true
|
| 268 |
+
},
|
| 269 |
+
{
|
| 270 |
+
"id": "short-zh",
|
| 271 |
+
"layer": 11,
|
| 272 |
+
"dimension": 256,
|
| 273 |
+
"max_abs": 1.4901161193847656e-07,
|
| 274 |
+
"cosine": 1.0000000695567814,
|
| 275 |
+
"pass": true
|
| 276 |
+
},
|
| 277 |
+
{
|
| 278 |
+
"id": "short-zh",
|
| 279 |
+
"layer": 11,
|
| 280 |
+
"dimension": 512,
|
| 281 |
+
"max_abs": 1.0058283805847168e-07,
|
| 282 |
+
"cosine": 1.0000000114762304,
|
| 283 |
+
"pass": true
|
| 284 |
+
},
|
| 285 |
+
{
|
| 286 |
+
"id": "short-zh",
|
| 287 |
+
"layer": 11,
|
| 288 |
+
"dimension": 768,
|
| 289 |
+
"max_abs": 5.960464477539063e-08,
|
| 290 |
+
"cosine": 1.000000107178668,
|
| 291 |
+
"pass": true
|
| 292 |
+
},
|
| 293 |
+
{
|
| 294 |
+
"id": "short-zh",
|
| 295 |
+
"layer": 22,
|
| 296 |
+
"dimension": 64,
|
| 297 |
+
"max_abs": 2.980232238769531e-07,
|
| 298 |
+
"cosine": 1.000000035292586,
|
| 299 |
+
"pass": true
|
| 300 |
+
},
|
| 301 |
+
{
|
| 302 |
+
"id": "short-zh",
|
| 303 |
+
"layer": 22,
|
| 304 |
+
"dimension": 128,
|
| 305 |
+
"max_abs": 2.123415470123291e-07,
|
| 306 |
+
"cosine": 1.000000096714245,
|
| 307 |
+
"pass": true
|
| 308 |
+
},
|
| 309 |
+
{
|
| 310 |
+
"id": "short-zh",
|
| 311 |
+
"layer": 22,
|
| 312 |
+
"dimension": 256,
|
| 313 |
+
"max_abs": 2.3096799850463867e-07,
|
| 314 |
+
"cosine": 0.999999997067408,
|
| 315 |
+
"pass": true
|
| 316 |
+
},
|
| 317 |
+
{
|
| 318 |
+
"id": "short-zh",
|
| 319 |
+
"layer": 22,
|
| 320 |
+
"dimension": 512,
|
| 321 |
+
"max_abs": 1.862645149230957e-07,
|
| 322 |
+
"cosine": 1.0000000330443395,
|
| 323 |
+
"pass": true
|
| 324 |
+
},
|
| 325 |
+
{
|
| 326 |
+
"id": "short-zh",
|
| 327 |
+
"layer": 22,
|
| 328 |
+
"dimension": 768,
|
| 329 |
+
"max_abs": 2.086162567138672e-07,
|
| 330 |
+
"cosine": 1.000000008793068,
|
| 331 |
+
"pass": true
|
| 332 |
+
},
|
| 333 |
+
{
|
| 334 |
+
"id": "tokens-2",
|
| 335 |
+
"layer": 3,
|
| 336 |
+
"dimension": 64,
|
| 337 |
+
"max_abs": 2.980232238769531e-07,
|
| 338 |
+
"cosine": 0.9999999858903843,
|
| 339 |
+
"pass": true
|
| 340 |
+
},
|
| 341 |
+
{
|
| 342 |
+
"id": "tokens-2",
|
| 343 |
+
"layer": 3,
|
| 344 |
+
"dimension": 128,
|
| 345 |
+
"max_abs": 2.384185791015625e-07,
|
| 346 |
+
"cosine": 1.000000031684112,
|
| 347 |
+
"pass": true
|
| 348 |
+
},
|
| 349 |
+
{
|
| 350 |
+
"id": "tokens-2",
|
| 351 |
+
"layer": 3,
|
| 352 |
+
"dimension": 256,
|
| 353 |
+
"max_abs": 2.086162567138672e-07,
|
| 354 |
+
"cosine": 1.0000000184902,
|
| 355 |
+
"pass": true
|
| 356 |
+
},
|
| 357 |
+
{
|
| 358 |
+
"id": "tokens-2",
|
| 359 |
+
"layer": 3,
|
| 360 |
+
"dimension": 512,
|
| 361 |
+
"max_abs": 1.4901161193847656e-07,
|
| 362 |
+
"cosine": 1.0000000977345498,
|
| 363 |
+
"pass": true
|
| 364 |
+
},
|
| 365 |
+
{
|
| 366 |
+
"id": "tokens-2",
|
| 367 |
+
"layer": 3,
|
| 368 |
+
"dimension": 768,
|
| 369 |
+
"max_abs": 5.960464477539063e-08,
|
| 370 |
+
"cosine": 1.0000000160355296,
|
| 371 |
+
"pass": true
|
| 372 |
+
},
|
| 373 |
+
{
|
| 374 |
+
"id": "tokens-2",
|
| 375 |
+
"layer": 6,
|
| 376 |
+
"dimension": 64,
|
| 377 |
+
"max_abs": 3.1478703022003174e-07,
|
| 378 |
+
"cosine": 1.0000000270250793,
|
| 379 |
+
"pass": true
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"id": "tokens-2",
|
| 383 |
+
"layer": 6,
|
| 384 |
+
"dimension": 128,
|
| 385 |
+
"max_abs": 2.8312206268310547e-07,
|
| 386 |
+
"cosine": 1.000000054935811,
|
| 387 |
+
"pass": true
|
| 388 |
+
},
|
| 389 |
+
{
|
| 390 |
+
"id": "tokens-2",
|
| 391 |
+
"layer": 6,
|
| 392 |
+
"dimension": 256,
|
| 393 |
+
"max_abs": 2.980232238769531e-07,
|
| 394 |
+
"cosine": 1.0000000310234103,
|
| 395 |
+
"pass": true
|
| 396 |
+
},
|
| 397 |
+
{
|
| 398 |
+
"id": "tokens-2",
|
| 399 |
+
"layer": 6,
|
| 400 |
+
"dimension": 512,
|
| 401 |
+
"max_abs": 1.5273690223693848e-07,
|
| 402 |
+
"cosine": 1.0000000453182063,
|
| 403 |
+
"pass": true
|
| 404 |
+
},
|
| 405 |
+
{
|
| 406 |
+
"id": "tokens-2",
|
| 407 |
+
"layer": 6,
|
| 408 |
+
"dimension": 768,
|
| 409 |
+
"max_abs": 2.980232238769531e-07,
|
| 410 |
+
"cosine": 1.000000037505416,
|
| 411 |
+
"pass": true
|
| 412 |
+
},
|
| 413 |
+
{
|
| 414 |
+
"id": "tokens-2",
|
| 415 |
+
"layer": 11,
|
| 416 |
+
"dimension": 64,
|
| 417 |
+
"max_abs": 5.848705768585205e-07,
|
| 418 |
+
"cosine": 0.9999999852248374,
|
| 419 |
+
"pass": true
|
| 420 |
+
},
|
| 421 |
+
{
|
| 422 |
+
"id": "tokens-2",
|
| 423 |
+
"layer": 11,
|
| 424 |
+
"dimension": 128,
|
| 425 |
+
"max_abs": 4.284083843231201e-07,
|
| 426 |
+
"cosine": 1.0000000932717263,
|
| 427 |
+
"pass": true
|
| 428 |
+
},
|
| 429 |
+
{
|
| 430 |
+
"id": "tokens-2",
|
| 431 |
+
"layer": 11,
|
| 432 |
+
"dimension": 256,
|
| 433 |
+
"max_abs": 3.501772880554199e-07,
|
| 434 |
+
"cosine": 1.0000000244060339,
|
| 435 |
+
"pass": true
|
| 436 |
+
},
|
| 437 |
+
{
|
| 438 |
+
"id": "tokens-2",
|
| 439 |
+
"layer": 11,
|
| 440 |
+
"dimension": 512,
|
| 441 |
+
"max_abs": 2.8312206268310547e-07,
|
| 442 |
+
"cosine": 0.9999999839803887,
|
| 443 |
+
"pass": true
|
| 444 |
+
},
|
| 445 |
+
{
|
| 446 |
+
"id": "tokens-2",
|
| 447 |
+
"layer": 11,
|
| 448 |
+
"dimension": 768,
|
| 449 |
+
"max_abs": 2.980232238769531e-07,
|
| 450 |
+
"cosine": 1.0000001601617867,
|
| 451 |
+
"pass": true
|
| 452 |
+
},
|
| 453 |
+
{
|
| 454 |
+
"id": "tokens-2",
|
| 455 |
+
"layer": 22,
|
| 456 |
+
"dimension": 64,
|
| 457 |
+
"max_abs": 1.0728836059570312e-06,
|
| 458 |
+
"cosine": 1.000000005738668,
|
| 459 |
+
"pass": true
|
| 460 |
+
},
|
| 461 |
+
{
|
| 462 |
+
"id": "tokens-2",
|
| 463 |
+
"layer": 22,
|
| 464 |
+
"dimension": 128,
|
| 465 |
+
"max_abs": 8.195638656616211e-07,
|
| 466 |
+
"cosine": 1.000000060910335,
|
| 467 |
+
"pass": true
|
| 468 |
+
},
|
| 469 |
+
{
|
| 470 |
+
"id": "tokens-2",
|
| 471 |
+
"layer": 22,
|
| 472 |
+
"dimension": 256,
|
| 473 |
+
"max_abs": 5.960464477539062e-07,
|
| 474 |
+
"cosine": 1.0000000743189,
|
| 475 |
+
"pass": true
|
| 476 |
+
},
|
| 477 |
+
{
|
| 478 |
+
"id": "tokens-2",
|
| 479 |
+
"layer": 22,
|
| 480 |
+
"dimension": 512,
|
| 481 |
+
"max_abs": 3.7997961044311523e-07,
|
| 482 |
+
"cosine": 1.0000000438159555,
|
| 483 |
+
"pass": true
|
| 484 |
+
},
|
| 485 |
+
{
|
| 486 |
+
"id": "tokens-2",
|
| 487 |
+
"layer": 22,
|
| 488 |
+
"dimension": 768,
|
| 489 |
+
"max_abs": 3.241002559661865e-07,
|
| 490 |
+
"cosine": 1.0000000484596474,
|
| 491 |
+
"pass": true
|
| 492 |
+
},
|
| 493 |
+
{
|
| 494 |
+
"id": "tokens-129",
|
| 495 |
+
"layer": 3,
|
| 496 |
+
"dimension": 64,
|
| 497 |
+
"max_abs": 2.384185791015625e-07,
|
| 498 |
+
"cosine": 1.000000057170823,
|
| 499 |
+
"pass": true
|
| 500 |
+
},
|
| 501 |
+
{
|
| 502 |
+
"id": "tokens-129",
|
| 503 |
+
"layer": 3,
|
| 504 |
+
"dimension": 128,
|
| 505 |
+
"max_abs": 2.384185791015625e-07,
|
| 506 |
+
"cosine": 0.9999999993005354,
|
| 507 |
+
"pass": true
|
| 508 |
+
},
|
| 509 |
+
{
|
| 510 |
+
"id": "tokens-129",
|
| 511 |
+
"layer": 3,
|
| 512 |
+
"dimension": 256,
|
| 513 |
+
"max_abs": 1.4901161193847656e-07,
|
| 514 |
+
"cosine": 1.0000000658944839,
|
| 515 |
+
"pass": true
|
| 516 |
+
},
|
| 517 |
+
{
|
| 518 |
+
"id": "tokens-129",
|
| 519 |
+
"layer": 3,
|
| 520 |
+
"dimension": 512,
|
| 521 |
+
"max_abs": 1.043081283569336e-07,
|
| 522 |
+
"cosine": 1.000000004947423,
|
| 523 |
+
"pass": true
|
| 524 |
+
},
|
| 525 |
+
{
|
| 526 |
+
"id": "tokens-129",
|
| 527 |
+
"layer": 3,
|
| 528 |
+
"dimension": 768,
|
| 529 |
+
"max_abs": 4.172325134277344e-07,
|
| 530 |
+
"cosine": 0.9999999681413272,
|
| 531 |
+
"pass": true
|
| 532 |
+
},
|
| 533 |
+
{
|
| 534 |
+
"id": "tokens-129",
|
| 535 |
+
"layer": 6,
|
| 536 |
+
"dimension": 64,
|
| 537 |
+
"max_abs": 2.086162567138672e-07,
|
| 538 |
+
"cosine": 1.0000000399180042,
|
| 539 |
+
"pass": true
|
| 540 |
+
},
|
| 541 |
+
{
|
| 542 |
+
"id": "tokens-129",
|
| 543 |
+
"layer": 6,
|
| 544 |
+
"dimension": 128,
|
| 545 |
+
"max_abs": 1.341104507446289e-07,
|
| 546 |
+
"cosine": 1.0000000751355942,
|
| 547 |
+
"pass": true
|
| 548 |
+
},
|
| 549 |
+
{
|
| 550 |
+
"id": "tokens-129",
|
| 551 |
+
"layer": 6,
|
| 552 |
+
"dimension": 256,
|
| 553 |
+
"max_abs": 1.043081283569336e-07,
|
| 554 |
+
"cosine": 1.0000000528508308,
|
| 555 |
+
"pass": true
|
| 556 |
+
},
|
| 557 |
+
{
|
| 558 |
+
"id": "tokens-129",
|
| 559 |
+
"layer": 6,
|
| 560 |
+
"dimension": 512,
|
| 561 |
+
"max_abs": 1.043081283569336e-07,
|
| 562 |
+
"cosine": 1.0000000414394223,
|
| 563 |
+
"pass": true
|
| 564 |
+
},
|
| 565 |
+
{
|
| 566 |
+
"id": "tokens-129",
|
| 567 |
+
"layer": 6,
|
| 568 |
+
"dimension": 768,
|
| 569 |
+
"max_abs": 5.960464477539063e-08,
|
| 570 |
+
"cosine": 0.9999999755431823,
|
| 571 |
+
"pass": true
|
| 572 |
+
},
|
| 573 |
+
{
|
| 574 |
+
"id": "tokens-129",
|
| 575 |
+
"layer": 11,
|
| 576 |
+
"dimension": 64,
|
| 577 |
+
"max_abs": 3.46451997756958e-07,
|
| 578 |
+
"cosine": 1.000000004759114,
|
| 579 |
+
"pass": true
|
| 580 |
+
},
|
| 581 |
+
{
|
| 582 |
+
"id": "tokens-129",
|
| 583 |
+
"layer": 11,
|
| 584 |
+
"dimension": 128,
|
| 585 |
+
"max_abs": 2.200249582529068e-07,
|
| 586 |
+
"cosine": 0.9999999502813304,
|
| 587 |
+
"pass": true
|
| 588 |
+
},
|
| 589 |
+
{
|
| 590 |
+
"id": "tokens-129",
|
| 591 |
+
"layer": 11,
|
| 592 |
+
"dimension": 256,
|
| 593 |
+
"max_abs": 1.778826117515564e-07,
|
| 594 |
+
"cosine": 0.9999999703788394,
|
| 595 |
+
"pass": true
|
| 596 |
+
},
|
| 597 |
+
{
|
| 598 |
+
"id": "tokens-129",
|
| 599 |
+
"layer": 11,
|
| 600 |
+
"dimension": 512,
|
| 601 |
+
"max_abs": 1.9371509552001953e-07,
|
| 602 |
+
"cosine": 1.0000000480153513,
|
| 603 |
+
"pass": true
|
| 604 |
+
},
|
| 605 |
+
{
|
| 606 |
+
"id": "tokens-129",
|
| 607 |
+
"layer": 11,
|
| 608 |
+
"dimension": 768,
|
| 609 |
+
"max_abs": 1.2665987014770508e-07,
|
| 610 |
+
"cosine": 1.0000000899918613,
|
| 611 |
+
"pass": true
|
| 612 |
+
},
|
| 613 |
+
{
|
| 614 |
+
"id": "tokens-129",
|
| 615 |
+
"layer": 22,
|
| 616 |
+
"dimension": 64,
|
| 617 |
+
"max_abs": 4.023313522338867e-07,
|
| 618 |
+
"cosine": 1.0000000040294619,
|
| 619 |
+
"pass": true
|
| 620 |
+
},
|
| 621 |
+
{
|
| 622 |
+
"id": "tokens-129",
|
| 623 |
+
"layer": 22,
|
| 624 |
+
"dimension": 128,
|
| 625 |
+
"max_abs": 2.5331974029541016e-07,
|
| 626 |
+
"cosine": 0.9999999674903538,
|
| 627 |
+
"pass": true
|
| 628 |
+
},
|
| 629 |
+
{
|
| 630 |
+
"id": "tokens-129",
|
| 631 |
+
"layer": 22,
|
| 632 |
+
"dimension": 256,
|
| 633 |
+
"max_abs": 2.2351741790771484e-07,
|
| 634 |
+
"cosine": 1.0000000392789272,
|
| 635 |
+
"pass": true
|
| 636 |
+
},
|
| 637 |
+
{
|
| 638 |
+
"id": "tokens-129",
|
| 639 |
+
"layer": 22,
|
| 640 |
+
"dimension": 512,
|
| 641 |
+
"max_abs": 1.7136335372924805e-07,
|
| 642 |
+
"cosine": 1.0000000660670363,
|
| 643 |
+
"pass": true
|
| 644 |
+
},
|
| 645 |
+
{
|
| 646 |
+
"id": "tokens-129",
|
| 647 |
+
"layer": 22,
|
| 648 |
+
"dimension": 768,
|
| 649 |
+
"max_abs": 1.4156103134155273e-07,
|
| 650 |
+
"cosine": 1.0000000680781156,
|
| 651 |
+
"pass": true
|
| 652 |
+
}
|
| 653 |
+
],
|
| 654 |
+
"all_pass": true,
|
| 655 |
+
"complete": true
|
| 656 |
+
}
|
reproduction/candle/short_reference.py
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Independent bounded short parity while full32K FFI qualifications run."""
|
| 2 |
+
import argparse,ctypes as C,hashlib,json,sys
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
import torch
|
| 6 |
+
from transformers import AutoModel,AutoTokenizer
|
| 7 |
+
from validate_candle import Result,sha
|
| 8 |
+
|
| 9 |
+
def main():
|
| 10 |
+
p=argparse.ArgumentParser(description=__doc__);p.add_argument('--root',type=Path,required=True);p.add_argument('--model',type=Path,required=True);p.add_argument('--library',type=Path,required=True);p.add_argument('--source',type=Path,required=True);p.add_argument('--expected-library-sha256',default='0eefcc9e21bf790efd3861cd6f1ddc396774dd65d65aa67e097c4ed9691e72a6');a=p.parse_args()
|
| 11 |
+
ROOT,MODEL,LIB=a.root,a.model,a.library
|
| 12 |
+
sys.path.insert(0,str(a.source/'src/training/model_embeddings'))
|
| 13 |
+
from mmbert_32k.representation_outputs import select_hidden_state,masked_mean,truncate_and_normalize
|
| 14 |
+
from mmbert_32k.representation_contract import read_representation_contract
|
| 15 |
+
torch.set_num_threads(8);out=ROOT/'short-reference-v1';out.mkdir(exist_ok=False);assert sha(MODEL/'model.safetensors')=='e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab';assert sha(LIB)==a.expected_library_sha256
|
| 16 |
+
lib=C.CDLL(str(LIB));lib.init_mmbert_embedding_model.argtypes=[C.c_char_p,C.c_bool];lib.init_mmbert_embedding_model.restype=C.c_bool;lib.get_embedding_2d_matryoshka.argtypes=[C.c_char_p,C.c_char_p,C.c_int32,C.c_int32,C.POINTER(Result)];lib.get_embedding_2d_matryoshka.restype=C.c_int32;lib.free_embedding.argtypes=[C.POINTER(C.c_float),C.c_int32];lib.free_embedding.restype=None;assert lib.init_mmbert_embedding_model(str(MODEL).encode(),True)
|
| 17 |
+
tok=AutoTokenizer.from_pretrained(MODEL,local_files_only=True);model=AutoModel.from_pretrained(MODEL,local_files_only=True,torch_dtype=torch.float32,attn_implementation='sdpa',reference_compile=False).eval();contract=read_representation_contract(model.config,'embedding');inputs=[json.loads(x) for x in (ROOT/'qualification-v1/inputs.jsonl').read_text().split('\n') if x];inputs=[r for r in inputs if r['id'] in ['short-en','short-zh','tokens-2','tokens-129']];results=[]
|
| 18 |
+
for row in inputs:
|
| 19 |
+
tokens=tok(row['text'],return_tensors='pt',truncation=False);tokens={k:v for k,v in tokens.items() if k in ('input_ids','attention_mask')}
|
| 20 |
+
with torch.inference_mode(),torch.autocast('cpu',enabled=False):
|
| 21 |
+
output=model(**tokens,output_hidden_states=True,return_dict=True)
|
| 22 |
+
for depth in [3,6,11,22]:
|
| 23 |
+
pooled=masked_mean(select_hidden_state(model,output,depth,contract,task='embedding'),tokens['attention_mask'])
|
| 24 |
+
for dim in [64,128,256,512,768]:
|
| 25 |
+
reference=truncate_and_normalize(pooled,dim)[0].numpy();r=Result();code=lib.get_embedding_2d_matryoshka(row['text'].encode(),b'mmbert',depth,dim,C.byref(r));assert code==0 and r.length==dim and not r.error
|
| 26 |
+
try:v=np.ctypeslib.as_array(r.data,shape=(r.length,)).copy()
|
| 27 |
+
finally:lib.free_embedding(r.data,r.length)
|
| 28 |
+
cos=float(np.dot(v.astype('float64'),reference)/np.linalg.norm(v)/np.linalg.norm(reference));delta=float(np.max(np.abs(v-reference)));results.append({'id':row['id'],'layer':depth,'dimension':dim,'max_abs':delta,'cosine':cos,'pass':bool(np.allclose(v,reference,atol=2e-4,rtol=1e-4) and cos>=.99999)})
|
| 29 |
+
print(json.dumps({'id':row['id'],'max_abs':max(r['max_abs'] for r in results if r['id']==row['id'])}),flush=True)
|
| 30 |
+
report={'script_sha256':sha(__file__),'library_sha256':sha(LIB),'weights_sha256':sha(MODEL/'model.safetensors'),'fixture_sha256':sha(ROOT/'qualification-v1/inputs.jsonl'),'scope':'Additional short-only CPU FP32 comparison; no long or batch claim. Same frozen gate, not replacing ongoing long proof.','gate':{'atol':2e-4,'rtol':1e-4,'cosine_min':.99999},'results':results,'all_pass':all(r['pass'] for r in results),'complete':True};(out/'report.json').write_text(json.dumps(report,indent=2)+'\n');print(json.dumps({'complete':True,'all_pass':report['all_pass'],'max_abs':max(r['max_abs'] for r in results)}),flush=True)
|
| 31 |
+
if __name__=='__main__':main()
|
reproduction/candle/summarize_candle.py
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Summarize completed CPU engine evidence without repeating model inference."""
|
| 2 |
+
|
| 3 |
+
import argparse
|
| 4 |
+
import hashlib
|
| 5 |
+
import json
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
|
| 8 |
+
import numpy as np
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
def sha(path):
|
| 12 |
+
return hashlib.sha256(path.read_bytes()).hexdigest()
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def cosine64(left, right):
|
| 16 |
+
left = left.astype(np.float64)
|
| 17 |
+
right = right.astype(np.float64)
|
| 18 |
+
return float(np.dot(left, right) / (np.linalg.norm(left) * np.linalg.norm(right)))
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def main():
|
| 22 |
+
parser = argparse.ArgumentParser(description=__doc__)
|
| 23 |
+
parser.add_argument("--root", type=Path, required=True)
|
| 24 |
+
parser.add_argument("--output", type=Path)
|
| 25 |
+
args = parser.parse_args()
|
| 26 |
+
root = args.root
|
| 27 |
+
primary = json.loads((root / "qualification-v1/report.json").read_text())
|
| 28 |
+
short = json.loads((root / "short-reference-v1/report.json").read_text())
|
| 29 |
+
assert primary["complete"] and primary["all_pass"]
|
| 30 |
+
assert short["complete"] and short["all_pass"]
|
| 31 |
+
assert primary["model_sha256"]["model.safetensors"] == short["weights_sha256"]
|
| 32 |
+
assert primary["library_sha256"] == short["library_sha256"]
|
| 33 |
+
native_path = root / "qualification-v1/native-vectors.npz"
|
| 34 |
+
reference_path = root / "qualification-v1/hf-fp32-vectors.npz"
|
| 35 |
+
assert sha(native_path) == primary["native_vectors_sha256"]
|
| 36 |
+
assert sha(reference_path) == primary["reference_vectors_sha256"]
|
| 37 |
+
native = np.load(native_path, allow_pickle=False)
|
| 38 |
+
reference = np.load(reference_path, allow_pickle=False)
|
| 39 |
+
recomputed = []
|
| 40 |
+
for case in primary["cases"]:
|
| 41 |
+
key, layer, dimension = case["input_id"], case["layer"], case["dimension"]
|
| 42 |
+
value = native[f"{key}|{layer}|{dimension}"]
|
| 43 |
+
target = reference[f"{key}|{layer if layer > 0 else 22}|{dimension if dimension > 0 else 768}"]
|
| 44 |
+
cosine = cosine64(value, target)
|
| 45 |
+
passed = bool(np.allclose(value, target, atol=2e-4, rtol=1e-4) and cosine >= 0.99999)
|
| 46 |
+
assert passed
|
| 47 |
+
recomputed.append({
|
| 48 |
+
"input_id": key,
|
| 49 |
+
"layer": layer,
|
| 50 |
+
"dimension": dimension,
|
| 51 |
+
"max_abs_error": float(np.max(np.abs(value - target))),
|
| 52 |
+
"cosine_fp64": cosine,
|
| 53 |
+
"pass": passed,
|
| 54 |
+
})
|
| 55 |
+
derived = []
|
| 56 |
+
for layer in (3, 6, 11, 22):
|
| 57 |
+
for dimension in (64, 128, 256, 512):
|
| 58 |
+
value = native[f"tokens-32768|{layer}|768"][:dimension].copy()
|
| 59 |
+
value /= np.linalg.norm(value)
|
| 60 |
+
target = reference[f"tokens-32768|{layer}|{dimension}"]
|
| 61 |
+
cosine = cosine64(value, target)
|
| 62 |
+
passed = bool(np.allclose(value, target, atol=2e-4, rtol=1e-4) and cosine >= 0.99999)
|
| 63 |
+
assert passed
|
| 64 |
+
derived.append({"layer": layer, "dimension": dimension,
|
| 65 |
+
"max_abs_error": float(np.max(np.abs(value - target))),
|
| 66 |
+
"cosine_fp64": cosine, "pass": passed,
|
| 67 |
+
"separate_ffi_invocation": False})
|
| 68 |
+
artifacts = [
|
| 69 |
+
"validate_candle.py", "short_reference.py", "summarize_candle.py", "README.md",
|
| 70 |
+
"qualification-v1/report.json", "qualification-v1/inputs.jsonl",
|
| 71 |
+
"qualification-v1/native-vectors.npz", "qualification-v1/hf-fp32-vectors.npz",
|
| 72 |
+
"short-reference-v1/report.json",
|
| 73 |
+
]
|
| 74 |
+
result = {
|
| 75 |
+
"complete": True,
|
| 76 |
+
"all_pass": True,
|
| 77 |
+
"scope": "Candle CPU FFI against the same frozen native weights through Transformers CPU FP32. Engine equivalence, not a task-quality benchmark.",
|
| 78 |
+
"model_sha256": primary["model_sha256"],
|
| 79 |
+
"library_sha256": primary["library_sha256"],
|
| 80 |
+
"source_sha256": primary["source_sha256"],
|
| 81 |
+
"versions": primary["versions"],
|
| 82 |
+
"gate": primary["gate"],
|
| 83 |
+
"actual_ffi_case_count": len(recomputed),
|
| 84 |
+
"functional_and_derived_check_count": len(primary["checks"]),
|
| 85 |
+
"max_abs_error": max(x["max_abs_error"] for x in recomputed),
|
| 86 |
+
"minimum_cosine_fp64": min(x["cosine_fp64"] for x in recomputed),
|
| 87 |
+
"cosine_note": "This summary recomputes both norms and the dot product in FP64 from the retained vectors. The unchanged primary report used FP32 norms, which can round slightly above one. No model inference or numerical threshold was changed.",
|
| 88 |
+
"long_actual_calls": [x for x in recomputed if x["input_id"] == "tokens-32768"],
|
| 89 |
+
"long_derived_dimensions": derived,
|
| 90 |
+
"additional_short_matrix": {
|
| 91 |
+
"actual_ffi_cases": len(short["results"]),
|
| 92 |
+
"all_pass": short["all_pass"],
|
| 93 |
+
"max_abs_error": max(x["max_abs"] for x in short["results"]),
|
| 94 |
+
"scope": short["scope"],
|
| 95 |
+
},
|
| 96 |
+
"coverage_and_limits": primary["coverage"],
|
| 97 |
+
"timing_note": "Single CPU qualification forwards are recorded in the primary report. They are neither a warm latency benchmark nor Router HTTP or accelerator latency.",
|
| 98 |
+
"artifacts": {name: {"sha256": sha(root / name), "bytes": (root / name).stat().st_size} for name in artifacts},
|
| 99 |
+
}
|
| 100 |
+
output = args.output or root / "aggregate-recomputed.json"
|
| 101 |
+
assert not output.exists(), "Preserve the original evidence instead of overwriting it"
|
| 102 |
+
output.write_text(json.dumps(result, indent=2, allow_nan=False) + "\n")
|
| 103 |
+
print(json.dumps({"aggregate_sha256": sha(output), "max_abs_error": result["max_abs_error"], "minimum_cosine_fp64": result["minimum_cosine_fp64"]}))
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
if __name__ == "__main__":
|
| 107 |
+
main()
|
reproduction/candle/validate_candle.py
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Frozen-model CPU FFI equivalence. Synthetic engine probes, never quality final."""
|
| 2 |
+
import argparse, ctypes as C, gc, hashlib, json, os, sys, time
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
import numpy as np
|
| 5 |
+
import torch
|
| 6 |
+
from transformers import AutoModel, AutoTokenizer
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
def sha(p):
|
| 10 |
+
h=hashlib.sha256()
|
| 11 |
+
with open(p,'rb') as f:
|
| 12 |
+
for b in iter(lambda:f.read(8*1024*1024),b''):h.update(b)
|
| 13 |
+
return h.hexdigest()
|
| 14 |
+
|
| 15 |
+
class Result(C.Structure):
|
| 16 |
+
_fields_=[('data',C.POINTER(C.c_float)),('length',C.c_int32),('error',C.c_bool),('model_type',C.c_int32),('sequence_length',C.c_int32),('processing_time_ms',C.c_float)]
|
| 17 |
+
|
| 18 |
+
def main():
|
| 19 |
+
p=argparse.ArgumentParser();p.add_argument('--model',type=Path,required=True);p.add_argument('--library',type=Path,required=True);p.add_argument('--source',type=Path,required=True);p.add_argument('--output',type=Path,required=True);p.add_argument('--expected-library-sha256',default='0eefcc9e21bf790efd3861cd6f1ddc396774dd65d65aa67e097c4ed9691e72a6');a=p.parse_args();a.output.mkdir(parents=True,exist_ok=False)
|
| 20 |
+
torch.set_num_threads(8);torch.set_num_interop_threads(1)
|
| 21 |
+
sys.path.insert(0,str(a.source/'src/training/model_embeddings'))
|
| 22 |
+
from mmbert_32k.representation_contract import read_representation_contract
|
| 23 |
+
from mmbert_32k.representation_outputs import select_hidden_state,masked_mean,truncate_and_normalize
|
| 24 |
+
expected={'model.safetensors':'e7548b883e4bf974f8f467c2a26bf5a8c90018d234e5fd6b6a6b84d06721c7ab','config.json':'1ad2f66607d57bce678c1ae79b1d6b1d90d2d0bf89eda970fdee1ede04a92017','tokenizer.json':'5b14c7584d507951e1723f53f4e82cc76db81b7c0df3dc3c48bed45954b0277c'}
|
| 25 |
+
assert {k:sha(a.model/k) for k in expected}==expected
|
| 26 |
+
libsha=sha(a.library);assert libsha==a.expected_library_sha256
|
| 27 |
+
report={'model_sha256':expected,'library_sha256':libsha,'script_sha256':sha(__file__),'source_sha256':{x:sha(a.source/x) for x in ['candle-binding/src/ffi/embedding.rs','candle-binding/src/ffi/types.rs','candle-binding/src/ffi/memory.rs','candle-binding/src/model_architectures/embedding/mmbert_embedding.rs','src/training/model_embeddings/mmbert_32k/representation_outputs.py']},'gate':{'vector_atol':2e-4,'vector_rtol':1e-4,'cosine_min':.99999},'device':'CPU','threads':8,'precision':'FP32 weights, original FP32 RoPE buffers, FP32 mean and L2; no autocast','coverage':{'short':'Two multilingual texts: every advertised4 layers x5 dimensions through real FFI','boundaries':'Full22x768 real FFI at2,63,64,65,127,128,129,512,4096 tokens','long':'32768 tokens, four real FFI calls at layers3/6/11/22 x768; smaller dimensions derived, not separately executed','batch':'This FFI entry is B1 only; no native B2 qualification claimed','ownership':'Each returned allocation freed exactly once via free_embedding. Global model singleton has no release API; result-buffer release is tested, not model teardown.'},'cases':[],'checks':[]}
|
| 28 |
+
def save():
|
| 29 |
+
(a.output/'report.json').write_text(json.dumps(report,indent=2,allow_nan=False)+'\n')
|
| 30 |
+
tokenizer=AutoTokenizer.from_pretrained(a.model,local_files_only=True);tokenizer.backend_tokenizer.no_truncation();tokenizer.backend_tokenizer.no_padding()
|
| 31 |
+
def encode(s):return tokenizer(s,truncation=False,add_special_tokens=True)['input_ids']
|
| 32 |
+
def exact(n):
|
| 33 |
+
if n==2:assert len(encode(''))==2;return ''
|
| 34 |
+
prefix='A multilingual record describes the public library. 这是一段用于数值验证的中性文本。\n';tail='\nThe final entry is a blue telescope. 最后记录是一架蓝色望远镜。'
|
| 35 |
+
if n<100:prefix='';tail=''
|
| 36 |
+
lo,hi=0,n+10
|
| 37 |
+
while lo<hi:
|
| 38 |
+
mid=(lo+hi)//2
|
| 39 |
+
if len(encode(prefix+' note'*mid+tail))<n:lo=mid+1
|
| 40 |
+
else:hi=mid
|
| 41 |
+
text=prefix+' note'*lo+tail
|
| 42 |
+
assert len(encode(text))==n,(n,len(encode(text)))
|
| 43 |
+
return text
|
| 44 |
+
texts={'short-en':'The reply explains why the train arrived late and offers a useful alternative route.','short-zh':'这份说明区分了研究假设与实验结论,并提供了可核查的参考资料。'}
|
| 45 |
+
for n in [2,63,64,65,127,128,129,512,4096,32768,32769]:texts[f'tokens-{n}']=exact(n)
|
| 46 |
+
fixture=[{'id':k,'text':v,'tokens':len(encode(v)),'input_ids_sha256':hashlib.sha256(np.array(encode(v),dtype='<i8').tobytes()).hexdigest()} for k,v in texts.items()]
|
| 47 |
+
(a.output/'inputs.jsonl').write_text(''.join(json.dumps(x,ensure_ascii=False)+'\n' for x in fixture));report['inputs_sha256']=sha(a.output/'inputs.jsonl');save()
|
| 48 |
+
lib=C.CDLL(str(a.library));lib.init_mmbert_embedding_model.argtypes=[C.c_char_p,C.c_bool];lib.init_mmbert_embedding_model.restype=C.c_bool;lib.get_embedding_2d_matryoshka.argtypes=[C.c_char_p,C.c_char_p,C.c_int32,C.c_int32,C.POINTER(Result)];lib.get_embedding_2d_matryoshka.restype=C.c_int32;lib.free_embedding.argtypes=[C.POINTER(C.c_float),C.c_int32];lib.free_embedding.restype=None;lib.embedding_text_exceeds_window.argtypes=[C.c_char_p,C.c_char_p];lib.embedding_text_exceeds_window.restype=C.c_int32
|
| 49 |
+
assert not lib.init_mmbert_embedding_model(None,True)
|
| 50 |
+
before=Result();assert lib.get_embedding_2d_matryoshka(b'hello',b'mmbert',22,768,C.byref(before))==-1 and before.error
|
| 51 |
+
assert lib.init_mmbert_embedding_model(os.fsencode(a.model),True)
|
| 52 |
+
native={};rows={}
|
| 53 |
+
def call(key,layer,dim,expect_error=False,raw=None,model=b'mmbert'):
|
| 54 |
+
r=Result();text=texts[key].encode() if raw is None else raw;t=time.monotonic();code=lib.get_embedding_2d_matryoshka(text,model,layer,dim,C.byref(r));seconds=time.monotonic()-t
|
| 55 |
+
record={'input_id':key,'actual_tokens':len(encode(texts[key])),'layer':layer,'dimension':dim,'status':code,'error':bool(r.error),'returned_length':r.length,'ffi_sequence_length_field':r.sequence_length,'wall_seconds':seconds,'ffi_ms':r.processing_time_ms}
|
| 56 |
+
vector=None
|
| 57 |
+
if r.data:
|
| 58 |
+
try:vector=np.ctypeslib.as_array(r.data,shape=(r.length,)).copy()
|
| 59 |
+
finally:lib.free_embedding(r.data,r.length)
|
| 60 |
+
if expect_error:
|
| 61 |
+
record['expected_rejection']=True;record['pass']=code==-1 and r.error and vector is None;report['checks'].append(record)
|
| 62 |
+
else:
|
| 63 |
+
assert code==0 and not r.error and r.model_type==2 and vector is not None,record
|
| 64 |
+
record['finite']=bool(np.isfinite(vector).all());record['norm']=float(np.linalg.norm(vector));report['cases'].append(record);native[(key,layer,dim)]=vector;rows[(key,layer,dim)]=record
|
| 65 |
+
save();print(json.dumps(record),flush=True);return vector
|
| 66 |
+
for n in [32768,32769]:
|
| 67 |
+
got=lib.embedding_text_exceeds_window(texts[f'tokens-{n}'].encode(),b'mmbert');report['checks'].append({'name':f'token-window-{n}','expected':int(n>32768),'actual':got,'pass':got==int(n>32768)})
|
| 68 |
+
call('tokens-32769',22,768,True)
|
| 69 |
+
for layer,dim in [(23,768),(22,769)]:call('short-en',layer,dim,True)
|
| 70 |
+
call('short-en',22,768,True,raw=b'\xff')
|
| 71 |
+
call('short-en',22,768,True,model=b'unknown')
|
| 72 |
+
for key in ['short-en','short-zh']:
|
| 73 |
+
for layer in [3,6,11,22]:
|
| 74 |
+
for dim in [64,128,256,512,768]:call(key,layer,dim)
|
| 75 |
+
for n in [2,63,64,65,127,128,129,512,4096]:call(f'tokens-{n}',22,768)
|
| 76 |
+
default=call('short-en',0,0);report['checks'].append({'name':'zero-default-full','pass':bool(np.array_equal(default,native[('short-en',22,768)]))})
|
| 77 |
+
negative=call('short-en',-1,-1);report['checks'].append({'name':'negative-values-current-default-semantics','pass':bool(np.array_equal(negative,default)),'limitation':'Existing FFI maps all nonpositive layer/dimension values to default; negative rejection is not claimed.'})
|
| 78 |
+
lib.free_embedding(None,0)
|
| 79 |
+
repeated=[call('short-en',3,64) for _ in range(5)];report['checks'].append({'name':'repeat-allocation-free','count':5,'pass':all(np.array_equal(v,repeated[0]) for v in repeated)})
|
| 80 |
+
for layer in [3,6,11,22]:call('tokens-32768',layer,768)
|
| 81 |
+
np.savez(a.output/'native-vectors.npz',**{'|'.join(map(str,k)):v for k,v in native.items()})
|
| 82 |
+
report['native_vectors_sha256']=sha(a.output/'native-vectors.npz');save()
|
| 83 |
+
model=AutoModel.from_pretrained(a.model,local_files_only=True,torch_dtype=torch.float32,attn_implementation='sdpa',reference_compile=False).eval();contract=read_representation_contract(model.config,'embedding');report['contract']=contract
|
| 84 |
+
assert all(p.dtype==torch.float32 for p in model.parameters())
|
| 85 |
+
refs={}
|
| 86 |
+
for key,text in texts.items():
|
| 87 |
+
if key=='tokens-32769':continue
|
| 88 |
+
inputs=tokenizer(text,truncation=False,return_tensors='pt');inputs={k:v for k,v in inputs.items() if k in ('input_ids','attention_mask')};t=time.monotonic()
|
| 89 |
+
with torch.inference_mode(),torch.autocast('cpu',enabled=False):
|
| 90 |
+
output=model(**inputs,output_hidden_states=True,return_dict=True)
|
| 91 |
+
for layer in [3,6,11,22]:
|
| 92 |
+
hidden=select_hidden_state(model,output,layer,contract,task='embedding');pooled=masked_mean(hidden,inputs['attention_mask'])
|
| 93 |
+
for dim in [64,128,256,512,768]:refs[(key,layer,dim)]=truncate_and_normalize(pooled,dim)[0].numpy().copy()
|
| 94 |
+
del output,hidden,pooled;gc.collect();print(json.dumps({'reference':key,'seconds':time.monotonic()-t}),flush=True)
|
| 95 |
+
for record in report['cases']:
|
| 96 |
+
key,layer,dim=record['input_id'],record['layer'],record['dimension'];value=native[(key,layer,dim)];target=refs[(key,layer if layer>0 else 22,dim if dim>0 else 768)]
|
| 97 |
+
maxabs=float(np.max(np.abs(value-target)));cos=float(np.dot(value.astype('float64'),target)/np.linalg.norm(value)/np.linalg.norm(target));passed=bool(np.allclose(value,target,atol=2e-4,rtol=1e-4) and cos>=.99999)
|
| 98 |
+
record.update(max_abs_error=maxabs,cosine=cos,pass_parity=passed)
|
| 99 |
+
for layer in [3,6,11,22]:
|
| 100 |
+
for dim in [64,128,256,512]:
|
| 101 |
+
value=native[('tokens-32768',layer,768)][:dim].copy();value/=np.linalg.norm(value);target=refs[('tokens-32768',layer,dim)];report['checks'].append({'name':'long-derived-dimension','layer':layer,'dimension':dim,'not_separate_ffi_call':True,'max_abs_error':float(np.max(np.abs(value-target))),'pass':bool(np.allclose(value,target,atol=2e-4,rtol=1e-4))})
|
| 102 |
+
np.savez(a.output/'hf-fp32-vectors.npz',**{'|'.join(map(str,k)):v for k,v in refs.items()});report['reference_vectors_sha256']=sha(a.output/'hf-fp32-vectors.npz');report['versions']={'torch':torch.__version__,'transformers':__import__('transformers').__version__,'numpy':np.__version__};report['all_pass']=all(c.get('pass_parity',False) and c['finite'] for c in report['cases']) and all(c['pass'] for c in report['checks']);report['complete']=True;save();print(json.dumps({'complete':True,'all_pass':report['all_pass'],'cases':len(report['cases'])}),flush=True)
|
| 103 |
+
if __name__=='__main__':main()
|
reproduction/clean_pawsx_scores.py
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Re-score cached predictions after the PAWS-X documented NS cleanup.
|
| 2 |
+
|
| 3 |
+
No model inference or training. Fit each threshold on cleaned validation only;
|
| 4 |
+
preserve raw metrics and verify cached label order against pinned source rows.
|
| 5 |
+
"""
|
| 6 |
+
import argparse
|
| 7 |
+
import hashlib
|
| 8 |
+
import json
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
|
| 11 |
+
import numpy as np
|
| 12 |
+
import pyarrow.parquet as pq
|
| 13 |
+
from sklearn.metrics import average_precision_score, f1_score, precision_recall_curve, roc_auc_score
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
def sha(path):
|
| 17 |
+
return hashlib.sha256(path.read_bytes()).hexdigest()
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
def is_valid(row):
|
| 21 |
+
return all(row[key].strip().casefold() not in ("", "ns") for key in ("sentence1", "sentence2"))
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
def metrics(labels, scores, threshold):
|
| 25 |
+
return {"examples": len(labels), "positives": int(labels.sum()),
|
| 26 |
+
"roc_auc": float(roc_auc_score(labels, scores)),
|
| 27 |
+
"average_precision": float(average_precision_score(labels, scores)),
|
| 28 |
+
"f1_at_dev_threshold": float(f1_score(labels, scores >= threshold)), "threshold": threshold}
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def threshold(labels, scores):
|
| 32 |
+
precision, recall, values = precision_recall_curve(labels, scores)
|
| 33 |
+
f1 = 2 * precision[:-1] * recall[:-1] / np.maximum(precision[:-1] + recall[:-1], 1e-12)
|
| 34 |
+
return float(values[np.argmax(f1)])
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def main():
|
| 38 |
+
p = argparse.ArgumentParser()
|
| 39 |
+
p.add_argument("--root", type=Path, required=True)
|
| 40 |
+
p.add_argument("--scores", type=Path, required=True)
|
| 41 |
+
p.add_argument("--output", type=Path, required=True)
|
| 42 |
+
args = p.parse_args()
|
| 43 |
+
if args.output.exists():
|
| 44 |
+
raise FileExistsError(args.output)
|
| 45 |
+
original = json.loads((args.scores / "metrics.json").read_text())
|
| 46 |
+
result = {"dataset_revision": "4cd8187c404bda33cb1f62b49b001115862acf37",
|
| 47 |
+
"cleanup": "Exclude rows with either sentence empty or case-insensitive NS; PAWS-X README documents NS cleanup.",
|
| 48 |
+
"threshold_selection": "cleaned official validation only; no test threshold selection",
|
| 49 |
+
"raw_metrics_sha256": sha(args.scores / "metrics.json"), "script_sha256": sha(Path(__file__)), "languages": {}}
|
| 50 |
+
for language in ("en", "de", "fr", "es", "ja", "zh"):
|
| 51 |
+
directory = args.root / "datasets/paws-x" / language
|
| 52 |
+
splits = {}
|
| 53 |
+
evidence = {}
|
| 54 |
+
excluded_training_texts = set()
|
| 55 |
+
for split in ("validation", "test"):
|
| 56 |
+
source = directory / f"{split}-00000-of-00001.parquet"
|
| 57 |
+
rows = pq.read_table(source).to_pylist()
|
| 58 |
+
for row in rows:
|
| 59 |
+
excluded_training_texts.update(row[key].strip() for key in ("sentence1", "sentence2"))
|
| 60 |
+
keep = np.array([is_valid(row) for row in rows])
|
| 61 |
+
score_path = args.scores / f"{language}-{split}-scores.npz"
|
| 62 |
+
cached = dict(np.load(score_path))
|
| 63 |
+
labels = np.array([row["label"] for row in rows])
|
| 64 |
+
if not np.array_equal(labels, cached["labels"]):
|
| 65 |
+
raise ValueError("Cached labels do not match pinned source row order")
|
| 66 |
+
expected = original["languages"][language]["file_sha256"][split]
|
| 67 |
+
if sha(source) != expected:
|
| 68 |
+
raise ValueError("Pinned source differs from original scoring source")
|
| 69 |
+
if any(len(values) != len(rows) or not np.isfinite(values).all() for values in cached.values()):
|
| 70 |
+
raise ValueError("Invalid score values or lengths")
|
| 71 |
+
splits[split] = {key: value[keep] for key, value in cached.items()}
|
| 72 |
+
evidence[split] = {"source_sha256": expected, "scores_sha256": sha(score_path),
|
| 73 |
+
"original_examples": len(rows), "removed": int((~keep).sum()), "kept": int(keep.sum())}
|
| 74 |
+
training = pq.read_table(directory / "train-00000-of-00001.parquet").to_pylist()
|
| 75 |
+
selected_training = [row for row in training if not any(row[key].strip() in excluded_training_texts for key in ("sentence1", "sentence2"))]
|
| 76 |
+
entry = {"source_splits": evidence, "training_cleanup_audit": {
|
| 77 |
+
"original_rows": len(training), "original_invalid_rows": sum(not is_valid(row) for row in training),
|
| 78 |
+
"actual_training_selection_rows": len(selected_training),
|
| 79 |
+
"invalid_rows_after_existing_text_dedup": sum(not is_valid(row) for row in selected_training)}, "configurations": {}}
|
| 80 |
+
for name in splits["validation"]:
|
| 81 |
+
if name == "labels":
|
| 82 |
+
continue
|
| 83 |
+
selected = threshold(splits["validation"]["labels"], splits["validation"][name])
|
| 84 |
+
entry["configurations"][name] = {split: metrics(values["labels"], values[name], selected) for split, values in splits.items()}
|
| 85 |
+
result["languages"][language] = entry
|
| 86 |
+
args.output.write_text(json.dumps(result, indent=2, allow_nan=False) + "\n")
|
| 87 |
+
print(json.dumps({language: {"removed": value["source_splits"]["test"]["removed"],
|
| 88 |
+
"remaining_invalid_train": value["training_cleanup_audit"]["invalid_rows_after_existing_text_dedup"],
|
| 89 |
+
"test_auc": {name: item["test"]["roc_auc"] for name, item in value["configurations"].items()}}
|
| 90 |
+
for language, value in result["languages"].items()}), flush=True)
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
if __name__ == "__main__":
|
| 94 |
+
main()
|
reproduction/debug_embedding_native_training_step.py
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""One real 32K train-only backward step before the native-FP16 controlled arm."""
|
| 2 |
+
import os
|
| 3 |
+
|
| 4 |
+
import argparse
|
| 5 |
+
import hashlib
|
| 6 |
+
import json
|
| 7 |
+
from pathlib import Path
|
| 8 |
+
import random
|
| 9 |
+
import torch
|
| 10 |
+
from transformers import AutoModel, AutoTokenizer
|
| 11 |
+
from vela_long_quality_data import build_splits, LongExamples
|
| 12 |
+
from train_embedding_english_repair_native import (
|
| 13 |
+
restrict_parameters,
|
| 14 |
+
parameter_hashes,
|
| 15 |
+
represent,
|
| 16 |
+
normalization,
|
| 17 |
+
retention,
|
| 18 |
+
set_vela_representation_contract,
|
| 19 |
+
)
|
| 20 |
+
from train_embedding_english_repair import inputs_from_tokens
|
| 21 |
+
from embedding_native_training_math import forward_native_half
|
| 22 |
+
from embedding_repair_math_v2 import forward_embedding
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
def sha(path):
|
| 26 |
+
return hashlib.sha256(path.read_bytes()).hexdigest()
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
def buffer_hashes(model):
|
| 30 |
+
return {
|
| 31 |
+
n: hashlib.sha256(
|
| 32 |
+
b.detach().cpu().contiguous().view(torch.uint8).numpy().tobytes()
|
| 33 |
+
).hexdigest()
|
| 34 |
+
for n, b in model.named_buffers()
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
def main():
|
| 39 |
+
parser = argparse.ArgumentParser()
|
| 40 |
+
parser.add_argument("--scale", type=float, required=True)
|
| 41 |
+
parser.add_argument("--separate", action="store_true")
|
| 42 |
+
args = parser.parse_args()
|
| 43 |
+
root = Path(os.environ.get('VELA_REPRODUCTION_ROOT', 'reproduction'))
|
| 44 |
+
out = (
|
| 45 |
+
root
|
| 46 |
+
/ f"evidence/vela-embedding-native-training-step-debug-scale{args.scale}-separate{args.separate}.json"
|
| 47 |
+
)
|
| 48 |
+
if out.exists():
|
| 49 |
+
raise FileExistsError(out)
|
| 50 |
+
torch.manual_seed(20260913 + 4100)
|
| 51 |
+
torch.set_num_threads(8)
|
| 52 |
+
source = root / "models/mmbert-embed-32k-2d-matryoshka"
|
| 53 |
+
tokenizer = AutoTokenizer.from_pretrained(source, local_files_only=True)
|
| 54 |
+
train, _, _, _, _ = build_splits(root, tokenizer)
|
| 55 |
+
builder = LongExamples(tokenizer, train)
|
| 56 |
+
rows = [
|
| 57 |
+
r
|
| 58 |
+
for r in train
|
| 59 |
+
if r["language"] == "ar"
|
| 60 |
+
and len(builder.raw(r["query"])) <= 192
|
| 61 |
+
and all(
|
| 62 |
+
2 <= len(builder.raw(r[k][0]["title"] + " " + r[k][0]["text"])) <= 1024
|
| 63 |
+
for k in ("positive_passages", "negative_passages")
|
| 64 |
+
)
|
| 65 |
+
]
|
| 66 |
+
row = min(
|
| 67 |
+
rows,
|
| 68 |
+
key=lambda r: hashlib.sha256(
|
| 69 |
+
("vela-native-training-probe:" + r["group"]).encode()
|
| 70 |
+
).hexdigest(),
|
| 71 |
+
)
|
| 72 |
+
example = builder.build(row, "embedding", 32768, "end", random.Random(9817))
|
| 73 |
+
model = AutoModel.from_pretrained(
|
| 74 |
+
source,
|
| 75 |
+
torch_dtype=torch.float32,
|
| 76 |
+
local_files_only=True,
|
| 77 |
+
reference_compile=False,
|
| 78 |
+
attn_implementation="sdpa",
|
| 79 |
+
).to("cuda")
|
| 80 |
+
set_vela_representation_contract(model.config, "embedding")
|
| 81 |
+
names = restrict_parameters(model)
|
| 82 |
+
frozen = parameter_hashes(model, False)
|
| 83 |
+
before = parameter_hashes(model, True)
|
| 84 |
+
buffers = buffer_hashes(model)
|
| 85 |
+
native = (
|
| 86 |
+
AutoModel.from_pretrained(
|
| 87 |
+
source,
|
| 88 |
+
torch_dtype=torch.float16,
|
| 89 |
+
local_files_only=True,
|
| 90 |
+
reference_compile=False,
|
| 91 |
+
attn_implementation="sdpa",
|
| 92 |
+
)
|
| 93 |
+
.to("cuda")
|
| 94 |
+
.eval()
|
| 95 |
+
)
|
| 96 |
+
set_vela_representation_contract(native.config, "embedding")
|
| 97 |
+
optimizer = torch.optim.AdamW(
|
| 98 |
+
[p for p in model.parameters() if p.requires_grad], lr=2e-6, weight_decay=0.01
|
| 99 |
+
)
|
| 100 |
+
scaler = torch.amp.GradScaler("cuda", init_scale=args.scale, growth_interval=100)
|
| 101 |
+
tokens = [example["query"]] + example["inputs"]
|
| 102 |
+
inputs = inputs_from_tokens(tokenizer, tokens, torch.device("cuda"))
|
| 103 |
+
with torch.no_grad():
|
| 104 |
+
if args.separate:
|
| 105 |
+
target = torch.cat(
|
| 106 |
+
[
|
| 107 |
+
forward_embedding(
|
| 108 |
+
native,
|
| 109 |
+
inputs_from_tokens(tokenizer, [row], torch.device("cuda")),
|
| 110 |
+
training=False,
|
| 111 |
+
)[0][22]
|
| 112 |
+
for row in tokens
|
| 113 |
+
]
|
| 114 |
+
)
|
| 115 |
+
else:
|
| 116 |
+
target, _ = forward_embedding(native, inputs, training=False)
|
| 117 |
+
target = target[22]
|
| 118 |
+
model.train()
|
| 119 |
+
if args.separate:
|
| 120 |
+
values = torch.cat(
|
| 121 |
+
[
|
| 122 |
+
forward_native_half(
|
| 123 |
+
model, inputs_from_tokens(tokenizer, [row], torch.device("cuda"))
|
| 124 |
+
)[0][22]
|
| 125 |
+
for row in tokens
|
| 126 |
+
]
|
| 127 |
+
)
|
| 128 |
+
else:
|
| 129 |
+
values, _ = forward_native_half(model, inputs)
|
| 130 |
+
values = values[22]
|
| 131 |
+
zero_update_max_abs = float((values.detach() - target).abs().max())
|
| 132 |
+
if zero_update_max_abs != 0:
|
| 133 |
+
raise ValueError(
|
| 134 |
+
"Native reference and differentiable zero-update forward differ"
|
| 135 |
+
)
|
| 136 |
+
vectors = normalization(values)
|
| 137 |
+
scores = (vectors[1:] @ vectors[:1].T).squeeze(-1)
|
| 138 |
+
loss = retention(values, target, 20.0) + torch.nn.functional.softplus(
|
| 139 |
+
-20 * (scores[0] - scores[1])
|
| 140 |
+
)
|
| 141 |
+
scaler.scale(loss).backward()
|
| 142 |
+
scaler.unscale_(optimizer)
|
| 143 |
+
trainable = [p for p in model.parameters() if p.requires_grad]
|
| 144 |
+
diagnostic = {
|
| 145 |
+
"scale": args.scale,
|
| 146 |
+
"separate": args.separate,
|
| 147 |
+
"zero_update_max_abs": zero_update_max_abs,
|
| 148 |
+
"loss": float(loss.detach()),
|
| 149 |
+
"loss_finite": bool(torch.isfinite(loss)),
|
| 150 |
+
"gradients_before_clip": {
|
| 151 |
+
n: {
|
| 152 |
+
"nan": int(torch.isnan(p.grad).sum()),
|
| 153 |
+
"inf": int(torch.isinf(p.grad).sum()),
|
| 154 |
+
"nonzero": int(torch.count_nonzero(p.grad)),
|
| 155 |
+
"max_abs": float(p.grad.abs().max()),
|
| 156 |
+
}
|
| 157 |
+
for n, p in model.named_parameters()
|
| 158 |
+
if p.requires_grad
|
| 159 |
+
},
|
| 160 |
+
}
|
| 161 |
+
out.write_text(json.dumps(diagnostic, indent=2) + "\n")
|
| 162 |
+
print(json.dumps(diagnostic), flush=True)
|
| 163 |
+
gradient = torch.nn.utils.clip_grad_norm_(trainable, 1.0)
|
| 164 |
+
if not torch.isfinite(loss) or not torch.isfinite(gradient) or float(gradient) == 0:
|
| 165 |
+
raise ValueError("Invalid loss or gradient")
|
| 166 |
+
if any(p.grad is not None for p in model.parameters() if not p.requires_grad):
|
| 167 |
+
raise ValueError("Frozen gradient changed")
|
| 168 |
+
gradients = {
|
| 169 |
+
n: {
|
| 170 |
+
"finite": bool(torch.isfinite(p.grad).all()),
|
| 171 |
+
"nonzero": int(torch.count_nonzero(p.grad)),
|
| 172 |
+
}
|
| 173 |
+
for n, p in model.named_parameters()
|
| 174 |
+
if p.requires_grad
|
| 175 |
+
}
|
| 176 |
+
if not all(r["finite"] and r["nonzero"] for r in gradients.values()):
|
| 177 |
+
raise ValueError("Missing finite trainable gradient")
|
| 178 |
+
scaler.step(optimizer)
|
| 179 |
+
scaler.update()
|
| 180 |
+
after = parameter_hashes(model, True)
|
| 181 |
+
if frozen != parameter_hashes(model, False) or buffers != buffer_hashes(model):
|
| 182 |
+
raise ValueError("Frozen state changed")
|
| 183 |
+
if before == after:
|
| 184 |
+
raise ValueError("Optimizer did not update trainable parameters")
|
| 185 |
+
report = {
|
| 186 |
+
"weights_sha256": sha(source / "model.safetensors"),
|
| 187 |
+
"script_sha256": sha(Path(__file__)),
|
| 188 |
+
"native_training_script_sha256": sha(
|
| 189 |
+
Path(__file__).with_name("train_embedding_english_repair_native.py")
|
| 190 |
+
),
|
| 191 |
+
"helper_sha256": sha(
|
| 192 |
+
Path(__file__).with_name("embedding_native_training_math.py")
|
| 193 |
+
),
|
| 194 |
+
"training_query_id": row["group"],
|
| 195 |
+
"input_sha256": example["input_sha256"],
|
| 196 |
+
"input_lengths": list(map(len, tokens)),
|
| 197 |
+
"zero_update_native_max_abs": zero_update_max_abs,
|
| 198 |
+
"loss": float(loss.detach()),
|
| 199 |
+
"unscaled_gradient_norm": float(gradient),
|
| 200 |
+
"loss_scale_after_step": float(scaler.get_scale()),
|
| 201 |
+
"gradients": gradients,
|
| 202 |
+
"frozen_parameters_unchanged": True,
|
| 203 |
+
"buffers_unchanged": True,
|
| 204 |
+
"trainable_updated": sum(before[n] != after[n] for n in before),
|
| 205 |
+
"trainable_parameters": sum(names.values()),
|
| 206 |
+
"peak_bytes": torch.cuda.max_memory_allocated(),
|
| 207 |
+
"complete": True,
|
| 208 |
+
"artifact_policy": "Single-step probe parameters discarded; the actual controlled run reloads original weights and resets the original paired seed. No development/final scores read.",
|
| 209 |
+
}
|
| 210 |
+
out.write_text(json.dumps(report, indent=2) + "\n")
|
| 211 |
+
print(json.dumps(report), flush=True)
|
| 212 |
+
|
| 213 |
+
|
| 214 |
+
if __name__ == "__main__":
|
| 215 |
+
main()
|
reproduction/diagnose_embedding_training_precision.py
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Compare same-weight training forwards on fixed train-only inputs, no selection."""
|
| 2 |
+
import os
|
| 3 |
+
|
| 4 |
+
import hashlib
|
| 5 |
+
import json
|
| 6 |
+
from pathlib import Path
|
| 7 |
+
import sys
|
| 8 |
+
import torch
|
| 9 |
+
import torch.nn.functional as F
|
| 10 |
+
from transformers import AutoModel, AutoTokenizer
|
| 11 |
+
from vela_long_quality_data import qasper_data
|
| 12 |
+
from natural_paper_curriculum import bucket, heldout_exclusions, prepare
|
| 13 |
+
from train_embedding_english_repair import (
|
| 14 |
+
inputs_from_tokens,
|
| 15 |
+
set_vela_representation_contract,
|
| 16 |
+
)
|
| 17 |
+
from embedding_repair_math_v2 import forward_embedding
|
| 18 |
+
from embedding_native_training_math import forward_native_half
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def sha(p):
|
| 22 |
+
return hashlib.sha256(p.read_bytes()).hexdigest()
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
@torch.inference_mode()
|
| 26 |
+
def main():
|
| 27 |
+
root = Path(os.environ.get('VELA_REPRODUCTION_ROOT', 'reproduction'))
|
| 28 |
+
out = root / "evidence/vela-embedding-same-weight-training-precision.json"
|
| 29 |
+
if out.exists():
|
| 30 |
+
raise FileExistsError(out)
|
| 31 |
+
source = root / "models/mmbert-embed-32k-2d-matryoshka"
|
| 32 |
+
tokenizer = AutoTokenizer.from_pretrained(source, local_files_only=True)
|
| 33 |
+
papers, _, _, _ = qasper_data(root, tokenizer)
|
| 34 |
+
papers, _, _ = prepare(papers, *heldout_exclusions(root))
|
| 35 |
+
selected = []
|
| 36 |
+
for group in range(4):
|
| 37 |
+
row = min(
|
| 38 |
+
(r for r in papers if bucket(len(r["tokens"])) == group),
|
| 39 |
+
key=lambda r: hashlib.sha256(
|
| 40 |
+
("vela-train-precision-v1:" + r["id"]).encode()
|
| 41 |
+
).hexdigest(),
|
| 42 |
+
)
|
| 43 |
+
question = min(row["questions"], key=lambda q: q["id"])
|
| 44 |
+
selected.append((row, question))
|
| 45 |
+
model = AutoModel.from_pretrained(
|
| 46 |
+
source,
|
| 47 |
+
torch_dtype=torch.float32,
|
| 48 |
+
local_files_only=True,
|
| 49 |
+
reference_compile=False,
|
| 50 |
+
attn_implementation="sdpa",
|
| 51 |
+
).to("cuda")
|
| 52 |
+
set_vela_representation_contract(model.config, "embedding")
|
| 53 |
+
native = (
|
| 54 |
+
AutoModel.from_pretrained(
|
| 55 |
+
source,
|
| 56 |
+
torch_dtype=torch.float16,
|
| 57 |
+
local_files_only=True,
|
| 58 |
+
reference_compile=False,
|
| 59 |
+
attn_implementation="sdpa",
|
| 60 |
+
)
|
| 61 |
+
.to("cuda")
|
| 62 |
+
.eval()
|
| 63 |
+
)
|
| 64 |
+
set_vela_representation_contract(native.config, "embedding")
|
| 65 |
+
if any(isinstance(m, torch.nn.Dropout) and m.p for m in model.modules()):
|
| 66 |
+
raise ValueError("Cannot attribute stochastic dropout to dtype")
|
| 67 |
+
if getattr(model.config, "attention_dropout", 0):
|
| 68 |
+
raise ValueError("Attention dropout differs by train mode")
|
| 69 |
+
torch.set_num_threads(8)
|
| 70 |
+
results = []
|
| 71 |
+
for paper, query in selected:
|
| 72 |
+
vectors = {
|
| 73 |
+
mode: []
|
| 74 |
+
for mode in ("native_fp16", "student_bf16_amp", "student_functional_fp16")
|
| 75 |
+
}
|
| 76 |
+
for row in (query["tokens"], paper["tokens"]):
|
| 77 |
+
inputs = inputs_from_tokens(tokenizer, [row], torch.device("cuda"))
|
| 78 |
+
native.eval()
|
| 79 |
+
value, _ = forward_embedding(native, inputs, training=False)
|
| 80 |
+
vectors["native_fp16"].append(value[22].cpu())
|
| 81 |
+
model.train()
|
| 82 |
+
value, _ = forward_embedding(model, inputs, training=True)
|
| 83 |
+
vectors["student_bf16_amp"].append(value[22].cpu())
|
| 84 |
+
value, _ = forward_native_half(model, inputs)
|
| 85 |
+
vectors["student_functional_fp16"].append(value[22].cpu())
|
| 86 |
+
targets = torch.cat(vectors["native_fp16"])
|
| 87 |
+
normalized = F.normalize(targets, dim=-1)
|
| 88 |
+
reference_score = float(normalized[0] @ normalized[1])
|
| 89 |
+
comparisons = {}
|
| 90 |
+
for mode, parts in vectors.items():
|
| 91 |
+
values = torch.cat(parts)
|
| 92 |
+
normalized_values = F.normalize(values, dim=-1)
|
| 93 |
+
scores = float(normalized_values[0] @ normalized_values[1])
|
| 94 |
+
delta = values - targets
|
| 95 |
+
comparisons[mode] = {
|
| 96 |
+
"pooled_max_abs": float(delta.abs().max()),
|
| 97 |
+
"pooled_mean_abs": float(delta.abs().mean()),
|
| 98 |
+
"normalized_vector_mse": float(
|
| 99 |
+
F.mse_loss(normalized_values, normalized)
|
| 100 |
+
),
|
| 101 |
+
"mean_one_minus_cosine": float(
|
| 102 |
+
(1 - (normalized_values * normalized).sum(-1)).mean()
|
| 103 |
+
),
|
| 104 |
+
"query_document_cosine": scores,
|
| 105 |
+
"cosine_delta_from_native": scores - reference_score,
|
| 106 |
+
}
|
| 107 |
+
record = {
|
| 108 |
+
"paper_id": paper["id"],
|
| 109 |
+
"question_id": query["id"],
|
| 110 |
+
"query_tokens": len(query["tokens"]),
|
| 111 |
+
"document_tokens": len(paper["tokens"]),
|
| 112 |
+
"source": "QASPER training only; fixed hash-selected one paper per length bin",
|
| 113 |
+
"comparisons": comparisons,
|
| 114 |
+
}
|
| 115 |
+
results.append(record)
|
| 116 |
+
print(json.dumps(record), flush=True)
|
| 117 |
+
report = {
|
| 118 |
+
"source_weights_sha256": sha(source / "model.safetensors"),
|
| 119 |
+
"source_config_sha256": sha(source / "config.json"),
|
| 120 |
+
"tokenizer_sha256": sha(source / "tokenizer.json"),
|
| 121 |
+
"script_sha256": sha(Path(__file__)),
|
| 122 |
+
"helper_sha256": sha(
|
| 123 |
+
Path(__file__).with_name("embedding_native_training_math.py")
|
| 124 |
+
),
|
| 125 |
+
"source": "Original embedding same parameters in every mode; unchanged original buffers; no optimizer; no development or final scores",
|
| 126 |
+
"cases": results,
|
| 127 |
+
"complete": True,
|
| 128 |
+
"future_use": "Training arithmetic diagnosis only, not a dtype/checkpoint selection using final performance",
|
| 129 |
+
}
|
| 130 |
+
out.write_text(json.dumps(report, indent=2) + "\n")
|
| 131 |
+
print(json.dumps({"report_sha256": sha(out), "complete": True}), flush=True)
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
if __name__ == "__main__":
|
| 135 |
+
main()
|
reproduction/diagnose_natural_teacher.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""Training-only diagnosis of full-paper versus title/abstract teacher targets."""
|
| 2 |
+
import argparse
|
| 3 |
+
import hashlib
|
| 4 |
+
import json
|
| 5 |
+
from pathlib import Path
|
| 6 |
+
import gc
|
| 7 |
+
import numpy as np
|
| 8 |
+
import torch
|
| 9 |
+
from transformers import AutoTokenizer
|
| 10 |
+
import evaluate_vela_dev_precision_v3 as native
|
| 11 |
+
from vela_long_quality_data import qasper_data
|
| 12 |
+
from train_vela_text import normalization
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
def sha(path):return hashlib.sha256(Path(path).read_bytes()).hexdigest()
|
| 16 |
+
def ndcg(matrix,targets):
|
| 17 |
+
ranks=[]
|
| 18 |
+
for row,target in zip(matrix,targets,strict=True):
|
| 19 |
+
rank=int(np.flatnonzero(np.argsort(-row,kind='stable')==target)[0])+1;ranks.append(rank)
|
| 20 |
+
return {'source_paper_ndcg10':float(np.mean([1/np.log2(r+1) if r<=10 else 0 for r in ranks])),'ranks':ranks}
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def main():
|
| 24 |
+
p=argparse.ArgumentParser();p.add_argument('--root',type=Path,required=True);p.add_argument('--run',type=Path,required=True);p.add_argument('--output',type=Path,required=True);a=p.parse_args()
|
| 25 |
+
a.output.mkdir(parents=True,exist_ok=False);torch.set_num_threads(8)
|
| 26 |
+
training=json.loads((a.run/'results.json').read_text());source=Path(training['args']['source']);tok=AutoTokenizer.from_pretrained(source,local_files_only=True)
|
| 27 |
+
papers,_,_,meta=qasper_data(a.root,tok);by_id={r['id']:r for r in papers};records=training['actual_natural_steps']
|
| 28 |
+
ids=sorted({r['paper_id'] for r in records}|{r['negative_id'] for r in records});questions={q['id']:q for r in papers for q in r['questions']};query_ids=sorted({r['question_id'] for r in records});positive={r['question_id']:r['paper_id'] for r in records}
|
| 29 |
+
for r in records:
|
| 30 |
+
if r['paper_id'] not in by_id or r['negative_id'] not in by_id or r['question_id'] not in questions:raise ValueError('Non-training example in recorded curriculum')
|
| 31 |
+
if positive[r['question_id']]!=r['paper_id']:raise ValueError('Ambiguous question ID')
|
| 32 |
+
summaries=[tok(by_id[k]['mining_text'],truncation=False)['input_ids'] for k in ids]
|
| 33 |
+
if max(map(len,summaries))>32768:raise ValueError('Summary exceeds context')
|
| 34 |
+
stat=native.configure_precision(torch.float16,torch.device('cuda'))
|
| 35 |
+
report={'scope':'Training-only diagnostic on actual sampled natural-paper questions and alternatives; no development/final model scores, no independent accuracy claim','training_report_sha256':sha(a.run/'results.json'),'script_sha256':sha(__file__),'reader_sha256':sha(native.__file__),'training_papers':len(ids),'training_queries':len(query_ids),'recorded_pairs':len(records),'source':meta,'models':{}}
|
| 36 |
+
for label,path in [('original',a.root/'models/mmbert-embed-32k-2d-matryoshka'),('task_source',source)]:
|
| 37 |
+
model=native.load_model(path,'embedding',torch.float16,torch.device('cuda'))
|
| 38 |
+
def encode(rows):
|
| 39 |
+
out=[]
|
| 40 |
+
for tokens in rows:
|
| 41 |
+
with torch.inference_mode():value=native.long_module.representation(model,tok,[tokens],'embedding')
|
| 42 |
+
if not torch.isfinite(value).all():raise ValueError('Nonfinite training representation')
|
| 43 |
+
out.append(normalization(value).cpu().numpy()[0])
|
| 44 |
+
return np.stack(out)
|
| 45 |
+
query=encode([questions[k]['tokens'] for k in query_ids]);full=encode([by_id[k]['tokens'] for k in ids]);summary=encode(summaries)
|
| 46 |
+
scores={'full':query@full.T,'title_abstract':query@summary.T};targets=[ids.index(positive[k]) for k in query_ids];item={key:ndcg(value,targets) for key,value in scores.items()}
|
| 47 |
+
for key,value in scores.items():
|
| 48 |
+
margins=[float(value[query_ids.index(r['question_id']),ids.index(r['paper_id'])]-value[query_ids.index(r['question_id']),ids.index(r['negative_id'])]) for r in records]
|
| 49 |
+
item[key]['sampled_source_over_unjudged_alternative']=float(np.mean(np.array(margins)>0));item[key]['margins']=margins
|
| 50 |
+
item['weights_sha256']={p.name:sha(p) for p in path.glob('*.safetensors')};report['models'][label]=item
|
| 51 |
+
np.savez_compressed(a.output/(label+'.npz'),queries=query,full_documents=full,title_abstract_documents=summary,query_ids=query_ids,paper_ids=ids)
|
| 52 |
+
(a.output/'metrics.json').write_text(json.dumps(report,indent=2)+'\n');print(json.dumps({'model':label,'full':{k:v for k,v in item['full'].items() if k not in ('ranks','margins')},'title_abstract':{k:v for k,v in item['title_abstract'].items() if k not in ('ranks','margins')}}),flush=True)
|
| 53 |
+
del model;gc.collect();torch.cuda.empty_cache()
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
if __name__=='__main__':main()
|