Releases: facebook/Ax
Releases · facebook/Ax
V0.4.0 - Maintenance Release
V0.4.0 - Maintenance Release
Compatibility
FYI on future deprecations:
- ALEBO AND REMBO will be deprecated and removed in the next release
New Features
- New, simplified TensorboardMetric (#2236)
- Add support for noisy problems to the Ax Benchmarks (#2255)
- Add ExternalGenerationNode (#2266)
- Add ExternalGenerationNode tutorial (#2281)
- Enable batched benchmarks (with BatchTrial) (#2331)
- Entropy of observations metric (#2340)
- Global Sensitivity Analysis for Categorical Features (#2357)
- Enable Sobol sensitivity analysis for SAAS models (#2363)
- Support fixed features in Service API (#2372)
- Support X_observed=None in Acquisition (#2393)
- Added PredictedOutcomesDotPlot to ax.analysis (#2303)
Bug Fixes
- Address misc lint+pyre failures impacting OSS linter (#2244)
- Improve flakey test reliability (#2246)
- Ensure minimize is passed to make_experiment (#2251)
- Fix GenerationNode transition logic (#2253)
- Handle errors in score trace computations (#2263)
- Fix Sphinx build errors (#2267)
- Fix flaky test for sensitivity analysis (#2268)
- Do not re-attach the same data in get_test_map_data_experiment (#2273)
- Fic issue with SQA storage never removing Data objects + upgrade testing for scheduler with Map Data intermediate results (#2276)
- Fix prediction on training data in transformed space when calculating model fit quality metrics (#2279)
- Fix integration test (#2282)
- do not group by time cols when creating observations (#2293)
- Fix test_compare_to_baseline_equal (#2296)
- Fix test_sqa_storage_map_metric_experiment (#2297)
- Ax Trial: Bug fix for error message that references nonexistent function (#2304)
- Cloning over _time_created when cloning Experiment (#2307)
- Fix "cannot collect test class 'TestMetric' because it has a init constructor (from: ax/core/tests/test_experiment.py)" (#2308)
- Address non-determinism in model.metric_names in tests (#2309)
- fix skip_runners_and_metrics for metrics on generator runs with mutable multi-objective optimization config (#2312)
- Properly handle generators in Data.from_multiple (#2318)
- Update some test helpers in core_stubs (#2319)
- Rework TransitionCriterion storage to remove circular dep (#2320)
- Fix generation node tests (#2322)
- Fix docstring in Ax SyntheticFunction._f, Pyre fix (#2329)
- Fix missing DB update on AxClient.stop_trial_early (#2337)
- Fix deprecation warning from pandas.read_json (#2346)
- Remove unused import (#2348)
- Add an error if "use_batch_trials" is passed to AxClient (#2355)
- Add List[str] to TConfig definition (#2360)
- HSS: only check for dependents if the root parameter is present when casting parameterization (#2361)
- Only untransform objective thresholds in TorchModelbridge.gen if they are not None (#2374)
- Make sure TestCase.setUp is executed in tests (#2384)
- Do not transform search space in-place in Modelbridge._get_transformed_gen_args (#2386)
- Fix warning filters in TestCase, introduce AxParameterWarning (#2389)
- Fix broken test from D56359739 (#2400)
- Fix sphinx build (#2419)
Other Changes
- Add output_tasks to MTGP in MBM (#2241)
- Pyre Configurationless migration (#2243, #2261, #2359, #2368)
- Update docstring for GenerationNode.gen & fit (#2245)
- Implement Data.eq (#2247)
- copying "cross_validation_helper" code from ax.plot (#2249)
- validate metrics after setting options (#2250)
- Introduces AxGenerationException to facilitate exception handling (#2254)
- Light cleanup of GenerationStrategyInterface (#2256)
- Add Sobol benchmark method (#2257)
- Light GenStrategy cleanup (#2258)
- Extend docstring of extract_parameter_constraints (#2262)
- Retain original data timestamp in experiment.clone_with (#2269)
- Docstring clarification (#2270)
- Clean up too-verbose logs (#2275)
- Add fit_out_of_design to TorchOptConfig (#2277)
- Update doc strings on TransitionCriterion to improve usability (#2278)
- split common target into native/non-native parts (#2280)
- Unblock node based GS in AxClient.get_optimization_trace (#2283)
- Allow customizing num_init_trials in MBM benchmark method (#2286)
- Update log message in WithDBSettingsBase._load_experiment_and_generation_strategy (#2287)
- Abstract out attribute copy during clone_to (#2288)
- updates trial status during clone (#2290)
- Plot top n features in countours (#2291)
- Expose fit_out_of_design (#2292)
- Clean up too verbose logs pt. 2 (#2298)
- Changed concatenation to f-strings (#2300)
- Silence input normalization warnings in cross validation (#2310)
- Clean up GenNode class 1/3 (#2313)
- Return weights from Acquisition.optimize (#2314)
- Upgrade actions/checkout & actions/setup-python (#2315)
- Rename OrderedChoiceEncode => OrderedChoiceToIntegerRange (#2323)
- Tests for sequential=True as default for models in ModelBridge factory (#2324)
- add MergeRepeatedMeasurements to the transform registry (#2325)
- Typing improvements to RangeParameter (#2327)
- update run_metadata in BaseTrial.run instead of overwriting (#2328)
- Allow for passing model_gen_kwargs in benchmarks (#2336)
- only infer reference point in global stopping if there is data (#2338)
- Allow bulk_fetch_trial_data to return mix of successes/failures (#2339)
- Tests which store and load dataframe and figure (#2344)
- Add e2e tests with HSS (#2345)
- Switch legacy LCE-A to qLogNEI from legacy ei_or_nei (#2352)
- Remove fall-back to list (#2353)
- Rename global stopping tests_strategies -> test_strategies (#2354)
- Update HSS dummy value logic & expose it in Cast ([#2362](https://git...
v0.3.7 - Maintenance Release
- Bump required Botorch version to v0.10.0
- New SLURM (via https://github.com/facebookincubator/submitit) tutorial notebook
- Miscellaneous big fixes and improvements
v0.3.6 - Maintenance Release
Compatibility
New Features
- Allow batch trial to be constructed with a list of
GeneratorRun
s (#1995). - Add
label_dict
to tile plots (#2007). - Augment
exp_to_df
with a "reason" column, improve readability of "feasibility" column (#1973, #2047). - Create output message comparing baseline to optimal result in
report_utils.py
(#1997, #1998, #2016, #2025, #2031, #2042, #2046, #2050). - Allow custom search spaces in
get_experiment_with_observations
(#2027). - Partial support for
GenerationNode
s inGenerationStrategy
(#1985, #1986, #1991, #2002, #2003, #2018, #2019, #2024, #2033, #2034, #2045).
Bug Fixes
- Fix usage of batch shape for warp transform (#1994).
- Use default dtype in
Experiment.clone_with
(375bf47). - Change DerelativizeTransform to not use model predictions when
use_raw_status_quo
isTrue
or when the status quo is infeasible (#2036).
Deprecations
- Rename
Models.BOTORCH
toModels.LEGACY_BOTORCH
(#1981).
Other Changes
- Do not call
dataset.X
in input transform constructors (#1993). - Move pending point utils to core Ax (#2006).
- Load Experiment without runners and metrics in the case where search space and optimization config are immutable (#1656).
- Workaround for tutorial visualizations not working in colab and remote setup (#2030).
- Add
extract_pending_observations
function that auto-deploys to the correct pending points function for the use case (#2039). - Wait to re-poll if all results are
MetricFetchE
(#2055). - Benchmarks:
v0.3.5 Release
- Bump required botorch version to 0.9.4
- Miscellaneous bug fixes and improvements
v0.3.4 Release
- Bump required botorch version to 0.9.2, fixing major bug in single-objective optimization with outcome constraints, see botorch release 0.9.2 for details
v0.3.3 Release
- Remove typeguard usage in trial attaching function and replace with manual runtime type checking (this was causing errors for some users in Google Colab notebooks)
- Miscellaneous bug fixes and improvements
v0.3.2 Release
- Bump required Botorch version to v0.8.5
- Miscellaneous big fixes and improvements
v0.3.1 Release
- Bump required Botorch version to v0.8.3
- Pin typeguard to version 2.13.3 while we investigate best course of action for dealing with backwards incompatible changes introduced in v3.0.0
v0.3.0 Release
- Bump required botorch version to 0.8.2
- Pinned sqlalchemy version to <2.0. We will update Ax to be compatible with the newly released sqlalchemy 2.0 in the near future
- Changes to Modular Botorch Model allow for heterogeneous modeling (i.e. many surrogates, one acquisition function). A tutorial jupyter notebook will be posted on ax.dev soon.
- Added optional argument surrogate_specs to BoTorchModel: an Optional Mapping of names onto SurrogateSpecs, which specify how to initialize specific Surrogates to model specific outcomes. If None is provided a single Surrogate will be created and set up automatically based on the data provided.
- Deprecated ListSurrogate (subsumed functionality into Surrogate)
- Removed Models.MOO_MODULAR (Models.BOTORCH_MODULAR supports multi-objective setups)
- Support partial objective thresholds
- Miscellaneous testing speedups
- Miscellaneous bug fixes
v0.2.10 Release
- Bump required botorch version to 0.8.0
- Enable relative outcome constraints
- Misc bugfixes and improvements
- Bugfix in BestPointMixin.get_trace
- Avoid unnecessary model re-fitting in some cases
- Allow inferred noise in benchmarking via infer_noise flag