tabicl_baseline: thread offload_mode/batch_size/disk_offload_dir through - #213
Open
amrit110 wants to merge 2 commits into
Open
tabicl_baseline: thread offload_mode/batch_size/disk_offload_dir through#213amrit110 wants to merge 2 commits into
amrit110 wants to merge 2 commits into
Conversation
Every prior TabICL comparator run in this project scored the basic 17-feature panel, never the strong 609-feature one the GBM baseline uses, because a naive fit at the standard row/estimator settings costs an estimated ~70GB per predict_proba call and reliably OOM-killed the host. TabICLClassifier already exposes offload_mode/batch_size/disk_offload_dir to manage exactly this (the column-wise embedding tensor is the documented memory bottleneck), but none of it was wired through. This threads those three params from fit_tabicl_baselines through to the classifier, and narrows check_inference_cost's RAM-budget gate to skip only when offload_mode="disk" with a real disk_offload_dir set, since that combination changes the actual constraint from resident memory to disk I/O, which the existing GB estimate does not model. docs/tabicl_strong_feature_comparison.md documents the first strong-panel TabICL run this unblocks, including two failed configurations along the way (a disk-offload I/O stall, and a resident-memory OOM from fitting all 12 models up front) before a one-model-at-a-time loop completed cleanly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #213 +/- ##
=======================================
Coverage 89.03% 89.03%
=======================================
Files 57 57
Lines 8491 8493 +2
=======================================
+ Hits 7560 7562 +2
Misses 931 931
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
predict_probacall and reliably OOM-killed the host (three confirmed kills, 2026-08-23).TabICLClassifieralready exposesoffload_mode/batch_size/disk_offload_dirto manage exactly this memory bottleneck, but none of it was wired through this project'stabicl_baseline.py. This threads those three params throughfit_tabicl_baselines->_fit_one_tabicl-> the classifier, and narrowscheck_inference_cost's RAM-budget gate to skip only foroffload_mode="disk"with a realdisk_offload_dir, since that combination changes the actual constraint from resident memory to disk I/O (which the existing GB estimate doesn't model, and shouldn't be trusted to block).docs/tabicl_strong_feature_comparison.md: the first TabICL run on the strong feature panel this unblocks, with bootstrap CIs against the tuned GBM on all 12 MIMIC alert cells, plus an honest account of two failed configurations before a one-model-at-a-time loop completed cleanly.Test plan
uv run ruff check/uv run ruff format --checkclean on both changed filesuv run mypy odyssey/inference/tabicl_baseline.pycleanuv run pytest tests/odyssey/inference/test_tabicl_baseline.py— 20/20 passed locallyodyssey-cbm-a100): all 12 (event, horizon) cells fit and scored without OOM usingoffload_mode="cpu",n_estimators=1, reduced row cap; seedocs/tabicl_strong_feature_comparison.mdfor full results and caveats🤖 Generated with Claude Code