Baseline BPE-100K β final SFT checkpoints
Fine-tuned classification checkpoints for all 56 downstream tasks, produced from the baseline BPE pretrained model at step 100,000 (vocab 5,120).
These are the checkpoints behind the Base row of Table 1 in EvoLen: Evolution-Guided Tokenization for DNA Language Model (arXiv:2604.08698).
Base model: EvoLenTokenizer/base-100k.
Tokenizer: standard BPE, vocab 5,120 (baseline_bpe/vocab_5120/5120_tokenizer.json) β
not the EvoLen tokenizer.
This is the controlled comparison for
EvoLenTokenizer/evolen-100k-sft-checkpoints:
same architecture, same data, same pretraining budget, same fine-tuning pipeline β the
only difference is the tokenizer.
Verification against the paper
Group averages reproduce Table 1's Base row (MCC Γ100):
| group | n | this repo | Table 1 | group | n | this repo | Table 1 | |
|---|---|---|---|---|---|---|---|---|
| GUE EMP | 10 | 46.78 | 46.8 | NT His | 10 | 53.74 | 53.7 | |
| GUE Mou | 5 | 56.45 | 56.5 | NT Enh | 2 | 48.71 | 48.7 | |
| GUE P3 | 3 | 76.45 | 76.5 | NT Pro | 3 | 74.65 | 74.7 | |
| GUE PC | 3 | 64.25 | 64.2 | NT Spl | 3 | 69.31 | 69.3 | |
| GUE Spl | 1 | 78.53 | 78.5 | cCRE | 1 | 21.92 | 21.9 | |
| GUE TF | 5 | 57.75 | 57.8 | ATAC | 1 | 12.15 | 12.2 | |
| GBM HR | 5 | 69.93 | 69.9 | GBM ME | 1 | 58.13 | 58.1 | |
| GBM Inv | 3 | 76.44 | 76.4 |
Each checkpoint was additionally cross-checked against the eval_results.json in its own
run directory (56/56 within 1e-6), and a sample was re-run from the weights themselves β
EMP/H3 0.695965, prom/prom_core_tata 0.645892, NT/H2AFZ 0.481101 and
multi-SCREEN/allchr_csv 0.219183 all reproduced exactly.
Layout
One folder per task, <SUITE>/<task>/, each with model.safetensors, config.json,
tokenizer.json, tokenizer_config.json, special_tokens_map.json,
trainer_state.json and training_args.bin. Optimizer and scheduler state are stripped.
GBM/demo_coding_vs_intergenomic_seqs/
GUE/EMP/H3K4me1/
NT/H3K27ac/
multi-SCREEN/allchr_csv/ # the "cCRE" column of Table 1
multi-ATAC/human_mouse_superclass_allchr/ # the "ATAC" column of Table 1
per-task hyperparameters, including model_max_length (which is per-task and not
derivable from the task name), are recoverable from training_args.bin:
import torch, sys
class TrainingArguments: pass
sys.modules["__main__"].TrainingArguments = TrainingArguments
args = torch.load("training_args.bin", map_location="cpu", weights_only=False).__dict__
reported_scores.csv lists every task with its reported MCC and the config that produced it.
Loading
from transformers import AutoModelForSequenceClassification
REPO = "EvoLenTokenizer/base-100k-sft-checkpoints"
model = AutoModelForSequenceClassification.from_pretrained(
REPO, subfolder="GUE/EMP/H3K4me1", trust_remote_code=True)
Reproducing the reported numbers
Evaluation only. Four things must match:
- fp16 autocast β evaluating in fp32 shifts MCC by ~3e-4.
- Eval batch size 128 β fp16 reduction order depends on batch shape.
model_max_lengthper task, fromtraining_args.bin.- Multiclass label ordering β
sorted(set(...))over the split file. Formulti-SCREEN/allchr_csv:['CA','CA-CTCF','CA-H3K4me3','CA-TF','PLS','TF','dELS','pELS']β 0..7.
Tokenize with padding="longest", truncation=True, max_length=model_max_length;
attention mask is input_ids.ne(pad_token_id). Metric is
sklearn.metrics.matthews_corrcoef over argmax predictions.
Verified environment: Python 3.9.18, transformers 4.35.2, scikit-learn 1.6.1, torch 2.8.0, numpy 2.0.2, tokenizers 0.15.2, accelerate 0.25.0.
Selection procedure
Training ran for num_train_epochs with per-epoch validation on dev.csv;
load_best_model_at_end=True with metric_for_best_model=eval_f1 reloaded the
best-validation-F1 checkpoint, which was evaluated once on test.csv. Per-task
hyperparameters were the maximum test MCC over the swept configurations, so reported
values are an upper bound rather than an unbiased estimate. Retraining will not reproduce
them exactly β fp16 training is nondeterministic and epoch-selection margins are small.
Related
EvoLenTokenizer/evolen-100k-sft-checkpointsβ the EvoLen counterpartEvoLenTokenizer/evolen-100k/base-100kβ pretrained modelsEvoLenTokenizer/evolen-200k-sft-checkpoints