Add [0, 1] bounds to LearnedFeatureImputation in input transform argparse (#5185)#5185
Open
hvarfner wants to merge 5 commits intofacebook:mainfrom
Open
Add [0, 1] bounds to LearnedFeatureImputation in input transform argparse (#5185)#5185hvarfner wants to merge 5 commits intofacebook:mainfrom
hvarfner wants to merge 5 commits intofacebook:mainfrom
Conversation
|
@hvarfner has exported this pull request. If you are a Meta employee, you can view the originating Diff in D101058043. |
7040f13 to
fb0d563
Compare
hvarfner
pushed a commit
to hvarfner/Ax
that referenced
this pull request
Apr 21, 2026
…arse (facebook#5185) Summary: The LearnedFeatureImputation transform supports constraining imputation values to a bounded range via sigmoid, but the Ax input transform argparse dispatcher never passed bounds. This left imputation values unconstrained, allowing them to drift far outside [0, 1] during MLL optimization. Pass bounds=[[0,...,0], [1,...,1]] to constrain imputation values to the normalized input range, since the preceding Normalize transform maps features to [0, 1]. Differential Revision: D101058043
fb0d563 to
574f1cf
Compare
hvarfner
pushed a commit
to hvarfner/Ax
that referenced
this pull request
Apr 21, 2026
…arse (facebook#5185) Summary: Pull Request resolved: facebook#5185 The LearnedFeatureImputation transform supports constraining imputation values to a bounded range via sigmoid, but the Ax input transform argparse dispatcher never passed bounds. This left imputation values unconstrained, allowing them to drift far outside [0, 1] during MLL optimization. Pass bounds=[[0,...,0], [1,...,1]] to constrain imputation values to the normalized input range, since the preceding Normalize transform maps features to [0, 1]. Differential Revision: D101058043
added 4 commits
April 21, 2026 16:03
…ok#5167) Summary: Pull Request resolved: facebook#5167 The Ax JSON decoder's `botorch_component_from_json` strips the `BUFFERED_PREFIX` from state_dict keys only for `TransformedDistribution` subclasses. This misses priors like `BetaPrior` whose underlying distribution (`Beta`) uses `property` descriptors delegating to an internal `Dirichlet`, causing `_bufferize_attributes` to use the prefix. Broaden the check from `TransformedDistribution` to `(TransformedDistribution, Prior)` so all gpytorch priors with buffered attributes deserialize correctly. Differential Revision: D100341242 Reviewed By: sdaulton
…acebook#5106) Summary: X-link: https://github.com/facebookexternal/botorch_fb/pull/34 Pull Request resolved: facebook#5106 Wire LearnedFeatureImputation and ImputedMultiTaskGP into Ax: 1. **input_transform_argparse dispatcher**: Computes `feature_indices` and `d` from a heterogeneous MultiTaskDataset using target-first feature ordering. Validates that the dataset is a MultiTaskDataset with heterogeneous features. 2. **Storage registry**: Register ImputedMultiTaskGP in MODEL_REGISTRY and LearnedFeatureImputation in INPUT_TRANSFORM_REGISTRY. 3. **Model selection (utils.py)**: When a heterogeneous MultiTaskDataset is detected and a model class is specified (e.g. ImputedMultiTaskGP), use the specified class instead of force-overriding to HeterogeneousMTGP. Also add automatic Normalize + LearnedFeatureImputation transform chaining for ImputedMultiTaskGP. Differential Revision: D97625733
…ing_gs (facebook#5183) Summary: Pull Request resolved: facebook#5183 When the source and target search spaces are incompatible, any model class is silently overridden to `HeterogeneousMTGP`. This prevents using other models at all. Now, we only override to `HeterogeneousMTGP` in get_transfer_learning_gs, instead of in two different places in the stack. Thus, we will still have the same functionality but not double-force it. Differential Revision: D101174566
…acebook#5184) Summary: Pull Request resolved: facebook#5184 The transfer learning adapter explicitly passed `bounds=None` to Normalize, forcing `learn_bounds=True`. This caused Normalize bounds to be learned from data instead of fixed to the search space, resulting in bounds that drift during training and differ between benchmark configs despite identical search spaces. Remove the `bounds=None` override so that `_set_default_bounds` provides the correct search space bounds from the SearchSpaceDigest. Differential Revision: D100669010
574f1cf to
a376371
Compare
hvarfner
pushed a commit
to hvarfner/Ax
that referenced
this pull request
Apr 21, 2026
…arse (facebook#5185) Summary: The LearnedFeatureImputation transform supports constraining imputation values to a bounded range via sigmoid, but the Ax input transform argparse dispatcher never passed bounds. This left imputation values unconstrained, allowing them to drift far outside [0, 1] during MLL optimization. Pass bounds=[[0,...,0], [1,...,1]] to constrain imputation values to the normalized input range, since the preceding Normalize transform maps features to [0, 1]. Differential Revision: D101058043
…arse (facebook#5185) Summary: Pull Request resolved: facebook#5185 The LearnedFeatureImputation transform supports constraining imputation values to a bounded range via sigmoid, but the Ax input transform argparse dispatcher never passed bounds. This left imputation values unconstrained, allowing them to drift far outside [0, 1] during MLL optimization. Pass bounds=[[0,...,0], [1,...,1]] to constrain imputation values to the normalized input range, since the preceding Normalize transform maps features to [0, 1]. Differential Revision: D101058043
a376371 to
d82837d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
The LearnedFeatureImputation transform supports constraining imputation
values to a bounded range via sigmoid, but the Ax input transform
argparse dispatcher never passed bounds. This left imputation values
unconstrained, allowing them to drift far outside [0, 1] during MLL
optimization.
Pass bounds=[[0,...,0], [1,...,1]] to constrain imputation values to the
normalized input range, since the preceding Normalize transform maps
features to [0, 1].
Differential Revision: D101058043