Kumo-Relational — GGUF
GGUF conversion of NVIDIA's Kumo-Relational relational tabular foundation model, converted and run with zsfm, a Rust workspace that ports zero-shot forecasting and tabular foundation models to GGUF + Burn, verified bit-exact against the original PyTorch checkpoint. No PyTorch, no Python runtime required to run inference.
| File | Description |
|---|---|
kumorelational-classification-f32.gguf |
F32 GGUF, classification task |
GGUF embeds its own architecture metadata — no separate config.json is needed.
Use it
Python (pip install zsfm)
pip install zsfm huggingface_hub
import zsfm
from huggingface_hub import hf_hub_download
gguf_path = hf_hub_download("amaye15/kumorelational-gguf", "kumorelational-classification-f32.gguf")
model = zsfm.KumoRelationalModel(gguf_path, task="classification")
# task table with support + query rows
task_support = [[0], [1]]
task_query = [[2], [3]]
task_id_columns = ["user_id"]
# related tables joined along key relationships
related_support = {
"users": (["user_id", "age"], ["user_id"], [[0, 42.0], [1, 23.0]])
}
related_query = {
"users": (["user_id", "age"], ["user_id"], [[2, 31.0], [3, 26.0]])
}
relationships = [("users", ["user_id"], "orders", ["user_id"])]
task_link = (["user_id"], "users", ["user_id"])
# Returns probabilities only (not classes, probs tuple)
probs = model.predict_classification(
task_support, task_query, task_id_columns,
related_support, related_query, relationships, task_link,
y_support=[1, 0], n_classes=2, seed=0, estimators=8, num_hops=1
)
# probs: per-row class probabilities, shape [n_query_rows, n_classes]
Rust / CLI (cargo install zsfm)
cargo install zsfm --locked
# downloads the original NVIDIA weights and converts to GGUF locally
zsfm kumorelational convert
echo '{"task":{"id_columns":["user_id"],"support":[[0],[1]],"query":[[2],[3]]},"related":[{"name":"users","columns":["user_id","age"],"id_columns":["user_id"],"support":[[0,42.0],[1,23.0]],"query":[[2,31.0],[3,26.0]]}],"relationships":[{"left_table":"users","left_columns":["user_id"],"right_table":"orders","right_columns":["user_id"]}],"task_link":{"task_columns":["user_id"],"table":"users","table_columns":["user_id"]},"y_support":[1,0],"n_classes":2,"seed":0,"estimators":8,"num_hops":1}' \
| zsfm kumorelational infer --gguf gguf/kumorelational-classification-f32.gguf
Response format
{
"task": "classification",
"classes": [0, 1],
"probabilities": [[0.83, 0.17], [0.21, 0.79]]
}
Classification responds with class labels and per-row probabilities. Regression responds with 999 quantiles per query row.
Architecture
Kumo-Relational reasons over a task table plus one or more related tables joined along key relationships:
- Input: task table + related tables with mixed-type cells (numbers, strings, null).
- Encoder: column embeddings with categorical encoding, GNN message-passing across relationships (up to
num_hopsrounds). - Output: classification probabilities or regression quantiles per query row.
- Columns in
id_columnsare join keys; other all-number columns are numerical; any-string columns are categorical.
License
Conversion code: MIT (amaye15/zsfm-rs). Weights: OpenMDW-1.1, per NVIDIA's release — commercial use permitted.