caithmac commited on
Commit
d8f631e
·
verified ·
1 Parent(s): fa10ef7

Release verified A1 Step2 and Step1 encoders for private testing

Browse files
LICENSE ADDED
@@ -0,0 +1,399 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Attribution-NonCommercial 4.0 International
2
+
3
+ =======================================================================
4
+
5
+ Creative Commons Corporation ("Creative Commons") is not a law firm and
6
+ does not provide legal services or legal advice. Distribution of
7
+ Creative Commons public licenses does not create a lawyer-client or
8
+ other relationship. Creative Commons makes its licenses and related
9
+ information available on an "as-is" basis. Creative Commons gives no
10
+ warranties regarding its licenses, any material licensed under their
11
+ terms and conditions, or any related information. Creative Commons
12
+ disclaims all liability for damages resulting from their use to the
13
+ fullest extent possible.
14
+
15
+ Using Creative Commons Public Licenses
16
+
17
+ Creative Commons public licenses provide a standard set of terms and
18
+ conditions that creators and other rights holders may use to share
19
+ original works of authorship and other material subject to copyright
20
+ and certain other rights specified in the public license below. The
21
+ following considerations are for informational purposes only, are not
22
+ exhaustive, and do not form part of our licenses.
23
+
24
+ Considerations for licensors: Our public licenses are
25
+ intended for use by those authorized to give the public
26
+ permission to use material in ways otherwise restricted by
27
+ copyright and certain other rights. Our licenses are
28
+ irrevocable. Licensors should read and understand the terms
29
+ and conditions of the license they choose before applying it.
30
+ Licensors should also secure all rights necessary before
31
+ applying our licenses so that the public can reuse the
32
+ material as expected. Licensors should clearly mark any
33
+ material not subject to the license. This includes other CC-
34
+ licensed material, or material used under an exception or
35
+ limitation to copyright. More considerations for licensors:
36
+ wiki.creativecommons.org/Considerations_for_licensors
37
+
38
+ Considerations for the public: By using one of our public
39
+ licenses, a licensor grants the public permission to use the
40
+ licensed material under specified terms and conditions. If
41
+ the licensor's permission is not necessary for any reason--for
42
+ example, because of any applicable exception or limitation to
43
+ copyright--then that use is not regulated by the license. Our
44
+ licenses grant only permissions under copyright and certain
45
+ other rights that a licensor has authority to grant. Use of
46
+ the licensed material may still be restricted for other
47
+ reasons, including because others have copyright or other
48
+ rights in the material. A licensor may make special requests,
49
+ such as asking that all changes be marked or described.
50
+ Although not required by our licenses, you are encouraged to
51
+ respect those requests where reasonable. More_considerations
52
+ for the public:
53
+ wiki.creativecommons.org/Considerations_for_licensees
54
+
55
+ =======================================================================
56
+
57
+ Creative Commons Attribution-NonCommercial 4.0 International Public
58
+ License
59
+
60
+ By exercising the Licensed Rights (defined below), You accept and agree
61
+ to be bound by the terms and conditions of this Creative Commons
62
+ Attribution-NonCommercial 4.0 International Public License ("Public
63
+ License"). To the extent this Public License may be interpreted as a
64
+ contract, You are granted the Licensed Rights in consideration of Your
65
+ acceptance of these terms and conditions, and the Licensor grants You
66
+ such rights in consideration of benefits the Licensor receives from
67
+ making the Licensed Material available under these terms and
68
+ conditions.
69
+
70
+ Section 1 -- Definitions.
71
+
72
+ a. Adapted Material means material subject to Copyright and Similar
73
+ Rights that is derived from or based upon the Licensed Material
74
+ and in which the Licensed Material is translated, altered,
75
+ arranged, transformed, or otherwise modified in a manner requiring
76
+ permission under the Copyright and Similar Rights held by the
77
+ Licensor. For purposes of this Public License, where the Licensed
78
+ Material is a musical work, performance, or sound recording,
79
+ Adapted Material is always produced where the Licensed Material is
80
+ synched in timed relation with a moving image.
81
+
82
+ b. Adapter's License means the license You apply to Your Copyright
83
+ and Similar Rights in Your contributions to Adapted Material in
84
+ accordance with the terms and conditions of this Public License.
85
+
86
+ c. Copyright and Similar Rights means copyright and/or similar rights
87
+ closely related to copyright including, without limitation,
88
+ performance, broadcast, sound recording, and Sui Generis Database
89
+ Rights, without regard to how the rights are labeled or
90
+ categorized. For purposes of this Public License, the rights
91
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
92
+ Rights.
93
+ d. Effective Technological Measures means those measures that, in the
94
+ absence of proper authority, may not be circumvented under laws
95
+ fulfilling obligations under Article 11 of the WIPO Copyright
96
+ Treaty adopted on December 20, 1996, and/or similar international
97
+ agreements.
98
+
99
+ e. Exceptions and Limitations means fair use, fair dealing, and/or
100
+ any other exception or limitation to Copyright and Similar Rights
101
+ that applies to Your use of the Licensed Material.
102
+
103
+ f. Licensed Material means the artistic or literary work, database,
104
+ or other material to which the Licensor applied this Public
105
+ License.
106
+
107
+ g. Licensed Rights means the rights granted to You subject to the
108
+ terms and conditions of this Public License, which are limited to
109
+ all Copyright and Similar Rights that apply to Your use of the
110
+ Licensed Material and that the Licensor has authority to license.
111
+
112
+ h. Licensor means the individual(s) or entity(ies) granting rights
113
+ under this Public License.
114
+
115
+ i. NonCommercial means not primarily intended for or directed towards
116
+ commercial advantage or monetary compensation. For purposes of
117
+ this Public License, the exchange of the Licensed Material for
118
+ other material subject to Copyright and Similar Rights by digital
119
+ file-sharing or similar means is NonCommercial provided there is
120
+ no payment of monetary compensation in connection with the
121
+ exchange.
122
+
123
+ j. Share means to provide material to the public by any means or
124
+ process that requires permission under the Licensed Rights, such
125
+ as reproduction, public display, public performance, distribution,
126
+ dissemination, communication, or importation, and to make material
127
+ available to the public including in ways that members of the
128
+ public may access the material from a place and at a time
129
+ individually chosen by them.
130
+
131
+ k. Sui Generis Database Rights means rights other than copyright
132
+ resulting from Directive 96/9/EC of the European Parliament and of
133
+ the Council of 11 March 1996 on the legal protection of databases,
134
+ as amended and/or succeeded, as well as other essentially
135
+ equivalent rights anywhere in the world.
136
+
137
+ l. You means the individual or entity exercising the Licensed Rights
138
+ under this Public License. Your has a corresponding meaning.
139
+
140
+ Section 2 -- Scope.
141
+
142
+ a. License grant.
143
+
144
+ 1. Subject to the terms and conditions of this Public License,
145
+ the Licensor hereby grants You a worldwide, royalty-free,
146
+ non-sublicensable, non-exclusive, irrevocable license to
147
+ exercise the Licensed Rights in the Licensed Material to:
148
+
149
+ a. reproduce and Share the Licensed Material, in whole or
150
+ in part, for NonCommercial purposes only; and
151
+
152
+ b. produce, reproduce, and Share Adapted Material for
153
+ NonCommercial purposes only.
154
+
155
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
156
+ Exceptions and Limitations apply to Your use, this Public
157
+ License does not apply, and You do not need to comply with
158
+ its terms and conditions.
159
+
160
+ 3. Term. The term of this Public License is specified in Section
161
+ 6(a).
162
+
163
+ 4. Media and formats; technical modifications allowed. The
164
+ Licensor authorizes You to exercise the Licensed Rights in
165
+ all media and formats whether now known or hereafter created,
166
+ and to make technical modifications necessary to do so. The
167
+ Licensor waives and/or agrees not to assert any right or
168
+ authority to forbid You from making technical modifications
169
+ necessary to exercise the Licensed Rights, including
170
+ technical modifications necessary to circumvent Effective
171
+ Technological Measures. For purposes of this Public License,
172
+ simply making modifications authorized by this Section 2(a)
173
+ (4) never produces Adapted Material.
174
+
175
+ 5. Downstream recipients.
176
+
177
+ a. Offer from the Licensor -- Licensed Material. Every
178
+ recipient of the Licensed Material automatically
179
+ receives an offer from the Licensor to exercise the
180
+ Licensed Rights under the terms and conditions of this
181
+ Public License.
182
+
183
+ b. No downstream restrictions. You may not offer or impose
184
+ any additional or different terms or conditions on, or
185
+ apply any Effective Technological Measures to, the
186
+ Licensed Material if doing so restricts exercise of the
187
+ Licensed Rights by any recipient of the Licensed
188
+ Material.
189
+
190
+ 6. No endorsement. Nothing in this Public License constitutes or
191
+ may be construed as permission to assert or imply that You
192
+ are, or that Your use of the Licensed Material is, connected
193
+ with, or sponsored, endorsed, or granted official status by,
194
+ the Licensor or others designated to receive attribution as
195
+ provided in Section 3(a)(1)(A)(i).
196
+
197
+ b. Other rights.
198
+
199
+ 1. Moral rights, such as the right of integrity, are not
200
+ licensed under this Public License, nor are publicity,
201
+ privacy, and/or other similar personality rights; however, to
202
+ the extent possible, the Licensor waives and/or agrees not to
203
+ assert any such rights held by the Licensor to the limited
204
+ extent necessary to allow You to exercise the Licensed
205
+ Rights, but not otherwise.
206
+
207
+ 2. Patent and trademark rights are not licensed under this
208
+ Public License.
209
+
210
+ 3. To the extent possible, the Licensor waives any right to
211
+ collect royalties from You for the exercise of the Licensed
212
+ Rights, whether directly or through a collecting society
213
+ under any voluntary or waivable statutory or compulsory
214
+ licensing scheme. In all other cases the Licensor expressly
215
+ reserves any right to collect such royalties, including when
216
+ the Licensed Material is used other than for NonCommercial
217
+ purposes.
218
+
219
+ Section 3 -- License Conditions.
220
+
221
+ Your exercise of the Licensed Rights is expressly made subject to the
222
+ following conditions.
223
+
224
+ a. Attribution.
225
+
226
+ 1. If You Share the Licensed Material (including in modified
227
+ form), You must:
228
+
229
+ a. retain the following if it is supplied by the Licensor
230
+ with the Licensed Material:
231
+
232
+ i. identification of the creator(s) of the Licensed
233
+ Material and any others designated to receive
234
+ attribution, in any reasonable manner requested by
235
+ the Licensor (including by pseudonym if
236
+ designated);
237
+
238
+ ii. a copyright notice;
239
+
240
+ iii. a notice that refers to this Public License;
241
+
242
+ iv. a notice that refers to the disclaimer of
243
+ warranties;
244
+
245
+ v. a URI or hyperlink to the Licensed Material to the
246
+ extent reasonably practicable;
247
+
248
+ b. indicate if You modified the Licensed Material and
249
+ retain an indication of any previous modifications; and
250
+
251
+ c. indicate the Licensed Material is licensed under this
252
+ Public License, and include the text of, or the URI or
253
+ hyperlink to, this Public License.
254
+
255
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
256
+ reasonable manner based on the medium, means, and context in
257
+ which You Share the Licensed Material. For example, it may be
258
+ reasonable to satisfy the conditions by providing a URI or
259
+ hyperlink to a resource that includes the required
260
+ information.
261
+
262
+ 3. If requested by the Licensor, You must remove any of the
263
+ information required by Section 3(a)(1)(A) to the extent
264
+ reasonably practicable.
265
+
266
+ 4. If You Share Adapted Material You produce, the Adapter's
267
+ License You apply must not prevent recipients of the Adapted
268
+ Material from complying with this Public License.
269
+
270
+ Section 4 -- Sui Generis Database Rights.
271
+
272
+ Where the Licensed Rights include Sui Generis Database Rights that
273
+ apply to Your use of the Licensed Material:
274
+
275
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
276
+ to extract, reuse, reproduce, and Share all or a substantial
277
+ portion of the contents of the database for NonCommercial purposes
278
+ only;
279
+
280
+ b. if You include all or a substantial portion of the database
281
+ contents in a database in which You have Sui Generis Database
282
+ Rights, then the database in which You have Sui Generis Database
283
+ Rights (but not its individual contents) is Adapted Material; and
284
+
285
+ c. You must comply with the conditions in Section 3(a) if You Share
286
+ all or a substantial portion of the contents of the database.
287
+
288
+ For the avoidance of doubt, this Section 4 supplements and does not
289
+ replace Your obligations under this Public License where the Licensed
290
+ Rights include other Copyright and Similar Rights.
291
+
292
+ Section 5 -- Disclaimer of Warranties and Limitation of Liability.
293
+
294
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
295
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
296
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
297
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
298
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
299
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
300
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
301
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
302
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
303
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
304
+
305
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
306
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
307
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
308
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
309
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
310
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
311
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
312
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
313
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
314
+
315
+ c. The disclaimer of warranties and limitation of liability provided
316
+ above shall be interpreted in a manner that, to the extent
317
+ possible, most closely approximates an absolute disclaimer and
318
+ waiver of all liability.
319
+
320
+ Section 6 -- Term and Termination.
321
+
322
+ a. This Public License applies for the term of the Copyright and
323
+ Similar Rights licensed here. However, if You fail to comply with
324
+ this Public License, then Your rights under this Public License
325
+ terminate automatically.
326
+
327
+ b. Where Your right to use the Licensed Material has terminated under
328
+ Section 6(a), it reinstates:
329
+
330
+ 1. automatically as of the date the violation is cured, provided
331
+ it is cured within 30 days of Your discovery of the
332
+ violation; or
333
+
334
+ 2. upon express reinstatement by the Licensor.
335
+
336
+ For the avoidance of doubt, this Section 6(b) does not affect any
337
+ right the Licensor may have to seek remedies for Your violations
338
+ of this Public License.
339
+
340
+ c. For the avoidance of doubt, the Licensor may also offer the
341
+ Licensed Material under separate terms or conditions or stop
342
+ distributing the Licensed Material at any time; however, doing so
343
+ will not terminate this Public License.
344
+
345
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
346
+ License.
347
+
348
+ Section 7 -- Other Terms and Conditions.
349
+
350
+ a. The Licensor shall not be bound by any additional or different
351
+ terms or conditions communicated by You unless expressly agreed.
352
+
353
+ b. Any arrangements, understandings, or agreements regarding the
354
+ Licensed Material not stated herein are separate from and
355
+ independent of the terms and conditions of this Public License.
356
+
357
+ Section 8 -- Interpretation.
358
+
359
+ a. For the avoidance of doubt, this Public License does not, and
360
+ shall not be interpreted to, reduce, limit, restrict, or impose
361
+ conditions on any use of the Licensed Material that could lawfully
362
+ be made without permission under this Public License.
363
+
364
+ b. To the extent possible, if any provision of this Public License is
365
+ deemed unenforceable, it shall be automatically reformed to the
366
+ minimum extent necessary to make it enforceable. If the provision
367
+ cannot be reformed, it shall be severed from this Public License
368
+ without affecting the enforceability of the remaining terms and
369
+ conditions.
370
+
371
+ c. No term or condition of this Public License will be waived and no
372
+ failure to comply consented to unless expressly agreed to by the
373
+ Licensor.
374
+
375
+ d. Nothing in this Public License constitutes or may be interpreted
376
+ as a limitation upon, or waiver of, any privileges and immunities
377
+ that apply to the Licensor or You, including from the legal
378
+ processes of any jurisdiction or authority.
379
+
380
+ =======================================================================
381
+
382
+ Creative Commons is not a party to its public
383
+ licenses. Notwithstanding, Creative Commons may elect to apply one of
384
+ its public licenses to material it publishes and in those instances
385
+ will be considered the “Licensor.” The text of the Creative Commons
386
+ public licenses is dedicated to the public domain under the CC0 Public
387
+ Domain Dedication. Except for the limited purpose of indicating that
388
+ material is shared under a Creative Commons public license or as
389
+ otherwise permitted by the Creative Commons policies published at
390
+ creativecommons.org/policies, Creative Commons does not authorize the
391
+ use of the trademark "Creative Commons" or any other trademark or logo
392
+ of Creative Commons without its prior written consent including,
393
+ without limitation, in connection with any unauthorized modifications
394
+ to any of its public licenses or any other arrangements,
395
+ understandings, or agreements concerning use of licensed material. For
396
+ the avoidance of doubt, this paragraph does not form part of the
397
+ public licenses.
398
+
399
+ Creative Commons may be contacted at creativecommons.org.
NOTICE ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ GRASP adapts the MolE molecular encoder released by Recursion Pharmaceuticals.
2
+ The MolE source is distributed under CC BY-NC 4.0; its license is LICENSE and
3
+ vendor/MOLE_LICENSE. The bundled DeBERTa implementation is distributed under
4
+ the MIT license in vendor/DEBERTA_LICENSE. Source code implementing the paper's
5
+ training and evaluation is retained in reproduction/supplement.
README.md ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-4.0
3
+ library_name: pytorch
4
+ tags:
5
+ - chemistry
6
+ - molecular-representation-learning
7
+ - graph-transformer
8
+ - replaced-token-detection
9
+ - assay-supervision
10
+ - grasp
11
+ - ablation
12
+ ---
13
+
14
+ # GRASP-A1
15
+
16
+ **GRASP-A1** is the GRASP molecular graph Transformer trained without absolute atom-position embeddings. It retains shortest-path relative attention, radius-0 atom-environment tokens, and the replaced-token-detection objective. The encoder has **93,091,584 parameters**, 12 layers, hidden size 768, and 12 attention heads.
17
+
18
+ This private research release provides the completed **50,000-update Step2 encoder** by default and the corresponding **Step1 encoder** under `step1/`. Step1 saw **1,538,242,560 molecule presentations** from ZINC20; this is a presentation budget, not a count of certified unique molecules. Step2 used the audited 511,897-molecule ChEMBL 36 set with 642 assay tasks.
19
+
20
+ ## Use
21
+
22
+ Install Python 3.10–3.13 and the [GRASP code repository](https://github.com/caithmac/GRASP). This repository uses its custom `GRASPEncoder` loader; a standard Transformers `AutoModel` is not provided.
23
+
24
+ ```bash
25
+ python -m pip install "git+https://github.com/caithmac/GRASP.git@7843e72606dd208517cd8cf86ee07b3bb965cc79"
26
+ hf auth login
27
+ ```
28
+
29
+ Authenticate with an account permitted to read this private repository, then:
30
+
31
+ ```python
32
+ from grasp import GRASPEncoder
33
+
34
+ encoder = GRASPEncoder.from_pretrained("caithmac/GRASP-A1")
35
+ vectors = encoder.encode(["CCO", "c1ccccc1"])
36
+ print(vectors.shape) # (2, 768)
37
+ ```
38
+
39
+ The output is the final-layer CLS state. A property prediction requires a fitted endpoint head. The default embedding is different from the learned layer-mixture and atom-attention readout used in the primary OpenADMET evaluation.
40
+
41
+ To test Step1 before assay adaptation:
42
+
43
+ ```python
44
+ from pathlib import Path
45
+ from huggingface_hub import snapshot_download
46
+ from grasp import GRASPEncoder
47
+
48
+ snapshot = snapshot_download("caithmac/GRASP-A1", allow_patterns="step1/*")
49
+ encoder_s1 = GRASPEncoder.from_pretrained(Path(snapshot) / "step1")
50
+ vectors_s1 = encoder_s1.encode(["CCO", "c1ccccc1"])
51
+ ```
52
+
53
+ ## Fine-tune on your tasks
54
+
55
+ Create separate `train.csv` and `valid.csv` files with `smiles` and `target` columns. Keep test molecules separate from training and model selection. Regression targets use their original units; binary targets must be 0 or 1.
56
+
57
+ ```bash
58
+ python -m grasp finetune --model caithmac/GRASP-A1 \
59
+ --train-csv train.csv --valid-csv valid.csv \
60
+ --smiles-column smiles --target-column target \
61
+ --task regression --method full --output-dir runs/a1_my_task
62
+
63
+ python -m grasp predict --model runs/a1_my_task \
64
+ --input-csv test.csv --output-csv predictions.csv
65
+ ```
66
+
67
+ Use `--task binary` for binary classification. `--method frozen` trains the readout and head with a fixed encoder; `--method lora` provides LoRA adaptation. Use a separate output directory per endpoint. To compare against published GRASP, repeat the same split, preprocessing, method and seed with `--model caithmac/GRASP`.
68
+
69
+ ## Model details and provenance
70
+
71
+ | Property | Value |
72
+ |---|---|
73
+ | Architecture | 12 layers, width 768, 12 heads, FFN width 3072 |
74
+ | Encoder parameters | 93,091,584 |
75
+ | Vocabulary | 211 radius-0 atom-environment and special tokens |
76
+ | Absolute position embeddings | Removed throughout training |
77
+ | Relative attention | Graph shortest-path, content-to-position (`c2p`) |
78
+ | Step1 objective | Replaced-token detection, 25% selected atom positions, GDES |
79
+ | Step1 budget | 1,538,242,560 molecule presentations |
80
+ | Step2 | 50,000 updates; sparse supervision on 642 ChEMBL 36 assays |
81
+ | Default representation | Final-layer CLS, 768 dimensions |
82
+
83
+ `model.safetensors` contains Step2 encoder tensors; `step1/model.safetensors` contains the effective GDES discriminator encoder before Step2. Generator weights, optimizer states, and fitted downstream heads are omitted. Each SafeTensors file is checked tensor by tensor against its encoder export. `training_provenance.json` records source checkpoint hashes and architecture; `SHA256SUMS` records release file hashes. `validation_report.json` describes the actual loading and adaptation smoke checks, which are not benchmark evaluations.
84
+
85
+ ## Evaluation
86
+
87
+ The matched control/A1 experiment completed 23 OpenADMET endpoints with three split/seed runs per endpoint, using endpoint-specific full fine-tuning with a learned layer mixture and atom-attention pooler:
88
+
89
+ | Model in the matched experiment | Mean endpoint MAE | Endpoints with lower mean MAE |
90
+ |---|---:|---:|
91
+ | Retrained control with absolute positions | 0.370232 | 12/23 |
92
+ | A1 without absolute positions | 0.368588 | 11/23 |
93
+
94
+ The MAE difference is **−0.001644**, about **0.44%** relative to the matched control. This is mixed, near-parity evidence rather than a general superiority claim. These results come from one pretraining seed; downstream split and seed change together. The matched control is a separately retrained comparator, and these numbers are not a direct benchmark against the public `caithmac/GRASP` weights or zero-shot encoder scores. TDC evaluation and fixed-split training repeats were still incomplete when this release was prepared. AqSolDB remains blocked because two official test molecules failed parsing; its test set was not modified.
95
+
96
+ Removing absolute positions addresses atom-order dependence. Existing direct atom-permutation audits measured relative embedding drift on the order of 1e-6 for A1. Numerically equivalent embeddings can still differ slightly with batching and floating-point arithmetic. Chemical standardization or parsing changes can change the graph and are outside this invariance statement.
97
+
98
+ ## Intended use and limitations
99
+
100
+ Use this model for research on molecular embeddings and property prediction after endpoint-specific fitting. The vocabulary and graph distances still omit tetrahedral and E/Z assignments: **A1 remains stereo-blind**. It does not supply explicit bond-type inputs, 3D conformers, protonation-state ensembles, or measured uncertainty. Improvements proposed for A2/A3 are not part of this checkpoint.
101
+
102
+ Structural pretraining used molecules with at most 96 heavy atoms. The GRASP loader accepts at most 511 atoms and rejects larger or invalid inputs explicitly; accepting a molecule does not establish that it is in the training domain. Standardization, tautomer handling, charged fragments and salts should be considered consistently when defining a task. This encoder is not a calibrated assay predictor and does not provide clinical or toxicological determinations.
103
+
104
+ ## Training data, license and citation
105
+
106
+ Structural pretraining used ZINC20; assay adaptation used ChEMBL 36. Raw datasets are not redistributed. Model and MolE-derived implementation terms are **CC BY-NC 4.0**; bundled DeBERTa code retains its separate MIT license. See `LICENSE` and `NOTICE` and the [GRASP source and reproduction records](https://github.com/caithmac/GRASP).
107
+
108
+ Satya Pratik Srivastava, Rohan Gorantla, Sharath Krishna Chundru, Harshit Singh, Antonia S. J. S. Mey, and Rajeev Kumar Singh. *GRASP: Graph Representation Learning with Assay Supervision for Molecular Properties*. Use the citation metadata in the GRASP code repository. A1 is an experimental ablation checkpoint, not a separately established paper result.
SHA256SUMS ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 5b2636c65d69d21303a60eb7f2e9dad76b6b1ba78e27202079184a27b5789b62 config.json
2
+ 6318960741814b0ae14a6769b0e129451ae7f3bec6ecbf0764fbb519407bc6a4 LICENSE
3
+ 7f355e252de37e3a4affbb3ca2aabe79a92c9e893bbee01c9f0fd171b3e41e92 model.safetensors
4
+ ac8a653d18e0fdfad95a2edf74b2c813d820d86bcf03527d88029bef8b04cd21 NOTICE
5
+ 53dae9e0d17f514ee38eae7f605715285a2fea1f4e644cdfcb638f4e7f86bd6f README.md
6
+ adcb0cb97d071880ee1e540d20434c8138dfdd63f9db654f5eef4c8584d38108 requirements-tested.txt
7
+ 784e6a4c9f2e22dbbc7f02d3bd151fe6de96e065aa50c3df21f238e9addb2948 step1/config.json
8
+ e1fbbfb34f65b3a30072f2df482a600024b4749d131e542b0d0a3c23604334f9 step1/model.safetensors
9
+ 95c56c82dd3144fbb1d022e84118cf0c155e66acac3a0a4a548818521606ea11 step1/vocab.json
10
+ f2ec92690b7917049cc8cd591da941769fdd27bdc0bc79a0ecb51a608d9cd6cf training_provenance.json
11
+ 9bff469cb60ccbbb9e6f685727438555f061303e9fd10deafec33dae85c78967 validation_report.json
12
+ 95c56c82dd3144fbb1d022e84118cf0c155e66acac3a0a4a548818521606ea11 vocab.json
config.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": {
3
+ "embedding_size": 768,
4
+ "hidden_size": 768,
5
+ "intermediate_size": 3072,
6
+ "num_hidden_layers": 12,
7
+ "num_attention_heads": 12,
8
+ "attention_head_size": 64,
9
+ "attention_probs_dropout_prob": 0.1,
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_act": "gelu",
12
+ "initializer_range": 0.02,
13
+ "layer_norm_eps": 1e-07,
14
+ "max_position_embeddings": 0,
15
+ "max_relative_positions": 512,
16
+ "position_buckets": 0,
17
+ "norm_rel_ebd": "none",
18
+ "pos_att_type": "c2p",
19
+ "position_biased_input": false,
20
+ "relative_attention": true,
21
+ "share_att_key": false,
22
+ "type_vocab_size": 0,
23
+ "vocab_size": 211
24
+ },
25
+ "source_checkpoint_sha256": "5ec58973aa95dc71495081857abadfc5e736fe019ebd55866a8c269a5f3e2914",
26
+ "representation": "final_layer_cls",
27
+ "model_variant": "A1",
28
+ "training_stage": "step2"
29
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f355e252de37e3a4affbb3ca2aabe79a92c9e893bbee01c9f0fd171b3e41e92
3
+ size 372391552
requirements-tested.txt ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ torch==2.14.1
2
+ torch-geometric==2.8.1
3
+ rdkit==2025.3.6
4
+ numpy==1.26.4
5
+ pandas==2.3.3
6
+ scipy==1.15.3
7
+ scikit-learn==1.7.2
8
+ safetensors==0.8.0
9
+ huggingface-hub==2.2.0
10
+ pytorch-lightning==2.6.6
11
+ torchmetrics==1.9.0
step1/config.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": {
3
+ "embedding_size": 768,
4
+ "hidden_size": 768,
5
+ "intermediate_size": 3072,
6
+ "num_hidden_layers": 12,
7
+ "num_attention_heads": 12,
8
+ "attention_head_size": 64,
9
+ "attention_probs_dropout_prob": 0.1,
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_act": "gelu",
12
+ "initializer_range": 0.02,
13
+ "layer_norm_eps": 1e-07,
14
+ "max_position_embeddings": 0,
15
+ "max_relative_positions": 512,
16
+ "position_buckets": 0,
17
+ "norm_rel_ebd": "none",
18
+ "pos_att_type": "c2p",
19
+ "position_biased_input": false,
20
+ "relative_attention": true,
21
+ "share_att_key": false,
22
+ "type_vocab_size": 0,
23
+ "vocab_size": 211
24
+ },
25
+ "source_checkpoint_sha256": "8c61648a30c85c69cd628e8b5eb69f161c0ea727190dee3d40f6beb6429a436c",
26
+ "representation": "final_layer_cls",
27
+ "model_variant": "A1",
28
+ "training_stage": "step1"
29
+ }
step1/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1fbbfb34f65b3a30072f2df482a600024b4749d131e542b0d0a3c23604334f9
3
+ size 372391552
step1/vocab.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"1009961767": 128, "1010215930": 205, "1010228075": 154, "1012972668": 48, "1013338319": 89, "1016841875": 59, "1016845826": 4, "1017642631": 52, "1026654242": 15, "1026654305": 37, "1026822558": 176, "1026924773": 100, "1026928756": 44, "1026928821": 76, "1056139193": 187, "1070894407": 135, "1073491469": 5, "11594061": 141, "12277426": 74, "1611362324": 7, "1622062563": 198, "1659542613": 34, "1660341273": 10, "1660362024": 126, "1673608309": 45, "1677254294": 61, "1677325492": 75, "1844073467": 206, "1844282154": 127, "1844343863": 21, "1893173645": 168, "1988401551": 169, "2041434490": 159, "2041738475": 104, "2092489639": 180, "2092554703": 191, "2114006677": 62, "2114539071": 25, "2130998634": 153, "2132511834": 35, "2143075994": 65, "2155415144": 38, "2192730848": 98, "2192738690": 161, "2192742899": 203, "2193111430": 165, "2194492085": 79, "2194662096": 90, "2196961854": 24, "2197104911": 110, "2197211467": 139, "2197215675": 188, "2197215866": 47, "2208356666": 131, "2245108812": 31, "2245273601": 2, "2245277810": 42, "2245384272": 32, "2245897107": 171, "2245900962": 68, "2245901155": 149, "2246699750": 101, "2246699815": 125, "2246703125": 8, "2246703798": 77, "2246703991": 157, "2246728737": 13, "2246994583": 63, "2246997269": 112, "2246997334": 146, "2261158082": 86, "2445181571": 51, "2462807768": 95, "2572184638": 28, "2572973538": 197, "2849135538": 186, "2850007887": 143, "2850012158": 207, "2865977551": 88, "2866063486": 49, "2866325538": 14, "2968968094": 173, "2976033787": 138, "2976816164": 16, "2998938176": 26, "3027842437": 164, "3027882655": 67, "3040320797": 117, "3132583778": 148, "3156024848": 6, "318908292": 163, "318909215": 119, "3189457552": 56, "3189554341": 71, "319552149": 60, "3205230712": 46, "3206325537": 121, "3206345777": 20, "3217377045": 113, "3217380708": 150, "3217425642": 103, "3217695935": 84, "321854373": 178, "3218681120": 120, "3218693969": 144, "322382141": 132, "322422332": 23, "323195681": 122, "327066619": 108, "3351552914": 170, "3351556771": 69, "3387140397": 129, "3387315712": 1, "3388932168": 30, "3388977530": 158, "3388985371": 11, "3388989546": 40, "3421018950": 134, "3593562157": 18, "3593562348": 106, "3594119454": 118, "3594120102": 179, "3594325843": 145, "3595735704": 66, "3595739785": 55, "3595956281": 22, "3609219177": 39, "3609504524": 109, "3612109269": 193, "3612926680": 94, "369185560": 115, "370425064": 102, "370453531": 12, "370453657": 64, "370453720": 96, "370454343": 137, "370687140": 70, "370711622": 29, "370732245": 92, "371070650": 81, "371508627": 172, "384719280": 185, "384719345": 202, "384719475": 43, "384960988": 195, "384961118": 36, "3855292234": 140, "3858165842": 33, "3858440414": 97, "3912561944": 116, "3912762629": 107, "3922503314": 57, "4179524517": 181, "4181736951": 204, "4267512994": 72, "4274663090": 73, "847336149": 91, "847342868": 111, "847433064": 151, "847433129": 182, "847690172": 189, "847694221": 167, "847698334": 174, "847867887": 201, "847950754": 177, "847954377": 190, "847957139": 58, "847958490": 194, "847961216": 50, "848127915": 184, "848128881": 155, "849271271": 200, "849275503": 41, "849279553": 27, "864408791": 93, "864662309": 123, "864662311": 124, "864662502": 199, "864666390": 114, "864674484": 80, "864674487": 78, "864677235": 156, "864937294": 142, "864942729": 53, "864942730": 54, "864942795": 87, "881066519": 9, "882399112": 166, "882671422": 133, "984188929": 3, "984189120": 85, "984193073": 19, "984213985": 196, "984453308": 83, "984465735": 136, "984473645": 17, "984473836": 105, "995319674": 160, "995543427": 162, "996772578": 99, "999334238": 147, "999334303": 175, "999338447": 192, "999346357": 82, "999598394": 130, "999602538": 152, "999602603": 183, "CLS": 210, "MASK": 208, "PAD": 0, "UNK": 209}
training_provenance.json ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "variant": "A1",
3
+ "default_checkpoint": "step2",
4
+ "step1": {
5
+ "source_checkpoint_sha256": "8c61648a30c85c69cd628e8b5eb69f161c0ea727190dee3d40f6beb6429a436c",
6
+ "export_checkpoint_sha256": "8e3830bd824de1f0b6f3c17da591daaf5721efea287bbee661014230e101ced6",
7
+ "architecture": {
8
+ "embedding_size": 768,
9
+ "hidden_size": 768,
10
+ "intermediate_size": 3072,
11
+ "num_hidden_layers": 12,
12
+ "num_attention_heads": 12,
13
+ "attention_head_size": 64,
14
+ "attention_probs_dropout_prob": 0.1,
15
+ "hidden_dropout_prob": 0.1,
16
+ "hidden_act": "gelu",
17
+ "initializer_range": 0.02,
18
+ "layer_norm_eps": 1e-07,
19
+ "max_position_embeddings": 0,
20
+ "max_relative_positions": 512,
21
+ "position_buckets": 0,
22
+ "norm_rel_ebd": "none",
23
+ "pos_att_type": "c2p",
24
+ "position_biased_input": false,
25
+ "relative_attention": true,
26
+ "share_att_key": false,
27
+ "type_vocab_size": 0,
28
+ "vocab_size": 211
29
+ },
30
+ "encoder_parameters": 93091584,
31
+ "finite": true,
32
+ "step2_updates": 0,
33
+ "step1_molecule_presentations": 1538242560
34
+ },
35
+ "step2": {
36
+ "source_checkpoint_sha256": "5ec58973aa95dc71495081857abadfc5e736fe019ebd55866a8c269a5f3e2914",
37
+ "export_checkpoint_sha256": "9958206598b4e31b09329520614ceda9870699bf5e2e345d33fe7387747c655f",
38
+ "architecture": {
39
+ "embedding_size": 768,
40
+ "hidden_size": 768,
41
+ "intermediate_size": 3072,
42
+ "num_hidden_layers": 12,
43
+ "num_attention_heads": 12,
44
+ "attention_head_size": 64,
45
+ "attention_probs_dropout_prob": 0.1,
46
+ "hidden_dropout_prob": 0.1,
47
+ "hidden_act": "gelu",
48
+ "initializer_range": 0.02,
49
+ "layer_norm_eps": 1e-07,
50
+ "max_position_embeddings": 0,
51
+ "max_relative_positions": 512,
52
+ "position_buckets": 0,
53
+ "norm_rel_ebd": "none",
54
+ "pos_att_type": "c2p",
55
+ "position_biased_input": false,
56
+ "relative_attention": true,
57
+ "share_att_key": false,
58
+ "type_vocab_size": 0,
59
+ "vocab_size": 211
60
+ },
61
+ "encoder_parameters": 93091584,
62
+ "finite": true,
63
+ "step2_updates": 50000,
64
+ "step1_molecule_presentations": 1538242560
65
+ },
66
+ "vocabulary_sha256": "95c56c82dd3144fbb1d022e84118cf0c155e66acac3a0a4a548818521606ea11",
67
+ "step2_audited_molecules": 511897,
68
+ "step2_assays": 642,
69
+ "source_export_manifest_sha256": "1e97a589195b356999bbf18e10ee9461b429130737fc1e5012d608206ffcdb62",
70
+ "license": "cc-by-nc-4.0",
71
+ "grasp_code_commit": "7843e72606dd208517cd8cf86ee07b3bb965cc79"
72
+ }
validation_report.json ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "passed",
3
+ "stages": {
4
+ "step2": {
5
+ "tensor_identical_conversion": true,
6
+ "strict_load": true,
7
+ "raw_encoder_output_parity": true,
8
+ "eidf_input_parity": true,
9
+ "eidf_output_max_abs_error": 2.205371856689453e-06,
10
+ "embedding_shape": [
11
+ 3,
12
+ 768
13
+ ],
14
+ "permutation_relative_l2_max": 4.634867991626379e-07,
15
+ "stereo_input_collision_preserved": true,
16
+ "stereo_embedding_max_abs_error": 1.6763806343078613e-06,
17
+ "encoder_parameters": 93091584
18
+ },
19
+ "step1": {
20
+ "tensor_identical_conversion": true,
21
+ "strict_load": true,
22
+ "raw_encoder_output_parity": true,
23
+ "eidf_input_parity": true,
24
+ "eidf_output_max_abs_error": 9.5367431640625e-07,
25
+ "embedding_shape": [
26
+ 3,
27
+ 768
28
+ ],
29
+ "permutation_relative_l2_max": 2.9877668339395314e-07,
30
+ "stereo_input_collision_preserved": true,
31
+ "stereo_embedding_max_abs_error": 5.960464477539062e-07,
32
+ "encoder_parameters": 93091584
33
+ }
34
+ },
35
+ "adaptation_smokes": {
36
+ "regression": {
37
+ "method": "frozen",
38
+ "epochs": 1,
39
+ "train_rows": 8,
40
+ "valid_rows": 4,
41
+ "finite_predictions": true,
42
+ "save_reload_parity": true,
43
+ "benchmark_result": false
44
+ },
45
+ "binary": {
46
+ "method": "full",
47
+ "epochs": 1,
48
+ "train_rows": 8,
49
+ "valid_rows": 4,
50
+ "finite_predictions": true,
51
+ "save_reload_parity": true,
52
+ "benchmark_result": false
53
+ }
54
+ },
55
+ "python": "3.12.13",
56
+ "runtime_packages": {
57
+ "torch": "2.14.1",
58
+ "torch-geometric": "2.8.1",
59
+ "rdkit": "2025.3.6",
60
+ "numpy": "1.26.4",
61
+ "pandas": "2.3.3",
62
+ "scipy": "1.15.3",
63
+ "scikit-learn": "1.7.2",
64
+ "safetensors": "0.8.0",
65
+ "huggingface-hub": "2.2.0",
66
+ "pytorch-lightning": "2.6.6",
67
+ "torchmetrics": "1.9.0"
68
+ },
69
+ "scope": "CPU conversion, loading, permutation controls and tiny adaptation smokes; no new benchmark evaluation"
70
+ }
vocab.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"1009961767": 128, "1010215930": 205, "1010228075": 154, "1012972668": 48, "1013338319": 89, "1016841875": 59, "1016845826": 4, "1017642631": 52, "1026654242": 15, "1026654305": 37, "1026822558": 176, "1026924773": 100, "1026928756": 44, "1026928821": 76, "1056139193": 187, "1070894407": 135, "1073491469": 5, "11594061": 141, "12277426": 74, "1611362324": 7, "1622062563": 198, "1659542613": 34, "1660341273": 10, "1660362024": 126, "1673608309": 45, "1677254294": 61, "1677325492": 75, "1844073467": 206, "1844282154": 127, "1844343863": 21, "1893173645": 168, "1988401551": 169, "2041434490": 159, "2041738475": 104, "2092489639": 180, "2092554703": 191, "2114006677": 62, "2114539071": 25, "2130998634": 153, "2132511834": 35, "2143075994": 65, "2155415144": 38, "2192730848": 98, "2192738690": 161, "2192742899": 203, "2193111430": 165, "2194492085": 79, "2194662096": 90, "2196961854": 24, "2197104911": 110, "2197211467": 139, "2197215675": 188, "2197215866": 47, "2208356666": 131, "2245108812": 31, "2245273601": 2, "2245277810": 42, "2245384272": 32, "2245897107": 171, "2245900962": 68, "2245901155": 149, "2246699750": 101, "2246699815": 125, "2246703125": 8, "2246703798": 77, "2246703991": 157, "2246728737": 13, "2246994583": 63, "2246997269": 112, "2246997334": 146, "2261158082": 86, "2445181571": 51, "2462807768": 95, "2572184638": 28, "2572973538": 197, "2849135538": 186, "2850007887": 143, "2850012158": 207, "2865977551": 88, "2866063486": 49, "2866325538": 14, "2968968094": 173, "2976033787": 138, "2976816164": 16, "2998938176": 26, "3027842437": 164, "3027882655": 67, "3040320797": 117, "3132583778": 148, "3156024848": 6, "318908292": 163, "318909215": 119, "3189457552": 56, "3189554341": 71, "319552149": 60, "3205230712": 46, "3206325537": 121, "3206345777": 20, "3217377045": 113, "3217380708": 150, "3217425642": 103, "3217695935": 84, "321854373": 178, "3218681120": 120, "3218693969": 144, "322382141": 132, "322422332": 23, "323195681": 122, "327066619": 108, "3351552914": 170, "3351556771": 69, "3387140397": 129, "3387315712": 1, "3388932168": 30, "3388977530": 158, "3388985371": 11, "3388989546": 40, "3421018950": 134, "3593562157": 18, "3593562348": 106, "3594119454": 118, "3594120102": 179, "3594325843": 145, "3595735704": 66, "3595739785": 55, "3595956281": 22, "3609219177": 39, "3609504524": 109, "3612109269": 193, "3612926680": 94, "369185560": 115, "370425064": 102, "370453531": 12, "370453657": 64, "370453720": 96, "370454343": 137, "370687140": 70, "370711622": 29, "370732245": 92, "371070650": 81, "371508627": 172, "384719280": 185, "384719345": 202, "384719475": 43, "384960988": 195, "384961118": 36, "3855292234": 140, "3858165842": 33, "3858440414": 97, "3912561944": 116, "3912762629": 107, "3922503314": 57, "4179524517": 181, "4181736951": 204, "4267512994": 72, "4274663090": 73, "847336149": 91, "847342868": 111, "847433064": 151, "847433129": 182, "847690172": 189, "847694221": 167, "847698334": 174, "847867887": 201, "847950754": 177, "847954377": 190, "847957139": 58, "847958490": 194, "847961216": 50, "848127915": 184, "848128881": 155, "849271271": 200, "849275503": 41, "849279553": 27, "864408791": 93, "864662309": 123, "864662311": 124, "864662502": 199, "864666390": 114, "864674484": 80, "864674487": 78, "864677235": 156, "864937294": 142, "864942729": 53, "864942730": 54, "864942795": 87, "881066519": 9, "882399112": 166, "882671422": 133, "984188929": 3, "984189120": 85, "984193073": 19, "984213985": 196, "984453308": 83, "984465735": 136, "984473645": 17, "984473836": 105, "995319674": 160, "995543427": 162, "996772578": 99, "999334238": 147, "999334303": 175, "999338447": 192, "999346357": 82, "999598394": 130, "999602538": 152, "999602603": 183, "CLS": 210, "MASK": 208, "PAD": 0, "UNK": 209}