Skip to content

Conversation

@Cesar-Cardoso
Copy link
Contributor

Summary:

Core Data Structures (ax/core/auxiliary.py)

Added new dataclasses for auxiliary experiment handling:

  • AuxiliaryExperimentMetadata - Abstract base class for metadata
  • PreferenceExplorationMetadata - For PE experiments (stores overlap_metrics)
  • TransferLearningMetadata - For TL experiments (stores overlap_parameters)
  • AuxiliaryExperimentValidation - Validation result containing is_valid, invalid_reason, and metadata

Parameter Compatibility (ax/core/parameter.py)

Added parameter compatibility checking:

  • New is_compatible_with() method on the base Parameter class
  • New abstract _is_domain_compatible() method with implementations for:
    • RangeParameter: Compatible if both are RangeParameters (bounds don't need to overlap)
    • ChoiceParameter: Compatible if they have the same set of values
    • FixedParameter: Compatible if they have the same value
    • DerivedParameter: Always returns False

Search Space Overlap (ax/core/search_space.py)

  • Added get_overlapping_parameters() method to identify compatible overlapping parameters between two search spaces

Experiment Validation (ax/core/experiment.py)

  • Added validate_auxiliary_experiment() method that validates a source experiment against a target experiment for a given purpose (currently supports TRANSFERABLE_EXPERIMENT)

Storage Layer Changes (ax/storage/sqa_store/load.py)

Moved and refactored transfer learning identification logic:

  • Added _query_historical_experiments_given_parameters() - queries DB for historical experiments with specific parameters
  • Added identify_transferable_experiments() - finds transferable experiments based on parameter overlap
  • Added load_candidate_source_auxiliary_experiments() - loads candidate source experiments for a target experiment

Reviewed By: lena-kashtelyan

Differential Revision: D84102485

@meta-cla meta-cla bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Dec 3, 2025
@meta-codesync
Copy link

meta-codesync bot commented Dec 3, 2025

@Cesar-Cardoso has exported this pull request. If you are a Meta employee, you can view the originating Diff in D84102485.

@codecov-commenter
Copy link

codecov-commenter commented Dec 3, 2025

Codecov Report

❌ Patch coverage is 95.00000% with 14 lines in your changes missing coverage. Please review.
✅ Project coverage is 96.51%. Comparing base (47a5e0c) to head (70af965).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
ax/core/experiment.py 20.00% 8 Missing ⚠️
ax/core/parameter.py 78.94% 4 Missing ⚠️
ax/core/search_space.py 88.88% 1 Missing ⚠️
ax/storage/sqa_store/load.py 97.91% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4615      +/-   ##
==========================================
- Coverage   96.52%   96.51%   -0.01%     
==========================================
  Files         568      568              
  Lines       58958    59227     +269     
==========================================
+ Hits        56909    57163     +254     
- Misses       2049     2064      +15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Cesar-Cardoso added a commit to Cesar-Cardoso/Ax that referenced this pull request Dec 11, 2025
…rces through AxService (facebook#4615)

Summary:

## Core Data Structures (`ax/core/auxiliary.py`)
Added new dataclasses for auxiliary experiment handling:
- **`AuxiliaryExperimentMetadata`** - Abstract base class for metadata
- **`PreferenceExplorationMetadata`** - For PE experiments (stores `overlap_metrics`)
- **`TransferLearningMetadata`** - For TL experiments (stores `overlap_parameters`)
- **`AuxiliaryExperimentValidation`** - Validation result containing `is_valid`, `invalid_reason`, and `metadata`
## Parameter Compatibility (`ax/core/parameter.py`)
Added parameter compatibility checking:
- New `is_compatible_with()` method on the base `Parameter` class
- New abstract `_is_domain_compatible()` method with implementations for:
  - **`RangeParameter`**: Compatible if both are RangeParameters (bounds don't need to overlap)
  - **`ChoiceParameter`**: Compatible if they have the same set of values
  - **`FixedParameter`**: Compatible if they have the same value
  - **`DerivedParameter`**: Always returns `False`
## Search Space Overlap (`ax/core/search_space.py`)
- Added `get_overlapping_parameters()` method to identify compatible overlapping parameters between two search spaces
## Experiment Validation (`ax/core/experiment.py`)
- Added `validate_auxiliary_experiment()` method that validates a source experiment against a target experiment for a given purpose (currently supports `TRANSFERABLE_EXPERIMENT`)
## Storage Layer Changes (`ax/storage/sqa_store/load.py`)
Moved and refactored transfer learning identification logic:
- Added `_query_historical_experiments_given_parameters()` - queries DB for historical experiments with specific parameters
- Added `identify_transferable_experiments()` - finds transferable experiments based on parameter overlap
- Added `load_candidate_source_auxiliary_experiments()` - loads candidate source experiments for a target experiment

Reviewed By: lena-kashtelyan

Differential Revision: D84102485
Cesar-Cardoso added a commit to Cesar-Cardoso/Ax that referenced this pull request Dec 11, 2025
…rces through AxService (facebook#4615)

Summary:

## Core Data Structures (`ax/core/auxiliary.py`)
Added new dataclasses for auxiliary experiment handling:
- **`AuxiliaryExperimentMetadata`** - Abstract base class for metadata
- **`PreferenceExplorationMetadata`** - For PE experiments (stores `overlap_metrics`)
- **`TransferLearningMetadata`** - For TL experiments (stores `overlap_parameters`)
- **`AuxiliaryExperimentValidation`** - Validation result containing `is_valid`, `invalid_reason`, and `metadata`
## Parameter Compatibility (`ax/core/parameter.py`)
Added parameter compatibility checking:
- New `is_compatible_with()` method on the base `Parameter` class
- New abstract `_is_domain_compatible()` method with implementations for:
  - **`RangeParameter`**: Compatible if both are RangeParameters (bounds don't need to overlap)
  - **`ChoiceParameter`**: Compatible if they have the same set of values
  - **`FixedParameter`**: Compatible if they have the same value
  - **`DerivedParameter`**: Always returns `False`
## Search Space Overlap (`ax/core/search_space.py`)
- Added `get_overlapping_parameters()` method to identify compatible overlapping parameters between two search spaces
## Experiment Validation (`ax/core/experiment.py`)
- Added `validate_auxiliary_experiment()` method that validates a source experiment against a target experiment for a given purpose (currently supports `TRANSFERABLE_EXPERIMENT`)
## Storage Layer Changes (`ax/storage/sqa_store/load.py`)
Moved and refactored transfer learning identification logic:
- Added `_query_historical_experiments_given_parameters()` - queries DB for historical experiments with specific parameters
- Added `identify_transferable_experiments()` - finds transferable experiments based on parameter overlap
- Added `load_candidate_source_auxiliary_experiments()` - loads candidate source experiments for a target experiment

Reviewed By: lena-kashtelyan

Differential Revision: D84102485
@Cesar-Cardoso Cesar-Cardoso force-pushed the export-D84102485 branch 2 times, most recently from 0d7cfff to 975db3b Compare December 17, 2025 19:06
Cesar-Cardoso added a commit to Cesar-Cardoso/Ax that referenced this pull request Dec 17, 2025
…rces through AxService (facebook#4615)

Summary:

## Core Data Structures (`ax/core/auxiliary.py`)
Added new dataclasses for auxiliary experiment handling:
- **`AuxiliaryExperimentMetadata`** - Abstract base class for metadata
- **`PreferenceExplorationMetadata`** - For PE experiments (stores `overlap_metrics`)
- **`TransferLearningMetadata`** - For TL experiments (stores `overlap_parameters`)
- **`AuxiliaryExperimentValidation`** - Validation result containing `is_valid`, `invalid_reason`, and `metadata`
## Parameter Compatibility (`ax/core/parameter.py`)
Added parameter compatibility checking:
- New `is_compatible_with()` method on the base `Parameter` class
- New abstract `_is_domain_compatible()` method with implementations for:
  - **`RangeParameter`**: Compatible if both are RangeParameters (bounds don't need to overlap)
  - **`ChoiceParameter`**: Compatible if they have the same set of values
  - **`FixedParameter`**: Compatible if they have the same value
  - **`DerivedParameter`**: Always returns `False`
## Search Space Overlap (`ax/core/search_space.py`)
- Added `get_overlapping_parameters()` method to identify compatible overlapping parameters between two search spaces
## Experiment Validation (`ax/core/experiment.py`)
- Added `validate_auxiliary_experiment()` method that validates a source experiment against a target experiment for a given purpose (currently supports `TRANSFERABLE_EXPERIMENT`)
## Storage Layer Changes (`ax/storage/sqa_store/load.py`)
Moved and refactored transfer learning identification logic:
- Added `_query_historical_experiments_given_parameters()` - queries DB for historical experiments with specific parameters
- Added `identify_transferable_experiments()` - finds transferable experiments based on parameter overlap
- Added `load_candidate_source_auxiliary_experiments()` - loads candidate source experiments for a target experiment

Reviewed By: lena-kashtelyan

Differential Revision: D84102485
…rces through AxService (facebook#4615)

Summary:

## Core Data Structures (`ax/core/auxiliary.py`)
Added new dataclasses for auxiliary experiment handling:
- **`AuxiliaryExperimentMetadata`** - Abstract base class for metadata
- **`PreferenceExplorationMetadata`** - For PE experiments (stores `overlap_metrics`)
- **`TransferLearningMetadata`** - For TL experiments (stores `overlap_parameters`)
- **`AuxiliaryExperimentValidation`** - Validation result containing `is_valid`, `invalid_reason`, and `metadata`
## Parameter Compatibility (`ax/core/parameter.py`)
Added parameter compatibility checking:
- New `is_compatible_with()` method on the base `Parameter` class
- New abstract `_is_domain_compatible()` method with implementations for:
  - **`RangeParameter`**: Compatible if both are RangeParameters (bounds don't need to overlap)
  - **`ChoiceParameter`**: Compatible if they have the same set of values
  - **`FixedParameter`**: Compatible if they have the same value
  - **`DerivedParameter`**: Always returns `False`
## Search Space Overlap (`ax/core/search_space.py`)
- Added `get_overlapping_parameters()` method to identify compatible overlapping parameters between two search spaces
## Experiment Validation (`ax/core/experiment.py`)
- Added `validate_auxiliary_experiment()` method that validates a source experiment against a target experiment for a given purpose (currently supports `TRANSFERABLE_EXPERIMENT`)
## Storage Layer Changes (`ax/storage/sqa_store/load.py`)
Moved and refactored transfer learning identification logic:
- Added `_query_historical_experiments_given_parameters()` - queries DB for historical experiments with specific parameters
- Added `identify_transferable_experiments()` - finds transferable experiments based on parameter overlap
- Added `load_candidate_source_auxiliary_experiments()` - loads candidate source experiments for a target experiment

Reviewed By: lena-kashtelyan

Differential Revision: D84102485
@meta-codesync
Copy link

meta-codesync bot commented Dec 18, 2025

This pull request has been merged in 441f000.

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. fb-exported Merged meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants