Ephris / Graph Foundation Model
Put your connections to work
Which equipment needs attention?
P-08 readings: 76 °C · 4.8 mm/s vibration
Schedule an inspection of this pump.
Illustrative data and predictions
Change the graph, keep the model
Bring a different network
The same pretrained checkpoint takes a new graph as context. Connections, measurements and known labels define the task.
Work with the connections you have
Sparse message passing scales with node-feature entries and edges, instead of dense attention across all node pairs.
Different graphs, measured together
- 51
- Node-classification datasets
- 1st
- Across four aggregate metrics
Both evaluated label regimes
Selected models · Elo axis starts at 1,000
Benchmark details
Train/validation/test: 50/25/25. Five splits per setting across 51 datasets. GNNs select from 200 configurations using validation data; Ephris uses training labels as context. Selected comparison models are shown. The paper contains every model and uncertainty estimates; aggregate rank does not imply a win on every dataset.
Try it on your own data
# pip install ephris
import torch
from ephris import EphrisClassifier
x = torch.tensor([[0.1, 0.2], [0.8, 0.9], [0.2, 0.1], [0.9, 0.8]])
edge_index = torch.tensor([[0, 1, 2, 3], [2, 3, 0, 1]])
context_indices = torch.tensor([0, 1])
query_indices = torch.tensor([2, 3])
context_labels = torch.tensor([0, 1])
model = EphrisClassifier(random_state=42, device="auto")
labels = model.predict(
x, edge_index,
context_indices=context_indices, context_labels=context_labels,
)
print(labels[query_indices])