Skip to main content
QUICK REVIEW

[논문 리뷰] What Do Developers Ask About ML Libraries? A Large-scale Study Using Stack Overflow

Md Johirul Islam, Hoan Anh Nguyen|arXiv (Cornell University)|2019. 06. 27.
Software Engineering Research인용 수 11
한 줄 요약

이 연구는 10개의 인기 있는 머신러닝 라이브러리에 관한 3,243개의 높은 추천 수를 받은 스택오버플로우 질문을 분석하여 개발자들이 겪는 공통된 과제를 규명한다. 수동 라벨링과 통계 분석을 통해 모델 생성과 데이터 준비 단계가 가장 어려운 단계임을 확인했으며, 유형 불일치, 파라미터 선택, API 오용 등은 라이브러리 간에 지속적인 문제로 나타나, 머신러닝 소프트웨어 공학 분야에서 더 나은 정적 분석과 개선된 API 설계가 절실한 필요성을 드러낸다.

ABSTRACT

Modern software systems are increasingly including machine learning (ML) as an integral component. However, we do not yet understand the difficulties faced by software developers when learning about ML libraries and using them within their systems. To that end, this work reports on a detailed (manual) examination of 3,243 highly-rated Q&A posts related to ten ML libraries, namely Tensorflow, Keras, scikit-learn, Weka, Caffe, Theano, MLlib, Torch, Mahout, and H2O, on Stack Overflow, a popular online technical Q&A forum. We classify these questions into seven typical stages of an ML pipeline to understand the correlation between the library and the stage. Then we study the questions and perform statistical analysis to explore the answer to four research objectives (finding the most difficult stage, understanding the nature of problems, nature of libraries and studying whether the difficulties stayed consistent over time). Our findings reveal the urgent need for software engineering (SE) research in this area. Both static and dynamic analyses are mostly absent and badly needed to help developers find errors earlier. While there has been some early research on debugging, much more work is needed. API misuses are prevalent and API design improvements are sorely needed. Last and somewhat surprisingly, a tug of war between providing higher levels of abstractions and the need to understand the behavior of the trained model is prevalent.

연구 동기 및 목표

  • 실제 머신러닝 라이브러리 사용 시 소프트웨어 개발자들이 겪는 특정 곤경을 이해하기 위해.
  • 머신러닝 파이프라인의 어느 단계가 개발자들에게 가장 오류가 많고 시간이 많이 소요되는지 규명하기 위해.
  • 일부 문제가 머신러닝 자체의 본질적인 특성 때문인지, 특정 라이브러리에만 국한된 것인지 파악하기 위해.
  • 딥러닝의 부상과 함께 머신러닝 라이브러리 사용의 어려움이 시간이 지남에 따라 변화했는지 평가하기 위해.

제안 방법

  • 텐서플로우, 케라스, 사이킷런, 위카, 커피, 티노, 엠리브, 토치, 마후트, H2O를 포함한 10개의 인기 있는 머신러닝 라이브러리와 관련된 3,243개의 높은 평가를 받은 스택오버플로우 게시글을 수집하였다.
  • 머신러닝 전문 박사학위를 가진 3명의 연구자가 수동 라벨링을 수행하여, 얼굴 대면 회의를 통해 갈등을 해결함으로써 높은 상호 평가 일致도를 확보하였다.
  • 질문을 머신러닝 파이프라인의 일곱 단계로 분류: 데이터 준비, 모델 생성, 학습, 평가, 예측, 배포, 하이퍼파라미터 튜닝.
  • 고품질 게시글을 선별하기 위해 점수 기준을 설정하고, 라이브러리 및 시간대 간 문제 빈도를 비교하기 위해 통계 분석을 수행하였다.
  • 각 라이브러리 내부 및 상호 비교 분석을 통해 개별 라이브러리의 강점과 약점을 비교하였다.
  • 2015년에서 2018년까지의 시간 경향을 분석하기 위해 질문 수와 주제 분포를 시간 순서로 추적하였다.

실험 결과

연구 질문

  • RQ1머신러닝 파이프라인에서 개발자들이 가장 어려움을 겪는 단계는 무엇인가?
  • RQ2개발자들이 겪는 문제들은 특정 머신러닝 라이브러리에 국한된 것인지, 머신러닝 자체의 본질적인 특성 때문인가?
  • RQ3다양한 단계에서 가장 어려움을 겪는 머신러닝 라이브러리는 무엇이며, 그들의 상대적 강점과 약점은 무엇인가?
  • RQ4머신러닝 라이브러리 사용의 어려움은 시간이 지남에 따라 일정하게 유지되었는가, 아니면 딥러닝의 부상과 새로운 추상화 기법의 출현에 따라 변화했는가?

주요 결과

  • 모델 생성 단계가 머신러닝 파이프라인에서 가장 어려운 단계로 규명되었으며, 그 다음으로 데이터 준비 단계가 뒤이었다. 이 단계는 질문 수가 가장 많고 복잡도가 가장 높았다.
  • 유형 불일치, 데이터 정제 문제, 하이퍼파라미터 선택은 모든 라이브러리에서 가장 자주 보고된 문제로 나타나, API 사용성에 대한 체계적인 과제임을 시사했다.
  • H2O와 마후트는 초기 파이프라인 단계(데이터 준비 및 모델 생성)에서 비례하지 않게 높은 어려움을 겪었으며, 이는 개발자 지원이 열악하거나 API가 덜 직관적일 수 있음을 시사한다.
  • 사이킷런은 모델 생성 및 하이퍼파라미터 튜닝 관련 하위범주에서 더 높은 비율의 질문을 기록하여, 심지어 성숙한 라이브러리라도 사용성의 심각한 장애물에 직면해 있음을 보여주었다.
  • 2017년 이후 데이터 준비 곤경이 증가했으며, 이는 딥러닝의 부상과 케라스, 텐서플로우와 같은 고수준 라이브러리의 인기와 겹친다. 이는 딥러닝 워크플로우에서 데이터 처리의 복잡성이 증가하고 있음을 시사한다.
  • 학습 관련 문제는 시간이 지남에 따라 서서히 증가하는 경향을 보였으며, 이는 딥러닝 모델의 복잡성과 자원 요구량 증가와 관련이 있다. 반면 평가 관련 문제는 10년 동안 안정적으로 유지되었고 해결되지 않은 채로 남아 있었다.

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

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

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

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