lhallee commited on
Commit
48d6bdd
·
verified ·
1 Parent(s): 4c8d0e0

Update FastPLMs files

Browse files
README.md CHANGED
@@ -10,7 +10,7 @@ tags:
10
 
11
  # Synthyra/Boltz2
12
 
13
- This checkpoint packages the FastPLMs `Boltz2` implementation.
14
 
15
  Accepted inputs are raw amino-acid sequences through the convenience API, or
16
  prepared model features.
@@ -28,9 +28,7 @@ Supported Transformers entry points are `AutoConfig`, `AutoModel`.
28
  | Attention variants | Supported: `eager` |
29
  | Compliance | Unavailable: this provisional family has no compliance tier |
30
 
31
- A supported interface is not a pretrained downstream predictor. Classification
32
- heads start untrained, and declared compliance metadata is not a claim that an
33
- arbitrary local build passed its release gate.
34
 
35
  ## Install and platform requirements
36
 
@@ -41,12 +39,12 @@ python -m pip install -r \
41
  "https://huggingface.co/Synthyra/Boltz2/resolve/main/requirements.txt"
42
  ```
43
 
44
- The FastPLMs implementation itself is embedded in the model repository and loaded
45
- by Transformers through `trust_remote_code=True`.
46
 
47
- Python 3.11-3.14, PyTorch 2.13, and Transformers 5.13 are required. The artifact requirements include the direct structure dependencies. The published execution contract requires a CUDA device. The current validated release target is the exact NVIDIA GH200 on Linux aarch64; Linux x86-64, CPU-only, Windows, and macOS structure runs are not current release evidence. The Hub quick start below requires network
48
- access on first download. For an air-gapped run, first build the manifest-pinned
49
- local artifact and use the offline form shown in the example.
50
 
51
  ## Quick start
52
 
@@ -62,21 +60,21 @@ model = AutoModel.from_pretrained(
62
  ```
63
 
64
  For offline validation, replace `model_id` with the manifest-built
65
- `dist/hub/Boltz2` path and pass `local_files_only=True`.
66
 
67
  ## Attention and compliance
68
 
69
- The quick start selects `eager` explicitly. Declared variants are `eager`. An unavailable requested backend raises instead
70
- of silently switching implementations.
71
- `output_attentions=True` may use the documented, one-call eager fallback solely
72
- to materialize attention tensors; the configured backend remains unchanged.
73
 
74
- This family does not declare the `compliance` tier. Boltz2 remains provisional
75
- and its structure checks must not be broadened into parity claims.
76
 
77
  ## PEFT fine-tuning
78
 
79
- Install the direct training dependencies, then attach LoRA to the loaded checkpoint:
80
 
81
  ```bash
82
  python -m pip install "datasets>=4.8,<5" "peft>=0.19,<0.20"
@@ -95,10 +93,10 @@ peft_model = get_peft_model(
95
  )
96
  ```
97
 
98
- This checkpoint has no advertised classifier. Supply the task-specific
99
- objective and preserve any new head through `modules_to_save`.
100
  All FastPLMs checkpoints follow the Transformers `PreTrainedModel` contract and
101
- can be adapted with PEFT. The ESM2-specific shipped CLI is an example, not a
102
  support boundary. Record the target modules, base revision, data identity, and
103
  trainable parameter scope.
104
 
@@ -124,10 +122,10 @@ print(output.sample_atom_coords.shape)
124
  print(output.plddt, output.ptm, output.iptm)
125
  ```
126
 
127
- The validation boundary below describes the currently supported inference
128
- subset and its provisional status. The helper scopes and restores Python,
129
- NumPy, CPU Torch, and CUDA RNG state. Parameters and prepared features remain
130
- FP32; supported CUDA inference executes inside BF16 autocast.
131
 
132
  ## Notes and limitations
133
 
@@ -156,8 +154,8 @@ continues independently of the ESM++ and ESMFold2 release gates.
156
  ## Release record
157
 
158
  - FastPLMs weights: `Synthyra/Boltz2`
159
- - Runtime revision: recorded separately in the built artifact and published commit
160
- - Source-tree and runtime-bundle SHA-256: recorded in `provenance.json`
161
  - Official checkpoint: `boltz-community/boltz-2`
162
  - Artifact source: `fast`
163
  - State transform: `boltz2_inference_core_v1`
@@ -165,19 +163,17 @@ continues independently of the ESM++ and ESMFold2 release gates.
165
  - Release tiers: `structure`, `artifact`, `benchmark`
166
  - Unresolved required file identities: `0`
167
 
168
- `provenance.json` records exact file identities, conversion, source revisions,
169
- legal texts, schema, and attestations. A nonzero unresolved count blocks release.
170
 
171
  ## Validation boundary
172
 
173
- Declared tiers compare applicable configuration, tokenizer behavior, state,
174
- and representative inference with the pinned reference. Metadata alone does
175
- not claim a build passed, a backend is faster, or an output is biologically
176
- valid.
177
 
178
  ## License
179
 
180
  Checkpoint terms: MIT. The Hub model-card identifier is
181
- `mit`. Applicable source licenses, notices, attribution,
182
- and conversion records are distributed with the local artifact. Review them
183
- before use.
 
10
 
11
  # Synthyra/Boltz2
12
 
13
+ This checkpoint contains the FastPLMs `Boltz2` implementation.
14
 
15
  Accepted inputs are raw amino-acid sequences through the convenience API, or
16
  prepared model features.
 
28
  | Attention variants | Supported: `eager` |
29
  | Compliance | Unavailable: this provisional family has no compliance tier |
30
 
31
+ A supported interface is not a pretrained downstream predictor. Classification heads start untrained. Compliance metadata does not show that a local build passed its release gate.
 
 
32
 
33
  ## Install and platform requirements
34
 
 
39
  "https://huggingface.co/Synthyra/Boltz2/resolve/main/requirements.txt"
40
  ```
