lhallee commited on
Commit
105ae09
·
verified ·
1 Parent(s): 92d2403

Update FastPLMs runtime files

Browse files

Add-only FastPLMs files-only publication. Checkpoint weights and complete-artifact attestations are unchanged.

README.md CHANGED
@@ -24,7 +24,7 @@ Install FastPLMs from the exact source revision paired with this model card:
24
 
25
  ```bash
26
  python -m pip install \
27
- "fastplms @ git+https://github.com/Synthyra/FastPLMs.git@1b9ce023f1e06571cf3e6324be0610ffa53e0a4a"
28
  ```
29
 
30
  Python 3.11-3.14, PyTorch 2.13, and Transformers 5.13 are required. The declared CPU gate covers tiny offline contracts; published checkpoint throughput and parity require the documented device tier. The Hub quick start below requires network
@@ -59,10 +59,10 @@ For BF16 execution, this family uses parameters loaded directly in BF16.
59
 
60
  ## Tokenization and forward inference
61
 
62
- The live `Synthyra/ANKH_large` revision `3be3df34140f49dc4e65bd1f247e3ce819e7fc59` is legacy
63
- encoder-only. The Hub quick start above is therefore an encoder-only
64
- `AutoModel` path, not evidence that decoder or language-model-head weights are
65
- already published.
66
 
67
  Use the tokenizer owned by the loaded model so tokenizer files, revision,
68
  offline/cache policy, and ANKH's residue-aware pre-tokenizer stay aligned.
@@ -86,9 +86,8 @@ print(output.last_hidden_state.shape)
86
 
87
  ## Dataset embeddings
88
 
89
- The current live Hub revision is legacy encoder-only. It supports encoder
90
- dataset embeddings, which default to the encoder's final hidden state. Layer
91
- indices use the selected stack's native hidden-state order:
92
 
93
  ```python
94
  encoder_result = model.embed_dataset(
@@ -110,23 +109,14 @@ explicit, aligned `decoder_inputs` sequence or `decoder_input_ids` tensor. ANKH
110
  does not infer a shifted source sequence because official tasks use prompts,
111
  sentinel tokens, or generated tokens that depend on the task. Protein inputs
112
  remain raw residue strings and sentinel prompts remain tight, as in
113
- `M<extra_id_0>`. Until the atomic Hub replacement is published, load the
114
- validated complete local artifact and fail closed on its registry-bound
115
- attestation:
116
 
117
  ```python
118
- from pathlib import Path
119
  from transformers import AutoModelForSeq2SeqLM
120
- from fastplms.registry import get_model_registry
121
- from tools.artifacts.build import validate_artifact
122
 
123
- artifact = Path("dist/hub/ANKH_large").resolve()
124
- registry = get_model_registry()
125
- validate_artifact(artifact, spec=registry["ankh_large"], registry=registry)
126
  seq2seq = AutoModelForSeq2SeqLM.from_pretrained(
127
- artifact,
128
  trust_remote_code=True,
129
- local_files_only=True,
130
  ).eval()
