Skip to content

A Minor Refactor ...#19

Merged
REIL-UConn merged 290 commits intoREIL-UConn:mainfrom
ben-nowacki:main
Feb 24, 2026
Merged

A Minor Refactor ...#19
REIL-UConn merged 290 commits intoREIL-UConn:mainfrom
ben-nowacki:main

Conversation

@ben-nowacki
Copy link
Copy Markdown
Collaborator

@ben-nowacki ben-nowacki commented Feb 22, 2026

Description

... just about everything changed

A quick summary:

  • All FeatureSet data is now backed by PyArrow tables. All downstream access utilizes no-copy views (e.g., splitting, batching, etc)
  • DAG topology restructured to better separate cocerns into distinct hierachical classses
    • ExperimentNode defines identity and unique UUID/str-based references within a given ExperimentContext
    • GraphNode defines topology and connection capabilities of subclasses
    • ComputeNode defines computation/forward interface for ModelNode and MergeNode
  • Samplers return BatchViews (no-copy views over FeatureSet). Not materialized into backend-specific tensors until ModelGraph execution
  • Orchestration layer implemented.
    • Experiment classes contains ModelGraph and list of ExperimentPhases to be executed. Also tracks results
    • TrainPhase, EvalPhase, and FitPhase defined for different model execution needs
    • Callbacks implemented for full control over injecting custom execution at any transition point within Experiment transitions (eg, on_phase_start/end) and phase transitions (e.g., on_epoch_start/end, on_batch_start/end).
    • Common Callbacks implemented: EarlyStopping, Evaluation, metric monitoring, etc
  • Serialization upgrades. All core classes are fully serializable via a structured Serializer class and registered Handlers. ModelGraph, Expeirment, etc can fully serialize state, configuration, and results, providing a common .save/.load interface.
  • Experiment evaluation strategies outlined with concrete subclass implemented for CrossValidation.
  • Visualizer class updated to reflect changes.
    • FeatureSets can now be visualized to show split nesting, overlap, and references features/targets/tags
    • ModelGraph now uses different color scheme for frozen vs non-frozen nodes
    • ExperimentPhases now implement the .visualize interface. TrainPhases introduce Samplers to the displayed flowchart, making it easy to see all phase configuration details.
  • Docs: reorganized into "how_to", "explanation", "tutorials", and "reference" to better align with the Diataxis model
    • Tutorials currently only has placeholder notebooks.

Related Issues

Closes #16

How Has This Been Tested?

  • Local pytest run (unit tests are severely lacking at the moment)
  • CI passes (all pass, but unit tests are minimal; no integration tests)
  • Manual checks (describe if needed)

Checklist

  • My code follows project style guidelines: nox -s pre-commit
  • I have added tests that prove my fix is effective or my feature works: nox -s unit
  • I have updated documentation if needed: nox -s docs
  • I have linked related issues

ben-nowacki and others added 30 commits November 11, 2025 15:20
…riants are used to store transformed (eg scaled/normalized) versions of the same key
@ben-nowacki ben-nowacki marked this pull request as draft February 23, 2026 18:17
@codecov-commenter
Copy link
Copy Markdown

@REIL-UConn REIL-UConn changed the title A Minor Refactor A Minor Refactor ... Feb 24, 2026
@REIL-UConn REIL-UConn marked this pull request as ready for review February 24, 2026 15:16
@REIL-UConn REIL-UConn merged commit 29d1000 into REIL-UConn:main Feb 24, 2026
16 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cross Validation support

3 participants