--- title: Transformers Modular Refactor emoji: 😻 colorFrom: yellow colorTo: gray sdk: gradio sdk_version: 5.39.0 app_file: app.py pinned: false license: mit short_description: Interactive analyzer for modular models in Transformers lib --- # 🔍 Transformers Modular Refactor Analyzer This interactive tool helps analyze modular refactoring opportunities in the HuggingFace Transformers library by visualizing model relationships, similarity patterns, and the impact of modularization on code maintainability. ## 📊 Features Overview ### 🕒 **Tab 1: Chronological Timeline** Interactive timeline showing the evolution of transformer models with modular dependencies positioned by their creation dates. **Key Features:** - Models positioned chronologically by git history - Modular dependency connections between models - Similarity scores between candidate models (red dashed edges) - Timeline axis with year/month markers - **Modular Logic Milestone**: May 31, 2024 marker showing when modular logic was introduced - Search functionality to highlight specific models and their connections - Zoom and pan to explore the full timeline **Visual Legend:** - 🟡 **Base models**: Foundation models that others depend on - 🔵 **Modular models**: Models with existing `modular_*.py` implementations - 🔴 **Candidate models**: Models without modular implementations (refactoring opportunities) - **Blue edges**: Import dependencies between modular implementations - **Red dashed edges**: High similarity scores indicating refactoring potential ### 📈 **Tab 2: LOC Growth** Chart visualizing how modular refactoring impacts Lines of Code (LOC) over time in the transformers repository. **Metrics Tracked:** - **Effective LOC**: Total maintainable code (modeling LOC for non-modular + modular LOC) - **Modular LOC**: Lines of code in `modular_*.py` files - **Modeling LOC (all)**: Total lines in all `modeling_*.py` files - **Modeling LOC (included)**: Lines in `modeling_*.py` files for models without modular versions **Key Insights:** - Shows the trajectory toward reduced code duplication - Demonstrates how modular refactoring can reduce total maintainable code - May 31, 2024 annotation marks the introduction of modular logic - Interactive chart with time-series data from git history ### 🌐 **Tab 3: Dependency Graph** Static network visualization focusing on model relationships and similarity patterns without chronological constraints. **Features:** - Force-directed graph layout optimized for relationship visibility - Toggle to show/hide candidate models and similarity edges - Node sizes reflect connection degree (more connected = larger) - Interactive drag-and-drop for graph exploration - Zoom and pan capabilities **Analysis Capabilities:** - Identify clusters of highly similar models (refactoring targets) - Understand modular dependency patterns - Spot potential consolidation opportunities - Explore the current modular architecture ### Filtering Options - **Similarity Threshold**: Adjustable cutoff for showing similarity edges (0.5-0.95) - **Multimodal Filter**: Focus on models with multimodal capabilities (models mentioning "pixel_values") - **Show/Hide Candidates**: Toggle visibility of non-modular models and their similarities --- *Built with Gradio, D3.js, and ApexCharts for interactive data visualization*