-
Notifications
You must be signed in to change notification settings - Fork 358
Add storage layer support for PreferenceOptimizationConfig #4638
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
Closed
Conversation
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
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4638 +/- ##
==========================================
- Coverage 96.54% 96.54% -0.01%
==========================================
Files 561 561
Lines 58249 58429 +180
==========================================
+ Hits 56236 56409 +173
- Misses 2013 2020 +7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
…acebook#4632) Summary: Adds an `expect_relativized_outcomes` boolean flag to `PreferenceOptimizationConfig` to validate that outcomes are in the expected scale (relative percentage vs. absolute) before reaching the preference model. This flag will be used in later steps by the adapter layer to validate that appropriate transform pipelines are in place. meta: although we expect relativized outcomes in PTS where BOPE is primarily used, it is a natural default to expect the outcomes to be on their raw, original scale. This is part of [the plan](https://docs.google.com/document/d/185KQovo9WAkBsIzpERZR6apRg6lbayUI0o1wZjF9EnY/edit?usp=sharing) to replace PLBO node with regular MBM node + PrefOptConfig in PTS Reviewed By: Balandat Differential Revision: D87721201
Summary: Performs two validations for PLBO: (1) Transform validation ensures the Relativize transform presence matches the preference model's expectation to prevent scale mismatches, and (2) metric ordering validation ensures outcome model outputs match preference model inputs in the correct order to prevent silently optimizing the wrong objectives. meta: This is part of [the plan](https://docs.google.com/document/d/185KQovo9WAkBsIzpERZR6apRg6lbayUI0o1wZjF9EnY/edit?usp=sharing) to replace PLBO node with regular MBM node + PrefOptConfig in PTS Reviewed By: esantorella Differential Revision: D87721200
…4638) Summary: Enables PreferenceOptimizationConfig to be persisted and loaded via both SQA and JSON storage. The implementation follows the existing MultiObjective storage pattern, storing config-level properties (preference_profile_name, expect_relativized_outcomes) in the parent metric's properties field and reusing existing decoder logic for the objective metrics. Differential Revision: D88678911
189f190 to
2fd8766
Compare
ItsMrLin
added a commit
to ItsMrLin/Ax
that referenced
this pull request
Dec 10, 2025
…4638) Summary: Enables PreferenceOptimizationConfig to be persisted and loaded via both SQA and JSON storage. The implementation follows the existing MultiObjective storage pattern, storing config-level properties (preference_profile_name, expect_relativized_outcomes) in the parent metric's properties field and reusing existing decoder logic for the objective metrics. Differential Revision: D88678911
ItsMrLin
added a commit
to ItsMrLin/Ax
that referenced
this pull request
Dec 10, 2025
…4638) Summary: Enables PreferenceOptimizationConfig to be persisted and loaded via both SQA and JSON storage. The implementation follows the existing MultiObjective storage pattern, storing config-level properties (preference_profile_name, expect_relativized_outcomes) in the parent metric's properties field and reusing existing decoder logic for the objective metrics. Differential Revision: D88678911
ItsMrLin
added a commit
to ItsMrLin/Ax
that referenced
this pull request
Dec 10, 2025
…4638) Summary: Enables PreferenceOptimizationConfig to be persisted and loaded via both SQA and JSON storage. The implementation follows the existing MultiObjective storage pattern, storing config-level properties (preference_profile_name, expect_relativized_outcomes) in the parent metric's properties field and reusing existing decoder logic for the objective metrics. Differential Revision: D88678911
|
This pull request has been merged in 88d3dda. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CLA Signed
Do not delete this pull request or issue due to inactivity.
fb-exported
Merged
meta-exported
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:
Enables PreferenceOptimizationConfig to be persisted and loaded via both SQA and JSON storage.
The implementation follows the existing MultiObjective storage pattern, storing config-level properties (preference_profile_name, expect_relativized_outcomes) in the parent metric's properties field and reusing existing decoder logic for the objective metrics.
Differential Revision: D88678911