NVIDIA Kumo Tabular 모델을 이용한 LTM 실습
NVIDIA Kumo Tabular, Colab에서 바로 돌려보기: 기본 예제부터 소재 데이터까지
NVIDIA가 2026년 9월 말 공개한 tabular foundation model Kumo Tabular를 Google Colab 무료 T4 GPU에서 실행해 볼 수 있는 실습 노트북을 정리했습니다. sklearn 기본 데이터셋으로 사용법을 익힌 뒤, Matbench 소재 데이터셋 두 개로 small data regression과 classification을 해보는 구성입니다.
- 노트북 파일:
kumo_tabular_colab.ipynb - 실행 환경: Google Colab, T4 GPU 권장 (CPU도 동작하지만 느림)
- 소요 시간: 설치 포함 전체 실행 약 10분 내외
Kumo Tabular란?
기존 tabular ML은 데이터셋마다 XGBoost나 Random Forest 같은 모델을 처음부터 학습하고 hyperparameter를 튜닝해야 합니다. Kumo Tabular는 LLM의 few-shot prompting처럼 in-context learning(ICL) 방식으로 동작합니다.
- 라벨이 있는 행(context)과 예측할 행(query)을 함께 넣으면 forward pass 한 번으로 예측합니다.
- 학습, hyperparameter tuning, feature engineering이 필요 없습니다.
- Structural Causal Model(SCM)로 생성한 인공 테이블로만 pretraining되었습니다.
- classification은 클래스별 확률을, regression은 999개 quantile을 출력합니다. 그래서 점 예측과 예측 구간(불확실성)을 함께 얻을 수 있습니다.
- 모델 크기는 small(약 28M), medium(약 62M), large(약 215M) 세 가지입니다. 모두 T4 한 장에 여유 있게 올라갑니다.
- 라이선스는 가중치 OpenMDW-1.1(상업적 사용 가능), 코드 Apache-2.0입니다.
노트북 구성
| 파트 | 내용 | 데이터 |
|---|---|---|
| 0 | 환경 준비, sdm 라이브러리 핵심 개념 |
- |
| 1 | 기본 classification, fit/predict KV cache |
sklearn breast cancer (569행) |
| 2 | 기본 regression, quantile 출력과 예측 구간 | sklearn diabetes (442행) |
| 3 | 소재 A: 강철 항복강도 regression | matbench_steels (312개 합금) |
| 4 | 소재 B: 금속/비금속 classification | matbench_expt_is_metal (4,921개 조성) |
| 5 | 내 CSV 데이터 적용 템플릿 | 사용자 데이터 |
각 파트에서 튜닝 없는 Random Forest / HistGradientBoosting baseline과 비교합니다.
파트 3: 강철 항복강도 (small data regression)
312개 강철 합금의 원소 조성으로 항복강도(MPa)를 예측합니다. 모두 Fe 기반 합금이므로 원소별 atomic fraction을 그대로 feature로 씁니다. 이 파트에서는 다음을 확인합니다.
- 예측 구간(
q050~q950)을 오차 막대로 표시한 parity plot - 예측 구간 폭과 실제 오차의 상관관계. 모델의 불확실성 추정이 실제로 의미가 있는지 봅니다.
- context를 25, 50, 100, 200개로 늘려 가는 learning curve. 실험 데이터처럼 행이 적은 영역에서의 성능을 봅니다.
파트 4: 금속/비금속 분류
실험적으로 측정된 화합물 약 4,900개를 matminer Magpie descriptor 132개로 featurization해 금속 여부를 분류합니다. Magpie에서 생기는 결측치는 imputation 없이 그대로 넣습니다. 스크리닝에 확률값을 쓸 수 있는지 판단할 수 있도록 reliability diagram으로 calibration도 확인합니다.
파트 5: 내 데이터에 적용
CSV 경로, target 열, task 종류만 바꾸면 됩니다. target이 비어 있는 행이 자동으로 query가 되므로 측정이 끝난 시료로 아직 측정하지 않은 후보를 예측하는 구조가 됩니다. regression 결과에는 예측 구간 폭이 함께 저장되어 다음 실험 후보 선정에 참고할 수 있습니다.
빠른 시작
!pip install -q git+https://github.com/NVIDIA/structured-data-models.git
import torch, sdm
from sklearn.datasets import load_breast_cancer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
df = load_breast_cancer(as_frame=True).frame
table = sdm.TableTensor.from_pandas(
df=df,
stypes=sdm.infer_stypes(df, overrides={"target": "categorical"}),
device=device,
)
model = sdm.models.KumoTabular(task="classification", device=device)
with torch.amp.autocast(device.type, dtype=torch.float16, enabled=device.type == "cuda"):
probs = model(
x_context=table[:300].drop_columns("target"),
y_context=table[:300, "target"],
x_query=table[300:].drop_columns("target"),
num_estimators=8,
)
print(probs.to_pandas().head())
알아두면 좋은 점
- task는 target 열의 stype으로 결정됩니다.
categorical이면 classification,numerical이면 regression입니다. 0/1 정수 라벨은 꼭categorical로 override하세요. num_estimators는 전처리 view를 여러 개 만들어 평균내는 ensembling 설정입니다. 키우면 대체로 조금 더 정확해지고 느려집니다.- regression 출력은
q001~q999열입니다. 평균 예측은out.numerical.mean(-1), 중앙값은out["q500"]으로 얻습니다.
활용 포인트와 주의점
소재 R&D에서 기대되는 점
- 데이터가 추가될 때 재학습 없이 context에 행만 추가하면 됩니다. active learning 루프의 surrogate model로 쓰기 편합니다.
- quantile 출력을 Bayesian optimization의 acquisition 계산에 바로 활용할 수 있습니다.
- 수십~수백 개 규모의 실험 데이터에서 튜닝 없이 강한 baseline을 즉시 얻을 수 있습니다.
주의할 점
- 외삽: ICL 모델은 context 분포를 기준으로 예측합니다. 기존 최고 물성을 넘는 후보를 찾는 문제에서는 예측이 보수적으로 나올 수 있으니 반드시 hold-out으로 검증하세요.
- 분포 차이: query가 context와 다른 화학계나 공정 조건에서 오면 정확도가 떨어질 수 있습니다.
- 입력 형식: numerical, categorical 열만 직접 처리합니다. 시료 ID 같은 열은 빼야 합니다. classification은 한 번에 10개 클래스까지 처리하며, 그 이상은 ECOC로 자동 확장됩니다.
- 메모리: context가 수만 행 이상이면 T4에서 OOM이 날 수 있습니다. 이때는
size="small"로 바꾸거나num_estimators를 줄이거나 context를 subsample하세요. - 라이브러리가 공개된 지 얼마 되지 않아 API가 바뀔 수 있습니다. 오류가 나면 GitHub 저장소의 최신 예제를 확인하세요.
참고 링크
- 모델 카드: https://huggingface.co/nvidia/Kumo-Tabular
- 라이브러리: https://github.com/NVIDIA/structured-data-models
- 문서: https://nvidia.github.io/structured-data-models
- 공식 블로그: https://huggingface.co/blog/nvidia/kumo-tabular
- Matbench / matminer: https://matbench.materialsproject.org, https://hackingmaterials.lbl.gov/matminer
What people said 0
Be the first to reply.
Sign into leave a comment.