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)
- Standardization check for entropy of observations (#2366)
- Unify interface and data handling of model training and generalization metrics (#2367)
- Silence fit tracking metrics logs in BenchmarkMethod (#2370)
- Silence some common warnings in tests (#2377)
- [Easy] Address torch.tensor warnings in derivative sensitivity measures (#2378)
- Only Plot Nominal Variable separately in Sensitivity Analysis plot (#2381)
- Make objective direction checks more strict (#2382)
- Remove inferring reference point in Scheduler for GSS (#2383)
- enable repeated calling MergeRepeatedMeasurements transform (#2375)
- Add EUBO to ax botorch modular registry (#2388)
- Support non-random dummy values in HSS (#2390)
- Support empty observations in core_stubs / get_experiment_with_observations (#2391)
- Replace List with Sequence when typing MBM (#2394)
- Use codecov github action for uploading coverage (#2406)
- Update GenerationNode.model_to_gen_from_name (#2407)
- Add a helper for setting RNG seed (#2408)
- Import OrderedDict from collections (#2414)
- Remove unused refit_on_update kwarg (#2415)
Deprecations
- Address numpy deprecation warning (#2272)
- Reap deprecated argument transform_outcomes_and_configs in get_pareto_frontier_and_configs (#2274)
- Replace calls to deprecated mvn argument of GPyTorchPosterior with distribution (#2289)
- Delete model_transitions (#2295)
- Reap get_GPKG & Models.GPKG (#2316)
- Reap get_GPMES & Models.GPMES (#2317)
- Reap get_sequential_optimization_scheduler_options (#2335)
- Remove gen_unlimited trials (#2347)
- Delete unused scripts (#2350)
- Set deprecation for sooner for ALEBO and REMBO (warning has been around for a year) (#2351)
- Replace usage of deprecated FixedNoiseGP with SingleTaskGP (#2413)
- Remove FixedNoiseMultiTaskGP import (#2416)