微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 TabFM:一个从没见过真实数据的模型,为什么能在表格预测上打赢AutoML?

TabFM:一个从没见过真实数据的模型,为什么能在表格预测上打赢AutoML?

2026-10-23 08:09
分享至:
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2026-10-23 08:09 • 科技行者

你可能没意识到,做表格数据的机器学习这件事,到今天为止大部分人还在用一种挺原始的方式:每来一个新数据集,重新训练一遍模型。

这不是危言耸听。哪怕是最先进的自动机器学习系统,遇到一份新的信贷审批表格,或者一份新的电商流失预测数据,依然得从头开始跑特征工程、调超参数、做交叉验证,一套流程走下来几个小时起步。图像识别领域早就有了ImageNet预训练模型,随便拿来微调一下就能用;语言模型更是拿着GPT就能处理几乎任何文本任务。可表格数据这个机器学习里最古老、应用最广泛的领域,反而是最后一个被"预训练"攻克的堡垒。

Google Research这次放出的TabFM,说的就是这件事:一个4亿参数的模型,训练时一行真实数据都没见过,却能在51个基准数据集上,不用任何针对性调整,直接超过调优过的AutoML系统。这句话本身就有点反直觉,你会本能地想问:没见过真实世界的数据,凭什么能预测真实世界的问题?

表格数据为什么这么难啃

先说说这件事到底难在哪。

图像有天然的结构:相邻像素往往相关,平移、旋转不改变物体身份,这些先验知识让卷积神经网络设计起来有章可循。文本也有结构:词和词之间有语法关系,上下文决定含义,这也是Transformer架构能大放异彩的原因。

表格数据几乎什么先验都没有。一张表里,行和行之间通常是完全可以打乱顺序的(比如一千个客户的记录,谁在第一行谁在第五百行根本不重要),但列和列之间却往往有强烈的、非对称的依赖关系。更麻烦的是,列里混杂着连续的数值(比如年龄、收入)和离散的类别(比如性别、城市),这两种数据的统计特性完全不同,连续值需要精细的数值分辨率,类别值却根本没有大小顺序可言。

正因为这些特性,传统深度学习模型在表格数据上一直打不过老牌的树模型,比如XGBoost、LightGBM这些梯度提升决策树方法。它们靠的是一种叫轴对齐分裂的策略,简单说就是每次只根据一个特征的一个阈值做判断(比如"年龄是否大于30"),这种方式天然能处理不同类型的列、缺失值和特征尺度不统一的问题,不需要额外设计。多项基准研究都发现,在中小规模的表格数据上,精调过的深度学习模型很难稳定超越树模型集成。

这就是为什么这个领域一直停留在"每个数据集单独训练"的阶段:不是没人想做表格基础模型,而是表格数据的结构实在太不规整,很难找到一个通用的表示方法。

真正的破局思路来自一类叫做PFN(Prior-Data Fitted Networks,先验数据拟合网络:一种训练思路,不是让模型记住具体数据集的答案,而是让模型学会一种通用的"根据已知样本推断未知样本"的能力,本质上是在用海量合成数据逼近贝叶斯后验预测)的工作。这类方法的核心想法是,与其教模型记住某个具体数据集的规律,不如教会它一种更抽象的能力:给定一批带标签的样本(称为上下文),再给一个新样本,模型能推断出这个新样本最可能的标签是什么。这种范式被称为上下文学习(In-Context Learning:模型不通过梯度更新来学习新任务,而是直接把任务相关的示例放进输入里,靠一次前向传播完成推理,这也是GPT类大模型"少样本学习"能力的基础),已有理论工作证明,Transformer在前向传播过程中,其内部激活其实隐式地在执行类似优化算法的迭代更新,这也是为什么它能在没有梯度更新的情况下"学会"新任务。

TabPFN是这条路线上最早证明可行性的工作,它能在几秒钟内完成小规模表格的分类,但受限于计算复杂度,能处理的数据规模长期被限制在一千行以内。原因很简单,如果对表格里每一个单元格都做完整的注意力计算,复杂度会随着行数和列数的乘积呈平方级增长,数据一多就直接算不动了。

TabFM要解决的第一个问题,就是怎么把这套上下文学习的框架,扩展到能处理上万行、上百列的真实规模表格。

拆解行和列,各自解决各自的麻烦

TabFM的架构设计里,最核心的一个决定是把"行的处理"和"列的处理"彻底拆开,分别用不同的注意力机制来对付。

