A Taxonomy of Self-Admitted Technical Debt in Deep Learning Systems
<|reference_start|>A Taxonomy of Self-Admitted Technical Debt in Deep Learning Systems: The development of Machine Learning (ML)- and, more recently, of Deep Learning (DL)-intensive systems requires suitable choices, e.g., in terms of technology, algorithms, and hyper-parameters. Such choices depend on developers' experience, as well as on proper experimentation. Due to limited time availability, developers may adopt suboptimal, sometimes temporary choices, leading to a technical debt (TD) specifically related to the ML code. This paper empirically analyzes the presence of Self-Admitted Technical Debt (SATD) in DL systems. After selecting 100 open-source Python projects using popular DL frameworks, we identified SATD from their source comments and created a stratified sample of 443 SATD to analyze manually. We derived a taxonomy of DL-specific SATD through open coding, featuring seven categories and 41 leaves. The identified SATD categories pertain to different aspects of DL models, some of which are technological (e.g., due to hardware or libraries) and some related to suboptimal choices in the DL process, model usage, or configuration. Our findings indicate that DL-specific SATD differs from DL bugs found in previous studies, as it typically pertains to suboptimal solutions rather than functional (\eg blocking) problems. Last but not least, we found that state-of-the-art static analysis tools do not help developers avoid such problems, and therefore, specific support is needed to cope with DL-specific SATD.<|reference_end|>
@article{pepe2024a,
    title={A Taxonomy of Self-Admitted Technical Debt in Deep Learning Systems},
    author={Federica Pepe, Fiorella Zampetti, Antonio Mastropaolo, Gabriele
  Bavota, Massimiliano Di Penta},
    journal={Proceedings of the 40th IEEE International Conference on Software
  Maintenance and Evolution (ICSME 2024)},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.11826},
    primaryClass={cs.SE}
}