Adaptive Hybrid Streaming Optimizer¶
NLSQ provides a single streaming optimizer for huge datasets:
AdaptiveHybridStreamingOptimizer. It combines parameter normalization,
L-BFGS warmup, streaming Gauss-Newton, and exact covariance accumulation.
Overview¶
The adaptive hybrid optimizer runs in four phases:
Normalization: Rescales parameters for stable gradients.
L-BFGS warmup: Fast initial convergence with defense layers.
Streaming Gauss-Newton: Chunked Jacobian accumulation with bounded memory.
Denormalization + covariance: Returns parameters and uncertainties.
When to Use¶
Datasets too large to keep in memory.
Models with multi-scale parameters that need normalization.
Cases where you need covariance estimates in streaming runs.
Quick Start¶
Use the high-level API:
from nlsq import curve_fit
popt, pcov = curve_fit(
model,
x,
y,
p0=p0,
method="hybrid_streaming",
verbose=1,
)
Or configure the optimizer directly:
from nlsq import AdaptiveHybridStreamingOptimizer, HybridStreamingConfig
config = HybridStreamingConfig(
chunk_size=50000,
gauss_newton_max_iterations=100,
enable_checkpoints=True,
checkpoint_frequency=100,
)
optimizer = AdaptiveHybridStreamingOptimizer(config)
result = optimizer.fit((x, y), model, p0=p0, verbose=1)
popt = result["x"]
pcov = result["pcov"]
Defense Presets¶
Warmup defense presets tune L-BFGS behavior:
HybridStreamingConfig.defense_strict(): Warm-start refinementHybridStreamingConfig.defense_relaxed(): ExplorationHybridStreamingConfig.scientific_default(): Production scientificHybridStreamingConfig.defense_disabled(): Disable defense layers
Decision Guide¶
Need accurate covariance estimates at scale? Use adaptive hybrid streaming.
Want fewer manual tuning knobs? Use
HybridStreamingConfigpresets.Need fault tolerance? Enable checkpoints in the config.
See Also¶
nlsq.adaptive_hybrid_streaming module - API reference
nlsq.hybrid_streaming_config module - Configuration reference
How to Use Streaming Checkpoints - Checkpointing guide