Skip to content

Conversation

@CristianLara
Copy link
Contributor

back reference

Ax counterpart to the same PR in botorch meta-pytorch/botorch#2969

context

The release workflow failed while creating the new docusaurus version for 1.1.0 https://github.com/facebook/Ax/actions/runs/16917549143/job/47935175650

solution

  1. Forked docusaurus-versions to docusaurus-versions-1.1.0
    • I could have made these changes directly to the release branch docusaurus-versions as it's not a protected branch but figured it'd be good to make this a PR
  2. merged main into docusaurus-versions-1.1.0 so it has the latest changes
  3. Created a new docs version in docusaurus for 1.1.0 by running yarn && yarn docusaurus docs:version 1.1.0
# pull and prepare branches
git checkout main && git pull
git checkout docusaurus-versions && git pull
git checkout -b docusaurus-versions-1.1.0

# catch up with main
git merge main

# create new docusaurus version commit
cd website && yarn && yarn docusaurus docs:version 1.1.0
cd .. && git add . && git commit

The result is essentially two commits: a merge commit to catch up with master, and the docusaurus versioning commit

Once this PR is merged we can trigger the Publish Website workflow from the UI (or let the nightly job run it) which will deploy these latest website changes

notes

Note that this branch is being merged not intomain, but into the docusaurus-versions release branch. We don't commit docusaurus version to main as the "Meta CLA Check" does not permit our Github Actions workflow to commit to main.

test plan

Here's the result of running ./scripts/make_docs.sh on this branch: (version picker starts to fade while I click for screenshot...)

SCR-20250812-ndjg

saitcakmak and others added 30 commits June 3, 2025 17:00
Summary:
Pull Request resolved: #3851

Introduces `ExperimentData`, a container of two dataframes that is intended to replace the use of lists of `Observation` objects within the `Adapter` and `Transform` layers. By replacing lists of objects with dataframes, we enable vectorized operations (replacing many nested for loops), which results in 4-5x speed up in data processing within Adapter.

        arm_data: A dataframe containing columns for trial index, arm name, and
            the parameterization of each arm. Each row corresponds to
            a (trial_index, arm_name) pair.
        observation_data: A dataframe containing columns for trial index, arm name,
            any map keys (e.g., progression / step), and the mean and sem observations
            for the metrics. Each row corresponds to an observation for the given
            trial index, arm name, and map key values / progression.
            This is typically constructed by pivoting `(Map)Data.true_df`.

Reviewed By: esantorella

Differential Revision: D69943574

fbshipit-source-id: 26a9f77a2d8ef58b7bffa3ac37ffb5e317bd9b88
Summary:
Pull Request resolved: #3858

`OneHot` transform had a duplicate `_` in the transformed parameter names. This diff removes that. With this change, the transformed parameter name will be
- For two values only: `parameter_OH_PARAM`, which was `parameter_OH_PARAM_`
- For more values: `parameter_OH_PARAM_i` which was `parameter_OH_PARAM__i`.

Reviewed By: Balandat

Differential Revision: D75892920