131
  decoder_result = seq2seq.embed_dataset(
132
  ["MSTNPKPQRKTKRNT"],
@@ -144,45 +134,33 @@ and mask fingerprints, input-position alignment, and biological-mask policy.
144
 
145
  ## Encoder and sequence-to-sequence use
146
 
147
- The current manifest Hub revision `3be3df34140f49dc4e65bd1f247e3ce819e7fc59` for
148
- `Synthyra/ANKH_large` is legacy encoder-only. It supports the `AutoModel`
149
- encoder path, but it is not the full FastPLMs 1.0 sequence-to-sequence
150
- artifact. Do not load `AutoModelForSeq2SeqLM` from that live revision.
151
-
152
- The full encoder-decoder replacement is still pending atomic publication. Use
153
- sequence-to-sequence behavior only from a locally built artifact whose complete
154
- weight, runtime, provenance, and registry validation has passed. The following
155
- snippet fails closed if that artifact is missing or invalid:
156
 
157
  ```python
158
  import torch
159
- from pathlib import Path
160
- from transformers import AutoModelForSeq2SeqLM
161
- from fastplms.registry import get_model_registry
162
- from tools.artifacts.build import validate_artifact
163
 
164
- artifact = Path("dist/hub/ANKH_large").resolve()
165
- registry = get_model_registry()
166
- validate_artifact(artifact, spec=registry["ankh_large"], registry=registry)
167
  seq2seq = AutoModelForSeq2SeqLM.from_pretrained(
168
- artifact,
169
  trust_remote_code=True,
170
- local_files_only=True,
171
  ).eval()
172
- tokenizer = seq2seq.tokenizer
173
  batch = tokenizer("MSTNPKPQRKTKRNT", return_tensors="pt")
174
 
175
  with torch.inference_mode():
 
176
  generated_ids = seq2seq.generate(**batch, max_new_tokens=16)
 
177
  print(tokenizer.batch_decode(generated_ids, skip_special_tokens=True))
178
  ```
179
 
180
  ANKH artifacts retain CC BY-NC-SA 4.0 terms. The notes below distinguish the
181
- official heads from FastPLMs extensions. Once validated and published, the 1.0
182
- replacement will increase the default repository size while preserving
183
- encoder-output parity. Runtime code,
184
- configuration, tokenizer, card, provenance, and every weight shard must be
185
- published atomically. Files-only publication is forbidden for this migration.
186
 
187
  ## Notes and limitations
188
 
@@ -203,18 +181,18 @@ masked-LM extension and is not an official ANKH head.
203
  - Weight publication allowed: `true`
204
  - Weight license status: `resolved`
205
  - Redistributable: `true`
206
- - Complete weight publication required: `true`
207
 
208
- ## Provenance
209
 
210
- - FastPLMs weights: `Synthyra/ANKH_large@3be3df34140f49dc4e65bd1f247e3ce819e7fc59`
211
- - Runtime revision: `1b9ce023f1e06571cf3e6324be0610ffa53e0a4a`
212
- - Runtime source-tree SHA-256: `5eb598fd991b5447e3bb6a18c92bd2300be1d94a1e169504725bc56127c1d6bc`
213
- - Runtime bundle SHA-256: `17b8f83a33e63d941e3edfb8db2d8381286046b572f94194e576ca394d997597`
214
  - Generator/schema version and complete/runtime-only attestations: recorded in `provenance.json`
215
  - Canonical transformed state SHA-256: `e498a2e9aea76ef784cbe3e596c6b3f5e9a40e209ad837f7e3207099e4d74483`
216
  - Conversion equality attestation: recorded in `provenance.json`
217
- - Official checkpoint: `ElnaggarLab/ankh-large@74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6`
218
  - Artifact source: `official`
219
  - State transform: `ankh_t5_to_fastplms_v1`
220
  - BF16 execution: `static_parameters`
@@ -223,7 +201,7 @@ masked-LM extension and is not an official ANKH head.
223
  - Release tiers: `check`, `compliance`, `feature`, `artifact`, `benchmark`
224
  - Unresolved required file identities: `0`
225
 
226
- The local artifact records exact file identities, conversion provenance, source
227
  revisions, and legal texts in `provenance.json`. A nonzero unresolved count is a
228
  release blocker.
229
 
 
24
 
25
  ```bash
26
  python -m pip install \
27
+ "fastplms @ git+https://github.com/Synthyra/FastPLMs.git@ed38b898187ba16b64d801874decdddfe2938a58"
28
  ```
29
 
30
  Python 3.11-3.14, PyTorch 2.13, and Transformers 5.13 are required. The declared CPU gate covers tiny offline contracts; published checkpoint throughput and parity require the documented device tier. The Hub quick start below requires network
 
59
 
60
  ## Tokenization and forward inference
61
 
62
+ `Synthyra/ANKH_large` contains the complete encoder-decoder checkpoint.
63
+ `AutoModel` loads the encoder view without allocating the decoder, while
64
+ `AutoModelForSeq2SeqLM` loads the encoder, decoder, cross-attention, and
65
+ language-model head.
66
 
67
  Use the tokenizer owned by the loaded model so tokenizer files, revision,
68
  offline/cache policy, and ANKH's residue-aware pre-tokenizer stay aligned.
 
86
 
87
  ## Dataset embeddings
88
 
89
+ Dataset embeddings default to the encoder's final hidden state. Layer indices
90
+ use the selected stack's native hidden-state order:
 
91
 
92
  ```python
93
  encoder_result = model.embed_dataset(
 
109
  does not infer a shifted source sequence because official tasks use prompts,
110
  sentinel tokens, or generated tokens that depend on the task. Protein inputs
111
  remain raw residue strings and sentinel prompts remain tight, as in
112
+ `M<extra_id_0>`:
 
 
113
 
114
  ```python
 
115
  from transformers import AutoModelForSeq2SeqLM
 
 
116
 
 
 
 
117
  seq2seq = AutoModelForSeq2SeqLM.from_pretrained(
118
+ "Synthyra/ANKH_large",
119
  trust_remote_code=True,
 
120
  ).eval()
121
  decoder_result = seq2seq.embed_dataset(
122
  ["MSTNPKPQRKTKRNT"],
 
134
 
135
  ## Encoder and sequence-to-sequence use
136
 
137
+ `Synthyra/ANKH_large` contains the complete ANKH encoder-decoder checkpoint.
138
+ Use `AutoModel` for encoder embeddings and `AutoModelForSeq2SeqLM` for
139
+ task-specific decoding:
 
 
 
 
 
 
140
 
141
  ```python
142
  import torch
143
+ from transformers import AutoModel, AutoModelForSeq2SeqLM, AutoTokenizer
 
 
 
144
 
145
+ repo_id = "Synthyra/ANKH_large"
146
+ tokenizer = AutoTokenizer.from_pretrained(repo_id, trust_remote_code=True)
147
+ encoder = AutoModel.from_pretrained(repo_id, trust_remote_code=True).eval()
148
  seq2seq = AutoModelForSeq2SeqLM.from_pretrained(
149
+ repo_id,
150
  trust_remote_code=True,
 
151
  ).eval()
 
152
  batch = tokenizer("MSTNPKPQRKTKRNT", return_tensors="pt")
153
 
154
  with torch.inference_mode():
155
+ encoder_hidden = encoder(**batch).last_hidden_state
156
  generated_ids = seq2seq.generate(**batch, max_new_tokens=16)
157
+ print(encoder_hidden.shape)
158
  print(tokenizer.batch_decode(generated_ids, skip_special_tokens=True))
159
  ```
160
 
161
  ANKH artifacts retain CC BY-NC-SA 4.0 terms. The notes below distinguish the
162
+ official heads from FastPLMs extensions. The complete checkpoint is larger than
163
+ the former encoder-only mirror while preserving encoder-output parity.
 
 
 
164
 
165
  ## Notes and limitations
166
 
 
181
  - Weight publication allowed: `true`
182
  - Weight license status: `resolved`
183
  - Redistributable: `true`
184
+ - Complete weight publication required: `false`
185
 
186
+ ## Release record
187
 
188
+ - FastPLMs weights: `Synthyra/ANKH_large`
189
+ - Runtime revision: `ed38b898187ba16b64d801874decdddfe2938a58`
190
+ - Runtime source-tree SHA-256: `e377aef8902771bb8bdabcae9c8853ab50de04d85cacd3d75c6e83508f6d52ed`
191
+ - Runtime bundle SHA-256: `405e7dddef77117e55232e1112faf088db88bb9b13e212a63b3318c4bc0d5a03`
192
  - Generator/schema version and complete/runtime-only attestations: recorded in `provenance.json`
193
  - Canonical transformed state SHA-256: `e498a2e9aea76ef784cbe3e596c6b3f5e9a40e209ad837f7e3207099e4d74483`
194
  - Conversion equality attestation: recorded in `provenance.json`
195
+ - Official checkpoint: `ElnaggarLab/ankh-large`
196
  - Artifact source: `official`
197
  - State transform: `ankh_t5_to_fastplms_v1`
198
  - BF16 execution: `static_parameters`
 
201
  - Release tiers: `check`, `compliance`, `feature`, `artifact`, `benchmark`
202
  - Unresolved required file identities: `0`
203
 
204
+ The local artifact records exact file identities, conversion details, source
205
  revisions, and legal texts in `provenance.json`. A nonzero unresolved count is a
206
  release blocker.
207
 
config.json CHANGED
@@ -22,11 +22,11 @@
22
  "fastplms_checkpoint_repo_id": "ElnaggarLab/ankh-large",
23
  "fastplms_checkpoint_revision": "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6",
24
  "fastplms_model_id": "ankh_large",
25
- "fastplms_release_tool_revision": "1b9ce023f1e06571cf3e6324be0610ffa53e0a4a",
26
- "fastplms_release_tool_sha256": "1459b5d7d13d9b07bd97b3eee764f2ce73623e15e32d07ddf6825c2a9509afb9",
27
- "fastplms_runtime_bundle_sha256": "17b8f83a33e63d941e3edfb8db2d8381286046b572f94194e576ca394d997597",
28
- "fastplms_runtime_revision": "1b9ce023f1e06571cf3e6324be0610ffa53e0a4a",
29
- "fastplms_source_tree_sha256": "5eb598fd991b5447e3bb6a18c92bd2300be1d94a1e169504725bc56127c1d6bc",
30
  "fastplms_weights_revision": "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6",
31
  "feed_forward_proj": "gated-gelu",
32
  "initializer_factor": 1.0,
 
22
  "fastplms_checkpoint_repo_id": "ElnaggarLab/ankh-large",
23
  "fastplms_checkpoint_revision": "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6",
24
  "fastplms_model_id": "ankh_large",
25
+ "fastplms_release_tool_revision": "ed38b898187ba16b64d801874decdddfe2938a58",
26
+ "fastplms_release_tool_sha256": "6b15c1ec4a44faba83aa128452b06c617de4c4f580ca1cc91f9fce9747ca784e",
27
+ "fastplms_runtime_bundle_sha256": "405e7dddef77117e55232e1112faf088db88bb9b13e212a63b3318c4bc0d5a03",
28
+ "fastplms_runtime_revision": "ed38b898187ba16b64d801874decdddfe2938a58",
29
+ "fastplms_source_tree_sha256": "e377aef8902771bb8bdabcae9c8853ab50de04d85cacd3d75c6e83508f6d52ed",
30
  "fastplms_weights_revision": "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6",
31
  "feed_forward_proj": "gated-gelu",
32
  "initializer_factor": 1.0,
fastplms/models.toml CHANGED
@@ -240,7 +240,7 @@ vram_tier = "sequence"
240
  checkpoint_license = "Profluent-E1-Agreement"
241
  hub_license = "other"
242
  hub_license_name = "Profluent-E1 Clickthrough License Agreement"
243
- hub_license_link = "https://github.com/Profluent-AI/E1/blob/bfd2620a602248499f3d2583d85a7ecddf0b6e02/LICENSE"
244
  weights_publication_allowed = true
245
  state_transform = "e1_to_fastplms_v1"
246
  conversion_provenance = "Input: the pinned Profluent-E1 checkpoint and tokenizer-free sequence contract. Transformation: apply e1_to_fastplms_v1 to the FastPLMs encoder and official task heads, storing floating tensors in BF16. Output: the pinned Synthyra Profluent-E1 checkpoint. Validation: release parity covers state identity after the declared cast, sequence and RAG preparation, aliases, and inference. Limitation: the FastPLMs scoring extension is not represented as an official E1 head."
@@ -267,7 +267,7 @@ checkpoint_license = "Apache-2.0"
267
  hub_license = "apache-2.0"
268
  weights_publication_allowed = true
269
  state_transform = "dplm_to_fastplms_v1"
270
- conversion_provenance = "Input: the pinned official DPLM1 checkpoint. Transformation: apply dplm_to_fastplms_v1, omitting the unused absolute-position table for rotary checkpoints and materializing the tied input/output embedding values as independent tensors. Output: the pinned Synthyra DPLM checkpoint. Validation: release parity compares exact state identity after the declared transform, tokenizer behavior, generation, and inference. License basis: the pinned ByteDance DPLM Apache-2.0 LICENSE and README explicitly scope the repository release to the pretrained DPLM1 and DPLM2 weights; immutable evidence is recorded in LICENSES/dplm/PROVENANCE.md. Limitation: redistribution remains subject to Apache-2.0 and the pinned provenance record; no broader rights are inferred."
271
  representative = "dplm_150m"
272
  documentation = "docs/models.md#dplm"
273
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
@@ -291,7 +291,7 @@ checkpoint_license = "Apache-2.0"
291
  hub_license = "apache-2.0"
292
  weights_publication_allowed = true
293
  state_transform = "dplm2_to_fastplms_v1"
294
- conversion_provenance = "Input: the pinned official DPLM2 checkpoint. Transformation: apply dplm2_to_fastplms_v1, retaining the independent language-model head and trained encoder contact head while omitting the unused absolute-position table for rotary checkpoints. Output: the pinned Synthyra DPLM2 checkpoint. Validation: release parity compares exact keys and values after the declared omission, non-aliasing, tokenizer behavior, generation, and inference. License basis: the pinned ByteDance DPLM Apache-2.0 LICENSE and README explicitly scope the repository release to the pretrained DPLM1 and DPLM2 weights; immutable evidence is recorded in LICENSES/dplm/PROVENANCE.md. Limitation: no head exception is permitted by this record, and redistribution remains subject to Apache-2.0."
295
  representative = "dplm2_150m"
296
  documentation = "docs/models.md#dplm2"
297
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
@@ -320,7 +320,7 @@ conversion_provenance = "Input: the pinned official ANKH T5 checkpoint. Transfor
320
  representative = "ankh_base"
321
  documentation = "docs/models.md#ankh"
322
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
323
- requires_complete_weight_publication = true
324
  runtime_paths = ["__init__.py", "registry.py", "runtime.py", "models.toml", "models/__init__.py", "attention", "embeddings", "models/ankh", "models/ttt.py"]
325
  auto_map = { AutoConfig = "fastplms.models.ankh.modeling_ankh.FastAnkhConfig", AutoModel = "fastplms.models.ankh.modeling_ankh.FastAnkhModel", AutoModelForMaskedLM = "fastplms.models.ankh.modeling_ankh.FastAnkhForMaskedLMExtension", AutoModelForSeq2SeqLM = "fastplms.models.ankh.modeling_ankh.FastAnkhForConditionalGeneration", AutoModelForSequenceClassification = "fastplms.models.ankh.modeling_ankh.FastAnkhForSequenceClassification", AutoModelForTokenClassification = "fastplms.models.ankh.modeling_ankh.FastAnkhForTokenClassification" }
326
 
@@ -948,13 +948,14 @@ notes = "ANKH parity covers the official encoder and sequence-to-sequence heads.
948
  artifact_source = "official"
949
  canonical_state_sha256 = "cdd8d30d88e5bf41f44e1eef4470d8e46607aba5f7c7c805b06c035b89c8c16f"
950
  fast_repo = "Synthyra/ANKH_base"
951
- fast_revision = "7ec329aae8e3e174bf22a1eb9e0e9fcc12b53092"
952
  fast_files = [
953
- "config.json=git-sha1:7e1cbce6d08f9bb64eee4410899b1c6b4054f418",
954
- "model.safetensors=sha256:b0d3473cac1bda90e39cde54f2abe86da1fc84f872c833ca3415672776dccb95",
955
- "special_tokens_map.json=git-sha1:a2d8d626c31389a935e197fb94072e2414a6e7d1",
956
- "tokenizer.json=git-sha1:0734d752d12d0f46ac96467fbceb1c4bfbeee0be",
957
- "tokenizer_config.json=git-sha1:db0b80de72d3b16242b9eda74ed4663e39c65bcf",
 
958
  ]
959
  official_repo = "ElnaggarLab/ankh-base"
960
  official_revision = "d99cb6b966530dfc2ae96bc69d9255c2a07308b0"
@@ -976,13 +977,15 @@ notes = "ANKH parity covers the official encoder and sequence-to-sequence heads.
976
  artifact_source = "official"
977
  canonical_state_sha256 = "e498a2e9aea76ef784cbe3e596c6b3f5e9a40e209ad837f7e3207099e4d74483"
978
  fast_repo = "Synthyra/ANKH_large"
979
- fast_revision = "3be3df34140f49dc4e65bd1f247e3ce819e7fc59"
980
  fast_files = [
981
- "config.json=git-sha1:272509deedb527e5c2c95b0c269194a44148fdcc",
982
- "model.safetensors=sha256:e70b8f9755ac6bfe95d18359060ae9fe38fac63b12a89a886c83349d1adbaa53",
983
- "special_tokens_map.json=git-sha1:a2d8d626c31389a935e197fb94072e2414a6e7d1",
984
- "tokenizer.json=git-sha1:0734d752d12d0f46ac96467fbceb1c4bfbeee0be",
985
- "tokenizer_config.json=git-sha1:2bcaff2567826f5f51188b00600d2c6e7bcea56e",
 
 
986
  ]
987
  official_repo = "ElnaggarLab/ankh-large"
988
  official_revision = "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6"
@@ -1004,13 +1007,16 @@ notes = "ANKH parity covers the official encoder and sequence-to-sequence heads.
1004
  artifact_source = "official"
1005
  canonical_state_sha256 = "597c4fe2fa8711f11a25317905f1d62fa92905e55fdd5c0a79614cd9c9d2bca3"
1006
  fast_repo = "Synthyra/ANKH2_large"
1007
- fast_revision = "392de5ed52bbfd73b45f545e378aaebcff096d0e"
1008
  fast_files = [
1009
- "config.json=git-sha1:66b6adc7215743a98a3229958bbd1c9c42b6108b",
1010
- "model.safetensors=sha256:be8e6242388d93b51cd9719a0e32cfc17a2e804786570c795ba332197eccb915",
1011
- "special_tokens_map.json=git-sha1:a2d8d626c31389a935e197fb94072e2414a6e7d1",
1012
- "tokenizer.json=git-sha1:0734d752d12d0f46ac96467fbceb1c4bfbeee0be",
1013
- "tokenizer_config.json=git-sha1:db0b80de72d3b16242b9eda74ed4663e39c65bcf",
 
 
 
1014
  ]
1015
  official_repo = "ElnaggarLab/ankh2-ext2"
1016
  official_revision = "aa9b9fa72288c47d9f618ce80c011e24b54e17a8"
@@ -1033,13 +1039,17 @@ notes = "ANKH parity covers the official encoder and sequence-to-sequence heads.
1033
  artifact_source = "official"
1034
  canonical_state_sha256 = "60acb7ef86e85dc0c51fc1edf4c8e69a0480049723b6b2c95e6e9faa720c112a"
1035
  fast_repo = "Synthyra/ANKH3_large"
1036
- fast_revision = "53600f175f328f986f43e55ca8ceb14935d337a4"
1037
  fast_files = [
1038
- "config.json=git-sha1:432b09625d44a2eeab679fddb7495d42b560b7f9",
1039
- "model.safetensors=sha256:9f50f58cf5b3a537a0a41aa918695c3a26d7985dd0b2266642d6f86324c9e7a1",
1040
- "special_tokens_map.json=git-sha1:1fc3a4d6d4282e5201cd7c30d5c0a6a8bfa04f82",
1041
- "tokenizer.json=git-sha1:3d14291df2d6db3a183c5c4fe133afb330cc44cf",
1042
- "tokenizer_config.json=git-sha1:2005fec00a7ae9a49e248a1ecefbbd81c56674d6",
 
 
 
 
1043
  ]
1044
  official_repo = "ElnaggarLab/ankh3-large"
1045
  official_revision = "2be091622e8a393f0ef21735070084123c874b6e"
@@ -1063,15 +1073,20 @@ notes = "ANKH parity covers the official encoder and sequence-to-sequence heads.
1063
  artifact_source = "official"
1064
  canonical_state_sha256 = "dd2188e0d2ca65232135714eef6de394239734d843ddae4928c7398685d858e7"
1065
  fast_repo = "Synthyra/ANKH3_xl"
1066
- fast_revision = "3cbf2c22c4f7d67bf0bfcbdcd500f41723e91d29"
1067
  fast_files = [
1068
- "config.json=git-sha1:23f6d78ddcb3a031b88f876eaaf04c2fafaea46f",
1069
- "model-00001-of-00003.safetensors=sha256:39bd8f75cf98a67cf04055399f9fc401198f6fc2896b112aba9fd9ec9df52ab9",
1070
- "model-00002-of-00003.safetensors=sha256:9ff73233b39d2c200abb78e66b320c014ec61431bd6e1af36fb188a3cfa24c34",
1071
- "model-00003-of-00003.safetensors=sha256:c13125c02dbcd7f07bd412e9e085f2bca6624d2f1f45fedc95fb777f53161cbe",
1072
- "special_tokens_map.json=git-sha1:1fc3a4d6d4282e5201cd7c30d5c0a6a8bfa04f82",
1073
- "tokenizer.json=git-sha1:3d14291df2d6db3a183c5c4fe133afb330cc44cf",
1074
- "tokenizer_config.json=git-sha1:2005fec00a7ae9a49e248a1ecefbbd81c56674d6",
 
 
 
 
 
1075
  ]
1076
  official_repo = "ElnaggarLab/ankh3-xl"
1077
  official_revision = "e00113df5c95ef71df7ea3f5a73d56bd00e473a4"
 
240
  checkpoint_license = "Profluent-E1-Agreement"
241
  hub_license = "other"
242
  hub_license_name = "Profluent-E1 Clickthrough License Agreement"
243
+ hub_license_link = "https://github.com/Profluent-AI/E1/blob/main/LICENSE"
244
  weights_publication_allowed = true
245
  state_transform = "e1_to_fastplms_v1"
246
  conversion_provenance = "Input: the pinned Profluent-E1 checkpoint and tokenizer-free sequence contract. Transformation: apply e1_to_fastplms_v1 to the FastPLMs encoder and official task heads, storing floating tensors in BF16. Output: the pinned Synthyra Profluent-E1 checkpoint. Validation: release parity covers state identity after the declared cast, sequence and RAG preparation, aliases, and inference. Limitation: the FastPLMs scoring extension is not represented as an official E1 head."
 
267
  hub_license = "apache-2.0"
268
  weights_publication_allowed = true
269
  state_transform = "dplm_to_fastplms_v1"
270
+ conversion_provenance = "Input: the pinned official DPLM1 checkpoint. Transformation: apply dplm_to_fastplms_v1, omitting the unused absolute-position table for rotary checkpoints and materializing the tied input/output embedding values as independent tensors. Output: the pinned Synthyra DPLM checkpoint. Validation: release parity compares exact state identity after the declared transform, tokenizer behavior, generation, and inference. License basis: the pinned ByteDance DPLM Apache-2.0 LICENSE and README explicitly scope the repository release to the pretrained DPLM1 and DPLM2 weights; immutable evidence is recorded in LICENSES/dplm/PROVENANCE.md. Limitation: redistribution remains subject to Apache-2.0 and the pinned source record; no broader rights are inferred."
271
  representative = "dplm_150m"
272
  documentation = "docs/models.md#dplm"
273
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
 
291
  hub_license = "apache-2.0"
292
  weights_publication_allowed = true
293
  state_transform = "dplm2_to_fastplms_v1"
294
+ conversion_provenance = "Input: the pinned official DPLM2 checkpoint. Transformation: apply dplm2_to_fastplms_v1, retaining the independent language-model head and trained encoder contact head while omitting the unused absolute-position table for rotary checkpoints. Output: the pinned Synthyra DPLM2 checkpoint. Validation: release parity compares exact keys and values after the declared omission, non-aliasing, tokenizer behavior, generation, and inference. License basis: the pinned ByteDance DPLM Apache-2.0 LICENSE and README explicitly scope the repository release to the pretrained DPLM1 and DPLM2 weights; immutable evidence is recorded in LICENSES/dplm/PROVENANCE.md. Limitation: no head exception is permitted by this source record, and redistribution remains subject to Apache-2.0."
295
  representative = "dplm2_150m"
296
  documentation = "docs/models.md#dplm2"
297
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
 
320
  representative = "ankh_base"
321
  documentation = "docs/models.md#ankh"
322
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
323
+ requires_complete_weight_publication = false
324
  runtime_paths = ["__init__.py", "registry.py", "runtime.py", "models.toml", "models/__init__.py", "attention", "embeddings", "models/ankh", "models/ttt.py"]
325
  auto_map = { AutoConfig = "fastplms.models.ankh.modeling_ankh.FastAnkhConfig", AutoModel = "fastplms.models.ankh.modeling_ankh.FastAnkhModel", AutoModelForMaskedLM = "fastplms.models.ankh.modeling_ankh.FastAnkhForMaskedLMExtension", AutoModelForSeq2SeqLM = "fastplms.models.ankh.modeling_ankh.FastAnkhForConditionalGeneration", AutoModelForSequenceClassification = "fastplms.models.ankh.modeling_ankh.FastAnkhForSequenceClassification", AutoModelForTokenClassification = "fastplms.models.ankh.modeling_ankh.FastAnkhForTokenClassification" }
326
 
 
948
  artifact_source = "official"
949
  canonical_state_sha256 = "cdd8d30d88e5bf41f44e1eef4470d8e46607aba5f7c7c805b06c035b89c8c16f"
950
  fast_repo = "Synthyra/ANKH_base"
951
+ fast_revision = "a3afa1db21c876dff57b3540fa7241e138fb1ed6"
952
  fast_files = [
953
+ "config.json=git-sha1:d1b81bb97129bc75dea04daef1ea2af373018e6b",
954
+ "model-00001-of-00001.safetensors=sha256:c943d25cacdafd2c8e3518a74450b5f90f715becf30ceb24c327f1c5a0bc8b5d",
955
+ "model.safetensors.index.json=git-sha1:ca251ab9277c06081b33e027f68f5bdc0808b443",
956
+ "special_tokens_map.json=git-sha1:55b145827029ae9672e50d4bb368540daacce791",
957
+ "tokenizer.json=git-sha1:212c5ef08819fa2463c6289ba4ef7db30e715c0a",
958
+ "tokenizer_config.json=git-sha1:a8a872ae3441e7cc85ce19210dff1e4c5d2d7bd0",
959
  ]
960
  official_repo = "ElnaggarLab/ankh-base"
961
  official_revision = "d99cb6b966530dfc2ae96bc69d9255c2a07308b0"
 
977
  artifact_source = "official"
978
  canonical_state_sha256 = "e498a2e9aea76ef784cbe3e596c6b3f5e9a40e209ad837f7e3207099e4d74483"
979
  fast_repo = "Synthyra/ANKH_large"
980
+ fast_revision = "92d2403bbe3c32acaa944fbb8dc2beb5f571f008"
981
  fast_files = [
982
+ "config.json=git-sha1:46eef0fff286107820f8ffc523127fa981435aeb",
983
+ "model-00001-of-00002.safetensors=sha256:79301f0b6a4fcbfd3b8bd10ca892846d79b1aad6ad06976da7380249e36f5158",
984
+ "model-00002-of-00002.safetensors=sha256:20062a5049fcde509030024527665a75062a95d64966558dfcaa9245b441cbec",
985
+ "model.safetensors.index.json=git-sha1:6b707ca3ce7255d241a52feeca68c0cbbe2a383f",
986
+ "special_tokens_map.json=git-sha1:55b145827029ae9672e50d4bb368540daacce791",
987
+ "tokenizer.json=git-sha1:212c5ef08819fa2463c6289ba4ef7db30e715c0a",
988
+ "tokenizer_config.json=git-sha1:d7fe02ba6f2b18d9ccfa19ac129c9fdc9ec24d09",
989
  ]
990
  official_repo = "ElnaggarLab/ankh-large"
991
  official_revision = "74b371dbfa3ee0a05d32ae74df0c2e0b82d6b9a6"
 
1007
  artifact_source = "official"
1008
  canonical_state_sha256 = "597c4fe2fa8711f11a25317905f1d62fa92905e55fdd5c0a79614cd9c9d2bca3"
1009
  fast_repo = "Synthyra/ANKH2_large"
1010
+ fast_revision = "729167c1980316ae61691338838447491926033f"
1011
  fast_files = [
1012
+ "config.json=git-sha1:dd5d59e6b74bc8afa9fd4a5bda13526c235dabb8",
1013
+ "generation_config.json=git-sha1:91f792e452403d46e170e206f9e50be5ddef9b9a",
1014
+ "model-00001-of-00002.safetensors=sha256:7c0c297f60bcf81c732cdfeae6e99e140272807eb52afd70356fc6fdfa94e5a8",
1015
+ "model-00002-of-00002.safetensors=sha256:f3d425d3e8741ccbdd925446559a9bf317c2c91e328f2eee44924423b56e3a3d",
1016
+ "model.safetensors.index.json=git-sha1:6b707ca3ce7255d241a52feeca68c0cbbe2a383f",
1017
+ "special_tokens_map.json=git-sha1:55b145827029ae9672e50d4bb368540daacce791",
1018
+ "tokenizer.json=git-sha1:212c5ef08819fa2463c6289ba4ef7db30e715c0a",
1019
+ "tokenizer_config.json=git-sha1:854e5db75dae8b1e9dd39c5bae80dae5508b3e25",
1020
  ]
1021
  official_repo = "ElnaggarLab/ankh2-ext2"
1022
  official_revision = "aa9b9fa72288c47d9f618ce80c011e24b54e17a8"
 
1039
  artifact_source = "official"
1040
  canonical_state_sha256 = "60acb7ef86e85dc0c51fc1edf4c8e69a0480049723b6b2c95e6e9faa720c112a"
1041
  fast_repo = "Synthyra/ANKH3_large"
1042
+ fast_revision = "c6d16ca2a1b3b27a27bcf3875e816a059029d264"
1043
  fast_files = [
1044
+ "config.json=git-sha1:813ffc6c319549a2c1f3503e1309c36110202d65",
1045
+ "generation_config.json=git-sha1:5767cc0cacebfd06884eb27ae1c796d3ca829fd2",
1046
+ "model-00001-of-00002.safetensors=sha256:7f1f5c5dcff4b6bc6b8464fe9a7eebdd99b0789ee8da895f42a41bdb04191654",
1047
+ "model-00002-of-00002.safetensors=sha256:c1a67cef9b76202362ff00c9d2b2dc4b5fc7acd1f22d30c8b3f2e3d2597d0f22",
1048
+ "model.safetensors.index.json=git-sha1:a20cfc1f8517ef47d12d08604dc93c064f1e6736",
1049
+ "special_tokens_map.json=git-sha1:d596919b7fa2a197edd441ec3ec4685ecacd2de4",
1050
+ "spiece.model=sha256:f2b5e1bbd110b71ca9b2878e1fcd3265610076ecc97bd696e8a745c9bacc54e0",
1051
+ "tokenizer.json=git-sha1:90f0c94b43c81496b3ca81e3ec1c092ef2dd7fca",
1052
+ "tokenizer_config.json=git-sha1:0e699eebfa778698473b4faf1e66ef363b93fb21",
1053
  ]
1054
  official_repo = "ElnaggarLab/ankh3-large"
1055
  official_revision = "2be091622e8a393f0ef21735070084123c874b6e"
 
1073
  artifact_source = "official"
1074
  canonical_state_sha256 = "dd2188e0d2ca65232135714eef6de394239734d843ddae4928c7398685d858e7"
1075
  fast_repo = "Synthyra/ANKH3_xl"
1076
+ fast_revision = "d2856892e7535af2f55c2c4de043b1b272a29ed8"
1077
  fast_files = [
1078
+ "config.json=git-sha1:791460a5c0d6c03bebbac1d7eec7e35805eaf7b7",
1079
+ "generation_config.json=git-sha1:91f792e452403d46e170e206f9e50be5ddef9b9a",
1080
+ "model-00001-of-00005.safetensors=sha256:f6b841f6b800e436b08e362d04f8442fd044839b1e32ba6ac01ecb30a9d2bae5",
1081
+ "model-00002-of-00005.safetensors=sha256:ea556d511d4747ada49b9d0c24ef503774410093e53c0d003ffb9407efc2be31",
1082
+ "model-00003-of-00005.safetensors=sha256:125884f5dcb5b44435e3b76330582f31f74547b67c9b6cadf9a4d7cf38748eb7",
1083
+ "model-00004-of-00005.safetensors=sha256:e776ef6c5d6a50d4b3fcf0bbb2431de7ce813eddd2903290e54809c801ddb241",
1084
+ "model-00005-of-00005.safetensors=sha256:58ee3b065cfcccd179fdbecef9827dfb91feb33e0d8385b692e6309d56ec530e",
1085
+ "model.safetensors.index.json=git-sha1:74d149f64234c3f43eb85971f40b4a1c6d05a407",
1086
+ "special_tokens_map.json=git-sha1:d596919b7fa2a197edd441ec3ec4685ecacd2de4",
1087
+ "spiece.model=sha256:f2b5e1bbd110b71ca9b2878e1fcd3265610076ecc97bd696e8a745c9bacc54e0",
1088
+ "tokenizer.json=git-sha1:90f0c94b43c81496b3ca81e3ec1c092ef2dd7fca",
1089
+ "tokenizer_config.json=git-sha1:0e699eebfa778698473b4faf1e66ef363b93fb21",
1090
  ]
1091
  official_repo = "ElnaggarLab/ankh3-xl"
1092
  official_revision = "e00113df5c95ef71df7ea3f5a73d56bd00e473a4"
fastplms_bundle.py CHANGED
The diff for this file is too large to render. See raw diff
 
modeling_fastplms.py CHANGED
@@ -13,7 +13,7 @@ from zipfile import ZIP_DEFLATED, ZipFile
13
 
14
  from .fastplms_bundle import RUNTIME_DATA, RUNTIME_HASH
15
 
16
- if RUNTIME_HASH != "17b8f83a33e63d941e3edfb8db2d8381286046b572f94194e576ca394d997597":
17
  raise RuntimeError("FastPLMs runtime identity differs from the bridge.")
18
 
19
  _RUNTIME_TEMPORARIES = []
 
13
 
14
  from .fastplms_bundle import RUNTIME_DATA, RUNTIME_HASH
15
 
16
+ if RUNTIME_HASH != "405e7dddef77117e55232e1112faf088db88bb9b13e212a63b3318c4bc0d5a03":
17
  raise RuntimeError("FastPLMs runtime identity differs from the bridge.")
18
 
19
  _RUNTIME_TEMPORARIES = []
runtime-attestation.json CHANGED
@@ -2,9 +2,9 @@
2
  "files": {
3
  "LICENSES/FastPLMs-Apache-2.0.txt": "sha256:2d2b50c7b1414bff1189a1db1f0cfb92e3e064b50f4c2b1019827b683e1b629a",
4
  "LICENSES/ankh/LICENSE.md": "sha256:cd041d7f9f52936e8824ac3f754e9c67410763205fc8a7020ba74fc8b6edc088",
5
- "README.md": "sha256:0e7f7d1cf0a555aefe5e82c0fdcc4d91ddd112540e6fe7202e6597811eb5a1ba",
6
  "THIRD_PARTY_NOTICES.md": "sha256:25704b3c76404696cae52e7fca13088d329f70f412687340351259e86cd62baa",
7
- "config.json": "sha256:8fc088cd9ecaff3d45d8f891b2db438b853b6d26b8c1bab233b553766e7faa3f",
8
  "fastplms/__init__.py": "sha256:4fb3196022ca8ec699d59d09bdbc5f0184195552b773698ab9b061fe3cd7df12",
9
  "fastplms/attention/__init__.py": "sha256:f60b9fecfb4bcb37a4e7c26dc2f752b9035f9cbad627b4a84213f3a92ec88f7d",
10
  "fastplms/attention/_core.py": "sha256:8f7ec5b65bd8b6c6fa4951d50d1c0e499abf03ae00914794b51fc410201e3e33",
@@ -15,31 +15,31 @@
15
  "fastplms/embeddings/runner.py": "sha256:23ee4727a918d6d331f7a0f89b823d149f1a791f0c5586e3496d7b6eb2ce97e0",
16
  "fastplms/embeddings/storage.py": "sha256:3fbe2bab75092e5a4cadf4d27e4752181d597469a65a55db085ceef808ed418e",
17
  "fastplms/embeddings/types.py": "sha256:119718a20989d1ae5a60fabc0f5e98bdc172c5163b04db3d4554ac3956b30e52",
18
- "fastplms/models.toml": "sha256:05a8399f084a5babb5f0916cee7e564c4030767f3ff0230c4f46e539209847d1",
19
  "fastplms/models/__init__.py": "sha256:5e48c2cb3877aa6f42f3b5411d53b16bba2e32827bbde634f47f174c5cb36f86",
20
  "fastplms/models/ankh/__init__.py": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
21
  "fastplms/models/ankh/modeling_ankh.py": "sha256:b114c73e4aaedc567e3351b425ddddacf35661f09b3414cf59b6db0b712c82c3",
22
  "fastplms/models/ttt.py": "sha256:a0df4e98b02120d423e3c7ca9b866a8d0e3748b9076042a0102a838a11aed046",
23
  "fastplms/registry.py": "sha256:afca271911b651a882345b74a58366494a1d784e4a48c8683a87f5508f4ba16e",
24
  "fastplms/runtime.py": "sha256:110018646d6f248cedab140a030c3065e1b062b61f6aff659c231e538614bc01",
25
- "fastplms_bundle.py": "sha256:ebf70cf52fb0a07025edf06bd50d2e945d9ed09fe12e6d3ae3503001ec21c9f9",
26
- "modeling_fastplms.py": "sha256:df7f6d96802eff127bc8270cde5fe00c8f5e77921c1cc893021fb9f75a3e4c77",
27
  "special_tokens_map.json": "sha256:c8995d2f8037fe3a8cfdef30475365e1c314c417880b75abaf8296e3c05d42d6",
28
  "tokenizer.json": "sha256:b4533f607d9fd665f2d9d94b0cf71870a6fc2fc2ae7cbd516d0e43a9efb406fd",
29
  "tokenizer_config.json": "sha256:41fcf5b9ace40b2e614c8c12775f033cbbc696871504729c92e578cb21323025"
30
  },
31
  "model_id": "ankh_large",
32
  "redistributable": true,
33
- "release_tool_revision": "1b9ce023f1e06571cf3e6324be0610ffa53e0a4a",
34
- "release_tool_sha256": "1459b5d7d13d9b07bd97b3eee764f2ce73623e15e32d07ddf6825c2a9509afb9",
35
- "runtime_bundle_sha256": "17b8f83a33e63d941e3edfb8db2d8381286046b572f94194e576ca394d997597",
36
- "runtime_revision": "1b9ce023f1e06571cf3e6324be0610ffa53e0a4a",
37
  "schema_version": 2,
38
  "scope": "runtime-only",
39
- "source_tree_sha256": "5eb598fd991b5447e3bb6a18c92bd2300be1d94a1e169504725bc56127c1d6bc",
40
  "weights": {
41
  "repo_id": "Synthyra/ANKH_large",
42
- "revision": "3be3df34140f49dc4e65bd1f247e3ce819e7fc59"
43
  },
44
  "weights_license_status": "resolved"
45
  }
 
2
  "files": {
3
  "LICENSES/FastPLMs-Apache-2.0.txt": "sha256:2d2b50c7b1414bff1189a1db1f0cfb92e3e064b50f4c2b1019827b683e1b629a",
4
  "LICENSES/ankh/LICENSE.md": "sha256:cd041d7f9f52936e8824ac3f754e9c67410763205fc8a7020ba74fc8b6edc088",
5
+ "README.md": "sha256:20432d02df9935bad1e62c2ae2c8fd22c658af2436bf4f141c54fcc2782e4507",
6
  "THIRD_PARTY_NOTICES.md": "sha256:25704b3c76404696cae52e7fca13088d329f70f412687340351259e86cd62baa",
7
+ "config.json": "sha256:e46a5ecdac4c30d26e3fe194f7e3b25d78e172ca78dc41aa162ab62ed9bda5c3",
8
  "fastplms/__init__.py": "sha256:4fb3196022ca8ec699d59d09bdbc5f0184195552b773698ab9b061fe3cd7df12",
9
  "fastplms/attention/__init__.py": "sha256:f60b9fecfb4bcb37a4e7c26dc2f752b9035f9cbad627b4a84213f3a92ec88f7d",
10
  "fastplms/attention/_core.py": "sha256:8f7ec5b65bd8b6c6fa4951d50d1c0e499abf03ae00914794b51fc410201e3e33",
 
15
  "fastplms/embeddings/runner.py": "sha256:23ee4727a918d6d331f7a0f89b823d149f1a791f0c5586e3496d7b6eb2ce97e0",
16
  "fastplms/embeddings/storage.py": "sha256:3fbe2bab75092e5a4cadf4d27e4752181d597469a65a55db085ceef808ed418e",
17
  "fastplms/embeddings/types.py": "sha256:119718a20989d1ae5a60fabc0f5e98bdc172c5163b04db3d4554ac3956b30e52",
18
+ "fastplms/models.toml": "sha256:1b0d92911222f31b435bfee80251c9abe20b85392d65f8af8d285d1ccfbbc3c5",
19
  "fastplms/models/__init__.py": "sha256:5e48c2cb3877aa6f42f3b5411d53b16bba2e32827bbde634f47f174c5cb36f86",
20
  "fastplms/models/ankh/__init__.py": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
21
  "fastplms/models/ankh/modeling_ankh.py": "sha256:b114c73e4aaedc567e3351b425ddddacf35661f09b3414cf59b6db0b712c82c3",
22
  "fastplms/models/ttt.py": "sha256:a0df4e98b02120d423e3c7ca9b866a8d0e3748b9076042a0102a838a11aed046",
23
  "fastplms/registry.py": "sha256:afca271911b651a882345b74a58366494a1d784e4a48c8683a87f5508f4ba16e",
24
  "fastplms/runtime.py": "sha256:110018646d6f248cedab140a030c3065e1b062b61f6aff659c231e538614bc01",
25
+ "fastplms_bundle.py": "sha256:a06395708d58c64035ff39e6e38280d6fcb733d223de3709a21f1a5c87cd97b7",
26
+ "modeling_fastplms.py": "sha256:ccf1ac016e0fdcaaed4376db29e5b29d843d776c48c977f1006edfaab51c8307",
27
  "special_tokens_map.json": "sha256:c8995d2f8037fe3a8cfdef30475365e1c314c417880b75abaf8296e3c05d42d6",
28
  "tokenizer.json": "sha256:b4533f607d9fd665f2d9d94b0cf71870a6fc2fc2ae7cbd516d0e43a9efb406fd",
29
  "tokenizer_config.json": "sha256:41fcf5b9ace40b2e614c8c12775f033cbbc696871504729c92e578cb21323025"
30
  },
31
  "model_id": "ankh_large",
32
  "redistributable": true,
33
+ "release_tool_revision": "ed38b898187ba16b64d801874decdddfe2938a58",
34
+ "release_tool_sha256": "6b15c1ec4a44faba83aa128452b06c617de4c4f580ca1cc91f9fce9747ca784e",
35
+ "runtime_bundle_sha256": "405e7dddef77117e55232e1112faf088db88bb9b13e212a63b3318c4bc0d5a03",
36
+ "runtime_revision": "ed38b898187ba16b64d801874decdddfe2938a58",
37
  "schema_version": 2,
38
  "scope": "runtime-only",
39
+ "source_tree_sha256": "e377aef8902771bb8bdabcae9c8853ab50de04d85cacd3d75c6e83508f6d52ed",
40
  "weights": {
41
  "repo_id": "Synthyra/ANKH_large",
42
+ "revision": "92d2403bbe3c32acaa944fbb8dc2beb5f571f008"
43
  },
44
  "weights_license_status": "resolved"
45
  }