Prior Labs Releases TabPFN-3.5: A Tabular Foundation Model That Beats the Winning Otto Kaggle Solution With Default Settings





Prior Labs has released TabPFN-3.5, the newest version of its tabular foundation model. It predicts on a table in a forward pass, with no per-dataset training or tuning. Prior Labs reports first place across 7 tabular benchmarks. A separate demonstration shows it beating the winning solution of a famous 2015 Kaggle competition.

Deployable? Yes, with a license. Open weights run locally for research, evaluation and Kaggle, but production use needs Prior Labs’ API or a commercial license.

YOU MAY ALSO LIKE

The Otto Result

The Otto Group Product Classification Challenge ran on Kaggle in 2015. It drew 3,505 teams competing for $10,000. Entrants sorted products into 9 categories using 93 obfuscated count features. Submissions were scored with multi-class log loss, where lower is better.

The winning solution came from Gilberto Titericz and Stanislav Semenov. Both have held the world #1 Kaggle grandmaster ranking. Their entry was a multi-layer stack of 36 models built on hand-crafted features.

Nick Erickson, co-creator of AutoGluon and an AI researcher at Prior Labs, has chased that score for years. According to Erickson, AutoGluon placed rank 23 in its 2020 paper. AutoGluon 1.0 reached rank 14 in 2023, and AutoGluon 1.6 reached rank 9 in August 2026.

The final stretch was the hardest. Moving from rank 50 to rank 10 cut log loss from 0.41 to 0.40. Reaching the winning 0.382 from rank 10 took a further 0.018, nearly double.

TabPFN-3.5 scores 0.375 on the private leaderboard. Erickson says it ran on raw data with default settings. It took about a minute on an RTX PRO 6000 GPU. The model was pretrained only on synthetic data and never saw Otto or any Kaggle dataset. A reproducible Kaggle notebook is public.

Benchmark Results

The technical report lists first place on TabArena, BeyondArena, STRABLE, MulTaBench, RelArena-α, TALENT and ScoringBench. The top entry is not always the base model. TabPFN-3.5-Thinking holds first on TabArena, BeyondArena, STRABLE and MulTaBench. An internal TabPFN-Rel harness preview takes RelArena-α.

On TabArena, a living benchmark of 51 datasets, Thinking reaches 1910 Elo. The base model scores 1866, ahead of TabFM+ at 1823. Prior Labs says the base model beats AutoGluon 1.6 extreme by 130 Elo in a fifth of the time.

BeyondArena spans 142 datasets with grouped, temporal, wide, text-rich and high-cardinality data. TabPFN-3.5 finishes about 150 Elo points ahead of the previous overall leader. Tuned and ensembled MLPs still lead on its grouped, temporal and large-data slices.

What Changed Under the Hood

  • Wider model: The in-context transformer grows from 512 to 1024 dimensions. Parameters rise to 220M, up from 53M for TabPFN-3 classification.
  • 1 checkpoint: A single multitask checkpoint now covers classification and regression.
  • New cell encodings: Values pass through learned Fourier features and in-context ECDF ranks. The ranks do not change under monotonic transforms such as log scaling.
  • Simpler preprocessing: Quantile transforms, robust scaling and SVD features are removed.
  • Scale: Up to 1M rows, with 6,000 features recommended and 20,000 supported.
  • Tuned prior: Synthetic data now emphasizes high-cardinality, wide and grouped tables.

The KV cache stays roughly the same size as TabPFN-3, despite about 4x more parameters. Cached single-row predictions match TabPFN-3 speed. On large training sets, however, the base model runs up to 2x slower than TabPFN-3.