fbshipit-source-id: f5980968dca45ab7403af913b371c5a35334aa29
…ts in Experiment (#3859)

Summary:
Pull Request resolved: #3859

Allow the `Data` objects in an `Experiment` to be of a different type than `experiment.default_data_constructor()`

Reviewed By: esantorella

Differential Revision: D75890784

fbshipit-source-id: c1c6eeaccea750f8cddd27a3925ad75e9d485c43
Summary: Pull Request resolved: #3829

Reviewed By: lena-kashtelyan

Differential Revision: D74902347

fbshipit-source-id: 9876ab3d27c040130ca4b3b0acf85a2e6b531747
Summary:
Pull Request resolved: #3852

This diff adds a `metadata` column to `arm_data` of `ExperimentData`, which was introduced in the previous diff. The `metadata` is extracted from the `GeneratorRun.candidate_metadata_by_arm_signature` (thus available at `(trial_index, arm_name)` level, same as the index of `arm_data`), and is traditionally present as `ObservationFeatures.metadata`. This is extracted in `TorchAdapter._fit` and passed down to `Generator.fit` (only to be used by TRBO AFAICT).

Alternative: We could add metadata as a separate dataframe on `ExperimentData` but I don't see a clear benefit from doing so.
- Pros: It'd eliminate the need to exclude `metadata` column when accessing only the parameterizations from `arm_data`, which we need to do in a few places.
- Cons: When extracting the metadata in `Adapter.fit`, we would have additional indexing operations to ensure that the `metadata` matches the index of `arm_data` and `observation_data`.

Reviewed By: esantorella

Differential Revision: D72801799

fbshipit-source-id: 22339f159e3469bee399a8760beb5ff1941e5307
Summary:
Pull Request resolved: #3863

As titled. Checks for feasibility of the generated candidate and falls back to Sobol if it is infeasible.

Fixes #3862

Reviewed By: Balandat

Differential Revision: D75956688

fbshipit-source-id: bea28b755b16d7a5c06a10d1334de993c635fe58
Summary:
Making sure that the torch_device is set to the same as the model in the client.compute_analyses in case CUDA is used in the Modular BoTorch Interface.

Related to the issue [https://github.com/facebook/Ax/issues/3813](https://github.com/facebook/Ax/issues/3813)
and without the messed-up formatting from #3833, following Balandat's advice.

Pull Request resolved: #3839

Reviewed By: hvarfner

Differential Revision: D75758870

Pulled By: Balandat

fbshipit-source-id: bec3a7c51219a334192db390f1ed93d4d9571929
Summary:
Pull Request resolved: #3854

Update `ArmEffectsPlot` and `ScatterPlot` to accept all `TrialStatus`'s that are expecting data, not just `COMPLETED`.

Reviewed By: sdaulton

Differential Revision: D75886336

fbshipit-source-id: 9a55cb7b1ccde48783e387be4e8c9da8b56a9c08
Summary:
Pull Request resolved: #3869

This commit adds a new color_constants.py file to that centralizes color definitions for Ax visualizations. The file imports base colors creates semantic aliases that clearly describe their usage contexts.

The primary goal is to encourage consistent color usage across the Ax visualization system by:

1. Providing descriptive, semantic names for colors based on their functional purpose
2. Creating a single source of truth for color definitions
3. Making color schemes more discoverable for developers

Reviewed By: eonofrey

Differential Revision: D75886310

fbshipit-source-id: 719708ddc163d96c527aa50385befa96dfe91714
Summary:
Pull Request resolved: #3861

Adding auxiliary experiment methods to Experiment class to add (as first experiment) and find auxiliary experiment.

Meta: Add to first is needed as we currently support one aux PE experiment and the first one is the one with highest priority and is the one that will be used. Find aux experiment is needed to support pref opt config (see the diff on top), which will allow us to identify which PE exp to use instead of relying on the order.

Reviewed By: mgarrard

Differential Revision: D75696082

fbshipit-source-id: cff96ee75ba29f5831e3136ee47df0d7d931f9b3
Summary:
Pull Request resolved: #3870

Fixing a typo in an error message.

Reviewed By: bernardbeckerman

Differential Revision: D75987184

fbshipit-source-id: bd27b2766889442e0a9e3cf31c2464e61dcdc691
Summary:
Pull Request resolved: #3844

This diff updates the current `gen` method to be called `gen_single_trial` -- we will update gen_multiple_trials_with_multiple_models to be called gen in the next diff (initially tried to do them in the same diff and it was very confusing).

I decided to replace everything that currently calls gen with gen_single_trial instead of replace some of them with gen_multi as i think it kept things cleaner. This primarily effects test files.

Reviewed By: lena-kashtelyan, esantorella

Differential Revision: D75688420

fbshipit-source-id: 2b338f56fcd56e237394b52a609d92e1e2293b7a
Summary:
Pull Request resolved: #3846

We want the most powerful gen to be our default gen, and that's gen_for_multi_with_multi, in the previous diff we free'd up the name gen

Reviewed By: saitcakmak

Differential Revision: D75718755

fbshipit-source-id: 4670e5f68d7828ca32d965ee614f01ad274c3726
Summary:
Pull Request resolved: #3856

We will switch to using `ExperimentData` rather than `list[Observation]` within the `Adapter`, which necessitates replacing `list[Observation]` input to `Transform` constructors with `ExperimentData`, and supporting transforms with `ExperimentData`.

This diff only updates the `Transform` constructors to accept the new argument and adds `Transform.transform_experiment_data` to the base class. The transforms will be updated in following diffs to make use of the new argument in the constructor and implement the `transform_experiment_data` method.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D72664137

fbshipit-source-id: 27843bcaa751676f5684a7d0b8c52e4cbe46a75e
Summary:
Pull Request resolved: #3871

As titled. Supports transforming `ExperimentData` with `IntToFloat` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D75903694

fbshipit-source-id: 8cad41c0734a7456ff4539a3b824df9100f8f578
Summary:
Pull Request resolved: #3872

As titled. Supports transforming `ExperimentData` with `Log` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: SebastianAment

Differential Revision: D75905207

fbshipit-source-id: 5950f64a6b2757f8fd5173433585ea198d4fc232
Summary:
Pull Request resolved: #3877

Updates naming of color constants used throughout the Ax codebase

Reviewed By: eonofrey

Differential Revision: D76043167

fbshipit-source-id: aaed8c346aeb2703c8b66f5355a91b520f9e7078
Summary:
Pull Request resolved: #3857

The `no_bayesian_optimization` arg has been replaced by `force_random_search`, and deprecation messages have been in place for 9 months (#2693). This diff deprecates.

Reviewed By: ltiao, SebastianAment, saitcakmak

Differential Revision: D75891247

fbshipit-source-id: e75464390ba24e8f0d85afe423af1c9df944fa30
Summary:
Pull Request resolved: #3884

included is a minor fix that checks status of status_quo and doesn't draw the line if it is a candidate. It does that by checking if the metric mean is calculated or not.
Here is a working demo: https://fburl.com/anp/84ecgfep

Reviewed By: mpolson64

Differential Revision: D75976043

fbshipit-source-id: ad75c05a6dbdbeb5b20e673ab3b67026798b74fb
Summary:
Pull Request resolved: #3873

As titled. Supports transforming `ExperimentData` with `RemoveFixed` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D75906004

fbshipit-source-id: 39403b3c791bc7514a4e6771a3d773e41006857a
Summary:
Pull Request resolved: #3874

As titled. Supports transforming `ExperimentData` with `ChoiceToNumericChoice` transform and subclasses.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D75967458

fbshipit-source-id: 9f70c35f85b80761df2a87adbf1db433cbb3fe7b
Summary:
Pull Request resolved: #3875

As titled. Supports transforming `ExperimentData` with `FillMissingParameters` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D75972103

fbshipit-source-id: 739f332fc2e8d7ae1f749ff7e3562ba0e1a9ce7a
Summary:
Pull Request resolved: #3876

As titled. Supports transforming `ExperimentData` with `Logit` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D75973054

fbshipit-source-id: a23f9c27f396e5328f0f83293ec9454c894a7788
Summary:
Pull Request resolved: #3886

As titled. Supports transforming `ExperimentData` with `OneHot` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D76074577

fbshipit-source-id: 07f17b5f91a7e1ce5c6d9eb91dd034bec17d6f89
Summary:
Pull Request resolved: #3891

* Speed up sensitivity computations by using batch dimension -- use an x of shape [n, 1, d] instead of [n, d]. This avoids the costly creation of an (n, n) covariance matrix when we only need its diagonal elements.
* Stop doing those computations in minibatches, which was done to avoid the superlinear memory usage from large batch sizes (Use mini batches in SobolSensitivityGPMean #1848 ), which came from the (n,n) covariance matrix we no longer compute.

Reviewed By: Balandat

Differential Revision: D75712208

fbshipit-source-id: 19714227a6f0124064b3f4576ab8bd34eca3c708
Summary:
Pull Request resolved: #3892

Two arguments are no longer used, one as a result of D75712208 and one has long been unused

Reviewed By: saitcakmak

Differential Revision: D76151380

fbshipit-source-id: f9572bb76282b90001c1c50bbe173900bc8e4b11
Summary:
Pull Request resolved: #3887

As titled. Supports transforming `ExperimentData` with `BilogY` transform. Also removes unnecessary `DataRequiredError`, since the transform does not actually utilize the provided data in the constructor.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D76081492

fbshipit-source-id: e4c59f64ffc9a9e34701be9db54ad2b9e81569ef
Summary:
Pull Request resolved: #3888

As titled. Supports transforming `ExperimentData` with `UnitX` transform.

Background: As part of the larger refactor, we will be using `ExperimentData` in place of `list[Observation]` within the `Adapter`.
- The transforms will be initialized using `ExperimentData`. The `observations` input to the constructors may be deprecated once the use cases are updated.
- The training data for `Adapter` will be represented with `ExperimentData` and will be transformed using `transform_experiment_data`.
- For misc input / output to various `Adapter` and other methods, the `Observation / ObservationFeatures / ObservationData` objects will remain. To support these, we will retain the existing transform methods that service these objects.
- Since `ExperimentData` is not planned to be used as an output of user facing methods, we do not need to untransform it. We are not planning to implement`untransform_experiment_data`.

Reviewed By: esantorella

Differential Revision: D76085733

fbshipit-source-id: 40a07675cfc4252f9d5699423e6e2bfea5295378
Summary:
Pull Request resolved: #3893

These tests were removed in D74846187 because they were slow. D75569748 and D75712208 sped them up.

Reviewed By: saitcakmak

Differential Revision: D75712258

fbshipit-source-id: 24dd33697d9db4ec6bcc9ebf4a727181a8873906
Summary:
Pull Request resolved: #3885

Arm order in metric results were displayed per the data order. This led to a random ordering of arms in the UI {F1977891605}

To fix this, we want to sort the arm ordering in data.
Data will be sorted by trail_index, then arm_name. Arm name will be sorted as 'custom_name' < '0_1' < '0_2' < '0_11' < '0_100'

Reviewed By: lena-kashtelyan, saitcakmak

Differential Revision: D74409276

fbshipit-source-id: 51d4de4e50f20ac009ed29ec58d4a417be2857a1
saitcakmak and others added 24 commits August 7, 2025 08:42
#4115)

Summary:
Pull Request resolved: #4115

If any progression value is missing in `ObservationFeatures.metadata`, `MapKeyToFloat._transform_observation_feature` fills it with the upper bound of the corresponding parameter. This encodes the assumption that any data without a progression value corresponds to a completed trial (as a trial can be completed with `client.complete_trial` without providing progression).

The initial implementation of `transform_experiment_data` did not account for the possibility of NaN values in the corresponding index. This diff updates the method to check for NaN progression values and fill them with the target progression.

Reviewed By: ltiao

Differential Revision: D79750521

fbshipit-source-id: f5aef946fe55db84af39edb10fd7d9499ed2ada3
…iginal (#4116)

Summary:
Pull Request resolved: #4116

This transform was popping the corresponding element from the metadata before adding it as a feature. This is fine for the most part, but it doesn't really have a significant benefit over just leaving the original in the metadata.

The problem with popping the element from the metadata is when doing this with `ExperimentData`. Even if we `deepcopy` a pandas dataframe, it does not deepcopy the underlying dictionary values. If we then transform the copy, we end up removing the metadata from the original as well, which leads to errors when doing cross validation with an adapter that uses these transforms (since we end up transforming multiple copies, and only the first one has the metadata).

This diff updates the transfrom to not remove the element from metadata.

Reviewed By: ltiao

Differential Revision: D79805146

fbshipit-source-id: 75ee5da5425b4fbb750c0041fbe58f8a5e4e5a44
Summary: Pull Request resolved: #4117

Reviewed By: mpolson64

Differential Revision: D79741086

fbshipit-source-id: 2b75bb01b7b7eaba0c3478f60d20e97c050f5e59
Summary:
Pull Request resolved: #4112

This diff groups the cross-validation plots in the `DiagnosticAnalysis` class of Ax. Simplify by removing unnecessary unpacking and `.flatten()` call.

Reviewed By: mpolson64

Differential Revision: D79558715

fbshipit-source-id: a833c9c31c8a90fa9faf3de9e61ba426d15b79df
Summary:
Pull Request resolved: #4118

### Added Filtering by Trial Status to Summarize

This diff adds a new feature to the `summarize` method, allowing users to filter by trial status.

#### What's Changed

Reviewed By: mpolson64

Differential Revision: D79442982

fbshipit-source-id: 31a9bfc6b7ccc9c925dc09870a5346e4dea49427
Summary:
Pull Request resolved: #4119

This diff updates the docstrings in `client.py` and `summary.py` to improve code quality, making it easier for users to understand the purpose and usage of the functions. Specifically, the changes include:

*   Adding function argument explanations for `trial_indices` and `trial_status` in the `client.py` file.
*   Adding function argument explanations for `trial_indices`, `trial_status`, and `omit_empty_columns` in the `summary.py` file.

These updates enhance the overall clarity and readability of the codebase, ensuring that users can effectively utilize the functions and their arguments.

Reviewed By: mpolson64

Differential Revision: D79738530

fbshipit-source-id: 54b3f379399105eec0b4db4f070625280ea71fd7
Summary:
Pull Request resolved: #4101

ModelConfig has a name field that is optional. MBM Surrogate needs an identifier for model; currently uses name if present, or just drops the model if not when storing eval results. MBM Generator needs an identifier for model and uses name if present, or str(model_config) if not.

This cleans things up a bit by providing an identifier for ModelConfig that will always exist and so can be used in the place of name and clean up logic in the other parts of MBM. The identifier follows what was done in MBM Generator for tracking gen metadata: it is name if name exists, otherwise a string dump of the model config.

Reviewed By: sdaulton

Differential Revision: D78560884

fbshipit-source-id: 89a94dbeaf97d799e46a7d12f248cdf4382d3ea2
Summary:
Pull Request resolved: #4109

Adds a "models_for_gen(n)" method to Surrogate that will constructs a list of n models from which to generate n candidates. The list of models is constructed by sampling from the given ModelConfigs according to their model selection eval criterion (taken as a measure of model quality).

Reviewed By: sdaulton

Differential Revision: D77252555

fbshipit-source-id: 89c82ce62b47ee13569fe42cdff5427b4bdddf30
Summary:
Pull Request resolved: #4110

Augments MultiAcquisition to additionally handle the case where we want to generate from multiple models with the same botorch acquisition class. The collection of models from which to generate is created by Surrogate.

This requires making the MBM Acquisition aware of how many points are intended to be generated with this particular Acquisition. Note that we do construct a new Acquisition in every call to gen.

The diff does a refactor of `Acquisition.__init__` to move some of the logic into other methods that are called during `__init__`, and then can be re-called when we want to use the same Acquisition object to instantiate multiple botorch acquisition functions with different models each.

The `gen_metadata` entry that stores which model was used for the generation is now potentially a list of models, so I renamed the entry, both to be something a little more clear and also because there is a breaking change in the data type if one were trying to do some type of meta analysis anyway.

Reviewed By: sdaulton

Differential Revision: D78560935

fbshipit-source-id: 5bfa915d089df7ff9999fd7b3c264d5944f0c09e
Summary:
Pull Request resolved: #4120

As titled, update color sheme for ContourPlot and Sensitivity Analysis to be Earth themed over current PrGn

Reviewed By: mgarrard

Differential Revision: D79893711

fbshipit-source-id: 874073cf2221f398561b754e4872fe8c64b30c80
Summary:
Pull Request resolved: #4044

In line with the logging present in AxClient. Adds logging on:
* [INFO] Result of choose_gs
* [INFO] Candidate generation
* [INFO] Trial status marking
   * [WARNING] if user calls complete_trial but trial is marked failed due to missing metrics
* [INFO] Early stopping reason

Reviewed By: saitcakmak

Differential Revision: D78183140

fbshipit-source-id: 41d4470b5debeb436e2f2c5adc5720a6138df645
Summary: Pull Request resolved: #4122

Reviewed By: saitcakmak

Differential Revision: D79907818

fbshipit-source-id: 572b461f3df8171da2d1147f222b733a5988d5b6
Summary:
Pull Request resolved: #4123

It is possible to fit a TorchAdapter with only one data point but it is not possible to run cross validation with it. This can lead to errors since we rely on CV statistics in `BestModelSelector`, which is used in BOTL. This diff gracefully handles such errors rather than erroring out in the experiment.

Reviewed By: esantorella

Differential Revision: D79915007

fbshipit-source-id: 0dd8a1f5359cee5a12035fd5321c4a28dba2107a
Summary:
Pull Request resolved: #4124

See #4103 for motivation.

We need to check for search space membership when we sample from the surrogate to draw the contour plot, specifically because in experiments where the status quo arm is all None we were getting errors.

However, we dont actually care if points are out of sample is technically out of the search space due to parameter constraint violation (ex. if the value for a non-plotted parameter selected by select_fixed_value causes some parameter constraint to be violated we shouldnt mind and Ax should go ahead and plot regardless). By moving the check higher up we avoid this error entirely.

Reviewed By: mgarrard

Differential Revision: D79917972

fbshipit-source-id: 840d83b8c97969e22cbd8f5de76705360eb7419c
Summary:
Pull Request resolved: #4126

### Context

In the benchmarking set-up, the `normalize_progression=True` option in early-stopping strategies is currently not working properly as zero trials are early-stopped. Specifically, it appears that `is_eligible_any` returns `False` for all trials.

All early-stopping strategies (all subclasses of `BaseEarlyStoppingStrategy`) are impacted. Specifically the instantiation of `MapData` in the return call of `_check_validity_and_get_data` casts the progression column to `int64`, which rounds all the float-valued progressions `[0.0, 1.0)` to `0`, leading `is_eligible_any` to always return `False`

### Changes

This diff removes the specification of `map_key_info` as integer-typed in `BenchmarkMapMetric` and `BenchmarkMapUnavailableWhileRunningMetric`.

Reviewed By: esantorella

Differential Revision: D79938692

fbshipit-source-id: 6e283d8050606c292d2572994aa8925af8c6a477
…4127)

Summary:
Pull Request resolved: #4127

With fully bayesian models, this was leading to quite a large memory usage with the default batch size of 2048. With this change, the max batch size will adapt to the model batch shape, which should bring down the memory usage of batched models to a level similar to non-batched models.

Reviewed By: dme65

Differential Revision: D80006058

fbshipit-source-id: 39e17b37678890822afd36f36aad3e72a6bd6c42
Summary:
Pull Request resolved: #4129

With logging changes from D78183140 these print statements are extraneous, see screenshot. This tidies things up quite a bit.

{F1981106230}

Reviewed By: saitcakmak

Differential Revision: D80030926

fbshipit-source-id: d4c4f198969224c13fe60d712ac0950fe47cb818
Summary: Pull Request resolved: #4125

Reviewed By: CristianLara

Differential Revision: D80031830

Pulled By: Balandat

fbshipit-source-id: 080f1b8f1a13944062a1299b4f4cea266cae92e2
Summary:
Pull Request resolved: #4130

As titled. Also bumped the pinned botorch version to 0.15.0

Notable items on the changelog come from a skim of 1.0.0...main

In the future we should make a point to release more often (1-2 times a month) to avoid having such a large swath of commits to skim through (in this case we had 321 changes since Ax 1.0.0)

Reviewed By: saitcakmak

Differential Revision: D80030270

fbshipit-source-id: 177088348a8a653a66b64d9d026ee85bccb8db1e
…s` (#4132)

Summary:
Pull Request resolved: #4132

It isn't used except in tests.

Reviewed By: Balandat

Differential Revision: D80040604

fbshipit-source-id: 4de1d3e84b27c511a973a2ca30bd865aeb841bb1
Summary:
Pull Request resolved: #4133

Fix bug where `ArmEffectsPlot` and `ScatterPlot` are showing the latest CANDIDATE Trial twice.

This is currently happening because the following line:

```
~df["trial_status"].isin([ts.name for ts in FAILED_ABANDONED_STATUSES])
```
brings in candidates before we additionally append `candidate_trial` a few lines later. By including candidate trials in the exclusion filter (i.e. `FAILED_ABANDONED_CANDIDATE_STATUSES`), we avoid duplicate candidate trials

Reviewed By: Cesar-Cardoso

Differential Revision: D80046532

fbshipit-source-id: 947b64ac6695a0f51308fd376a43e3cb3087c01a
Summary:
Pull Request resolved: #4135

We need to repin botorch in Ax since D78560935
 landed in between when we released botorch 0.15.0 and when we tried to deploy Ax 1.1

Reviewed By: esantorella

Differential Revision: D80044408

fbshipit-source-id: 10cc55b9c9b026e2ab3652214be7bf79e86ca1a9
@meta-cla meta-cla bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Aug 12, 2025
@CristianLara
Copy link
Contributor Author

I double checked that the merge from main into this branch only included commits up to and including the new release tag 0c0c892

@mpolson64 mpolson64 merged commit bec2fd9 into docusaurus-versions Aug 12, 2025
2 checks passed
@CristianLara CristianLara deleted the docusaurus-versions-1.1.0 branch August 14, 2025 17:28
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.