optirs_core/streaming/adaptive_streaming/
mod.rs

1// Adaptive Streaming Optimization Module
2//
3// This module provides comprehensive adaptive streaming optimization for ML workloads.
4
5pub mod anomaly_detection;
6pub mod buffering;
7pub mod config;
8pub mod drift_detection;
9pub mod meta_learning;
10pub mod optimizer;
11pub mod performance;
12pub mod resource_management;
13
14// Selective exports to avoid import conflicts
15pub use buffering::*;
16pub use config::*;
17pub use meta_learning::*;
18pub use optimizer::*;
19pub use resource_management::*;
20
21// Selective re-exports to avoid conflicts
22// Anomaly detection module exports
23pub use anomaly_detection::{
24    AdaptiveThresholdManager, AnomalyContext, AnomalyDetectionResult, AnomalyDetector,
25    AnomalyEvent, AnomalyResponseSystem, AnomalySeverity as AnomalyDetectionSeverity,
26    AnomalyType as AnomalyDetectionType, ContextPattern,
27    DataStatistics as AnomalyDetectionDataStatistics, DetectionResult, DetectorPerformance,
28    EffectivenessMetrics, EnsembleAnomalyDetector, EnsembleConfig, EnsembleVotingStrategy,
29    EscalationCondition, EscalationRule, FPMitigationStrategy, FPRateCalculator,
30    FalsePositiveEvent, FalsePositivePatterns, FalsePositiveTracker as AnomalyDetectionFPTracker,
31    MLModelMetrics, OutcomeMeasurement, PendingResponse, ResponseAction,
32    ResponseEffectivenessTracker, ResponseExecution, ResponseExecutor, ResponseOutcome,
33    ResponsePriority, ResponseResourceLimits, TemporalPattern, TemporalPatternType,
34    ThresholdAdaptationParams, ThresholdAdaptationStrategy, ThresholdPerformanceFeedback,
35    TrendAnalysis, TrendDirection,
36};
37
38// Drift detection module exports
39pub use drift_detection::{
40    DistributionComparison, DriftDiagnostics, DriftEvent, DriftSeverity, DriftState,
41    DriftTestResult, EnhancedDriftDetector, FalsePositiveTracker as DriftDetectionFPTracker,
42    ModelDriftResult,
43};
44
45// Performance module exports
46pub use performance::{
47    AnomalySeverity as PerformanceAnomalySeverity, AnomalyType as PerformanceAnomalyType,
48    DataStatistics as PerformanceDataStatistics, ImprovementEvent, MetricStatistics,
49    PerformanceAnomaly, PerformanceAnomalyDetector, PerformanceContext, PerformanceDiagnostics,
50    PerformanceImprovementTracker, PerformanceMetric, PerformancePredictor, PerformanceSnapshot,
51    PerformanceTracker, PerformanceTrendAnalyzer, PlateauDetector, PredictionMethod,
52    PredictionResult, TrendData, TrendMethod,
53};
54
55// Utility functions for common configurations
56pub fn create_default_optimizer<A, D>(
57) -> StreamingResult<AdaptiveStreamingOptimizer<crate::optimizers::Adam<A>, A, D>>
58where
59    A: scirs2_core::ndarray::ScalarOperand
60        + Clone
61        + Default
62        + Send
63        + Sync
64        + 'static
65        + scirs2_core::numeric::Float
66        + std::iter::Sum
67        + std::fmt::Debug
68        + std::ops::DivAssign,
69    D: scirs2_core::ndarray::Data<Elem = A>
70        + scirs2_core::ndarray::Dimension
71        + Send
72        + Sync
73        + 'static,
74{
75    let config = StreamingConfig::default();
76    let base_optimizer = crate::optimizers::Adam::new(A::from(0.001).unwrap()); // Default learning rate
77    Ok(AdaptiveStreamingOptimizer::new(base_optimizer, config)?)
78}
79
80pub fn create_optimizer_with_config<A, D>(
81    config: StreamingConfig,
82) -> StreamingResult<AdaptiveStreamingOptimizer<crate::optimizers::Adam<A>, A, D>>
83where
84    A: scirs2_core::ndarray::ScalarOperand
85        + Clone
86        + Default
87        + Send
88        + Sync
89        + 'static
90        + scirs2_core::numeric::Float
91        + std::iter::Sum
92        + std::fmt::Debug
93        + std::ops::DivAssign,
94    D: scirs2_core::ndarray::Data<Elem = A>
95        + scirs2_core::ndarray::Dimension
96        + Send
97        + Sync
98        + 'static,
99{
100    let base_optimizer = crate::optimizers::Adam::new(A::from(0.001).unwrap()); // Default learning rate
101    Ok(AdaptiveStreamingOptimizer::new(base_optimizer, config)?)
102}
103
104// Result type alias
105pub type StreamingResult<T> = Result<T, Box<dyn std::error::Error + Send + Sync>>;