Skip to main content

trustformers_debug/
lib.rs

1//! # TrustformeRS Debug
2//!
3//! Advanced debugging tools for TrustformeRS models including tensor inspection,
4//! gradient debugging, and model diagnostics.
5
6// Allow ambiguous glob re-exports - documented below with clear guidance on which version to use
7#![allow(ambiguous_glob_reexports)]
8// Allow large error types in Result (TrustformersError is large by design)
9#![allow(clippy::result_large_err)]
10// Allow large enum variants (debug reports contain comprehensive data)
11#![allow(clippy::large_enum_variant)]
12// Allow common patterns in debugging/profiling code
13#![allow(clippy::too_many_arguments)]
14#![allow(clippy::type_complexity)]
15#![allow(clippy::excessive_nesting)]
16// Allow manual clamp pattern (.max().min()) - more explicit and doesn't panic on NaN
17#![allow(clippy::manual_clamp)]
18// Allow range loops for better readability in array indexing
19#![allow(clippy::needless_range_loop)]
20// Not all types need Default implementations
21#![allow(clippy::new_without_default)]
22// Style preferences for vec initialization
23#![allow(clippy::vec_init_then_push)]
24// Allow format! in format args for clarity
25#![allow(clippy::format_in_format_args)]
26// Empty lines after attributes are intentional for readability
27#![allow(clippy::empty_line_after_outer_attr)]
28#![allow(clippy::empty_line_after_doc_comments)]
29// Allow await holding lock in debug code where it's safe
30#![allow(clippy::await_holding_lock)]
31// Allow if-else with same body in debug code for clarity
32#![allow(clippy::if_same_then_else)]
33// Allow double-ended iterator last when it's clearer
34#![allow(clippy::double_ended_iterator_last)]
35// Allow manual strip for explicit string handling
36#![allow(clippy::manual_strip)]
37// Allow derivable impls when Default has complex semantics
38#![allow(clippy::derivable_impls)]
39// Allow needless question mark in debug code for clarity
40#![allow(clippy::needless_question_mark)]
41// Allow let_and_return for clarity in complex expressions
42#![allow(clippy::let_and_return)]
43// Allow field reassign with default in test code
44#![allow(clippy::field_reassign_with_default)]
45// Allow filter_map when pattern matching different variants
46#![allow(clippy::unnecessary_filter_map)]
47// Allow uppercase acronyms like LSTM, GPU, etc.
48#![allow(clippy::upper_case_acronyms)]
49// Allow never_loop in streaming code (intentional drain patterns)
50#![allow(clippy::never_loop)]
51
52// New visualization and analysis modules
53pub mod activation_visualizer;
54pub mod attention_visualizer;
55pub mod graph_visualizer;
56pub mod mlflow_integration;
57pub mod netron_export;
58pub mod performance_tuning;
59pub mod stability_checker;
60pub mod tensorboard_integration;
61pub mod unified_debug_session;
62pub mod visualization_plugins;
63pub mod weight_analyzer;
64
65pub mod advanced_gpu_profiler;
66pub mod advanced_ml_debugging;
67pub mod ai_code_analyzer;
68pub mod anomaly_detector;
69pub mod architecture_analysis;
70pub mod auto_debugger;
71pub mod behavior_analysis;
72pub mod cicd_integration;
73pub mod collaboration;
74pub mod computation_graph;
75pub mod dashboard;
76pub mod data_export;
77pub mod differential_debugging;
78pub mod distributed_debugger;
79pub mod distributed_profiling;
80pub mod environmental_monitor;
81pub mod error_recovery;
82pub mod flame_graph_profiler;
83pub mod gradient_debugger;
84pub mod health_checker;
85pub mod hooks;
86pub mod ide_integration;
87pub mod interactive_debugger;
88pub(crate) mod interpretability;
89pub mod interpretability_tools;
90pub mod kernel_optimizer;
91pub mod large_model_viz;
92pub mod llm_debugging;
93pub mod memory_profiler;
94pub mod model_diagnostics;
95pub mod model_diagnostics_main;
96pub use model_diagnostics_main::{ModelDiagnostics, ModelDiagnosticsReport};
97
98// Import specific types from model_diagnostics to avoid conflicts
99pub use model_diagnostics::{
100    ActivationHeatmap,
101    ActiveAlert,
102    // Advanced analytics
103    AdvancedAnalytics,
104    AlertConfig,
105    // Alert system
106    AlertManager,
107    AlertSeverity,
108    AlertStatistics,
109
110    AlertStatus,
111    AlertThresholds,
112    AnalyticsConfig,
113    AnalyticsReport,
114    AnomalyDetectionResults,
115    ArchitecturalAnalysis,
116    AttentionVisualization,
117    AutoDebugConfig,
118    // Auto-debugging system
119    AutoDebugger,
120    ConvergenceStatus,
121    DebuggingRecommendation,
122    DebuggingReport,
123    HiddenStateAnalysis,
124
125    IdentifiedIssue,
126    IssueCategory,
127    IssueSeverity,
128
129    LayerActivationStats,
130    LayerAnalysis,
131    LayerAnalysisConfig,
132
133    // Layer analysis (prefixed to avoid conflicts)
134    LayerAnalyzer,
135    ModelArchitectureInfo,
136    ModelDiagnosticAlert,
137    // Core types that don't conflict
138    ModelPerformanceMetrics,
139    OverfittingIndicator,
140    // Performance analysis (prefixed to avoid conflicts)
141    PerformanceAnalyzer,
142    PerformanceAnomaly,
143
144    PerformanceSummary,
145    PlateauInfo,
146    StatisticalAnalysis,
147    TrainingDynamics,
148    // Training analysis (prefixed to avoid conflicts)
149    TrainingDynamicsAnalyzer,
150
151    TrainingStability,
152    UnderfittingIndicator,
153    WeightDistribution,
154};
155pub mod neural_network_debugging;
156pub mod profiler;
157pub mod quantum_debugging;
158pub mod realtime_dashboard;
159pub mod regression_detector;
160pub mod report_generation;
161pub mod simulation_tools;
162pub mod streaming_debugger;
163pub mod team_dashboard;
164pub mod tensor_inspector;
165pub mod training_dynamics;
166pub mod utilities;
167pub mod visualization;
168#[cfg(feature = "wasm")]
169pub mod wasm_interface;
170
171// GPU profiling imports (specific to avoid conflicts)
172pub use advanced_gpu_profiler::{
173    AdvancedGpuMemoryProfiler, AdvancedGpuProfilingConfig, CrossDeviceTransfer,
174    GpuMemoryAllocation, GpuMemoryType, HighImpactOptimization, KernelOptimizationSummaryReport,
175    MemoryAnalysisReport, MemoryFragmentationSnapshot,
176};
177
178// Kernel optimization imports (specific)
179pub use kernel_optimizer::{
180    KernelOptimizationAnalyzer, KernelOptimizationConfig, KernelOptimizationReport,
181    KernelProfileData,
182};
183
184// ============================================================================
185// New Visualization and Analysis Tools (TODO.md implementations)
186// ============================================================================
187
188// TensorBoard Integration
189pub use tensorboard_integration::{
190    create_graph_node, tensor_to_histogram_values, GraphDef, GraphNode as TensorBoardGraphNode,
191    HistogramEvent, ScalarEvent, TensorBoardWriter, TextEvent,
192};
193
194// Netron/ONNX Export
195pub use netron_export::{
196    AttributeValue, ExportFormat, GraphNode as NetronGraphNode, ModelGraph, ModelMetadata,
197    NetronExporter, NetronModel, TensorData, TensorInfo,
198};
199
200// Activation Visualizer
201pub use activation_visualizer::{
202    ActivationConfig, ActivationData, ActivationHeatmap as ActivationVisualizerHeatmap,
203    ActivationHistogram, ActivationStatistics, ActivationVisualizer,
204};
205
206// Attention Visualizer
207pub use attention_visualizer::{
208    AttentionAnalysis, AttentionFlow, AttentionHeatmap as AttentionVisualizerHeatmap,
209    AttentionType, AttentionVisualizer, AttentionVisualizerConfig, AttentionWeights, ColorScheme,
210};
211
212// Stability Checker
213pub use stability_checker::{
214    IssueKind, StabilityChecker, StabilityConfig, StabilityIssue, StabilitySummary,
215};
216
217// Graph Visualizer
218pub use graph_visualizer::{
219    ComputationGraph, GraphColorScheme, GraphEdge, GraphNode as GraphVisualizerNode,
220    GraphStatistics, GraphVisualizer, GraphVisualizerConfig, LayoutDirection,
221};
222
223// Unified Debug Session Manager
224pub use unified_debug_session::{SessionSummary, UnifiedDebugSession, UnifiedDebugSessionConfig};
225
226// Weight Analyzer
227pub use weight_analyzer::{
228    InitializationScheme, WeightAnalysis, WeightAnalyzer, WeightAnalyzerConfig, WeightHistogram,
229    WeightStatistics,
230};
231
232// MLflow Integration
233pub use mlflow_integration::{
234    ArtifactType, MLflowClient, MLflowConfig, MLflowDebugSession, MetricPoint, RunInfo, RunStatus,
235};
236
237// Visualization Plugin System
238pub use visualization_plugins::{
239    OutputFormat as PluginOutputFormat, PluginConfig, PluginManager, PluginMetadata, PluginResult,
240    VisualizationData, VisualizationPlugin,
241};
242
243// Performance Tuning
244pub use performance_tuning::{
245    Difficulty, HardwareType, ImpactEstimate, PerformanceSnapshot,
246    PerformanceSummary as TuningPerformanceSummary, PerformanceTuner, Priority, Recommendation,
247    RecommendationCategory, TunerConfig, TuningReport,
248};
249
250// ============================================================================
251// Module Re-exports
252// ============================================================================
253//
254// ⚠️  TYPE NAME CONFLICTS (Documented for clarity):
255// The following types are defined in multiple modules. The LAST import wins in Rust.
256// If you need a specific version, import directly from the module:
257//
258// - `LRScheduleType`: defined in `training_dynamics` (PRIMARY) and `advanced_ml_debugging`
259//   → Use `training_dynamics::LRScheduleType` for training schedules
260//   → Use `advanced_ml_debugging::LRScheduleType` for ML debugging contexts
261//
262// - `RiskLevel`: defined in `llm_debugging` (PRIMARY) and `advanced_ml_debugging`
263//   → Use `llm_debugging::RiskLevel` for LLM safety analysis
264//   → Use `advanced_ml_debugging::RiskLevel` for general ML risk assessment
265//
266// - `InteractionType`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
267//   → Use `simulation_tools::InteractionType` for simulation interactions
268//   → Use `advanced_ml_debugging::InteractionType` for ML component interactions
269//
270// - `BottleneckType`: defined in `profiler` (PRIMARY) and `advanced_ml_debugging`
271//   → Use `profiler::BottleneckType` for performance bottlenecks
272//   → Use `advanced_ml_debugging::BottleneckType` for ML-specific bottlenecks
273//
274// - `FeatureSensitivityAnalysis`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
275//   → Use `simulation_tools::FeatureSensitivityAnalysis` for simulation feature analysis
276//   → Use `advanced_ml_debugging::FeatureSensitivityAnalysis` for ML feature analysis
277//
278// - `RobustnessAssessment`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
279//   → Use `simulation_tools::RobustnessAssessment` for simulation robustness
280//   → Use `advanced_ml_debugging::RobustnessAssessment` for ML robustness
281//
282// - `PatternType`: defined in `memory_profiler` (PRIMARY) and `ai_code_analyzer`
283//   → Use `memory_profiler::PatternType` for memory allocation patterns
284//   → Use `ai_code_analyzer::PatternType` for code patterns
285//
286// - `IssueType`: defined in `auto_debugger` (PRIMARY) and `ai_code_analyzer`
287//   → Use `auto_debugger::IssueType` for debugging issues
288//   → Use `ai_code_analyzer::IssueType` for code analysis issues
289//
290// ============================================================================
291
292// Primary exports (order determines which type wins for ambiguous names)
293// Note: New visualization modules are explicitly imported above to avoid conflicts
294pub use advanced_ml_debugging::*;
295pub use ai_code_analyzer::*;
296pub use anomaly_detector::*;
297pub use architecture_analysis::*;
298pub use auto_debugger::*;
299pub use behavior_analysis::*;
300pub use cicd_integration::*;
301pub use collaboration::*;
302pub use computation_graph::*;
303pub use dashboard::*;
304pub use data_export::*;
305pub use differential_debugging::*;
306pub use distributed_debugger::*;
307pub use distributed_profiling::*;
308pub use environmental_monitor::*;
309pub use error_recovery::*;
310pub use flame_graph_profiler::*;
311pub use gradient_debugger::*;
312pub use health_checker::*;
313pub use hooks::*;
314pub use ide_integration::*;
315pub use interactive_debugger::*;
316pub use large_model_viz::*;
317pub use llm_debugging::*;
318pub use memory_profiler::*;
319pub use model_diagnostics::*;
320pub use neural_network_debugging::*;
321pub use profiler::*;
322pub use quantum_debugging::*;
323pub use realtime_dashboard::{AlertSeverity as DashboardAlertSeverity, *};
324pub use regression_detector::*;
325pub use report_generation::*;
326pub use simulation_tools::*;
327pub use streaming_debugger::*;
328pub use team_dashboard::*;
329pub use tensor_inspector::*;
330pub use training_dynamics::*; // LRScheduleType from here is PRIMARY
331pub use utilities::*;
332pub use visualization::*;
333#[cfg(feature = "wasm")]
334pub use wasm_interface::*;
335
336use scirs2_core::ndarray::ArrayD; // SciRS2 Integration Policy
337
338// ============================================================================
339// NEW MODULAR ARCHITECTURE
340// ============================================================================
341
342/// Core debugging session and configuration management
343pub mod core;
344
345/// Simplified debugging interface with one-line functions
346pub mod interface;
347
348/// Guided debugging system with step-by-step workflows
349pub mod guided;
350
351/// Interactive tutorial and learning system
352pub mod tutorial;
353
354/// Context-aware help system
355pub mod help;
356
357/// Performance optimization system for production debugging
358pub mod performance;
359
360// Re-export all public items from modules for backward compatibility
361pub use core::*;
362pub use guided::*;
363pub use help::*;
364pub use interface::*;
365pub use performance::*;
366pub use tutorial::*;
367
368// Interpretability types (real implementations from interpretability_tools module)
369pub use interpretability_tools::{
370    InterpretabilityAnalyzer, InterpretabilityConfig, InterpretabilityReport,
371};