具体来说,模型先沿着列方向做一种叫ISAB(Induced Self-Attention Block,诱导自注意力块:一种降低计算复杂度的注意力机制,不让所有元素两两互相看,而是先压缩成少量的"代表点",再让所有元素跟这些代表点交互,从而把平方级的计算量降到线性级)的注意力,捕捉同一列内不同行之间的统计规律(比如这一列的均值大致是多少,分布是什么形状),然后再沿着行方向做一种带旋转位置编码的自注意力,捕捉同一行内不同特征之间的交叉关系(比如年龄和收入这两个字段是不是存在某种联动)。

这里的诱导点机制值得多说两句。如果一张表有一万六千行,直接让这一万六千行两两互相计算注意力,复杂度是行数的平方,代价高到不现实。ISAB的做法是先设置256个可学习的"代表点",让这一万六千行先跟这256个代表点做一次交互,把信息压缩进代表点里,再让代表点把压缩后的统计信息"读回"给每一行。这样一来,复杂度从行数的平方降到了行数乘以代表点数量,是线性级别的。

这就像一个大型社区要统计居民的普遍诉求。如果让每家每户都跟其他每家每户面对面聊一遍再汇总,几万户居民聊下来根本聊不完。更现实的做法是先选出几百个社区代表,每户居民只需要跟代表反馈一次意见,代表汇总出社区整体情况后,再把这个整体情况传达给每一户。信息没有丢失太多,但沟通成本从"户数的平方"降到了"户数乘以代表数",这就是为什么TabFM能把上下文规模做到一万六千行,比早期TabPFN的一千行整整大了一个数量级。

行方向的注意力用的是旋转位置编码,这个设计的用意在于区分不同的特征通道,但又不强加任何顺序性。这一点很关键,因为表格里的列本来就没有天然的先后顺序,"性别"排在"年龄"前面还是后面完全是随意的,模型不能因为列的排列位置就产生偏见性的理解。用旋转位置编码而不是学习一张固定的位置表,还带来一个额外好处:推理时表格的列数可以比训练时见过的更多,因为位置关系是相对编码的,不受限于一个固定尺寸的表。

在真正进入注意力计算之前,还有一层叫做单元格嵌入的处理,这一步用的是可学习的傅里叶频率来投影每个数值。

傅里叶特征:把一个数字通过一组不同频率的正弦和余弦函数进行编码,从而在保留数值精细差异的同时,让模型更容易学出周期性或者非线性的数值关系,这个思路最早在图形学的坐标编码里被验证有效,后来发现语言模型内部计算加法时也会自发学出类似的傅里叶表示。

为什么要在数值上花这么大力气?因为神经网络的标准层,比如简单的线性层,天然不擅长精细地保留一个连续数值的分辨率,两个很接近的数字很容易在网络内部被混淆。傅里叶投影相当于把一个数字掰开成多个不同尺度的"刻度",粗刻度管大致范围,细刻度管精确位置,这样网络无论要捕捉大趋势还是细微差异都有对应的通道可用。

模型还做了一个叫"二进制偏移特征分组"的处理,简单说就是让每一列不是孤立地看自己,而是提前跟偏移量为0、1、3的相邻列打包在一起处理,这样能在进入注意力之前就先捕捉一些局部的跨列交互,减轻后续注意力层的负担。

整套流程走完之后,每一行会被压缩成一个固定长度的向量表示,这一步靠的是8个可学习的CLS标记(Classification Token:一种特殊的占位向量,本身不携带真实数据,而是在网络训练过程中学会"吸收"整行信息,最后提取出来作为这一行的浓缩摘要),把不管原表有多少列都统一变成固定维度,方便后续处理。

处理完行表示之后,才轮到真正的"预测"环节,这部分由一个24层的深层Transformer完成,专门负责在带标签的上下文样本和待预测的查询样本之间做推理。这里有一个精心设计的掩码机制,保证查询样本只能看到训练样本的信息,看不到其他查询样本,也看不到自己以外任何测试样本的标签,这样才能保证测试预测之间互相独立,不会因为顺序不同而结果不同。

整个模型完全没有见过一行真实数据,训练素材全部来自合成的表格。这些合成表格是用结构因果模型(Structural Causal Model:一种描述变量之间因果依赖关系的数学框架,通过一张有向无环图规定谁影响谁,再用随机的非线性函数生成具体数值,从而制造出结构复杂但可控的模拟数据)随机生成的,每次生成时会随机决定表的形状、类别列的比例和基数、缺失值比例、标签噪声、类别是否均衡,这样做是为了让模型见识足够多样的表格几何形态,不至于只学会应付某一种固定风格的数据。训练过程还用了一个四阶段课程,从两千行逐步扩大到一万六千行,每次扩大上下文长度的同时按比例缩小批量大小,保证每一步计算量总体不变,这样模型能循序渐进地适应更长的上下文,而不是一上来就被超长序列冲垮。

