核心摘要
NVIDIA 正式推出 Kumo Tabular,这是其结构化模型系列中的开源表格数据基础模型。该模型旨在通过单次前向传播预测新行的标签,无需训练、微调或特征工程即可处理分类和回归任务。Kumo Tabular 仅在合成数据上进行预训练,提供 28M 至 215M 参数的三种尺寸,以 OpenMDW-1.1 许可证发布,支持商业用途。在 TabArena、BeyondArena、TALENT 和 ScoringBench 四个基准测试中,该模型均位列第一。

- 模型代码:https://github.com/NVIDIA/structured-data-models
- 模型权重:https://huggingface.co/nvidia/Kumo-Tabular
从传统机器学习到图表式基础模型
表格数据是企业机器学习的基石,涵盖客户记录、交易日志、传感器数据等场景。预测流失率、违约风险或需求是工业界最常见的任务之一。过去二十年,梯度提升树(GBDT)主导了这一领域,但其工作流并未发生根本性变化:每个新问题仍需经历收集标签、特征工程、超参数搜索及模型部署的完整周期。
大型语言模型展示了另一种范式:预训练模型可在不更新权重的情况下完成新任务,即上下文学习(In-Context Learning)。这种机制同样适用于表格数据。通过在数百万张表格上预训练的模型,可以将带标签的表格作为上下文输入,直接对新行进行预测。
NVIDIA Kumo Tabular 正是基于这一理念开发的开放基础模型。给定包含标签行的表格及待预测行,该模型能在单次前向传播中输出类别概率或数值预测。
技术架构与工作机制
Kumo Tabular 是一个专为表格结构设计的 Transformer,采用了 TabICL 和 TabPFN 中引入的列、行及上下文注意力机制。为预测标签,模型需执行三个关键步骤:理解单元格在列分布中的含义、解析行内特征的相互作用、以及关联上下文行与查询行。
单元格嵌入:一组单元格构成一个标记。数值和分类值分别通过傅里叶特征(正弦值和余弦值的可学习频率)进行编码,且拥有独立的权重矩阵。缺失值无需插补,由特殊标记处理。上下文中的每个符号还会接收位置嵌入。
排列嵌入:模型通过交替两种注意力机制将每一行压缩为一个嵌入向量。列注意力(Column Attention)关注单一列内的所有值,以确定特定值在该列分布中的相对位置(如典型值或极端值),其计算成本随行数线性增长。行注意力(Row Attention)则通过单个排列中的标记学习特征间的相互作用,利用旋转位置编码区分列。每行附加四个可学习的 [CLS] 标记作为最终读数。经过行压缩后,最后阶段的计算成本不再依赖于列数。
上下文学习:最后一个 Transformer 层在行嵌入上运行。上下文行之间相互可见,而查询行仅能看到上下文行。这意味着每个预测仅取决于上下文信息和当前查询行本身,不受其他同时评分行的影响。由于上下文从不查看查询,其键值对只需计算一次即可复用于后续预测。查询行使用 Test-GQA 机制缩小缓存读取范围。头部网络将每个查询行转化为分类任务的类别概率或回归任务的 999 个分位数,从而生成点预测及不确定性估计。
感知长度的注意力温度:随着键数量增加,Softmax 注意力的熵会扩大。在数千行规模下,注意力可能变得过于分散,尤其当推理表远大于训练表时。为此,Kumo Tabular 引入了缩放机制:每个查询的温度随键数量的对数增长,且每个注意力头单独学习系数。这确保了无论表格长度或宽度如何增加,注意力始终保持锐利。
训练数据与方法
Kumo Tabular 完全基于人工生成的表格数据进行预训练。每张训练表均由结构因果模型(SCM)按以下六步流程生成:
首先随机绘制整张表的配置,包括尺寸、任务类型及缺失模式。随后构建随机因果图连接隐藏变量,并通过节点处随机绘制的函数(如线性映射、小型神经网络、决策树或高斯过程)从根节点评估至叶节点。部分节点被指定为数值或分类列,一个节点作为目标变量,其余保持隐藏,模拟真实数据中未测量的潜在原因。后处理阶段负责关联列组、裁剪异常值并注入缺失值。快速树集成检查器会丢弃任何缺乏可学习信号的表格。由于生成器是过程式采样器而非训练模型,它能产生无限数量的表格,每张表都具有新的图结构和机制。
为了增强模型的鲁棒性,生成器特意引入了缺陷:值可能在多个模式下缺失;部分特征被粗化,导致重复行在标签上不一致;某些分类列具有大量级别;回归目标可能呈现重尾分布。模型在接触数百万张此类“不完美”表格后,学会了在不进行数据清洗的情况下处理这些问题。
在每张人工表格上,模型将大部分带标签的行作为上下文输入,学习预测剩余行的标签。分类任务使用交叉熵损失函数,回归任务使用分位数损失函数。分类和回归模型独立训练。参照 TabICLv2 的方法,训练分为三个阶段:第一阶段耗时最长,使用 1,024 行、最多 100 列的表格,旨在让模型理解基本结构;第二阶段将上下文长度从 400 行扩展至 10,240 行;第三阶段进一步扩展至 60,000 行,列数上限仍为 100。总体而言,Kumo Tabular Small/Medium/Large 版本分别处理了约 3500 万、7100 万和 1.37 亿张人工生成表格。
性能表现
在统一的 RTX 6000 Pro 评估环境下,NVIDIA 对三个尺寸的 Kumo Tabular 进行了默认设置测试,并与调优后的梯度提升树、AutoGluon 及最新表格基础模型进行了对比。在 TabArena 排行榜上,Kumo Tabular 以 1950 的 ELO 积分排名第一,运行速度比 LimiX-2 快 17%。在所有三个模型尺寸中,Kumo Tabular 在精度-效率帕累托前沿建立了新的最先进水平。
此外,模型还在 BeyondArena、TALENT 和 ScoringBench 上进行了评估。在 BeyondArena 中,Kumo Tabular 获得 1418 的 ELO 积分,不合格率为 7.78%,位居榜首。在 TALENT 基准测试中,它在分类准确率、分类对数损失和回归 RMSE 方面均获得最高整体排名,平均排名分别为 6.67、3.98 和 4.22。在预测分布基准 ScoringBench 上,Kumo Tabular-Large 和 Medium 版本分别平均排名第一和第二。
限制条件
Kumo Tabular 目前仅支持数值和分类列。文本、图像或时间序列数据需通过内置预处理配方转换为特征。单次前向传播支持多达 10 个类别,库可通过纠错输出代码扩展至任意类别数量。当表格规模远超训练范围,或查询行与上下文行分布不同时,准确性可能会下降。因此,建议在部署前于自有数据集中验证模型的准确性和校准度。
使用示例
Kumo Tabular 通过 NVIDIA 新发布的 GPU 原生结构化数据模型库运行。该库首次使用时会从 Hub 下载权重,并提供评估中使用的预处理、组合及多类处理功能。以下代码展示了从 pandas.DataFrame 获取预测所需的全部步骤:
import sdm
table = sdm.TableTensor.from_pandas(pd.load_csv(...), device="cuda")
na_mask = table["target"].isnan()
model = sdm.models.KumoTabular(device="cuda")
pred = model(
x_context=table[~na_mask].drop_columns("target"),
y_context=table[~na_mask, "target"],
x_query=table[na_mask].drop_column("target"),
)
许可与合规
Kumo Tabular 依据 OpenMDW 1.1 许可协议发布。NVIDIA 强调可信 AI 是共同责任,已制定相关政策与实践以确保广泛应用的开发安全。开发者在下载或使用模型时,应遵循服务条款,并与支持团队协作,确保模型符合相关行业要求及用例规范,防范不可预见的滥用风险。有关模型质量、风险、安全漏洞或 NVIDIA AI 问题的报告渠道已在官方文档中列出。





