Summary
Add the tabpfn package to the default QuantConnect Python environment.
Package details
- PyPI: https://pypi.org/project/tabpfn/ (latest 8.4.0,
requires_python >=3.10)
- GitHub: https://github.com/PriorLabs/TabPFN (public, ~7.8k stars, actively maintained - last push 2026-08-25)
- License: Prior Labs License - Apache 2.0 with an additional attribution provision (paragraph 10: "Built with PriorLabs-TabPFN" attribution when the work/weights or a derived model are distributed or made available). Internal benchmarking and testing without external communication is explicitly exempt.
- Maintainer: Prior Labs
TabPFN is a transformer-based foundation model for tabular data that performs classification and regression by in-context learning: instead of fitting parameters, it runs a single forward pass over the training rows, so a "fit" on a small/medium table is effectively instant and needs no hyperparameter search. It exposes a scikit-learn compatible API (TabPFNClassifier / TabPFNRegressor), which makes it a drop-in alternative to the sklearn / LightGBM estimators already in the image for the small-sample tabular problems that dominate quantitative research.
Dependencies
Runtime requirements (from PyPI metadata for 8.4.0):
torch>=2.5, scikit-learn>=1.2.0, numpy>=1.21.6, scipy>=1.11.1, pandas>=1.4.0, lightgbm>=4.4, huggingface-hub>=0.23.0, safetensors>=0.4.0, pydantic>=2.8.0, pydantic-settings>=2.10.1, einops>=0.4.0, joblib>=1.2.0, tqdm>=4.66.0, filelock>=3.11.0, typing_extensions>=4.12.0.
Most of these (torch, scikit-learn, numpy, scipy, pandas, lightgbm, huggingface-hub, safetensors, joblib, tqdm, filelock) are already in the environment; einops, pydantic-settings and the torch>=2.5 floor are the items to check against the current pins. The mlx requirement is macOS/arm64-only and does not apply to the Linux image.
Open question - pretrained weights need to be baked into the image
TabPFN is a pretrained model: on first use the client downloads its checkpoint from Hugging Face (huggingface-hub) into a local cache. Algorithm containers have no outbound internet access, so pip install tabpfn alone would leave the package raising a download error at fit() time in both Research and Backtest.
For the library to be usable, the model checkpoints need to be pre-fetched at image build time and the cache directory (HF_HOME / the package's model cache path) pointed at that baked-in location, the same way other pretrained-model packages are handled. Worth confirming which classifier/regressor checkpoints to ship - the default ones are on the order of a few hundred MB.
Proposed change
Add tabpfn (plus any missing transitive dependencies) to the LEAN Python Docker image at the next batched library rebuild, and pre-download the default model checkpoints into the image cache so the estimators work offline.
Source
QuantConnect support ticket [Intercom 215475645137717].
Summary
Add the
tabpfnpackage to the default QuantConnect Python environment.Package details
requires_python >=3.10)TabPFN is a transformer-based foundation model for tabular data that performs classification and regression by in-context learning: instead of fitting parameters, it runs a single forward pass over the training rows, so a "fit" on a small/medium table is effectively instant and needs no hyperparameter search. It exposes a scikit-learn compatible API (
TabPFNClassifier/TabPFNRegressor), which makes it a drop-in alternative to the sklearn / LightGBM estimators already in the image for the small-sample tabular problems that dominate quantitative research.Dependencies
Runtime requirements (from PyPI metadata for 8.4.0):
torch>=2.5,scikit-learn>=1.2.0,numpy>=1.21.6,scipy>=1.11.1,pandas>=1.4.0,lightgbm>=4.4,huggingface-hub>=0.23.0,safetensors>=0.4.0,pydantic>=2.8.0,pydantic-settings>=2.10.1,einops>=0.4.0,joblib>=1.2.0,tqdm>=4.66.0,filelock>=3.11.0,typing_extensions>=4.12.0.Most of these (torch, scikit-learn, numpy, scipy, pandas, lightgbm, huggingface-hub, safetensors, joblib, tqdm, filelock) are already in the environment;
einops,pydantic-settingsand thetorch>=2.5floor are the items to check against the current pins. Themlxrequirement is macOS/arm64-only and does not apply to the Linux image.Open question - pretrained weights need to be baked into the image
TabPFN is a pretrained model: on first use the client downloads its checkpoint from Hugging Face (
huggingface-hub) into a local cache. Algorithm containers have no outbound internet access, sopip install tabpfnalone would leave the package raising a download error atfit()time in both Research and Backtest.For the library to be usable, the model checkpoints need to be pre-fetched at image build time and the cache directory (
HF_HOME/ the package's model cache path) pointed at that baked-in location, the same way other pretrained-model packages are handled. Worth confirming which classifier/regressor checkpoints to ship - the default ones are on the order of a few hundred MB.Proposed change
Add
tabpfn(plus any missing transitive dependencies) to the LEAN Python Docker image at the next batched library rebuild, and pre-download the default model checkpoints into the image cache so the estimators work offline.Source
QuantConnect support ticket [Intercom 215475645137717].