[논문 리뷰] Empirical Characterization of Logging Smells in Machine Learning Code
이 논문은 444개의 오픈 소스 ML 저장소에서 ML 특화 로깅 냄새를 경험적으로 식별하고, 이를 실무자 설문으로 검증하며 2,448개의 냄새 인스턴스가 라벨링된 데이터 세트를 공개한다.
Logging plays a central role in ensuring reproducibility, observability, and reliability in machine learning (ML) systems. While logging is generally considered a good engineering practice, poorly designed logging can negatively affect experiment tracking, security, debugging, and system performance. In this paper, we present an empirical study of logging smells in ML projects and propose a taxonomy of ML-specific logging smell types. We conducted a large-scale analysis of 444 ML repositories and manually labeled 2,448 instances of logging smells. Based on this analysis, we identified 12 categories of logging smells spanning security, metric management, configuration, verbosity, and context-related issues. Our results show that logging smells are widespread in ML systems and vary in frequency and manifestation across projects. To assess practical relevance, we conducted a survey with 27 ML practitioners. Most respondents agreed with the identified smells and reported that several types, including Logging Sensitive Data, Metric Overwrite, Missing Hyperparameter Logging, and Log Without Context, have a strong impact on reproducibility, maintainability, and trustworthiness. Other smells, such as Heavy Data Logging and Print-based Logging, were perceived as more context-dependent. We publicly release our labeled dataset to support future research. Our findings highlight logging quality as a critical and underexplored aspect of ML system engineering and open opportunities for automated detection and repair of logging issues.
연구 동기 및 목표
- Logging이 ML 가시성에 대해 결정적이지만 ML 코드베이스에서 종종 잘 설계되지 않는다는 것을 보여줌으로써 연구를 시작한다.
- 대규모 라벨링을 통해 ML 특화 로깅 냄새의 데이터 기반 분류 체계를 구축한다.
- ML 실무자와의 검증으로 분류 체계의 적합성과 심각도를 평가한다.
- 향후 연구를 뒷받침하기 위한 라벨링된 데이터 세트를 포함한 재현 패키지를 제공한다.
제안 방법
- Foalem 등(2024)의 ML 로깅 관행 데이터셋을 활용하여 444개의 활성 ML 저장소에 걸친 Python 파일에서 로깅 문장을 식별한다.
- 구성 문장만을 제외하도록 로깅 관련 코드를 클러스터링·필터링하여 4,528개 함수에서 15,911개의 로깅 문장을 얻는다.
- LLM 보조 코딩(GPT-5-mini)과 수동 검증을 통한 인간-루프의 반복적 분류 체계 구축으로 12개의 냄새를 도출한다.
- 2,448개의 함수 수준 샘플을 시드 생성, 반복 정제, 포화, 신뢰도 평가(상호 평가 일치도 κ = 0.817) 단계로 분할한다.
- 사용 맥락, 코드 조각, 메타데이터를 문서화한 구조화된 JSON 데이터셋을 생성하고 재현을 위해 공개한다.
실험 결과
연구 질문
- RQ1RQ1: 오픈 소스 ML 기반 시스템에 어떤 로깅 냄새가 존재하는가?
- RQ2RQ2: ML 실무자들은 실무에서 이 로깅 냄새를 어떻게 인식하고 경험하는가?
주요 결과
- ML 특화 로깅 냄새 12가 식별되었으며 보안, 지표 관리, 구성, 명료성(verbosity), 맥락 관련 이슈에 걸쳐 있다.
- 냄새는 프로젝트 간에 널리 퍼져 있으며 빈도와 표현 방식이 다양하다.
- 실무자 응답은 분류 체계에 강한 동의와 보안, 재현성, 실험 정확성에 영향을 주는 냄새에 대해 더 높은 관련성 및 심각성을 보인다.
- 일부 냄새(예: Heavy Data Logging, Print-based Logging)는 성능과 관찰 가능성 간의 트레이드오프를 반영하여 맥락 의존적이다.
- 2,448개의 로깅 냄새 인스턴스 공개 데이터세트가 자동 탐지 및 AI 지원 수리 연구를 지원한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.