QuantConnect / QuantConnect/Lean
[Library Request] tabpfn
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 21.7k
- Forks
- 5.3k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 34
Description
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].
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the LEAN Python Docker image dependency pins and the existing handling for pretrained-model caches. Check the TabPFNClassifier and TabPFNRegressor entry points, verify that their checkpoints are available without outbound internet, and confirm that both estimators can reach fit() successfully in Research and Backtest.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, huggingface, python, pytorch
- Domain
- build-system, machine-learning
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100