You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Breaking Changes
Remove the unused cache_trainset_representation argument from ArchitectureModule.get_architecture, load_model and load_model_criterion_config, and the fit_mode argument from initialize_tabpfn_model. (#1250)
Replace ClassifierModelSpecs, RegressorModelSpecs, and BaseModelSpecs with the unified ModelSpecs dataclass. Update imports, constructors, and task-specific type checks; retain norm_criterion for legacy regression models without embedded borders. (#1315)
Add a shared ModelSpecs dataclass for in-memory classification and regression. Regression automatically derives its distribution from model.regression_borders; legacy models without embedded borders still require norm_criterion. (#1315)
Changed
Faster modality detection on wide inputs: a numeric array's distinct values are counted for all columns at once instead of per column, a numeric column stored as object is recognized with pd.api.types.infer_dtype instead of a value-by-value walk, and the nullable-dtype coercion is decided once per dtype. The inferred modalities are unchanged. (#1255)
Building a model from a checkpoint no longer runs torch's random parameter initialisation, which made up most of the per-fit model construction time. (#1257)
SAMPLE_SUBSAMPLING_METHOD="majority_downsample" now corrects the target prior shift it introduces, so predicted probabilities and regression distributions are calibrated to the training data rather than to the downsampled context. predict_proba_batched and predict_batched raise with this sampler; score datasets individually instead. (#1270)
Relabel the README architecture and attention diagrams as TabPFN-3.5. (#1282)
examples/finetune_regressor.py now fine-tunes on the bigger OpenML diamonds dataset. (#1290)
n_preprocessing_jobs > 1 now parallelises the per-estimator preprocessing over threads instead of processes, which we have found to be faster. Parallelisation is turned off by default, as previously. (#1295)
Link the TabPFN-3.5 technical report and add its BibTeX entry to the README citation section. (#1296)
Estimators fitted with fit_mode="fit_with_cache" use less host memory and save to smaller files. Predictions are unchanged. (#1323)
Note TabPFN-3.5-Fast alongside TabPFN-3 and TabPFN-3.5 in the README CPU sample-limit description. (#1328)
Fixed
Fix FullSupportBarDistribution CDF, quantiles, and sampling to match its half-normal tails while preserving batch shape, device, and dtype. (#1215)
The opt-in built-model cache (TABPFN_MODEL_CACHE_SIZE) now keys on device and inference precision, so estimators with different settings no longer share one model. (#1219)
numpy StringDType arrays are accepted as input at fit and predict, like unicode and object arrays (numpy 2.5 or newer). (#1269)
Regression density and likelihood evaluation reports far fewer infinite NLLs for targets in a narrow bucket or in a distribution's tail. (#1288)
Fixed FinetunedTabPFNRegressor computing the loss against z-scored targets for ensemble members that use a target transform (such as the default safepower); their loss now uses the transformed targets they predict in. (#1290)
MPS support and GQA attention now detect the installed torch version correctly when torch.__version__ is a plain string. (#1301)
Raise a proper validation error when the training inputs have mismatched lengths or are not two-dimensional, so these mistakes are reported as user errors like all other input problems (#1307)
Fixed TabPFN-3.5 jumping too far when it predicts past the range of a feature, most visibly on a time feature whose values repeat, such as a year column with one row per month. Predictions change for any table with values outside the range seen at fit. (#1310)
TabPFNRegressor no longer fails or returns meaningless predictions when the target's mean is large relative to its spread (e.g. ID-like values around 1e10). (#1311)
Allow fitted estimator archives to save supported dataclass-valued initialization parameters such as InferenceConfig. (#1321)
Forced float16 squashing preprocessing no longer squashes a finite extreme value to zero. (#1322)
Saving a fitted estimator no longer copies the model weights, so it uses less memory, and saving a fit_mode="fit_with_cache" estimator no longer briefly removes its caches while another thread may be predicting. (#1325)
Fixed predict raising could not convert string to float when a column was constant or all-missing at fit and held a string at predict. Such a column now gets its fit-time value back at predict, so it carries no information there. (#1329)
Avoid a runtime C compiler requirement in batched v3 and v3.5 regression target encoding on recent PyTorch versions. (#1338)