NVIDIA Kumo Tabular, 테이블 예측의 새로운 정확도-효율성 경계를 제시하다
요약
NVIDIA가 테이블 데이터 예측을 위한 오픈 파운데이션 모델인 Kumo Tabular를 공개했습니다. 이 모델은 추가 학습이나 피처 엔지니어링 없이 단일 순방향 패스만으로 분류 및 회귀 작업을 수행합니다. 이는 LLM의 인컨텍스트 러닝 개념을 테이블 구조에 적용한 혁신적인 접근 방식입니다.
핵심 포인트
- 테이블 예측 작업에 특화된 오픈 파운데이션 모델 공개
- 추가 튜닝 없이 단일 순방향 패스로 분류/회귀 가능
- LLM의 인컨텍스트 러닝 개념을 테이블 구조에 적용
- TabArena, BeyondArena 등 주요 벤치마크에서 최고 성능 기록
NVIDIA Kumo Structured 모델 컬렉션의 일부인 NVIDIA Kumo Tabular는 Hugging Face에서 사용할 수 있는 오픈 파운데이션 모델입니다. 레이블이 지정된 행으로 구성된 테이블을 입력받아, 분류(classification)와 회귀(regression) 모두에 대해 추가 학습이나 튜닝, 피처 엔지니어링 없이 단일 순방향 패스(single forward pass)로 새로운 행의 레이블을 예측합니다. 이 모델은 인공 데이터만으로 사전 학습되었으며, 세 가지 크기(28M부터 215M 파라미터)로 제공되고, 당사의 오픈 소스 라이브러리를 통해 실행되며, 상업적 사용을 위해 OpenMDW-1.1 라이선스로 출시되었습니다. 이 모델은 TabArena, BeyondArena, TALENT, ScoringBench 네 가지 벤치마크에서 최고 순위를 차지했습니다.
**모델 코드:**https://github.com/NVIDIA/structured-data-models
**모델 가중치:**https://huggingface.co/nvidia/Kumo-Tabular
테이블 데이터는 엔터프라이즈 머신러닝의 근간입니다. 고객 기록, 거래 내역, 센서 로그, 클레임, 주문 등이 모두 테이블에 존재하며, 여기서 이탈(churn), 채무 불이행(default), 수요(demand) 또는 가격을 예측하는 것은 산업에서 가장 흔한 머신러닝 작업 중 하나입니다. 20년 동안 이 작업은 그래디언트 부스팅 트리(gradient-boosted trees)로 수행되어 왔으며, 이는 잘 작동해왔습니다. 그러나 이러한 모델 주변의 라이프사이클은 거의 변하지 않았습니다. 새로운 질문이 생길 때마다 레이블 수집, 피처 엔지니어링, 하이퍼파라미터 검색, 검증, 그리고 테이블에 대한 일반적인 지식이 전혀 없으면서 각 작업을 처음부터 학습하는 모델을 배포해야 합니다.
대규모 언어 모델(Large Language Models)은 새로운 작업을 처리하는 다른 방식을 보여주었습니다. 프롬프트에 몇 가지 예시를 제공하면, 사전 학습된 모델이 단 하나의 가중치도 업데이트하지 않고 해당 작업을 해결합니다. 이것이 *인컨텍스트 러닝(in-context learning)*이며, 이는 텍스트만큼이나 테이블에도 잘 적용됩니다. 수백만 개의 테이블로 사전 학습된 모델은 레이블이 지정된 테이블을 컨텍스트로 읽고 새로운 행의 레이블을 직접 예측할 수 있습니다.
오늘 저희는 테이블 분류 및 회귀를 위한 오픈 파운데이션 모델인 NVIDIA Kumo Tabular (GitHub, HuggingFace)를 공개합니다. 레이블이 지정된 행과 예측을 원하는 행으로 구성된 테이블이 주어지면, Kumo Tabular는 단일 순방향 전달(forward pass)을 통해 클래스 확률 또는 수치적 예측값을 반환합니다.
Kumo Tabular는 TabICL 및 TabPFN에서 소개된 컬럼(column), 로우(row), 그리고 인-컨텍스트 어텐션(in-context attention) 구조를 활용하여 구축된 트랜스포머(Transformer)입니다. 레이블을 예측하기 위해서는 다음 세 가지 작업을 수행해야 합니다: (1) 각 값이 자신의 컬럼 내에서 무엇을 의미하는지 이해하고, (2) 한 행의 컬럼들이 어떻게 상호작용하는지 이해하며, 그리고 (3) 컨텍스트 행과 기존 레이블 간의 관계를 알 수 없는 레이블을 가진 쿼리 행에 연결시키는 것입니다. Kumo Tabular는 다음 방식으로 이를 달성합니다:
셀 임베딩 (Cell Embedding): 여러 개의 셀이 하나의 토큰이 됩니다. 수치형 및 범주형 값은 학습된 주파수의 사인(sine) 및 코사인(cosine)을 거치는 푸리에 특징(Fourier features)을 통과하며, 각 유형별로 별도의 가중치를 사용합니다. 결측값(Missing values)은 보간(imputation)이 필요 없으며 특별하게 처리됩니다. 마지막으로, 컨텍스트의 모든 토큰은 레이블 임베딩(label embedding)을 받습니다.
로우 임베딩 (Row Embedding): 그런 다음 두 가지 종류의 어텐션을 번갈아 여러 번 적용하여 각 행을 하나의 임베딩으로 변환합니다. 컬럼 어텐션(Column attention)은 단일 컬럼을 아래로 내려가면서, 유도된 자체 어텐션(induced self-attention)을 통해 특정 값이 자신의 컬럼 분포에서 일반적인지 아니면 극단적인지를 학습하여 그 의미를 파악합니다. 따라서 이 과정의 비용은 행의 수에 선형적으로 증가합니다. 로우 어텐션(Row attention)은 단일 행의 토큰들을 가로질러가며, 회전 위치(rotary positions)를 사용하여 컬럼들을 구분하면서 특징들이 어떻게 상호작용하는지 학습합니다. 네 개의 학습 가능한 [CLS] 토큰이 각 행에 추가되어 행의 최종 출력값(readout) 역할을 합니다. 이 로우 압축(row compression) 이후에는 최종 단계의 비용이 더 이상 컬럼 수에 의존하지 않게 됩니다.
인컨텍스트 러닝(In-context Learning): 최종 트랜스포머(Transformer)가 로우 임베딩(row embeddings)에 대해 작동합니다. 컨텍스트 로우는 서로에게 주의를 기울이고, 쿼리 로우는 오직 컨텍스트 로우에만 주의를 기울입니다. 따라서 각 예측은 함께 점수가 매겨지는 다른 로우에 의존하지 않고, 오직 컨텍스트와 해당 로우 자체에만 의존합니다. 컨텍스트가 쿼리를 절대 보지 않기 때문에, 그 키(key)와 값(value)은 한 번 계산되어 후속 예측에 재사용될 수 있습니다. 쿼리 로우는 테스트-GQA(Test-GQA)를 활용하여 모든 예측이 읽는 캐시(cache) 크기를 줄입니다. 헤드(head)는 각 쿼리 로우를 분류를 위한 클래스 확률과 회귀를 위한 999분위수(quantiles)로 변환하며, 이를 통해 포인트 예측(point prediction)과 불확실성 추정치(uncertainty estimate)가 도출됩니다.
길이 인식 어텐션 온도(Length-aware Attention Temperature): 소프트맥스(Softmax) 어텐션은 키(key)의 수가 증가함에 따라 퍼지게 됩니다. 수백 개의 로우에서 날카롭던 주의력이 수만 개가 되면 사라질 수 있는데, 이는 추론 시 테이블이 일반적인 학습 테이블보다 훨씬 큰 상황과 정확히 일치합니다. 따라서 Kumo Tabular는 각 어텐션 헤드(attention head)에 대해 별도로 학습된 계수와 함께 키의 로그 값에 따라 증가하는 온도를 사용하여 모든 쿼리를 스케일링합니다. 그 결과, 테이블이 더 길거나 넓어져도 주의력이 날카롭게 유지됩니다.
Kumo Tabular는 전적으로 인공적인 테이블로 사전 학습되었습니다. 각 학습 테이블은 아래에 보이는 여섯 단계의 *구조적 인과 모델(Structural Causal Model, SCM)*에서 샘플링됩니다:
우리는 먼저 테이블의 크기와 태스크부터 그 메커니즘 및 결측성까지 전체 테이블에 대한 구성을 도출합니다. 그런 다음 무작위 인과 그래프가 숨겨진 변수들을 연결하며, 이 변수들은 각 노드에서 무작위로 추출된 함수(예: 선형 사상, 작은 신경망, 트리 또는 가우시안 프로세스)를 통해 루트부터 리프까지 평가됩니다. 일부 노드는 수치형 또는 범주형 열이 되고, 하나는 타겟이 되며, 나머지는 실제 데이터 뒤에 숨겨진 원인처럼 여전히 숨겨집니다. 후처리 과정에서는 열 그룹 간의 상관관계를 계산하고, 이상치를 제한하며, 결측값을 주입합니다. 그리고 빠른 트리 앙상블 검사를 통해 학습 가능한 신호가 없는 테이블은 폐기됩니다. 생성기가 훈련된 모델이 아니라 절차적 샘플러(procedural sampler)이기 때문에, 새로운 그래프와 새로운 메커니즘을 가진 무한한 공급의 테이블을 생성합니다.
실제 세계의 테이블들은 지저분하기 때문에, 우리는 그 불완전성들을 생성기에 더 많이 포함시켰습니다. 값들이 여러 패턴으로 결측되고, 일부 피처는 너무 거칠게 처리되어 중복된 행들이 레이블에 대해 서로 다른 값을 가질 수 있으며, 일부 범주형 열은 많은 레벨을 가지고, 회귀 타겟은 무거운 꼬리(heavy-tailed)를 가질 수 있습니다. 수백만 개의 이러한 테이블들을 본 모델은 어떤 정리 과정 없이도 이러한 불완전성을 처리하는 방법을 학습합니다.
모든 인공 테이블에서, 모델은 대부분의 행을 컨텍스트로 보고 그 레이블을 예측하도록 학습하며, 분류에는 교차 엔트로피 손실(cross-entropy loss)을, 회귀에는 분위수 손실(quantile loss)을 사용합니다. 분류와 회귀는 별도의 모델로 훈련됩니다. TabICLv2와 유사하게, 훈련은 세 단계에 걸쳐 진행됩니다. 첫 번째이자 가장 긴 단계에서는 1,024개 행과 최대 100개 열의 테이블을 사용하여 모델에게 테이블이 어떻게 생겼는지 가르칩니다. 두 번째 단계에서는 컨텍스트를 400행에서 10,240행까지 변화시키고, 세 번째 단계에서는 여전히 최대 100개의 열을 유지하면서 이를 60,000행으로 확장합니다. 총합적으로 Kumo Tabular-Small/Medium/Large는 약 35/71/137백만 개의 인공 테이블을 보게 되었습니다.
저희의 훈련 레시피와 인공 데이터 생성기는 곧 공개될 예정입니다.
저희는 세 가지 Kumo Tabular 크기 모델을 기본 설정으로 전체 TabArena 리더보드에서 테스트했으며, 여기에는 튜닝된 그래디언트 부스팅 트리(gradient-boosted trees), AutoGluon, 그리고 최신 테이블 기반 파운데이션 모델들이 포함되었습니다. Kumo Tabular는 ELO 1950으로 전반적인 순위 1위를 차지하며, 균일한 단일 RTX 6000 Pro 평가 환경에서 LimiX-2보다 17점 높은 성능을 보였습니다. 세 가지 모델 크기 모두에서 Kumo Tabular는 정확도-효율성 파레토 프런트(Pareto front)에서 새로운 최고 수준(state-of-the-art)을 확립했습니다:
또한 저희는 BeyondArena, TALENT, 그리고 ScoringBench에서도 Kumo Tabular를 평가했습니다. BeyondArena에서는 Kumo Tabular가 ELO 1418과 Improvability 점수 7.78%를 기록하며 리더보드에서 1위를 차지했습니다. TALENT에서는 분류 정확도(classification accuracy), 분류 로그 손실(classification log-loss), 그리고 회귀 RMSE(regression RMSE) 전반에 걸쳐 최고 순위권을 달성했으며, 평균 순위는 각각 6.67, 3.98, 4.22였습니다. 예측 분포를 위한 벤치마크인 ScoringBench에서는 Kumo Tabular-Large와 Medium이 평균 순위로 각각 1위와 2위를 차지했습니다.
Kumo Tabular는 숫자형(numerical) 및 범주형(categorical) 열에 대해서만 작동하며, 텍스트, 이미지 또는 타임스탬프는 내장된 전처리 레시피를 통해 피처(feature)로 변환할 수 있습니다. 단일 순방향 전달(forward pass)으로 최대 10개 클래스를 처리할 수 있으며, 이 라이브러리는 오류 수정 출력 코드(error-correcting output codes)를 사용하여 임의의 개수만큼의 클래스로 확장 가능합니다. 정확도는 학습 범위를 훨씬 벗어난 테이블이나 조회 행(query rows)이 컨텍스트 행(context rows)과 다른 분포에서 오는 경우 저하될 수 있으므로, 모든 예측 모델과 마찬가지로 배포 전에 자체 보유 데이터(held-out data)를 사용하여 정확도와 보정(calibration)을 검증해야 합니다.
Kumo Tabular는 NVIDIA가 새로 출시한 structured-data-models용 GPU 네이티브 라이브러리를 통해 실행됩니다. 이 라이브러리는 첫 사용 시 Hub에서 가중치(weights)를 다운로드하며, 저희 평가에 사용된 전처리, 앙상블링(ensembling), 다중 클래스 처리 기능을 제공합니다. 아래 코드는 pandas.DataFrame을 예측으로 변환하는 데 필요한 모든 것입니다:
import sdm # structured-data-models
# 테이블 데이터 텐서화:
table = sdm.TableTensor.from_pandas(pd.load_csv(...), device="cuda")
...
Kumo Tabular는 OpenMDW 라이선스 계약 버전 1.1에 따라 공개되었습니다. NVIDIA는 신뢰할 수 있는 AI(Trustworthy AI)가 공동의 책임이라고 믿으며, 광범위한 AI 애플리케이션 개발을 지원하기 위해 정책과 관행을 확립했습니다. 다운로드하거나 서비스 약관에 따라 사용할 때, 개발자는 이 모델이 관련 산업 및 사용 사례의 요구 사항을 충족하고 예상치 못한 제품 오용 문제를 해결하는지 확인하기 위해 지원 모델 팀과 협력해야 합니다. 모델 품질, 위험, 보안 취약점 또는 NVIDIA AI 관련 우려 사항은 여기에 신고해 주십시오.
**모델 코드:**https://github.com/NVIDIA/structured-data-models **모델 가중치:**https://huggingface.co/nvidia/Kumo-Tabular
Kumo Tabular에 중요한 아이디어와 분석(ablation)을 기여해 준 David Holzmüller에게 감사드립니다. 인턴십 기간 동안 Kumo Tabular를 지원해 준 Vignesh Kothapalli에게도 감사드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HuggingFace Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기