|
Download ARTIFACT_BACKUP_INDEX.md from cycloevan/ransom-ml-models: direct link, hf CLI and curl.
- Browser
- Download file 7.72 kB
-
https://huggingface.co/cycloevan/ransom-ml-models/resolve/main/ARTIFACT_BACKUP_INDEX.md
- Command line
-
hf download hf://cycloevan/ransom-ml-models/ARTIFACT_BACKUP_INDEX.md
-
curl -L -o ARTIFACT_BACKUP_INDEX.md https://huggingface.co/cycloevan/ransom-ml-models/resolve/main/ARTIFACT_BACKUP_INDEX.md
7.72 kB
| # Artifact Backup Index — where every experiment's outputs live | |
| **One-glance index of what is backed up, from which experiment, and where.** | |
| Chronological transfer log: [`artifact_backup_log.md`](artifact_backup_log.md). | |
| HF private repos: **dataset** `cycloevan/ransom-ml`, **model** `cycloevan/ransom-ml-models`. | |
| Rule of thumb: model weights (`*.pt`, `*.safetensors`) + tokenizers → **model** repo; | |
| metrics / predictions / reports / manifests → **dataset** repo. Raw PE is NEVER backed up (§0). | |
| To fetch a tagged snapshot: | |
| `huggingface_hub.HfApi().list_repo_files("<repo>", repo_type="<model|dataset>", revision="<tag>")`. | |
| --- | |
| ## Backup units (each = one experiment stage → its artifacts) | |
| ### 1. Phase B — feature-representation selection · tag `phase-b-feature-select` · 2026-07-23 | |
| **Experiment.** Validation-only selection of the ASM feature representation for the whole | |
| ladder: **normalized opcode+operand vs raw opcode-only**, function filter FIXED at `[5,250]` | |
| (not a variable). Two sub-stages: (a) *feature-pretrain* — one DistilBERT MLM per variant | |
| (6L/768/12H, max_len 256, 3-epoch MLM on the **official-TRAIN 2,123** corpus, official TEST | |
| excluded; vocab normalized=2,007 / opcode=978); (b) *feature-select* — M1 (`--mode asm_only`) | |
| supervised, **2 variants × 3 model seeds {42,1337,2024} = 6 runs**, split seed 42, uncapped | |
| functions, 5 epochs, `--no-test` (Test-509 never opened; metrics are Validation). | |
| **Result / gate.** Winner = **normalized_5_250** (Valid F1 0.9569±0.0028 vs opcode 0.9530±0.0016; | |
| higher AP, tighter variance) → Phase C input locked (filter_5_250 / token-field=tokens / | |
| normalized_5_250 tokenizer). Full write-up: `reports/validation_feature_selection/PHASE_B_MANIFEST.md`. | |
| | artifact | what it is | repo | path (revision = tag `phase-b-feature-select`) | | |
| |---|---|---|---| | |
| | development MLM ×2 | DistilBERT MLM weights per variant (`final/model.safetensors` + `checkpoint-45120`) + embedded tokenizer | **model** | `checkpoints/pretrain_development_variants/{normalized_5_250,opcode_5_250}/distilbert_len256/` | | |
| | feature-select M1 ×6 | `best.pt` per (variant × seed) — asm_only Validation-selected weights | **model** | `reports/validation_feature_selection/{variant}/poolattention_fusegated_seed{S}_asm_only/best.pt` | | |
| | custom WordPiece ×3 | tokenizers used by MLM/feature-select (+ `.meta.json`) | **model** | `tokenizer/development_variants/{normalized_5_250,opcode_5_250,normalized_1_inf}.json` | | |
| | Validation metrics/config | `valid_metrics.json` (×6), `config.json`, `leaderboard.json` (×2), preprocessing audits, `PHASE_B_MANIFEST.md` | **dataset** | `reports/validation_feature_selection/` | | |
| Verified present (HfApi list): model — best.pt 6/6, MLM final 2/2, tokenizers 6/6; | |
| dataset — 28 files incl. 6 valid_metrics + manifest. | |
| --- | |
| ### 2. Phase C-1 — backbone × length (FULL 6/6) · tag `phase-c1` · 2026-07-31 | |
| **Experiment.** Validation-only M1 (`--mode asm_only`) full cross of **{distilbert, bert, roberta} × | |
| {max_len 128, 256}**, 3 model seeds {42,1337,2024}, split seed 42, uncapped, `--no-test` (Test-509 | |
| never opened — runner log "screening complete; Test remained unopened"). All backbones share the | |
| SAME winner feature from Phase B (`normalized_5_250`, token-field=tokens, filter [5,250], WordPiece | |
| vocab 2,007). Each config = 1 development MLM (per-backbone encoder over the WordPiece vocab, | |
| max_len 128/256, 3-epoch MLM on official-TRAIN 2,123) + 3 supervised M1 runs. | |
| **Result / gate. Winner = bert_len256** (Valid F1 **0.9649 ± 0.0019**, recall 0.9713, tightest | |
| variance). Full standings (Valid F1): bert_len256 0.9649 > roberta_len256 0.9571 > | |
| distilbert_len256 0.9544 > bert_len128 0.9503 > roberta_len128 0.9502 > distilbert_len128 0.9492. | |
| Clear pattern: **len256 ≫ len128** (all three len256 beat all three len128). → Phase C-2/D/E/F use | |
| backbone=bert, max_len=256; **Phase F reuses the bert_len256 development MLM** (no MLM retrain). | |
| (Supersedes `phase-c1-partial` = the earlier 4/6 GPU-drop recovery snapshot.) | |
| | artifact | what it is | repo | path (revision = tag `phase-c1`) | | |
| |---|---|---|---| | |
| | development MLM ×6 | per-config encoder MLM (`final/model.safetensors` + `checkpoint-45120`) over WordPiece normalized_5_250 | **model** | `checkpoints/pretrain_development_backbone_grid/{distilbert,bert,roberta}_len{128,256}/` | | |
| | M1 best.pt ×18 | `best.pt` per (config × seed) — asm_only Validation-selected weights (swept, `reports/…` path preserved) | **model** | `reports/validation_backbone_length/{config}/poolattention_fusegated_seed{S}_asm_only/best.pt` | | |
| | Validation metrics/config | `valid_metrics.json` (×18), `selection.json`, `leaderboard.json` (×6), `config.json`, `environment.json` | **dataset** | `reports/validation_backbone_length/` | | |
| Verified present (HfApi list): model — swept best.pt 18/18, MLM safetensors 12 (6 final + 6 ckpt); | |
| dataset — 6/6 leaderboards. | |
| --- | |
| ### 3. Phase D Block 1 — GNN × node selection screen · tag `phase-d-block1` · 2026-08-09 | |
| **Experiment.** Validation-only (`--no-test`) single-seed(42) DUAL screen: `{gcn,sage,gat} × | |
| {bbfe,ldp,opcode_hist} × edge=real × mode=dual` = 9 cells. Each cell trains the FULL dual model | |
| (per-function BERT ASM branch + GNN graph branch, gated fusion), reusing the Phase C winner | |
| bert_len256 dev MLM; only the graph-branch (GNN type × node feature) varies. Uncapped functions. | |
| **Result / gate. Winner = gat × bbfe** (Valid F1 **0.9834**, AUC 0.9987). Ranking: bbfe 3-way | |
| (gat 0.9834 / gcn 0.9804 / sage 0.9804) ≫ opcode_hist (0.9577–0.9603) ≥ ldp (0.9505–0.9577). | |
| Mechanistic signal: within bbfe the GNN choice barely moves F1 (~0.3pp) → supports "graph | |
| re-aggregates the ASM representation (redundant)". Deployed dual = gat+bbfe+real+bert_len256 → | |
| Phase E freeze → F (3-seed Test). Note: one GPU-drop (NVML) mid cell-4; recovered by pod | |
| Stop→Start (port 8961→8977) + resume-safe skip; single-seed is a deliberate screen (final numbers | |
| come from Phase F 3-seed). | |
| | artifact | what it is | repo | path (revision = tag `phase-d-block1`) | | |
| |---|---|---|---| | |
| | dual best.pt ×9 | `best.pt` per (GNN × node) cell — full dual (ASM+GNN) Validation-selected weights (swept) | **model** | `reports/validation_block1/{gnn}_{node}/pool…/best.pt` | | |
| | Validation metrics/config | `valid_metrics.json` (×9), `selection.json`, `config.json`, **`block1_comparison.json`** (9-cell ranking) | **dataset** | `reports/validation_block1/` | | |
| Verified present (HfApi list): model — swept best.pt 9/9; dataset — 29 files incl. block1_comparison. | |
| Local backup 2.9G verified (9/9). No new dev MLM (reused bert_len256). | |
| --- | |
| ## Earlier snapshots (superseded / historical — see log for detail) | |
| | tag | repos | what | | |
| |---|---|---| | |
| | `protocol-lock-20260714` | model + dataset | Full processed-data archive, splits, manifest, exclusions, reports, checkpoints, models, tokenizer at the protocol lock. | | |
| | `base-test509-3seed` | model | Capped (128-func) base run 3-seed Test-509 weights (§4b) — historical, capped-artifact. | | |
| | `r0shuffle-gate-seed42` | dataset | Uncapped LDP ladder + R0-shuffle gate + uncapped Pulse (seed42, exploratory/selected-on-test — prior only, NOT paper-valid). | | |
| | `ldp-ladder-seed42` | dataset | Uncapped content-vs-topology ladder (seed42 exploratory). | | |
| --- | |
| ## Maintenance | |
| `scripts/backup_to_hf.sh` routes by leading path / extension and, since 2026-07-23, **sweeps | |
| any `*.pt`/`*.safetensors` found under a dataset-routed dir to the model repo** (fixes the | |
| Phase-B `best.pt` silent-drop). Re-run per stage: `bash scripts/backup_to_hf.sh <targets…>`, | |
| then tag both repos with the stage id and append a row here + in `artifact_backup_log.md`. | |