-
Notifications
You must be signed in to change notification settings - Fork 349
Open
Labels
questionFurther information is requestedFurther information is requested
Description
Question
I have a budget of batch_size
=150 parallel runs on the blackbox.
I have setup a strategy to have SOBOL with batch_size
followed by BOTORCH
The generation of the N trials by ax.get_next_trials is so slow, making the optimisation useless.
What am I doing wrong?
The objective is MO with 2 scalars (no noise).
The feature space is very small (see below just 2500 possible values).
It takes about 5-10 second per trial on M3 macbook pro (only one cpu is used).
Please provide any relevant code snippet if applicable.
search_space = SearchSpace(
parameters=[
# This is a discrete choice of 34 integer values, sorted in ascending order.
ChoiceParameter(
name="parameter_A",
values=[128, 256, 384, 512, 640, 768, 896, 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920, 2048, 2176, 2304, 2432, 2560, 2688, 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712, 3840, 3968, 4096, 6144, 8192],
is_ordered=True,
value_type="int"
),
# This represents a search over powers of 2, from 2^1 to 2^6.
RangeParameter(
name="parameter_B",
lower=1,
upper=6,
value_type="int",
),
# This represents 2^0.
ChoiceParameter(
name="parameter_C",
values=[0],
is_ordered=True,
value_type="int"
),
# This represents a search over powers of 2, from 2^0 to 2^5.
RangeParameter(
name="parameter_D",
lower=0,
upper=5,
value_type="int",
),
# This represents a search over powers of 2, from 2^0 to 2^3.
RangeParameter(
name="parameter_E",
lower=0,
upper=3,
value_type="int",
),
# This represents a search over powers of 2, from 2^0 to 2^6.
RangeParameter(
name="parameter_F",
lower=0,
upper=6,
value_type="int",
),
# This represents a search over powers of 2, from 2^0 to 2^5.
RangeParameter(
name="parameter_G",
lower=0,
upper=5,
value_type="int",
)
]
)
linear_constraints=[
(["parameter_D", "parameter_E", "parameter_F", "parameter_G"], "==", 6)
]
# generation strategy
gs = GenerationStrategy(steps=[
GenerationStep(model=Generators.SOBOL, num_trials=sobol_trials, max_parallelism=batch_size),
GenerationStep(
model=Generators.BOTORCH_MODULAR,
num_trials=-1,
max_parallelism=batch_size
),
])
Code of Conduct
- I agree to follow this Ax's Code of Conduct
gshabat1
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested