File size: 5,284 Bytes
8a82d34 0b51ed5 8a82d34 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | ---
license: mit
language: en
tags:
- materials-science
- machine-learning
- pytorch
- matbench
- small-data
- attention
- recursive
- crystal
- gradio
datasets:
- matbench
metrics:
- mae
- roc_auc
model-index:
- name: TRIADS
results:
- task:
type: regression
name: Yield Strength Prediction (MPa)
dataset:
name: matbench_steels
type: matbench
metrics:
- type: mae
value: 91.20
name: MAE (MPa)
- task:
type: regression
name: Band Gap Prediction (eV)
dataset:
name: matbench_expt_gap
type: matbench
metrics:
- type: mae
value: 0.3068
name: MAE (eV)
- task:
type: classification
name: Metallicity Classification
dataset:
name: matbench_expt_ismetal
type: matbench
metrics:
- type: roc_auc
value: 0.9655
name: ROC-AUC
- task:
type: classification
name: Glass Forming Ability
dataset:
name: matbench_glass
type: matbench
metrics:
- type: roc_auc
value: 0.9285
name: ROC-AUC
- task:
type: regression
name: Exfoliation Energy (meV/atom)
dataset:
name: matbench_jdft2d
type: matbench
metrics:
- type: mae
value: 35.89
name: MAE (meV/atom)
- task:
type: regression
name: Peak Phonon Frequency (cm⁻¹)
dataset:
name: matbench_phonons
type: matbench
metrics:
- type: mae
value: 41.91
name: MAE (cm⁻¹)
---
# 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).
[](https://github.com/Rtx09x/TRIADS)
[](https://github.com/Rtx09x/TRIADS/raw/main/TRIADS_Final.pdf)
## Live Demo
Try the interactive demo with all 6 benchmarks → **[Launch App](https://huggingface.co/spaces/Rtx09/TRIADS)**
## 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`:
```python
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
```bibtex
@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](https://github.com/Rtx09x/TRIADS/blob/main/LICENSE).
|