Nous.Eval.Optimizer.SearchSpace (nous v0.15.3)
View SourceDefines and manages the search space for optimization.
A search space is a collection of parameters that define all possible configurations to explore during optimization.
Example
params = [
Parameter.float(:temperature, 0.0, 1.0, step: 0.1),
Parameter.integer(:max_tokens, 100, 1000, step: 100),
Parameter.choice(:model, ["gpt-4", "gpt-3.5-turbo"])
]
space = SearchSpace.from_parameters(params)
# Get total number of combinations (for grid search)
SearchSpace.size(space) # => 110 * 10 * 2 = 2200
# Generate all combinations
SearchSpace.grid(space) # => [%{temperature: 0.0, max_tokens: 100, model: "gpt-4"}, ...]
# Sample a random configuration
SearchSpace.sample(space) # => %{temperature: 0.7, max_tokens: 500, model: "gpt-4"}
Summary
Functions
Create a search space from a list of parameters.
Get parameter by name.
Generate all configurations for grid search.
Sample configurations using Latin Hypercube Sampling for better coverage.
Sample a random configuration from the search space.
Sample n random configurations from the search space.
Get the total number of configurations in the search space.
Check if a configuration is valid (all required parameters present).
Types
@type t() :: %Nous.Eval.Optimizer.SearchSpace{ parameters: [Nous.Eval.Optimizer.Parameter.t()], size: non_neg_integer() | :infinite }
Functions
@spec from_parameters([Nous.Eval.Optimizer.Parameter.t()]) :: t()
Create a search space from a list of parameters.
@spec get_parameter(t(), atom()) :: Nous.Eval.Optimizer.Parameter.t() | nil
Get parameter by name.
Generate all configurations for grid search.
Only works for finite search spaces. Returns a list of configuration maps.
@spec latin_hypercube_sample(t(), non_neg_integer()) :: [map()]
Sample configurations using Latin Hypercube Sampling for better coverage.
Sample a random configuration from the search space.
@spec sample_n(t(), non_neg_integer()) :: [map()]
Sample n random configurations from the search space.
@spec size(t()) :: non_neg_integer() | :infinite
Get the total number of configurations in the search space.
Returns :infinite if any parameter has continuous range without step.
Check if a configuration is valid (all required parameters present).