结果好到什么程度

TabFM在TabArena这个基准上做了系统评测,这个基准包含51个数据集,38个分类任务加13个回归任务,用重复十折交叉验证的方式跑分,并且用一种叫Bradley-Terry Elo的评分体系,把不同数据集、不同评价指标统一换算成一个可比较的分数,有点像给不同项目的运动员用同一套积分规则打分。

在回归任务上,TabFM拿到2055.2的Elo分,超过了EXAONE-Tabular的1973.1、TabPFN-3的1866.6,以及AutoGluon 1.5极限版本的1851.2。在分类任务上,TabFM拿到1768.6分,同样领先于同类的所有零样本基础模型。综合两类任务,TabFM在所有默认配置的基础模型里排名第一,并且在头对头的对局胜率上碾压式领先:对阵EXAONE-Tabular胜率65.7%,对阵AutoGluon 1.5极限版本胜率72.1%,对阵TabPFN-3胜率75.9%,对阵TabICLv2胜率79.8%。

这里有一个数据特别值得说:在分类任务上,排名前四的方法Elo分差不到130分,看起来很接近,但如果换算成"可改进空间"这个指标(论文里叫oracle improvability,意思是假设有一个万能选择器,每个数据集都挑当下表现最好的方法,跟这个理想情况相比还差多少),TabFM只有6.10%的差距,而排名第二的EXAONE-Tabular是9.47%,第三的AutoGluon是10.00%。这说明TabFM的优势不是靠在少数几个数据集上大杀四方拉高平均分,而是几乎每个数据集都稳定地接近最优解,这种"稳"比"偶尔很强"在实际应用里价值高得多。

在冻结权重之上再加两层增强

如果说零样本TabFM本身已经是一个不错的成绩,那论文接下来做的两个扩展,才是真正把排行榜顶端位置坐稳的关键。

第一个扩展叫TabFM+,思路是利用模型对列顺序、数值尺度、特征交互敏感这个特性,反过来把它变成优势。既然模型换个列的排列方式就会产生不同的内部理解,那干脆生成32个不同的"视角",每个视角对原始表格做一些不同的变换,比如构造数值列两两相乘的交叉特征、用SVD(奇异值分解:一种矩阵分解技术,能从数据里提取出最主要的几个线性组合方向,相当于给数据做降维压缩,同时保留大部分信息)提取低秩的结构特征、随机打乱列的顺序、随机打乱类别的编号、对分类标签做循环位移,然后把这32次前向传播的结果通过非负最小二乘法加权融合,分类任务再加一层Platt校准把输出概率调得更靠谱。

这个操作让分类任务的Elo分提升了69.4分,回归任务提升了134.0分,几乎是分类任务提升幅度的两倍。这个差异背后的原因也挺直觉,回归预测的是一个连续数值,取多个预测的平均本身就能有效降低方差,而分类预测的是一个离散类别,多个视角的投票效果没有那么线性地叠加。

这就像找几个不同角度的摄影师同时给一个场景拍照,再把照片拼在一起做后期。如果只有一个摄影师,某个角度的光线不好或者构图有死角,整张照片的质量就完全取决于这一次拍摄的运气。多个摄影师从不同机位同时拍,哪怕单张照片各有瑕疵,拼起来之后信息互补,细节反而更完整。如果不做多视角融合,模型就只能依赖单一一次前向传播的判断,遇到某个巧合的列排列导致理解偏差,就没有别的角度去纠正它。

第二个扩展叫TabFM-Auto,这个思路更进一步,直接把大语言模型请进来当"数据科学家"。具体做法是让Gemini-3.8-Flash模型拿到一个具体数据集,自主编写、测试、修改一整套Python数据处理和特征工程流程,这套流程负责决定怎么清洗数据、构造什么新特征、挑选哪些行作为上下文、怎么后处理预测结果,但TabFM本身的模型权重全程冻结,绝不做任何微调。

每一版候选方案会先在训练集内部做三折交叉验证打分,把结果和报错信息记录进一份日志,供下一轮迭代参考,整个搜索过程限定在96次评估或六小时以内,最后从验证集表现最好的三个候选方案里选一个,拿到完整的测试集上跑一次。

