TRIADS — Materials Property Prediction Across 6 Matbench Benchmarks
TRIADS (Tiny Recursive Information-Attention with Deep Supervision) is a parameter-efficient recursive architecture for materials property prediction, purpose-built for the small-data regime (312–5,680 samples).
Live Demo
Try the interactive demo with all 6 benchmarks → Launch App
Results Summary
| Task | N | TRIADS | Params | Rank |
|---|---|---|---|---|
matbench_steels (yield strength) |
312 | 91.20 MPa | 225K | #3 |
matbench_expt_gap (band gap) |
4,604 | 0.3068 eV | 100K | #2 composition-only |
matbench_expt_ismetal (metal?) |
4,921 | 0.9655 ROC-AUC | 100K | #1 composition-only |
matbench_glass (glass forming) |
5,680 | 0.9285 ROC-AUC | 44K | #2 |
matbench_jdft2d (exfol. energy) |
636 | 35.89 meV/atom | 75K | #1 no-pretraining |
matbench_phonons (phonon freq.) |
1,265 | 41.91 cm⁻¹ | 247K | #1 no-pretraining |
Two Model Variants
HybridTRIADS (composition tasks: steels, gap, ismetal, glass, jdft2d)
Input: Chemical formula → Magpie + Mat2Vec (composition tokens)
Core: 2-layer self-attention cell, iterated T=16-20 times with shared weights
Training: Per-cycle deep supervision (w_t ∝ t)
GraphTRIADS (structural task: phonons)
Input: CIF/structure → 3-order hierarchical crystal graph (atoms, bonds, triplet angles, dihedral angles)
Core: Hierarchical GNN message-passing stack inside the shared recursive cell
Halting: Gate-based adaptive halting (4–16 cycles per sample)
Pretrained Checkpoints
Weights are organized by benchmark. Download via huggingface_hub:
from huggingface_hub import hf_hub_download
import torch
# Download one benchmark's weights (contains all folds compiled)
ckpt = torch.load(
hf_hub_download("Rtx09/TRIADS", "steels/weights.pt"),
map_location="cpu"
)
# ckpt['folds'] -> list of fold dicts, each with 'model_state' and 'test_mae'
# ckpt['n_extra'] -> int (needed for model init)
# ckpt['config'] -> dict (d_attn, d_hidden, ff_dim, dropout, max_steps)
Checkpoint Index
| Benchmark | File | Folds | Notes |
|---|---|---|---|
| matbench_steels | steels/weights.pt |
5 | HybridTRIADS V13A · 225K · 5-seed ensemble compiled |
| matbench_expt_gap | expt_gap/weights.pt |
5 | HybridTRIADS V3 · 100K |
| matbench_expt_ismetal | is_metal/weights.pt |
5 | HybridTRIADS · 100K |
| matbench_glass | glass/weights.pt |
5 | HybridTRIADS · 44K |
| matbench_jdft2d | jdft2d/weights.pt |
5 | HybridTRIADS V4 · 75K · 5-seed ensemble compiled |
| matbench_phonons | phonons/weights.pt |
5 | GraphTRIADS V6 · 247K · also needs phonons/dataset.pt |
Citation
@article{tiwari2026triads,
author = {Rudra Tiwari},
title = {TRIADS: Tiny Recursive Information-Attention with Deep Supervision},
year = {2026},
doi = {10.5281/zenodo.19200579},
url = {https://doi.org/10.5281/zenodo.19200579},
note = {Code: https://github.com/Rtx09x/TRIADS; Models: https://huggingface.co/Rtx09/TRIADS}
}
License
MIT License — see GitHub repository.
Evaluation results
- MAE (MPa) on matbench_steelsself-reported91.200
- MAE (eV) on matbench_expt_gapself-reported0.307
- ROC-AUC on matbench_expt_ismetalself-reported0.966
- ROC-AUC on matbench_glassself-reported0.928
- MAE (meV/atom) on matbench_jdft2dself-reported35.890
- MAE (cm⁻¹) on matbench_phononsself-reported41.910