-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add more powerful drift windowing strategies, warmup and dynamic thresholds #564
feat: Add more powerful drift windowing strategies, warmup and dynamic thresholds #564
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #564 +/- ##
==========================================
- Coverage 84.87% 84.86% -0.01%
==========================================
Files 224 233 +9
Lines 10300 10480 +180
==========================================
+ Hits 8742 8894 +152
- Misses 1558 1586 +28 ☔ View full report in Codecov by Sentry. |
@MaxiBoether fyi. this should be ready now :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, Robin. I did a first pass. While I did not fully grasp everything yet, I think my major feedback for the next iteration of this PR is that we should think about the interactions between the different components and potentially document them in some README.
In particular, we have aggregation logic for decisions in the pydantic module, we have the drift detectors and then some duplicated decision logic in the decision engine. I think we want to consolidate the how we make drift/no drift decisions in a central place somehow. I also propose to reconsider the naming of the windowing manager. Last, I also encountered some duplication in the new pydantic classes.
I hope my comments make sense. Basically I think the naming and levels of abstraction need some adjustment. Happy to discuss tomorrow or via Github comments!
modyn/config/schema/pipeline/trigger/drift/detection_window/amount.py
Outdated
Show resolved
Hide resolved
modyn/config/schema/pipeline/trigger/drift/detection_window/timestamp.py
Outdated
Show resolved
Hide resolved
modyn/config/schema/pipeline/trigger/drift/detection_window/window.py
Outdated
Show resolved
Hide resolved
modyn/supervisor/internal/triggers/drift/detection_window/timestamp.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, Robin! This is looking good. Most of my comments are nitpicky, I had a couple of smaller questions in some parts
modyn/config/schema/pipeline/trigger/drift/detection_window/amount.py
Outdated
Show resolved
Hide resolved
modyn/config/schema/pipeline/trigger/drift/detection_window/amount.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!! Some last nitpicky comments, feel free to merge afterwards.
b870af1
to
ea036c1
Compare
Motivation
Allow for more powerful drift windowing, dynamic drift threshold as well as a warmup period (for calibration)