nat.data_models.optimizer#

Attributes#

Classes#

OptimizerStrategyBaseConfig

Base for optimizer strategy configs (numeric, prompt) registered in the optimizer registry.

OptimizerMetric

Parameters used by the workflow optimizer to define a metric to optimize.

PromptOptimizerInputSchema

Input schema for prompt optimizer mutator/recombiner helper functions.

SamplerType

Enum where members are also (and must be) strings

OptunaParameterOptimizationConfig

Configuration for Optuna-based numeric/enum parameter optimization.

PromptOptimizationConfig

Base for all prompt optimization strategy configs.

GAPromptOptimizationConfig

GA-specific prompt optimization config with typed oracle feedback fields.

BaseOptimizerConfig

Shared optimizer parameters that any optimizer strategy could reuse.

OptimizerConfig

Full optimizer config used in the app Config and for parsing YAML.

OptimizerRunConfig

Parameters used for an Optimizer R=run

Module Contents#

class OptimizerStrategyBaseConfig(/, **data: Any)#

Bases: nat.data_models.common.TypedBaseModel, nat.data_models.common.BaseModelRegistryTag

Base for optimizer strategy configs (numeric, prompt) registered in the optimizer registry.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

enabled: bool = None#
class OptimizerMetric(/, **data: Any)#

Bases: pydantic.BaseModel

Parameters used by the workflow optimizer to define a metric to optimize.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

evaluator_name: str = None#
direction: str = None#
weight: float = None#
class PromptOptimizerInputSchema(/, **data: Any)#

Bases: pydantic.BaseModel

Input schema for prompt optimizer mutator/recombiner helper functions.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

original_prompt: str#
objective: str#
oracle_feedback: str | None = None#
class SamplerType#

Bases: enum.StrEnum

Enum where members are also (and must be) strings

Initialize self. See help(type(self)) for accurate signature.

BAYESIAN = 'bayesian'#
GRID = 'grid'#
class OptunaParameterOptimizationConfig(/, **data: Any)#

Bases: OptimizerStrategyBaseConfig

Configuration for Optuna-based numeric/enum parameter optimization.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

enabled: bool = None#
n_trials: int = None#
sampler: SamplerType | None = None#
class PromptOptimizationConfig(/, **data: Any)#

Bases: OptimizerStrategyBaseConfig

Base for all prompt optimization strategy configs.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

enabled: bool = None#
prompt_population_init_function: str | None = None#
prompt_recombination_function: str | None = None#
class GAPromptOptimizationConfig(/, **data: Any)#

Bases: PromptOptimizationConfig

GA-specific prompt optimization config with typed oracle feedback fields.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

ga_population_size: int = None#
ga_generations: int = None#
ga_crossover_rate: float = None#
ga_mutation_rate: float = None#
ga_elitism: int = None#
ga_selection_method: Literal['tournament', 'roulette'] = None#
ga_tournament_size: int = None#
ga_parallel_evaluations: int = None#
ga_diversity_lambda: float = None#
oracle_feedback_mode: Literal['never', 'always', 'failing_only', 'adaptive'] = None#
oracle_feedback_worst_n: int = None#
oracle_feedback_max_chars: int = None#
oracle_feedback_fitness_threshold: float = None#
oracle_feedback_stagnation_generations: int = None#
oracle_feedback_fitness_variance_threshold: float = None#
oracle_feedback_diversity_threshold: float = None#
class BaseOptimizerConfig(/, **data: Any)#

Bases: pydantic.BaseModel

Shared optimizer parameters that any optimizer strategy could reuse. Strategy-specific config lives on subtypes via the registry.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

output_path: pathlib.Path | None = None#
eval_metrics: dict[str, OptimizerMetric] | None = None#
reps_per_param_set: int = None#
target: float | None = None#
multi_objective_combination_mode: str = None#
class OptimizerConfig(/, **data: Any)#

Bases: BaseOptimizerConfig

Full optimizer config used in the app Config and for parsing YAML. Extends the shared base with strategy-specific nests: .numeric for parameter/Optuna optimization, .prompt for prompt optimization.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

numeric: OptunaParameterOptimizationConfig#
prompt: GAPromptOptimizationConfig#
OptimizerStrategyBaseConfigT#
class OptimizerRunConfig(/, **data: Any)#

Bases: pydantic.BaseModel

Parameters used for an Optimizer R=run

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

config_file: pathlib.Path | pydantic.BaseModel#
dataset: str | pathlib.Path | None#
result_json_path: str = '$'#
endpoint: str | None = None#
endpoint_timeout: int = 300#
override: tuple[tuple[str, str], Ellipsis] = ()#