Advanced Usage

Callbacks

LLMize supports custom callbacks for monitoring and controlling the optimization process:

Available Callbacks

  1. EarlyStopping: Stop optimization when no improvement is seen

  2. AdaptTempOnPlateau: Reduce temperature when optimization plateaus

  3. OptimalScoreStopping: Stop when reaching a target score

from llmize.callbacks import EarlyStopping, AdaptTempOnPlateau, OptimalScoreStopping

callbacks = [
    EarlyStopping(patience=10, monitor='best_score'),
    AdaptTempOnPlateau(factor=0.5, patience=5),
    OptimalScoreStopping(optimal_score=0.99, tolerance=0.01)
]

results = optimizer.maximize(
    callbacks=callbacks,
    # ... other parameters
)

Parallel Processing

Enable parallel evaluation of solutions:

results = optimizer.maximize(
    parallel_n_jobs=4,  # Number of parallel processes
    # ... other parameters
)

Result Analysis

The OptimizationResult class provides comprehensive optimization results:

# Access optimization results
print(f"Best solution: {results.best_solution}")
print(f"Best score: {results.best_score}")
print(f"Score history: {results.best_score_history}")
print(f"Per-step best scores: {results.best_score_per_step}")
print(f"Per-step average scores: {results.avg_score_per_step}")

# Convert to dictionary for serialization
results_dict = results.to_dict()