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).

[![GitHub](https://img.shields.io/badge/GitHub-Code-black?logo=github)](https://github.com/Rtx09x/TRIADS)
[![Paper](https://img.shields.io/badge/Paper-PDF-red)](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).