Breaking Changes
- Dropped support for Python 3.9; the minimum required version is now Python 3.10. The
eval-type-backportdependency (only needed on 3.9) has been removed. (#1038)
Added
- Add a single file implementation of TabPFNv2. Not activated by default yet. (#995)
- Add a
keep_cache_on_deviceoption toTabPFNClassifier/TabPFNRegressor(defaults toTrue). Whenfit_mode="fit_with_cache", setting it toFalseoffloads each per-estimator KV cache to CPU as it is built and moves it back to the device on demand, lowering resident device memory at the cost of per-call transfers. (#1009) - Added official support for Python 3.14 (already exercised by the CI test matrix). (#1038)
Changed
- Improve peak memory of single file model implementations. (#1019)
- Removed the
per_featureoption fromPreprocessorConfig.name. (#1036)
Fixed
- Fixed regressor ensemble members sharing a single mutable
target_transforminstance. With in-process preprocessing (n_preprocessing_jobs=1), each member's in-place fit clobbered the fitted state of the others, silently corrupting predictions whenever members were fitted on different targets (e.g. with row subsampling active). Each ensemble config now owns a deep copy of the transform. (#1029) - Fixed two GPU-preprocessing divergences from the CPU reference:
TorchSoftClipOutlierssilently skipped outlier clipping when predicting a single sample in KV-cache mode (predictions depended on test batch size), andTorchAddSVDFeaturesStepadded an SVD column for single-feature datasets where the CPU pipeline adds none (predictions differed betweenENABLE_GPU_PREPROCESSINGon and off). (#1033) - Fixed a fit-time crash when a DataFrame mixed a plain numpy
boolcolumn with a non-numeric string column (string-valuedcategoryor pandasstringdtype).coerce_nullable_dtypes_to_numpynow coerces numpyboolcolumns to float64, not only nullable extension dtypes. (#1040)