Skip to main content
QUICK REVIEW

[논문 리뷰] DeepDiagnosis: Automatically Diagnosing Faults and Recommending Actionable Fixes in Deep Learning Programs

Mohammad Wardat, Breno Dantas Cruz|arXiv (Cornell University)|2021. 12. 07.
Software Engineering Research인용 수 7
한 줄 요약

DeepDiagnosis는 훈련 중 핵심 오류 증상을 모니터링하여 딥러닝 모델의 훈련 중 여덟 가지 유형의 구조적 버그를 자동으로 검출하고 국소화하며 진단하는 동적 분석 프레임워크입니다. 수치 오류가 나타나지 않는 구조적 버그를 다루며, 수치 오류 외의 비수치적 증상 감지 기능을 제공함으로써 기존 최고 수준의 도구들인 UMLUAT와 DeepLocalize보다 고도의 정확도와 효율성을 확보합니다. 또한 더 넓은 모델 지원 범위를 제공합니다.

ABSTRACT

Deep Neural Networks (DNNs) are used in a wide variety of applications. However, as in any software application, DNN-based apps are afflicted with bugs. Previous work observed that DNN bug fix patterns are different from traditional bug fix patterns. Furthermore, those buggy models are non-trivial to diagnose and fix due to inexplicit errors with several options to fix them. To support developers in locating and fixing bugs, we propose DeepDiagnosis, a novel debugging approach that localizes the faults, reports error symptoms and suggests fixes for DNN programs. In the first phase, our technique monitors a training model, periodically checking for eight types of error conditions. Then, in case of problems, it reports messages containing sufficient information to perform actionable repairs to the model. In the evaluation, we thoroughly examine 444 models -53 real-world from GitHub and Stack Overflow, and 391 curated by AUTOTRAINER. DeepDiagnosis provides superior accuracy when compared to UMLUAT and DeepLocalize. Our technique is faster than AUTOTRAINER for fault localization. The results show that our approach can support additional types of models, while state-of-the-art was only able to handle classification ones. Our technique was able to report bugs that do not manifest as numerical errors during training. Also, it can provide actionable insights for fix whereas DeepLocalize can only report faults that lead to numerical errors during training. DeepDiagnosis manifests the best capabilities of fault detection, bug localization, and symptoms identification when compared to other approaches.

연구 동기 및 목표

  • 훈련 중 수치 오류로 나타나지 않는 구조적 버그를 진단하는 데 도전하는 것.
  • 수치적 이상을 초월해 다양한 유형의 오류 증상을 식별하는 동적 분석 방법을 개발하는 것.
  • 진단된 결함에 대해 실행 가능한, 인간이 이해할 수 있는 권고 사항을 제공하여 비전문가의 디버깅 노력 감소를 도모하는 것.
  • 기존 최고 수준의 도구들이 분류 모델에만 국한된 것과는 달리, 더 넓은 범위의 DNN 아키텍처를 지원하는 것.
  • 미래의 결함 국소화 및 디버깅 도구 평가를 위해 444개의 실제 및 정제된 버그가 포함된 공개 벤치마크를 구축하는 것.

제안 방법

  • DeepDiagnosis는 DNN 훈련 중 동적 모니터링을 수행하며, 정해진 여덟 가지 유형의 오류 증상을 주기적으로 점검합니다.
  • 중간 레이어 출력과 훈련 메트릭을 분석하여 기울기 소실, 기울기 폭발, 변화하지 않는 가중치 등의 증상과 같은 오류 징후를 탐지합니다.
  • 규칙 기반 시스템과 결정 트리를 사용해 감지된 증상을 근본 원인으로 매핑함으로써 해결책 탐색 공간을 축소합니다.
  • 개발자가 이해할 수 있는 인간 친화적인 진단 메시지를 생성하며, 근본 원인 분석과 실행 가능한 권고 사항을 포함합니다.
  • 딥러닝 프레임워크용 플러그인으로 구현되어 훈련 루프에 통합되며, 모델 재학습이 필요하지 않습니다.
  • 분류 모델뿐만 아니라 비분류 모델도 지원하여, 기존 도구들인 AUTOTRAINER와 달리 범위를 확장합니다.

실험 결과

연구 질문

  • RQ1수치 오류를 유발하지 않는 DNN의 구조적 버그를 동적 분석 기반으로 탐지할 수 있는가?
  • RQ2UMLUAT와 DeepLocalize와 같은 최고 수준의 도구들과 비교해 DeepDiagnosis의 결함 국소화 능력은 얼마나 효과적인가?
  • RQ3DeepDiagnosis는 진단된 결함에 대해 실행 가능한 수정 조치를 제안할 수 있으며, AUTOTRAINER와 같은 자동 복구 도구와 비교해 제안 품질은 어떠한가?
  • RQ4DeepDiagnosis는 분류 모델을 초월해 다양한 DNN 아키텍처에 대해 얼마나 일반화 가능한가?
  • RQ5DeepDiagnosis의 결함 국소화 및 증상 탐지 성능과 효율성은 AUTOTRAINER와 비교해 어떠한가?

주요 결과

  • DeepDiagnosis는 444개 모델로 구성된 데이터셋에서 UMLUAT와 DeepLocalize보다 뛰어난 결함 국소화 정확도를 달성했습니다.
  • 높은 진단 정밀도를 유지하면서도, AUTOTRAINER보다 결함 국소화 속도에서 뛰어난 성능을 보였습니다.
  • 기존 도구들이 간과한 비수치적 증상, 예를 들어 변화하지 않는 가중치와 정확도 정체 현상까지 성공적으로 탐지했습니다.
  • 학습률 및 옵티마이저 설정 오류를 포함해 여덟 가지 유형의 구조적 버그에 대해 실행 가능한 권고 사항을 제공했습니다.
  • 기존 최고 수준의 도구들이 분류 모델에만 국한된 것과는 달리, 더 넓은 모델 호환성을 확보하여 비분류 모델까지 지원함으로써 범위를 확장했습니다.
  • 저자들은 솔루션과 함께 444개의 버그가 포함된 공개 벤치마크를 공개하여 향후 디버깅 도구의 재현 가능한 평가를 가능하게 했습니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.