Table of Contents
Fetching ...

MLScent A tool for Anti-pattern detection in ML projects

Karthik Shivashankar, Antonio Martini

TL;DR

ML codebases face quality and reproducibility challenges not well addressed by traditional tools. MLScent introduces a static AST-based framework with 76 detectors spanning TensorFlow, PyTorch, Scikit-learn, Hugging Face, Pandas, and NumPy, plus general ML smells and preprocessing checks. Evaluated on 43 real-world projects with practitioner feedback, MLScent shows strong framework- and library-specific detection performance (e.g., recall/F1 across generic, data-science, and framework smells), highlighting the value of framework-aware, extensible analysis for ML code quality. The work demonstrates that targeted static analysis can substantially improve ML code quality, reproducibility, and maintainability in practical ML pipelines.

Abstract

Machine learning (ML) codebases face unprecedented challenges in maintaining code quality and sustainability as their complexity grows exponentially. While traditional code smell detection tools exist, they fail to address ML-specific issues that can significantly impact model performance, reproducibility, and maintainability. This paper introduces MLScent, a novel static analysis tool that leverages sophisticated Abstract Syntax Tree (AST) analysis to detect anti-patterns and code smells specific to ML projects. MLScent implements 76 distinct detectors across major ML frameworks including TensorFlow (13 detectors), PyTorch (12 detectors), Scikit-learn (9 detectors), and Hugging Face (10 detectors), along with data science libraries like Pandas and NumPy (8 detectors each). The tool's architecture also integrates general ML smell detection (16 detectors), and specialized analysis for data preprocessing and model training workflows. Our evaluation demonstrates MLScent's effectiveness through both quantitative classification metrics and qualitative assessment via user studies feedback with ML practitioners. Results show high accuracy in identifying framework-specific anti-patterns, data handling issues, and general ML code smells across real-world projects.

MLScent A tool for Anti-pattern detection in ML projects

TL;DR

ML codebases face quality and reproducibility challenges not well addressed by traditional tools. MLScent introduces a static AST-based framework with 76 detectors spanning TensorFlow, PyTorch, Scikit-learn, Hugging Face, Pandas, and NumPy, plus general ML smells and preprocessing checks. Evaluated on 43 real-world projects with practitioner feedback, MLScent shows strong framework- and library-specific detection performance (e.g., recall/F1 across generic, data-science, and framework smells), highlighting the value of framework-aware, extensible analysis for ML code quality. The work demonstrates that targeted static analysis can substantially improve ML code quality, reproducibility, and maintainability in practical ML pipelines.

Abstract

Machine learning (ML) codebases face unprecedented challenges in maintaining code quality and sustainability as their complexity grows exponentially. While traditional code smell detection tools exist, they fail to address ML-specific issues that can significantly impact model performance, reproducibility, and maintainability. This paper introduces MLScent, a novel static analysis tool that leverages sophisticated Abstract Syntax Tree (AST) analysis to detect anti-patterns and code smells specific to ML projects. MLScent implements 76 distinct detectors across major ML frameworks including TensorFlow (13 detectors), PyTorch (12 detectors), Scikit-learn (9 detectors), and Hugging Face (10 detectors), along with data science libraries like Pandas and NumPy (8 detectors each). The tool's architecture also integrates general ML smell detection (16 detectors), and specialized analysis for data preprocessing and model training workflows. Our evaluation demonstrates MLScent's effectiveness through both quantitative classification metrics and qualitative assessment via user studies feedback with ML practitioners. Results show high accuracy in identifying framework-specific anti-patterns, data handling issues, and general ML code smells across real-world projects.

Paper Structure

This paper contains 38 sections, 1 figure, 9 tables.

Figures (1)

  • Figure 1: MLScent: Core Components