[논문 리뷰] Software Engineering Practice in the Development of Deep Learning Applications
이 논문은 195명의 산업 전문가를 대상으로 한 설문 조사로 딥 러닝(DL) 응용 프로그램 개발에서 소프트웨어 공학 도전 과제를 조사한다. 개발 라이프사이클 전반에서 13개의 핵심 과제를 특정하고, 이를 7개의 실행 가능한 권고로 요약하여 DL 소프트웨어 공학 관행과 연구를 향상시키기 위한 방안을 제시한다.
Deep-Learning(DL) applications have been widely employed to assist in various tasks. They are constructed based on a data-driven programming paradigm that is different from conventional software applications. Given the increasing popularity and importance of DL applications, software engineering practitioners have some techniques specifically for them. However, little research is conducted to identify the challenges and lacks in practice. To fill this gap, in this paper, we surveyed 195 practitioners to understand their insight and experience in the software engineering practice of DL applications. Specifically, we asked the respondents to identify lacks and challenges in the practice of the development life cycle of DL applications. The results present 13 findings that provide us with a better understanding of software engineering practice of DL applications. Further, we distil these findings into 7 actionable recommendations for software engineering researchers and practitioners to improve the development of DL applications.
연구 동기 및 목표
- 산업 전문가의 시각에서 딥 러닝(DL) 응용 프로그램을 위한 소프트웨어 공학 관행의 실제 과제와 부족점을 이해하기 위해.
- 데이터 관리, 모델 훈련, 테스팅, 디버깅을 포함한 DL 응용 프로그램 개발 라이프사이클의 각 단계에서 발생하는 구체적인 곤란함을 특정하기 위해.
- 실제 전문가 경험에 기반하여 기존 소프트웨어 공학 기법과 DL 응용 프로그램 개발의 고유한 요구사항 간 격차를 메우기 위해.
- DL 응용 프로그램의 신뢰성, 유지보수성 및 공학적 엄밀성을 향상시키기 위한 실행 가능한 통찰과 연구 방향을 제공하기 위해.
제안 방법
- 다양한 기업 소속 195명의 산업 전문가를 대상으로 한 종합적 설문 조사로, DL 소프트웨어 공학 관행에 대한 통찰를 확보하였다.
- 문헌 검토 및 바이두, 알리바바, 화웨이 소속 8명의 개발자와의 반구조화된 인터뷰를 수행하여 설문 조사 설계를 지원하였다.
- 모든 DL 개발 라이프사이클 단계를 다루는 개방형 질문지(특히 테스팅 및 디버깅 과제에 중점을 두고)를 설계하였다.
- 질적 분석을 통해 전문가 경험과 기대를 반영한 13개의 핵심 발견으로 응답을 통합하였다.
- 소프트웨어 공학 연구자와 전문가를 위한 7개의 실행 가능한 권고로 발견 내용을 변환하였다.
- 설문 질문의 타당성과 명확성 향상을 위해 산업 전문가 인터뷰 대상자들과의 검증을 수행하였다.
실험 결과
연구 질문
- RQ1딥 러닝 응용 프로그램 개발 라이프사이클 동안 전문가들이 겪는 주요 과제는 무엇인가요?
- RQ2딥 러닝의 데이터 중심 프로그래밍 관행은 전통적인 소프트웨어 공학과 비교할 때 어떤 방식으로 개발 과제에서 다릅니까?
- RQ3전문가들이 딥 러닝 모델의 테스팅 및 디버깅에서 겪는 구체적인 곤란함은 무엇인가요?
- RQ4딥 러닝 응용 프로그램 개발에 적용할 때 현재 소프트웨어 공학 기법에 존재하는 핵심 격차는 무엇인가요?
- RQ5어떻게 하면 소프트웨어 공학 연구가 산업 내 딥 러닝 전문가들의 변화하는 요구를 더 잘 지원할 수 있을까요?
주요 결과
- 데이터 품질, 레이블 일관성, 데이터 버전 관리 등 데이터 관리에 큰 과제를 겪고 있으며, 이는 중요하지만 일반적으로 DL 워크플로우에서 지원이 부족한 영역이다.
- 하이퍼파rameter 조정의 복잡성, 재현성 부족, 훈련 진행 상황 모니터링 부족으로 인해 모델 훈련이 자주 방해받는다.
- 표준화된 테스팅 프레임워크 부재와 딥 러닝 출력의 비결정성으로 인해 딥 러닝 모델의 테스팅 및 디버깅이 매우 곤란하게 여겨진다.
- 모델 검증, 버전 관리, 배포를 위한 도구와 자동화 부족으로 인해 수동적이고 실수를 유발하기 쉬운 관행이 지속되고 있다.
- 팀 기반 및 프로덕션 환경에서 특히 문서화, 추적성, 협업 지원에 대한 강력한 수요가 존재한다.
- 많은 전문가들이 모델가 시간이 지남에 따라 기능 저하되거나 새로운 환경에서 작동하지 않을 경우를 대비해 DL 시스템의 장기적 유지보수성과 신뢰성에 대해 우려를 제기하고 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.