41
 
42
+ The FastPLMs implementation itself is embedded in the model repository.
43
+ Transformers loads it through `trust_remote_code=True`.
44
 
45
+ This model requires Python 3.11-3.14, PyTorch 2.13, and Transformers 5.13. The artifact requirements include the structure dependencies. The release contract requires a CUDA device. The current validated target is the exact NVIDIA GH200 on Linux aarch64. Linux x86-64, CPU-only, Windows, and macOS structure runs are not release evidence. The Hub quick start needs network access for
46
+ the first download. For an air-gapped run, build the manifest-pinned local
47
+ artifact first and use the offline example.
48
 
49
  ## Quick start
50
 
 
60
  ```
61
 
62
  For offline validation, replace `model_id` with the manifest-built
63
+ `dist/hub/Boltz2` path. Pass `local_files_only=True`.
64
 
65
  ## Attention and compliance
66
 
67
+ The quick start selects `eager` explicitly. Declared variants are `eager`. An unavailable requested backend raises. It does
68
+ not silently change implementation.
69
+ `output_attentions=True` can use the documented one-call eager fallback to
70
+ materialize attention tensors. The configured backend does not change.
71
 
72
+ This family does not declare the `compliance` tier. Boltz2 remains provisional.
73
+ Its structure checks are not parity claims.
74
 
75
  ## PEFT fine-tuning
76
 
77
+ Install the training dependencies. Then attach LoRA to the loaded checkpoint:
78
 
79
  ```bash
80
  python -m pip install "datasets>=4.8,<5" "peft>=0.19,<0.20"
 
93
  )
94
  ```
95
 
96
+ This checkpoint has no advertised classifier. Supply the task objective and
97
+ preserve any new head through `modules_to_save`.
98
  All FastPLMs checkpoints follow the Transformers `PreTrainedModel` contract and
99
+ can use PEFT. The ESM2-specific shipped CLI is an example, not a
100
  support boundary. Record the target modules, base revision, data identity, and
101
  trainable parameter scope.
102
 
 
122
  print(output.plddt, output.ptm, output.iptm)
123
  ```
124
 
125
+ The validation boundary below describes the supported inference subset and its
126
+ provisional status. The helper saves and restores Python, NumPy, CPU Torch, and
127
+ CUDA RNG state. Parameters and prepared features stay FP32. Supported CUDA
128
+ inference runs in BF16 autocast.
129
 
130
  ## Notes and limitations
131
 
 
154
  ## Release record
155
 
156
  - FastPLMs weights: `Synthyra/Boltz2`
157
+ - Runtime revision: recorded in the built artifact and published commit
158
+ - Source-tree and runtime-bundle SHA-256: recorded in the source record
159
  - Official checkpoint: `boltz-community/boltz-2`
160
  - Artifact source: `fast`
161
  - State transform: `boltz2_inference_core_v1`
 
163
  - Release tiers: `structure`, `artifact`, `benchmark`
164
  - Unresolved required file identities: `0`
165
 
166
+ The source record records exact file identities, conversion, source revisions,
167
+ legal texts, schema, and attestations. A nonzero unresolved count blocks a release.
168
 
169
  ## Validation boundary
170
 
171
+ Declared tiers compare configuration, tokenizer behavior, state, and
172
+ representative inference with the pinned reference. Metadata does not show that
173
+ a build passed, that a backend is faster, or that an output is biologically valid.
 
174
 
175
  ## License
176
 
177
  Checkpoint terms: MIT. The Hub model-card identifier is
178
+ `mit`. The local artifact contains applicable source
179
+ licenses, notices, attribution, and conversion records. Review them before use.
 