论文里举了两个很具体的例子:针对一个关于气动噪声的数据集(airfoil_self_noise),Gemini自己想到要构造斯特劳哈尔数和雷诺数这两个流体力学里的经典无量纲参数作为新特征;针对一个糖尿病相关的数据集,它想到把原始的ICD-9疾病编码按照章节归类,压缩成更有意义的类别特征。这两个例子都不是通用的统计变换,而是带着具体领域知识的特征构造,这正是通用自动化流程很难覆盖到的部分。

TabFM-Auto最终让回归任务的Elo分再涨337.2分,分类任务再涨172.1分,在51个数据集里改善了41个,其中回归任务13个数据集全部改善,可改进空间被压缩到0%,也就是说在这13个回归数据集上,TabFM-Auto已经等同于那个理论上的最优选择器。

这个结果多少有点讽刺意味。一个从没见过真实数据、完全靠合成数据训练出来的模型,配上一个懂得举一反三的语言模型帮它做特征工程,最后在真实世界的数据集上,比那些专门针对真实数据反复调优的AutoML系统还要更接近理论最优解。

如果没有这套自动特征工程闭环,模型只能依赖固定的通用规则处理所有数据集,遇到需要领域知识的场景就会吃亏。就像一个通才医生看所有病人都用同一套标准流程问诊,遇到普通感冒没问题,但碰到需要专科知识才能发现的隐性病灶,就容易漏诊。让语言模型介入去主动发现"这个数据集可能需要流体力学知识"或者"这个数据集的编码需要按医学分类整理",相当于临时请了个专科会诊,效果自然更好。

这个工作还留了不少没做完的事。目前预训练覆盖的表格上限是一万六千行、一百列,更大规模的表还得依赖长度泛化或者抽样处理,自由文本字段目前也没有做语义层面的编码。论文里也提到,未来想把层级化的行池化和稀疏特征注意力用起来,把预训练规模直接推向百万行、千列级别,还想把合成因果先验和真实世界的表格语料结合起来训练,甚至把架构从处理单张扁平表格,扩展到能直接处理有关联关系的多张表(也就是关系型数据库schema),省掉手动做表连接和展平的步骤。

写在后面

读到TabFM-Auto那部分的时候,有个细节让我多想了一会儿:论文说把最终改进方案按"是否真的改动了特征处理流程"分成两组,改动了的那组中位数误差降低2.14%,没改动的那组只降低0.27%。

这个对比说明,语言模型带来的价值几乎全部来自它真正去理解数据、构造有意义的新特征,而不是简单调了调超参数或者换了个预处理方式凑数。这跟很多人对"AutoML"的刻板印象不太一样,很多人以为自动化调参就是自动机器学习的核心,但这个结果提示,真正值钱的是那部分需要"理解这个数据集在说什么"的领域知识,而这恰恰是传统自动化流程最难触及的部分。

另一个值得琢磨的地方是,TabFM完全靠合成数据训练,却能在真实数据上超越那些直接在真实数据分布上调优的方法。这多少挑战了一个直觉:是不是训练数据必须来自目标分布,模型才能表现好?这篇论文给出的答案似乎是,只要合成数据的结构足够丰富、足够多样,模型学到的可能不是某种具体的数据分布,而是一种更抽象的"如何从有限样本里做统计推断"的通用能力,这种能力反而比死记硬背某个具体分布更容易迁移。

这个思路会不会也适用于其他领域?如果一个任务的底层逻辑结构可以被合理地模拟出来,是不是也能靠纯合成数据训练出一个能迁移到真实场景的模型?这个问题留给读到这里的你。

Q&A

Q1:TabFM是什么?

A:TabFM是Google Research推出的一个4亿参数的表格数据基础模型,完全用合成数据训练,能在不针对具体数据集调整的情况下,直接对新的表格预测任务给出准确结果。

Q2:TabFM为什么能超过调优过的AutoML系统?

A:TabFM把行和列的处理拆开设计,用诱导注意力和旋转位置编码分别捕捉行间统计规律与列间交叉关系,再靠大量随机生成的合成表格训练出通用的推断能力,在TabArena基准的51个数据集上排名第一。

Q3:TabFM-Auto和普通TabFM有什么区别?

A:TabFM-Auto是在TabFM基础上接入Gemini大语言模型,让它针对具体数据集自动设计特征工程方案,模型权重本身不变,但能进一步提升41个数据集里的表现。

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-