‘;}).join(”);
q(‘#tp-stats’).innerHTML=f.stats.map(function(s){return ‘

‘+s[0]+’‘+s[1]+’

‘;}).join(”);
var v=q(‘#tp-viz’);
if(mode===’w’){
var h=”

Each square is 1 model in the winning ensemble.

“;
for(var i=0;i’;}
v.innerHTML=h+’

‘;
}else{
var r=”

Illustrative: labeled training rows are the context, test rows get probabilities in one forward pass. 3 of Otto\”s 9 classes shown.

‘,n=0;
for(var a=0;a’;for(var c=0;c’;}r+=’Class ‘+(trainLab[a]+1)+’

‘;}
r+=”;
for(var b=0;b’;for(var d=0;d’;}r+=’

‘;}
v.innerHTML=r+’

‘;
}
var steps=qa(‘#tp-flow .step’);
steps.forEach(function(s,i){later(function(){s.classList.add(‘lit’);},150+i*420);});
var base=150+steps.length*420;
if(mode===’w’){
qa(‘#tp-viz .sq36 i’).forEach(function(s,i){later(function(){s.classList.add(‘in’);},120+i*55);});
}else{
qa(‘#tp-viz .ir.ctx’).forEach(function(rw,i){later(function(){rw.classList.add(‘go’);},120+i*110);});
later(function(){
qa(‘#tp-viz .ir.test’).forEach(function(rw,i){
later(function(){var qm=rw.querySelector(‘[data-q]’),pb=rw.querySelector(‘.pb’);qm.style.display=’none’;pb.style.display=’flex’;setTimeout(function(){pb.classList.add(‘in’);},30);},i*350);
});
},120+8*110+200);
}
postH();
}
var mBtns=qa(‘[data-m]’);
mBtns.forEach(function(b){b.addEventListener(‘click’,function(){pickOn(mBtns,b);mode=b.getAttribute(‘data-m’);renderFlow();});});

/* ———- Slide 3 ———- */
var COL=[0,0,1,1,2,3,5,8,13,40,120,352];
var colEl=q(‘#tp-col’),rng=q(‘#tp-rng’),logEl=q(‘#tp-log’);
colEl.innerHTML=COL.map(function(v,i){return ‘‘+v+’‘;}).join(”);
var bh=””;for(var k=1;ksin ‘+k+’

cos ‘+k+’

‘;}
q(‘#tp-bars’).innerHTML=bh;
var lastZ=null;
function enc(){
var idx=+rng.value,useLog=logEl.checked;
var vals=COL.map(function(v){return useLog?Math.log(1+v):v;});
var n=vals.length,mean=vals.reduce(function(a,b){return a+b;},0)/n;
var sd=Math.sqrt(vals.reduce(function(a,b){return a+(b-mean)*(b-mean);},0)/n);
var x=vals[idx],z=Math.max(-100,Math.min(100,(x-mean)/sd));
var less=0,eq=0;COL.forEach(function(v){if(v

1e-9){zEl.classList.add(‘flash’);setTimeout(function(){zEl.classList.remove(‘flash’);},500);}
var zb=q(‘#tp-zbar’),w=Math.min(Math.abs(z)/3.5,1)*50;
zb.style.width=w+’%’;zb.style.left=(z>=0?50:50-w)+’%’;
q(‘#tp-u’).textContent=u.toFixed(3);
q(‘#tp-ubar’).style.width=(u*100)+’%’;
var terms=[];for(var k=1;k=0){b.style.top=(50-hh)+’%’;}else{b.style.top=’50%’;}});
var cap=’Cell value ‘+COL[idx]+(useLog?’ becomes ‘+x.toFixed(2)+’ after log(1 + x). ‘:’. ‘)+’Standardized value ‘+z.toFixed(2)+’, ECDF rank ‘+u.toFixed(3)+’. ‘;
cap+=useLog?’The standardized value shifted, but the rank and every sine and cosine term stayed exactly the same.’:’Toggle the log transform: only the standardized value will move.’;
q(‘#tp-enc’).textContent=cap;
lastZ=z;postH();
}
rng.addEventListener(‘input’,enc);logEl.addEventListener(‘change’,enc);
qa(‘span’,colEl).forEach(function(s){
function pick(){rng.value=s.getAttribute(‘data-i’);enc();}
s.addEventListener(‘click’,pick);
s.addEventListener(‘keydown’,function(e){if(e.key===’Enter’||e.key===’ ‘){e.preventDefault();pick();}});
});

/* ———- Slide 4 ———- */
var VAR={
base:{t:’TabPFN-3.5’,rows:[[‘Weights’,’Open (non-commercial license), also on the API’],[‘Parameters’,’220M, one checkpoint for classification and regression’],[‘Estimators’,’8 by default’],[‘Scale’,’Up to 1M rows, 6,000 features recommended’],[‘TabArena’,’1866 Elo, 1.83 s train and 0.44 s predict per 1K rows’]],hl:’base’},
fast:{t:’TabPFN-3.5-Fast (alpha)’,rows:[[‘Weights’,’Open (non-commercial license), also on the API’],[‘Parameters’,’84M’],[‘Estimators’,’4 by default’],[‘Speed’,’Up to 6x faster than TabPFN-3.5, up to 3x faster than TabPFN-3′],[‘TabArena’,’1780 Elo, 0.78 s train and 0.16 s predict per 1K rows’]],hl:’fast’},
plus:{t:’TabPFN-3.5-Plus’,rows:[[‘Access’,’Prior Labs API and enterprise deployments’],[‘Adds’,’Native text and date handling, proprietary inference optimizations’],[‘Speed’,’FP8 attention, about 1.25x TabPFN-3 latency’],[‘STRABLE’,’1893 Elo on tables with strings’],[‘Drop-in’,’Same interface as open-source TabPFN-3.5′]],hl:”},
think:{t:’TabPFN-3.5-Thinking’,rows:[[‘Access’,’Prior Labs API and enterprise deployments’],[‘Method’,’Extra inference-time compute on top of Plus’],[‘No extras’,’No LLMs, real data, or internet search’],[‘Speed’,’Up to 12x faster than TabPFN-3-Thinking’],[‘TabArena’,’1910 Elo, rank 1 of the field’]],hl:’think’}
};
var ELO=[[‘think’,’TabPFN-3.5-Thinking’,1910,1],[‘base’,’TabPFN-3.5′,1866,1],[‘tabfm’,’TabFM+’,1823,0],[‘fast’,’TabPFN-3.5-Fast’,1780,1],[‘ag’,’AutoGluon 1.6 extreme 4h’,1737,0],[‘v3′,’TabPFN-3’,1631,0]];
q(‘#tp-elo’).innerHTML=ELO.map(function(e){return ”;}).join(”);
var curVar=”base”;
function showVar(){
var d=VAR[curVar];
q(‘#tp-card’).innerHTML=’

‘+d.t+’

‘+d.rows.map(function(r){return ‘

‘+r[0]+’
‘+r[1]+’

‘;}).join(”)+’

‘;
qa(‘#tp-elo .er’).forEach(function(r){r.classList.toggle(‘hl’,r.getAttribute(‘data-e’)===d.hl);});
postH();
}
function growElo(){
var bars=qa(‘#tp-elo .t i’);
bars.forEach(function(b){b.style.width=”0″;});
bars.forEach(function(b,i){later(function(){b.style.width=b.getAttribute(‘data-w’)+’%’;},80+i*120);});
}
var vBtns=qa(‘#tp-var .pick’);
vBtns.forEach(function(b){b.addEventListener(‘click’,function(){pickOn(vBtns,b);curVar=b.getAttribute(‘data-v’);showVar();});});

/* ———- Slide 5 ———- */
var USE=[
[1,’Allowed under the open-weights license’,’Academic research is a named non-commercial purpose.’],
[1,’Allowed under the open-weights license’,’The license names public data science competitions on platforms such as Kaggle as non-commercial use.’],
[1,’Allowed, with a condition’,’Testing, evaluation and internal benchmarking are allowed, as long as results do not feed commercial decision-making.’],
[0,’Needs a commercial license’,’The report lists competitive benchmarking for procurement decisions as a restricted commercial use.’],
[0,’Needs a commercial license’,’Production use requires the Prior Labs API or an enterprise license, including SAP, AWS SageMaker, Microsoft Foundry or on-prem.’],
[0,’Needs a commercial license’,’Outputs used in client deliverables count as commercial use, even if the model runs locally.’],
[0,’Needs a commercial license’,’The license bars hosting the model as an API or SaaS service, whether paid or free.’]
];
var uBtns=qa(‘#tp-use .pick’);
uBtns.forEach(function(b){b.addEventListener(‘click’,function(){
pickOn(uBtns,b);var d=USE[+b.getAttribute(‘data-u’)],v=q(‘#tp-verdict’);
v.className=”verdict “+(d[0]?’yes’:’nope’)+’ pop’;
v.innerHTML=’‘+d[1]+’‘+d[2]+’‘;
setTimeout(function(){v.classList.remove(‘pop’);},300);postH();
});});

/* ———- Navigation ———- */
var enter=[playOtto,renderFlow,enc,function(){showVar();growElo();},function(){}];
function go(i){
clearT();cur=(i+slides.length)%slides.length;
slides.forEach(function(s,k){s.classList.toggle(‘on’,k===cur);});
tabs.forEach(function(t,k){t.classList.toggle(‘on’,k===cur);t.setAttribute(‘aria-selected’,k===cur?’true’:’false’);t.tabIndex=k===cur?0:-1;});
q(‘.count’).textContent=(cur+1)+’ of ‘+slides.length;
var tb=q(‘.tabs’);tb.scrollLeft=Math.max(0,tabs[cur].offsetLeft-12);
enter[cur]();postH();
}
tabs.forEach(function(t,k){
t.addEventListener(‘click’,function(){go(k);});
t.addEventListener(‘keydown’,function(e){if(e.key===’ArrowRight’){go(cur+1);tabs[cur].focus();}if(e.key===’ArrowLeft’){go(cur-1);tabs[cur].focus();}});
});
qa(‘.nav’).forEach(function(b){b.addEventListener(‘click’,function(){go(cur+(+b.getAttribute(‘data-d’)));});});
if(window.ResizeObserver){new ResizeObserver(postH).observe(T);}
window.addEventListener(‘load’,postH);
go(0);
})();

“>

Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us

Credit: Source link

Related Posts

Next Post

Leave a Reply

Your email address will not be published. Required fields are marked *