NVIDIA Kumo Tabular 是 NVIDIA Kumo 結構化模型系列的一部分,現已作為開放的表格資料基礎模型在 Hugging Face 上推出。它能透過單次前向傳播,無需訓練、微調或特徵工程,即可對標註的表格資料進行分類與迴歸預測。
該模型僅使用人工資料進行預訓練,提供三種尺寸(28M 至 215M 參數),透過我們的開源函式庫執行,並依 OpenMDW-1.1 許可證發布供商業使用。它在 TabArena、BeyondArena、TALENT 和 ScoringBench 四個基準測試中均排名第一。
表格資料是企業機器學習的骨幹。客戶記錄、交易、感測器日誌、索賠和訂單都以表格形式存在,而從中預測客戶流失、違約、需求或價格是業界最常見的機器學習任務之一。二十年來,這項工作一直透過梯度提升樹來完成,並且效果良好。然而,圍繞這些模型的生命週期幾乎沒有改變。
每個新問題都意味著需要收集標籤、進行特徵工程、搜尋超參數、驗證並部署一個對表格一無所知、從頭開始學習每個任務的模型。大型語言模型展示了一種處理新任務的不同方式。只需在提示詞中提供幾個範例,預訓練模型就能在不更新任何權重的情況下解決任務。
這就是上下文學習,它同樣適用於表格資料:一個在數百萬個表格上預訓練的模型可以將標註的表格作為其上下文,並直接預測新行的標籤。今天,我們發布了 NVIDIA Kumo Tabular (GitHub, HuggingFace),這是一個用於表格分類和迴歸的開放基礎模型。給定一個帶有標註行的表格以及您希望預測的行,Kumo Tabular 會在單次前向傳播中返回類別機率或數值預測。
Kumo Tabular 是一個基於表格結構構建的 Transformer 模型,它利用了 TabICL 和 TabPFN 中引入的欄位、行和上下文注意力機制。為了預測標籤,它必須完成三件事:(1) 理解每個值在其欄位中的意義,(2) 理解一行中各欄位如何互動,以及 (3) 將帶有現有標籤的上下文行與帶有未知標籤的查詢行相關聯。Kumo Tabular 透過以下方式實現這些目標:
單元嵌入 (Cell Embedding):一組單元格會變成一個 token。數值和類別值會透過傅立葉特徵、學習頻率的正弦和餘弦函數進行處理,每種類型都有獨立的權重。缺失值無需填補,並會受到特殊處理。最後,上下文中的每個 token 都會收到一個標籤嵌入。
列嵌入 (Row Embedding):然後,我們透過多次交替兩種注意力機制,將每一行轉換為嵌入。欄位注意力 (Column attention) 會向下查看單一欄位,並透過誘導式自注意力學習該值在其欄位分佈中的意義,例如 42 是典型值還是極端值。
因此,其成本會隨行數線性增長。行注意力 (Row attention) 會橫向查看單一行的 token,並學習特徵如何互動,並透過旋轉位置編碼來區分欄位。四個可學習的 [CLS] token 會加入每一行,並作為行的最終讀取。經過這種行壓縮後,最終階段的成本不再取決於欄位數量。
上下文學習 (In-context Learning):最後一個 Transformer 模型在行嵌入上操作。上下文行會相互關注,而查詢行則只關注上下文行。因此,每個預測僅取決於上下文和行本身,而不取決於同時評分的其他行。由於上下文從不查看查詢,其鍵值對會計算一次並可重複用於後續預測。
查詢行利用 Test-GQA,這會縮小每個預測讀取的快取。一個預測頭會將每個查詢行轉換為分類的類別機率和迴歸的 999 個分位數,從中得出點預測和不確定性估計。
長度感知注意力溫度 (Length-aware Attention Temperature):隨著鍵數量的增加,Softmax 注意力會擴散。在數百行上表現敏銳的注意力,在數萬行上可能會失效,這正是推論時表格遠大於典型訓練表格的情況。因此,Kumo Tabular 會根據鍵數量的對數來調整每個查詢的溫度,其中係數會為每個注意力頭單獨學習。結果是,隨著表格變長或變寬,注意力仍能保持敏銳。
Kumo Tabular 完全在人工表格上進行預訓練。每個訓練表格都從結構因果模型 (SCM) 中以以下六個步驟取樣:
我們首先為整個表格繪製一個配置,從其大小和任務到其機制和缺失值。然後,一個隨機因果圖會連結隱藏變數,透過每個節點隨機抽取的函數(例如線性映射、小型神經網路、樹或高斯過程)從根到葉進行評估。一些節點會成為數值或類別欄位,一個成為目標,其餘則保持隱藏,就像真實資料背後未測量的原因一樣。
後處理會關聯欄位組、裁剪異常值並注入缺失值,而快速的樹集成檢查會丟棄任何沒有可學習訊號的表格。由於生成器是一個程序性取樣器而非訓練模型,它能產生無限量的表格,每個表格都有新的圖和新的機制。
真實世界的表格是混亂的,因此我們將更多的不完美之處融入到生成器中。值會以多種模式缺失,某些特徵會被粗化,使得重複的行可能在標籤上存在分歧,某些類別欄位包含許多層級,而迴歸目標可能具有重尾分佈。一個見過數百萬個此類表格的模型學會了無需任何清理即可處理這些不完美之處。
在每個人工表格上,模型會將大部分帶有標籤的行視為上下文,並學習預測其餘行的標籤,分類使用交叉熵損失,迴歸使用分位數損失。分類和迴歸是作為獨立模型進行訓練的。與 TabICLv2 類似,訓練分三個階段進行。第一個也是最長的階段使用 1,024 行和最多 100 個欄位的表格,教導模型表格的樣貌。
第二個階段將上下文從 400 行變為 10,240 行,第三個階段則擴展到 60,000 行,仍然最多 100 個欄位。總計,Kumo Tabular-Small/Medium/Large 分別看到了約 3,500 萬/7,100 萬/1.37 億個人工表格。
我們的訓練配方和人工資料生成器將很快發布。
我們使用預設設定,將所有三種 Kumo Tabular 尺寸與完整的 TabArena 排行榜進行了比較,其中包括經過微調的梯度提升樹、AutoGluon 和最新的表格基礎模型。Kumo Tabular 以 1950 的 ELO 總分排名第一,並且在統一的單一 RTX 6000 Pro 評估設定下,比 LimiX-2 快 17 倍。
在所有三種模型尺寸中,Kumo Tabular 在準確度-效率帕累托前沿上樹立了新的最先進水準:
我們還在 BeyondArena、TALENT 和 ScoringBench 上評估了 Kumo Tabular。在 BeyondArena 上,Kumo Tabular 達到了 1418 的 ELO 分數,改進分數為 7.78%,位居排行榜第一。
在 TALENT 上,它在分類準確度、分類對數損失和迴歸均方根誤差方面取得了總體最高排名,平均排名分別為 6.67、3.98 和 4.22。在 ScoringBench(一個用於預測分佈的基準測試)上,Kumo Tabular-Large 和 Medium 在平均排名中分別位居第一和第二。
Kumo Tabular 僅適用於數值和類別欄位,而文字、圖像或時間戳記可以透過內建的預處理方法轉換為特徵。單次前向傳播最多涵蓋 10 個類別,但函式庫可透過糾錯輸出碼擴展到任意數量的類別。在遠超出訓練範圍的表格上,或當查詢行與上下文行來自不同分佈時,準確度可能會下降。因此,與任何預測模型一樣,在部署之前,請務必在您自己的保留資料上驗證準確度和校準。
Kumo Tabular 透過 NVIDIA 新發布的結構化資料模型 GPU 原生函式庫執行。該函式庫會在首次使用時從 Hub 下載權重,並提供我們評估中使用的預處理、集成和多類別處理功能。以下程式碼是從 pandas.DataFrame 進行預測所需的全部步驟:
```python
import sdm # structured-data-models
Tensorize tabular data:
table = sdm.TableTensor.from_pandas(pd.load_csv(...), device="cuda")
na_mask = table["target"].isnan()
model = sdm.models.KumoTabular(device="cuda")
pred = model(
In-context examples (features/targets):
x_context=table[~na_mask].drop_columns("target"),
y_context=table[~na_mask, "target"],
Prediction examples (features):
x_query=table[na_mask].drop_column("target"),
)
```
Kumo Tabular 依 OpenMDW 許可協議 1.1 版發布。NVIDIA 認為可信賴 AI 是一項共同責任,我們已制定政策和實踐,以支援廣泛的 AI 應用開發。根據我們的服務條款下載或使用時,開發人員應與其支援模型團隊合作,確保此模型符合相關行業和使用案例的要求,並解決意外的產品濫用問題。請在此處報告模型品質、風險、安全漏洞或 NVIDIA AI 相關疑慮。
我們感謝 David Holzmüller 對 Kumo Tabular 貢獻了重要的想法和消融實驗。我們感謝 Vignesh Kothapalli 在實習期間對 Kumo Tabular 的幫助。



