Buckets:
contacts-v1 backtracking corpus (exp159)
1,023,997 contacts-v1 documents that retract their own mistakes: each document
emits contacts, later takes back the wrong ones with <retract> <pX> <pY>, and
ends with exactly the protein's ground-truth contact set.
Generated by a model-in-the-loop procedure (issue
#159) from
contacts-v1-exp120-1.5B: the model proposes each next contact conditioned on
a clean prompt of the currently-live contacts, and after every retraction
the prompt is rebuilt from the corrected set — so every emitted contact stays
on-distribution and the only synthetic tokens are the <retract> statements
themselves.
When a contact is retracted is decided by the base model's own collapsing posterior on that pair (scored against the committed set), never by ground truth. Ground truth is used only to guarantee the final set is correct. That matters: the timing signal a trained model must reproduce is, by construction, computable from its own context.
Contents
train/shard-{00000..00015}.parquet # 1,023,997 documents
tokenizer/ # contacts-v1 tokenizer (incl. <retract>)
README.md
Columns: entry_id, document, seq_len, global_plddt, n_gt,
n_contact_stmts, n_retract_stmts, n_reemit, n_fp_emitted,
fp_retracted_by_trigger, tp_retracted_by_trigger, num_tokens,
truncated, source, shard.
Numbers
| documents | 1,023,997 |
| tokens | 1,076,910,057 |
| mean contacts / doc | 185.7 |
| mean retracts / doc | 33.1 |
| false positives emitted | 32,849,569 |
| retracted by the posterior trigger | 25,105,853 (76.4%) |
| trigger false alarms (true contacts) | 0 |
| documents failing to fold to GT | 0 |
| truncated | 0 |
Retraction is discriminative: P(false positive | retracted) = 0.974 against a base rate of 0.166 — an enrichment of 5.85x, 97% of the achievable ceiling (1/0.166 = 6.02x). Retractions are delayed, mean 17.9 / median 9 statements after the mistake (0.1% immediate), which is the long-range self-correction signal the format exists to teach.
Source
Proteins and ground-truth contacts come from the ESMFold2-Atlas distillation
set via exp139's saved raw contacts (no pyconfind at generation time). The
saved contacts are RAW, so the contacts-v1 document filters
(min_seq_separation=6, min_contact_degree=0.001) are applied when deriving
ground truth.
Reading it
import pandas as pd
from marinfold.document_structures.contacts_v1.read import live_contacts
df = pd.read_parquet("hf://buckets/open-athena/MarinFold/data/"
"document_structures/contacts_v1_backtracking/train/shard-00000.parquet")
live_contacts(df.document[0]) # the contacts still asserted at <end>
<retract> is the last token of the contacts-v1 vocab (append-only, so every
pre-existing id is unchanged). For mixture training, the
contacts-and-coordinates-v1 / contacts-and-crops-v1 superset tokenizers also
carry <retract> as their final token — a different id than here, which is
fine as long as one tokenizer is used throughout a run.
- Total size
- 1.51 TB
- Files
- 41,659
- Last updated
- Sep 15
- Pre-warmed CDN
- US EU US EU