THIRD_PARTY_NOTICES.md CHANGED
@@ -46,7 +46,7 @@ explicitly defines the repository release as including pretrained DPLM1 and
46
  DPLM2 weights, and the same revision carries the complete
47
  [Apache-2.0 license](https://github.com/bytedance/dplm/blob/8a2e15e53416b4536f03f79ad1f6f6a9cbd5e19d/LICENSE).
48
  FastPLMs records both checkpoint families as Apache-2.0 and distributes the
49
- verbatim license plus `LICENSES/dplm/PROVENANCE.md`. Converted weights retain
50
  those terms and remain subject to the ordinary artifact and publication gates.
51
 
52
  ## Biohub
@@ -80,7 +80,7 @@ TorchMetrics, Lightning Utilities, and NVIDIA DLLogger. Their exact versions or
80
  revision are pinned in `docker/constraints/esmfold.txt`; OpenFold imports them
81
  eagerly, and FastPLMs production code does not depend on them. DLLogger's exact
82
  source identity and installed-license handling are recorded in
83
- `LICENSES/dllogger/PROVENANCE.md`.
84
 
85
  ## ProteinTTT
86
 
@@ -93,7 +93,7 @@ revision-specific provenance are under `LICENSES/protein-ttt/`.
93
  For every supported family, `src/fastplms/models.toml` records an immutable
94
  official checkpoint revision, an immutable FastPLMs checkpoint revision, file
95
  digests, a named state transformation, and a mechanism-level conversion record.
96
- Generated artifacts reproduce that record in `provenance.json`. A release or
97
  artifact build must fail when a required file identity, legal text, attribution
98
  notice, modified-file notice, upstream revision, or conversion record is absent
99
  or differs from its manifest digest.
 
46
  DPLM2 weights, and the same revision carries the complete
47
  [Apache-2.0 license](https://github.com/bytedance/dplm/blob/8a2e15e53416b4536f03f79ad1f6f6a9cbd5e19d/LICENSE).
48
  FastPLMs records both checkpoint families as Apache-2.0 and distributes the
49
+ verbatim license plus `LICENSES/dplm/SOURCE_RECORD.md`. Converted weights retain
50
  those terms and remain subject to the ordinary artifact and publication gates.
51
 
52
  ## Biohub
 
80
  revision are pinned in `docker/constraints/esmfold.txt`; OpenFold imports them
81
  eagerly, and FastPLMs production code does not depend on them. DLLogger's exact
82
  source identity and installed-license handling are recorded in
83
+ `LICENSES/dllogger/SOURCE_RECORD.md`.
84
 
85
  ## ProteinTTT
86
 
 
93
  For every supported family, `src/fastplms/models.toml` records an immutable
94
  official checkpoint revision, an immutable FastPLMs checkpoint revision, file
95
  digests, a named state transformation, and a mechanism-level conversion record.
96
+ Generated artifacts reproduce that record in `source-record.json`. A release or
97
  artifact build must fail when a required file identity, legal text, attribution
98
  notice, modified-file notice, upstream revision, or conversion record is absent
99
  or differs from its manifest digest.
fastplms/models.toml CHANGED
@@ -88,7 +88,7 @@ license_files = ["LICENSE"]
88
  license_digests = ["LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"]
89
  distribution_files = [
90
  "LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
91
- "PROVENANCE.md=sha256:a659f74be9073cf1ad2d2f7071531ca56959b421f111152cf4c41184ace5970e",
92
  ]
93
 
94
  [[upstreams]]
@@ -122,7 +122,7 @@ license_files = ["LICENSE"]
122
  license_digests = ["LICENSE=sha256:da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93"]
123
  distribution_files = [
124
  "LICENSE=sha256:da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93",
125
- "PROVENANCE.md=sha256:950adb94daf15e646ddf226dacfe2a8e77801aa0793e439a9a3490a48eb666e7",
126
  ]
127
 
128
  [[upstreams]]
@@ -136,7 +136,7 @@ license_digests = ["LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c1
136
  distribution_files = [
137
  "LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
138
  "MODIFICATIONS.md=sha256:fd6f0aa1086a0c996cf967b326d18e965660cda0ad5c7f36a3474a8490720da3",
139
- "PROVENANCE.md=sha256:48c903db43a217a3126afaefbac60b7ddac7efda2dfcc0cbff0bffc7d6c30081",
140
  ]
141
 
142
  [[upstreams]]
@@ -149,7 +149,7 @@ license_files = ["LICENSE"]
149
  license_digests = ["LICENSE=sha256:bb01e7d5554f9e2e117172e56551452f68a7818df7bc8e71cd7a776a1d4ba3df"]
150
  distribution_files = [
151
  "LICENSE=sha256:bb01e7d5554f9e2e117172e56551452f68a7818df7bc8e71cd7a776a1d4ba3df",
152
- "PROVENANCE.md=sha256:dc641c37353c2efd50ccbdb316ca4aae495ec02c1563e0e15bac92f75fc482e5",
153
  ]
154
 
155
  [families.esm2]
@@ -187,7 +187,8 @@ reference_adapter = "tests.parity.support.reference_adapters.esm_plusplus"
187
  attention = ["eager", "sdpa", "flex_attention", "flash_attention_2", "flash_attention_3"]
188
  dtypes = ["float32", "bfloat16"]
189
  bf16_execution = "static_parameters"
190
- precisions = ["default"]
 
191
  vram_tier = "sequence"
192
  checkpoint_license = "MIT"
193
  hub_license = "mit"
@@ -267,7 +268,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 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,7 +292,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 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"]
 
88
  license_digests = ["LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30"]
89
  distribution_files = [
90
  "LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
91
+ "SOURCE_RECORD.md=sha256:a659f74be9073cf1ad2d2f7071531ca56959b421f111152cf4c41184ace5970e",
92
  ]
93
 
94
  [[upstreams]]
 
122
  license_digests = ["LICENSE=sha256:da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93"]
123
  distribution_files = [
124
  "LICENSE=sha256:da6d3703ed11cbe42bd212c725957c98da23cbff1998c05fa4b3d976d1a58e93",
125
+ "SOURCE_RECORD.md=sha256:950adb94daf15e646ddf226dacfe2a8e77801aa0793e439a9a3490a48eb666e7",
126
  ]
127
 
128
  [[upstreams]]
 
136
  distribution_files = [
137
  "LICENSE=sha256:cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
138
  "MODIFICATIONS.md=sha256:fd6f0aa1086a0c996cf967b326d18e965660cda0ad5c7f36a3474a8490720da3",
139
+ "SOURCE_RECORD.md=sha256:48c903db43a217a3126afaefbac60b7ddac7efda2dfcc0cbff0bffc7d6c30081",
140
  ]
141
 
142
  [[upstreams]]
 
149
  license_digests = ["LICENSE=sha256:bb01e7d5554f9e2e117172e56551452f68a7818df7bc8e71cd7a776a1d4ba3df"]
150
  distribution_files = [
151
  "LICENSE=sha256:bb01e7d5554f9e2e117172e56551452f68a7818df7bc8e71cd7a776a1d4ba3df",
152
+ "SOURCE_RECORD.md=sha256:dc641c37353c2efd50ccbdb316ca4aae495ec02c1563e0e15bac92f75fc482e5",
153
  ]
154
 
155
  [families.esm2]
 
187
  attention = ["eager", "sdpa", "flex_attention", "flash_attention_2", "flash_attention_3"]
188
  dtypes = ["float32", "bfloat16"]
189
  bf16_execution = "static_parameters"
190
+ precisions = ["default", "fp8"]
191
+ experimental_precisions = ["fp8"]
192
  vram_tier = "sequence"
193
  checkpoint_license = "MIT"
194
  hub_license = "mit"
 
268
  hub_license = "apache-2.0"
269
  weights_publication_allowed = true
270
  state_transform = "dplm_to_fastplms_v1"
271
+ 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/SOURCE_RECORD.md. Limitation: redistribution remains subject to Apache-2.0 and the pinned source record; no broader rights are inferred."
272
  representative = "dplm_150m"
273
  documentation = "docs/models.md#dplm"
274
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
 
292
  hub_license = "apache-2.0"
293
  weights_publication_allowed = true
294
  state_transform = "dplm2_to_fastplms_v1"
295
+ 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/SOURCE_RECORD.md. Limitation: no head exception is permitted by this source record, and redistribution remains subject to Apache-2.0."
296
  representative = "dplm2_150m"
297
  documentation = "docs/models.md#dplm2"
298
  test_tiers = ["check", "compliance", "feature", "artifact", "benchmark"]
fastplms_bundle.py CHANGED
The diff for this file is too large to render. See raw diff
 
modeling_fastplms.py CHANGED
@@ -12,7 +12,7 @@ from zipfile import ZIP_DEFLATED, ZipFile
12
 
13
  from .fastplms_bundle import RUNTIME_DATA, RUNTIME_HASH
14
 
15
- if RUNTIME_HASH != "3aebb85d11edb01329d2aafb4c8260bd67339785f0f252582246ae7c33206143":
16
  raise RuntimeError("FastPLMs runtime identity differs from the bridge.")
17
 
18
  _RUNTIME_TEMPORARIES = []
 
12
 
13
  from .fastplms_bundle import RUNTIME_DATA, RUNTIME_HASH
14
 
15
+ if RUNTIME_HASH != "119228ee43188baa4919348e6e7dd3f779467d92393e0aee83124ee091b2619a":
16
  raise RuntimeError("FastPLMs runtime identity differs from the bridge.")
17
 
18
  _RUNTIME_TEMPORARIES = []