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 mod interpretability_tools;
89pub mod kernel_optimizer;
90pub mod large_model_viz;
91pub mod llm_debugging;
92pub mod memory_profiler;
93pub mod model_diagnostics;
94pub mod model_diagnostics_main;
95pub use model_diagnostics_main::{ModelDiagnostics, ModelDiagnosticsReport};
96
97// Import specific types from model_diagnostics to avoid conflicts
98pub use model_diagnostics::{
99    ActivationHeatmap,
100    ActiveAlert,
101    // Advanced analytics
102    AdvancedAnalytics,
103    AlertConfig,
104    // Alert system
105    AlertManager,
106    AlertSeverity,
107    AlertStatistics,
108
109    AlertStatus,
110    AlertThresholds,
111    AnalyticsConfig,
112    AnalyticsReport,
113    AnomalyDetectionResults,
114    ArchitecturalAnalysis,
115    AttentionVisualization,
116    AutoDebugConfig,
117    // Auto-debugging system
118    AutoDebugger,
119    ConvergenceStatus,
120    DebuggingRecommendation,
121    DebuggingReport,
122    HiddenStateAnalysis,
123
124    IdentifiedIssue,
125    IssueCategory,
126    IssueSeverity,
127
128    LayerActivationStats,
129    LayerAnalysis,
130    LayerAnalysisConfig,
131
132    // Layer analysis (prefixed to avoid conflicts)
133    LayerAnalyzer,
134    ModelArchitectureInfo,
135    ModelDiagnosticAlert,
136    // Core types that don't conflict
137    ModelPerformanceMetrics,
138    OverfittingIndicator,
139    // Performance analysis (prefixed to avoid conflicts)
140    PerformanceAnalyzer,
141    PerformanceAnomaly,
142
143    PerformanceSummary,
144    PlateauInfo,
145    StatisticalAnalysis,
146    TrainingDynamics,
147    // Training analysis (prefixed to avoid conflicts)
148    TrainingDynamicsAnalyzer,
149
150    TrainingStability,
151    UnderfittingIndicator,
152    WeightDistribution,
153};
154pub mod neural_network_debugging;
155pub mod profiler;
156pub mod quantum_debugging;
157pub mod realtime_dashboard;
158pub mod regression_detector;
159pub mod report_generation;
160pub mod simulation_tools;
161pub mod streaming_debugger;
162pub mod team_dashboard;
163pub mod tensor_inspector;
164pub mod training_dynamics;
165pub mod utilities;
166pub mod visualization;
167#[cfg(feature = "wasm")]
168pub mod wasm_interface;
169
170// GPU profiling imports (specific to avoid conflicts)
171pub use advanced_gpu_profiler::{
172    AdvancedGpuMemoryProfiler, AdvancedGpuProfilingConfig, CrossDeviceTransfer,
173    GpuMemoryAllocation, GpuMemoryType, HighImpactOptimization, KernelOptimizationSummaryReport,
174    MemoryAnalysisReport, MemoryFragmentationSnapshot,
175};
176
177// Kernel optimization imports (specific)
178pub use kernel_optimizer::{
179    KernelOptimizationAnalyzer, KernelOptimizationConfig, KernelOptimizationReport,
180    KernelProfileData,
181};
182
183// ============================================================================
184// New Visualization and Analysis Tools (TODO.md implementations)
185// ============================================================================
186
187// TensorBoard Integration
188pub use tensorboard_integration::{
189    create_graph_node, tensor_to_histogram_values, GraphDef, GraphNode as TensorBoardGraphNode,
190    HistogramEvent, ScalarEvent, TensorBoardWriter, TextEvent,
191};
192
193// Netron/ONNX Export
194pub use netron_export::{
195    AttributeValue, ExportFormat, GraphNode as NetronGraphNode, ModelGraph, ModelMetadata,
196    NetronExporter, NetronModel, TensorData, TensorInfo,
197};
198
199// Activation Visualizer
200pub use activation_visualizer::{
201    ActivationConfig, ActivationData, ActivationHeatmap as ActivationVisualizerHeatmap,
202    ActivationHistogram, ActivationStatistics, ActivationVisualizer,
203};
204
205// Attention Visualizer
206pub use attention_visualizer::{
207    AttentionAnalysis, AttentionFlow, AttentionHeatmap as AttentionVisualizerHeatmap,
208    AttentionType, AttentionVisualizer, AttentionVisualizerConfig, AttentionWeights, ColorScheme,
209};
210
211// Stability Checker
212pub use stability_checker::{
213    IssueKind, StabilityChecker, StabilityConfig, StabilityIssue, StabilitySummary,
214};
215
216// Graph Visualizer
217pub use graph_visualizer::{
218    ComputationGraph, GraphColorScheme, GraphEdge, GraphNode as GraphVisualizerNode,
219    GraphStatistics, GraphVisualizer, GraphVisualizerConfig, LayoutDirection,
220};
221
222// Unified Debug Session Manager
223pub use unified_debug_session::{SessionSummary, UnifiedDebugSession, UnifiedDebugSessionConfig};
224
225// Weight Analyzer
226pub use weight_analyzer::{
227    InitializationScheme, WeightAnalysis, WeightAnalyzer, WeightAnalyzerConfig, WeightHistogram,
228    WeightStatistics,
229};
230
231// MLflow Integration
232pub use mlflow_integration::{
233    ArtifactType, MLflowClient, MLflowConfig, MLflowDebugSession, MetricPoint, RunInfo, RunStatus,
234};
235
236// Visualization Plugin System
237pub use visualization_plugins::{
238    OutputFormat as PluginOutputFormat, PluginConfig, PluginManager, PluginMetadata, PluginResult,
239    VisualizationData, VisualizationPlugin,
240};
241
242// Performance Tuning
243pub use performance_tuning::{
244    Difficulty, HardwareType, ImpactEstimate, PerformanceSnapshot,
245    PerformanceSummary as TuningPerformanceSummary, PerformanceTuner, Priority, Recommendation,
246    RecommendationCategory, TunerConfig, TuningReport,
247};
248
249// ============================================================================
250// Module Re-exports
251// ============================================================================
252//
253// ⚠️  TYPE NAME CONFLICTS (Documented for clarity):
254// The following types are defined in multiple modules. The LAST import wins in Rust.
255// If you need a specific version, import directly from the module:
256//
257// - `LRScheduleType`: defined in `training_dynamics` (PRIMARY) and `advanced_ml_debugging`
258//   → Use `training_dynamics::LRScheduleType` for training schedules
259//   → Use `advanced_ml_debugging::LRScheduleType` for ML debugging contexts
260//
261// - `RiskLevel`: defined in `llm_debugging` (PRIMARY) and `advanced_ml_debugging`
262//   → Use `llm_debugging::RiskLevel` for LLM safety analysis
263//   → Use `advanced_ml_debugging::RiskLevel` for general ML risk assessment
264//
265// - `InteractionType`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
266//   → Use `simulation_tools::InteractionType` for simulation interactions
267//   → Use `advanced_ml_debugging::InteractionType` for ML component interactions
268//
269// - `BottleneckType`: defined in `profiler` (PRIMARY) and `advanced_ml_debugging`
270//   → Use `profiler::BottleneckType` for performance bottlenecks
271//   → Use `advanced_ml_debugging::BottleneckType` for ML-specific bottlenecks
272//
273// - `FeatureSensitivityAnalysis`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
274//   → Use `simulation_tools::FeatureSensitivityAnalysis` for simulation feature analysis
275//   → Use `advanced_ml_debugging::FeatureSensitivityAnalysis` for ML feature analysis
276//
277// - `RobustnessAssessment`: defined in `simulation_tools` (PRIMARY) and `advanced_ml_debugging`
278//   → Use `simulation_tools::RobustnessAssessment` for simulation robustness
279//   → Use `advanced_ml_debugging::RobustnessAssessment` for ML robustness
280//
281// - `PatternType`: defined in `memory_profiler` (PRIMARY) and `ai_code_analyzer`
282//   → Use `memory_profiler::PatternType` for memory allocation patterns
283//   → Use `ai_code_analyzer::PatternType` for code patterns
284//
285// - `IssueType`: defined in `auto_debugger` (PRIMARY) and `ai_code_analyzer`
286//   → Use `auto_debugger::IssueType` for debugging issues
287//   → Use `ai_code_analyzer::IssueType` for code analysis issues
288//
289// ============================================================================
290
291// Primary exports (order determines which type wins for ambiguous names)
292// Note: New visualization modules are explicitly imported above to avoid conflicts
293pub use advanced_ml_debugging::*;
294pub use ai_code_analyzer::*;
295pub use anomaly_detector::*;
296pub use architecture_analysis::*;
297pub use auto_debugger::*;
298pub use behavior_analysis::*;
299pub use cicd_integration::*;
300pub use collaboration::*;
301pub use computation_graph::*;
302pub use dashboard::*;
303pub use data_export::*;
304pub use differential_debugging::*;
305pub use distributed_debugger::*;
306pub use distributed_profiling::*;
307pub use environmental_monitor::*;
308pub use error_recovery::*;
309pub use flame_graph_profiler::*;
310pub use gradient_debugger::*;
311pub use health_checker::*;
312pub use hooks::*;
313pub use ide_integration::*;
314pub use interactive_debugger::*;
315pub use large_model_viz::*;
316pub use llm_debugging::*;
317pub use memory_profiler::*;
318pub use model_diagnostics::*;
319pub use neural_network_debugging::*;
320pub use profiler::*;
321pub use quantum_debugging::*;
322pub use realtime_dashboard::{AlertSeverity as DashboardAlertSeverity, *};
323pub use regression_detector::*;
324pub use report_generation::*;
325pub use simulation_tools::*;
326pub use streaming_debugger::*;
327pub use team_dashboard::*;
328pub use tensor_inspector::*;
329pub use training_dynamics::*; // LRScheduleType from here is PRIMARY
330pub use utilities::*;
331pub use visualization::*;
332#[cfg(feature = "wasm")]
333pub use wasm_interface::*;
334
335use scirs2_core::ndarray::ArrayD; // SciRS2 Integration Policy
336
337// ============================================================================
338// NEW MODULAR ARCHITECTURE
339// ============================================================================
340
341/// Core debugging session and configuration management
342pub mod core;
343
344/// Simplified debugging interface with one-line functions
345pub mod interface;
346
347/// Guided debugging system with step-by-step workflows
348pub mod guided;
349
350/// Interactive tutorial and learning system
351pub mod tutorial;
352
353/// Context-aware help system
354pub mod help;
355
356/// Performance optimization system for production debugging
357pub mod performance;
358
359// Re-export all public items from modules for backward compatibility
360pub use core::*;
361pub use guided::*;
362pub use help::*;
363pub use interface::*;
364pub use performance::*;
365pub use tutorial::*;