-
Notifications
You must be signed in to change notification settings - Fork 320
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
Implement set_ methods #3101
Implement set_ methods #3101
Conversation
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3101 +/- ##
==========================================
+ Coverage 95.42% 95.75% +0.33%
==========================================
Files 493 498 +5
Lines 49949 50257 +308
==========================================
+ Hits 47662 48123 +461
+ Misses 2287 2134 -153 ☔ View full report in Codecov by Sentry. |
b8561ae
to
6819cf3
Compare
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
6819cf3
to
f5f2c3e
Compare
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
f5f2c3e
to
d75a293
Compare
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
d75a293
to
d871091
Compare
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Differential Revision: D66304352
d871091
to
ab7a423
Compare
This pull request was exported from Phabricator. Differential Revision: D66304352 |
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
12c9072
to
69ed1f7
Compare
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: Implements new Client methods `configure_experiment`, `configure_optimization`, and `configure_generation_strategy`. Creates new module api.utils.instantiation that holds functions for converting from Configs to core Ax objects. These functions do not do validation, which will live on the configs themselves and be implemented in a separate diff. Note that this diff also does not implement saving to DB, although this will happen after each of these three methods are called if a config is provided **Id especially like comment on our use of SymPy** here to parse through objective and constraint strings -- what we've wound up with is much less verbose and I suspect much less error prone than what exists now in InstantiationBase while also providing a more natural user experience (ex. not getting tripped up by spacing, automatically handling inequality simplification like `(x1 + x2) / 2 + 0.5 >= 0` --> `-0.5 * x1 - 0.5 * x2 <= 1`, etc.) without any manual string parsing on our end at all. Im curious what people think of this strategy overall. SymPy usage occurs in `_parse_objective`, `_parse_parameter_constraint`, and `_parse_outcome_constraint`. Specific RFCs: * We made the decision earlier to combine the concepts of "outcome constraint" and objective thresholds into a single concept to make things clearer for our users -- do we still stand by this decision? Seeing it in practice I think it will help our users a ton but I want to confirm this before we get too far into implementation * We discussed previously that if we were using strings to represent objectives we wanted users to be able to specify optimization direction via coefficients (ex objective="loss" vs objective="-loss") **but we did not decide which direction a positive coefficient would indicate**. In this diff Ive implemented things such that a positive coefficient indicates minimization but Im happy to change -- I dont think one is better than the other we just need to be consistent. * To express relative outcome constraints, rather than use "%" like we do in AxClient, we ask the user multiply their bound by the term "baseline" (ex. "qps >= 0.95 * baseline" will constrain such that the QPS is at least 95% of the baseline arm's qps). To be honest we do this to make things play nice with SymPy but I also find it clearer, though Im curious what you all think Reviewed By: saitcakmak, lena-kashtelyan Differential Revision: D65826204
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
69ed1f7
to
c02f2a9
Compare
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
This pull request was exported from Phabricator. Differential Revision: D66304352 |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory. Reviewed By: lena-kashtelyan Differential Revision: D66304352
This pull request has been merged in 4554951. |
Summary: These methods are not strictly speaking "part of the API" but may be useful for developers and trusted partners. Each is fairly self explanatory.
Differential Revision: D66304352