nlsq.streaming.validators¶
Configuration validators for hybrid streaming optimization.
Added in version 1.2.0: Extracted from nlsq.streaming.hybrid_config for maintainability.
This module provides validation functions for HybridStreamingConfig parameters. Each validator ensures configuration values are within acceptable ranges and provides informative error messages.
Validation Functions¶
The module provides validators for:
Chunk size: Ensures reasonable memory usage
Learning rates: Validates warmup learning rate bounds
Tolerance values: Checks convergence tolerances
Iteration limits: Validates max iteration counts
Defense layer thresholds: Ensures layer thresholds are sensible
Module Contents¶
Validators for streaming configuration parameters.
This module provides validation functions for HybridStreamingConfig parameters, extracted from the monolithic __post_init__ method to reduce complexity and improve testability.
- exception nlsq.streaming.validators.ConfigValidationError[source]¶
Bases:
ValueErrorException raised when configuration validation fails.
- nlsq.streaming.validators.validate_enum_value(value, valid_options, param_name)[source]¶
Validate that value is one of the valid options.
- Parameters:
- Raises:
ConfigValidationError – If value is not in valid_options.
- nlsq.streaming.validators.validate_positive(value, param_name)[source]¶
Validate that value is strictly positive.
- Parameters:
- Raises:
ConfigValidationError – If value is not positive.
- nlsq.streaming.validators.validate_non_negative(value, param_name)[source]¶
Validate that value is non-negative.
- Parameters:
- Raises:
ConfigValidationError – If value is negative.
- nlsq.streaming.validators.validate_range(value, min_val, max_val, param_name, inclusive_min=True, inclusive_max=True)[source]¶
Validate that value is within a range.
- Parameters:
- Raises:
ConfigValidationError – If value is out of range.
- nlsq.streaming.validators.validate_less_than_or_equal(value1, value2, name1, name2)[source]¶
Validate that value1 <= value2.
- nlsq.streaming.validators.validate_normalization_strategy(strategy)[source]¶
Validate normalization strategy parameter.
- nlsq.streaming.validators.validate_loop_strategy(strategy)[source]¶
Validate loop strategy parameter.
- nlsq.streaming.validators.validate_lbfgs_line_search(line_search)[source]¶
Validate L-BFGS line search method.
- nlsq.streaming.validators.validate_multistart_sampler(sampler)[source]¶
Validate multi-start sampler method.
- nlsq.streaming.validators.validate_warmup_config(warmup_iterations, max_warmup_iterations, warmup_learning_rate, loss_plateau_threshold, gradient_norm_threshold)[source]¶
Validate Phase 1 warmup configuration parameters.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_lbfgs_config(history_size, initial_step_size, line_search, exploration_step_size, refinement_step_size)[source]¶
Validate L-BFGS configuration parameters.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_gauss_newton_config(max_iterations, tol, trust_region_initial, regularization_factor)[source]¶
Validate Phase 2 Gauss-Newton configuration parameters.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_cg_config(max_iterations, relative_tolerance, absolute_tolerance, param_threshold)[source]¶
Validate Conjugate Gradient solver configuration.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_group_variance_config(enabled, lambda_val, indices)[source]¶
Validate group variance regularization configuration.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid when enabled.
- nlsq.streaming.validators.validate_streaming_config(chunk_size, checkpoint_frequency, callback_frequency)[source]¶
Validate streaming configuration parameters.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_lr_schedule_config(enabled, warmup_steps, decay_steps, end_value)[source]¶
Validate learning rate schedule configuration.
- Parameters:
- Raises:
ConfigValidationError – If any parameter is invalid when enabled.
- nlsq.streaming.validators.validate_gradient_clip(clip_value)[source]¶
Validate gradient clipping value.
- Parameters:
clip_value (float or None) – Gradient clip value.
- Raises:
ConfigValidationError – If clip_value is not None and not positive.
- nlsq.streaming.validators.validate_defense_layer_config(enable_warm_start, warm_start_threshold, enable_adaptive_lr, lr_refinement, lr_careful, lr_default, enable_cost_guard, cost_tolerance, enable_step_clipping, max_step_size)[source]¶
Validate 4-layer defense strategy configuration.
- Parameters:
enable_warm_start (bool) – Enable Layer 1.
warm_start_threshold (float) – Warm start threshold.
enable_adaptive_lr (bool) – Enable Layer 2.
lr_refinement (float) – Refinement learning rate.
lr_careful (float) – Careful learning rate.
lr_default (float) – Default learning rate.
enable_cost_guard (bool) – Enable Layer 3.
cost_tolerance (float) – Cost increase tolerance.
enable_step_clipping (bool) – Enable Layer 4.
max_step_size (float) – Maximum step size.
- Raises:
ConfigValidationError – If any parameter is invalid.
- nlsq.streaming.validators.validate_residual_weighting_config(enabled, weights)[source]¶
Validate residual weighting configuration.
Residual weighting allows users to assign different importance to different data points or groups of data points during optimization. This is useful for: - Heteroscedastic data (varying noise levels) - Emphasizing certain regions of the data - Down-weighting outliers - Domain-specific weighting schemes
- Parameters:
enabled (bool) – Whether residual weighting is enabled.
weights (array-like or None) – Weight array. Can be either: - Per-group weights of shape (n_groups,) with group_indices provided - Per-point weights of shape (n_data,) for direct weighting
- Raises:
ConfigValidationError – If configuration is invalid.
- nlsq.streaming.validators.validate_multistart_config(enabled, n_starts, sampler, elimination_fraction, elimination_rounds, batches_per_round, scale_factor)[source]¶
Validate multi-start optimization configuration.
- Parameters:
enabled (bool) – Whether multi-start is enabled.
n_starts (int) – Number of starting points.
sampler (str) – Sampling method.
elimination_fraction (float) – Fraction to eliminate per round.
elimination_rounds (int) – Number of rounds.
batches_per_round (int) – Batches per round.
scale_factor (float) – Scale factor for sampling.
- Raises:
ConfigValidationError – If any parameter is invalid when enabled.
Usage Example¶
from nlsq.streaming.validators import (
validate_chunk_size,
validate_learning_rate,
validate_tolerance,
)
# Validate configuration values
chunk_size = validate_chunk_size(10000) # Returns validated value
lr = validate_learning_rate(0.001, "warmup_lr")
tol = validate_tolerance(1e-8, "ftol")
See Also¶
nlsq.hybrid_streaming_config module - Configuration class
nlsq.adaptive_hybrid_streaming module - Main hybrid optimizer