Skip to content

V0.4.1 - Maintenance Release

Compare
Choose a tag to compare
@mgarrard mgarrard released this 23 Jul 19:07
· 550 commits to main since this release

Compatibility

  • Require BoTorch version v0.11.3 (#2594)

New Features

  • Add TimeAsFeature transform (#2438)
  • Add tutorial to mimic parameter constraint functionality for nonlinear constraints (#2500)
  • Add option for using posterior predictive in cross-validation (#2517)
  • Refactor BestModelSelctor to operate on ModelSpecs (#2557)
  • Templates for questions on github (#2575)

Bug Fixes

  • Update tests so that data contains metric_names that are on the corresponding experiments (#2422)
  • Use name of enum instead of casting to string (#2423)
  • Fill missing values with NaN in observation_data_to_array (#2430)
  • Prevent unused NaNs from marking constraints as infeasible in pareto_frontier_evaluator (#2431)
  • Add copyright comment (#2445)
  • Fix various spelling errors in GS (#2448)
  • Add warning when metric is skipped because it’s not on the experiment (#2449)
  • Stop ignoring unused keyword arguments (#2451)
  • Improve error clarity in TensorboardMetric (#2456)
  • Save status quo name and feature when multiple status quo present (#2457)
  • Remove unused import from MOO tutorial (#2462)
  • Update MBM tutorial with modern, non-deprecated functionality and accurate description of defaults (#2466)
  • Include CANDIDATE trials in pending_features (#2482)
  • Test that we’re not referencing same parameter dict in ObservationFeatures.from_arm (#2483)
  • Do not deduplicate against FAILED in GenerationStrategy/Node (#2488)
  • Use updated BoTorch HitAndRunPolytopeSampler for Sobol fallback (#2492)
  • Fix test_optimize_l0_homotopy test numerics (#2493)
  • Remove unused imports from ax/ (#2501)
  • Remove unused experiment arg from compute_model_fit_metrics_from_modelbridge (#2504)
  • Fix equality check for floats (#2507)
  • Fix MOO tutorial (#2509)
  • Remove unnecessary pyre-fixme (#2513)
  • Disallow modeling metrics not attached to the experiment (#2518)
  • Fix pending point bug in ExternalGenerationNode (#2521)
  • Fix num_bayesopt_trials logic to support ensembling (#2522)
  • Update np.Inf -> np.inf per numpy 2.0 release (#2527)
  • Reinforce testenv in Ax test case (#2530)
  • Avoid errors in telemetry due to node-based GenerationStrategy (#2554)
  • Use fast_botorch_optimize to fix test timeouts (#2556)
  • Make MBM acquisition pass the correct argos to each BoTorch optimizer (#2571)
  • Remove unnecessary special-casing for qEHVI and qMES from optimizer argparse (#2572)
  • Remove link to the Raytune Tutorial (#2578)
  • Expand trials_as_df to support multiple GenerationNodes in a single trial (#2577)
  • Fixing typo in docstring of get_sobol_botorch_modular_acquisition (#2583)
  • Fix incorrect status quo update warning (#2586)

Other Changes

  • Update PairwiseModelBridge to support non-preference outcomes (#2424)
  • Allow more flexible definition of which trial statuses to fit (#2432)
  • Support multiple node generation for single trial (#2428)
  • Add TimeAsFeature to transform registery (#2439)
  • Handle pending observations in TimeAsFeature (#2440)
  • Handle ObservationFeatures without trial_index in Realativize (#2441)
  • Pyre update (#2442)
  • Creating preference testing stub (#2443)
  • Add qExpectedUtilityOfBestOption to test_PairwiseModelBridge (#2444)
  • Add transition edges property to GenerationNode (https://github.com/facebook/Ax/pull/24460)
  • Update should_transition_to_next_node to handle multiple transition edges (#2447)
  • Rename TaskEncode transform to TaskChoiceToIntTaskChoice (#2450)
  • Explicit mention that AxService API is recommended throughout docs (#2453)
  • Add validation of transition edges to GS (#2454)
  • Another pyre update (#2463)
  • Always consider choice parameters with 2 values as ordered (#2464)
  • Fix forward (#2465 )
  • Change flag name from supress_generation_errors to raise_generation_errors (#2468)
  • Improve typing in SyntheticFunctions (#2470)
  • Clean up unnecessary todos in _get_model_state_from_last_generator_run (#2476)
  • Update docstring to signal in-place_modification (#2477)
  • Test against python 3.12 (#2478)
  • Have MBM only pass acqf input constructor kwargs to BoTorch when they are not None (#2480)
  • Enable evaluating Branin test experiments with None status quo (#2489)
  • Remove unused suppress_all_errors kwarg (#2491)
  • Adding analysis_batch class to ax.analysis (#2498)
  • Adding schema for AnalysisBatch and Analysis (#2499)
  • Passing current_node_name when gs is node based (#2505)
  • Put model fit data in gen_metadata (#2511)
  • Save full[er] GeneratorRuns (#2515)
  • Filter InputDataWarning in model cross-validation (#2531)
  • Ignore sequential argument when using optimize_acqf_mixed (#2545)
  • Adding df and fig properties to BaseAnalysis and BasePlotlyVisualizations to support loading analyses back from database (#2549)
  • Encode and decode ax analysis objects (#2550)
  • Downgrade error to beta-warning for gs selection in AxClient with BatchTrials (#2551)
  • Update gen from multiple nodes to support generating multiple arms per node (#2469)
  • Add storage support for BestModelSelector (#2561)
  • Minor updates to SQAnalysis schema definition (#2564)
  • Improve typing of *_kwargs fields in ModelSpec (#2565)
  • Add an option to pass model_cv_kwargs to ModelSpec.cross_validate (#2566)
  • Support customizing model_cv_kwargs in SingleDiagnosticBestModelSelector (#2567)
  • Change type of json decoder registries to include callables (#2570)
  • Set minimize=False if lower_is_better=False in BenchmarkProblem (#2573)
  • Add additional validation to transition criterion to not allow transition_to to be undf except for MaxGenParallelism (#2579)
  • Minor updates to AxClient.fit_model (#2580)
  • Storage support for ScaleMaternKernel & Default (#2585)
  • Raise error if enum not provided for a value we’re trying to encode (#2587)
  • Change SurrogateBenchmarkProblem to TorchModelBridge (#2591)

Deprecations

  • Deprecate legacy fully Bayesian registry entries (https://github.com/facebook/Ax/pull/2425/commits)
  • Reap legacy fully Bayesian models (#2426)
  • Remove ax.models.troch.frontier_utils (#2433)
  • Remove REMBO & ALEBO (#2458)
  • Clean up factory functions for legacy models (#2508)
  • Remove MultiFidelityAcquisition (#2520)
  • Delete register_metric and remove default metric from register_metrics (#2560)