Repository navigation
DeepTab 2.1.0
DeepTab 2.1 focuses on PreTab 1.0 integration, estimator reliability, persistence, training correctness, dependency security, and a stronger release pipeline.
This release also moves the supported Python range to 3.11–3.13 and includes fixes across preprocessing, metrics, HPO, retrieval models, LSS distributions, and model configuration.
Highlights
- Integrated PreTab 1.0 with preprocessing presets, a representation registry, canonical configuration, and dense/block output support.
- Improved save/load and estimator lifecycle reliability, including preprocessing state, loss functions, retrieval data, and architecture state.
- Fixed several silent correctness issues affecting training, metrics, HPO, LSS, TabR, ModernNCA, and architecture configuration.
- Strengthened CI/CD with release-branch CI, an aggregate
CI Successgate, dependency endpoint testing, installed-wheel validation, and release-tag ancestry checks. - Updated Python and dependency support to improve compatibility and security.
Added
- PreTab presets and a representation registry for selecting preprocessing strategies.
- Canonical
PreprocessingConfigfields with legacy alias resolution and actionable errors for unsupported settings or missing optional dependencies. - Block and dense output options in
build_preprocessor. - Saved preprocessor specifications, fingerprints, and feature widths for inspecting and restoring fitted preprocessing.
Changed
Python and dependency support
- DeepTab now requires Python 3.11–3.13 (
>=3.11,<3.14). Python 3.10 reached end of life on 2026-10-01 and is no longer supported. - Users requiring Python 3.10 should remain on DeepTab 2.0.x with compatible dependencies.
- Require pandas
>=2.2.2,<3and SciPy>=1.16,<2. The SciPy minimum avoids a reproduced native loader failure on Apple Silicon. - Documentation builds require Python 3.12 or 3.13.
Preprocessing
- Integrated PreTab 1.0.
- New fits default numerical
output_dimto7; explicitly configured widths remain unchanged. - Resolve preprocessing tasks automatically from estimator type.
- Propagate
ObservabilityConfig.verbosityto preprocessing. - Historical DeepTab 2.0 PLE artifacts require their original dependency environment and are not automatically converted.
Optional retrieval
- Moved FAISS and delu to the explicit
tabrextra. - The default installation and
allobservability bundle no longer install native retrieval packages. - Native TabR remains unsupported on macOS arm64 and now fails before conflicting native imports.
Logging
- Model save/load status messages now use configured logging instead of
print().
Fixed
Estimator state and persistence
- Preserve an existing fitted estimator when refit input validation fails, while correctly invalidating state when rebuilding has already started (#424, #426, #449).
- Apply
set_params()overrides to the actual model configuration and reject unsupported parameters correctly (#410, #449). - Refresh supplied data, validation splits, and loaders during
rebuild=Falsecontinuation while retaining compatible weights and fitted preprocessing. - Continue from pretrained weights by default in
fit()(#446). - Persist and restore fitted loss functions and NDTF's generated tree architecture (#444, #445).
- Default
load()to CPU rather than automatically selecting hardware (#465). - Preserve TabR and ModernNCA candidate data across save/load and loaded continuation.
- Prevent retrieval query-label leakage in TabR and ModernNCA (#413).
- Correct ModernNCA regression and binary-classification reload behavior and convert binary votes to real logits (#268).
Training, metrics, and HPO
- Preserve string class labels in
AccuracyandF1Score, including explicitpos_labelsupport for binary string labels. - Respect fit-level arguments, optimizer settings, and custom regression losses instead of silently overriding them (#415, #430, #442).
- Respect checkpoint paths and requested monitor/mode settings, resolve
best_epoch, and timestamp default checkpoint directories (#411, #425). - Correct seeding, callbacks, fit-state transitions, and inference device handling (#452).
- Encode classification labels consistently and route metrics to labels, probabilities, or raw outputs as required (#409, #443).
- Aggregate training and validation metrics over complete epochs and correctly reset metric state.
- Correct expected calibration error handling and include confidence
1.0in calibration bins (#421). - Correct HPO trial selection, pruning, and winner refitting (#420).
Data and preprocessing
- Correct encoding output, categorical-feature metadata, input-dimension typing, and PreTab preprocessing compatibility (#422, #451).
- Cast concatenated features to floating point for non-embedding architectures.
- Normalize
Nonetonp.nanin object columns. - Reject duplicate columns and correctly impute all-NaN columns.
- Reject
categorical_method="none"with a clear configuration error. - Correct regression target-shape handling (#441).
Architectures and distributions
- Correct architecture configuration options and neural-block behavior (#423, #450).
- Preserve strict custom architecture constructor signatures when supplying binary task metadata.
- Correct MLP bias handling and NDTF backward computation on MPS without changing saved parameter layouts.
- Apply the Mamba block correctly in
MambaTab.forward(#435). - Apply pre-normalization and dropout correctly around RowColTransformer attention (#436).
- Align contrastive pretraining anchors with their corresponding pairs (#437).
- Preserve parameter axes in ensemble LSS outputs (#447).
- Correct LSS scoring, distribution handling, and persistence (#419).
- Fix multinomial softmax, JohnsonSU naming, and singleton-dimension handling (#453).
- Use PyTorch's probability convention in
NegativeBinomial(#429). - Correct the inverted log-term sign in
GammaDeviance(#427).
Security
- Require Torch
>=2.13,<2.15. - Require setuptools
>=83,<84. - Require Lightning
>=2.6.6,<3. - Require Accelerate
>=1.15,<2. - Require TensorBoard
>=2.21,<3for TensorBoard and tracking extras. - Updated vulnerable locked dependencies.
- Removed blanket security-audit ignores.
- Updated the separately installed documentation HTML cleaner to
0.4.5.
CI, documentation, and maintenance
- Run CI automatically on
release/**branches. - Added the aggregate
CI Successrelease and branch-protection gate. - Validate release-tag ancestry before packaging, testing, and publication.
- Validate independently resolved minimum and newest supported dependency profiles.
- Test installed-wheel training and save/load workflows in CI.
- Correct CI dependency installation, runner-cache scope, and NumPy typing checks.
- Enable Prettier through pre-commit hooks and expand regression coverage.
- Clarify installation profiles, preprocessing widths, historical artifact limitations, supported environments, and the maintainer release process (#454).
- Centralize preprocessor construction and neural-block imports and remove unused helpers and stub modules.
Contributors
DeepTab 2.1.0 was primarily developed and coordinated by @mkumar73, with additional architecture, training, metric, and distribution fixes contributed by @ChrisW09.
Special thanks contributors:
- @ChrisW09 for MambaTab forward-path fixes (#435), contrastive pretraining alignment (#437), RowColTransformer attention fixes (#436), GammaDeviance correction (#427), and NegativeBinomial probability handling (#429).
- @mkumar73 for the broader DeepTab 2.1 integration and stabilization, including PreTab 1.0 integration, estimator lifecycle and persistence improvements, preprocessing, training, metrics, HPO, CI/CD, dependency compatibility, security updates, documentation, and release preparation (#477, #480).
Upgrade notes
Upgrade with:
pip install -U deeptab