Skip to main content
QUICK REVIEW

[논문 리뷰] An Empirical Study of Library Usage and Dependency in Deep Learning Frameworks

Mohamed Raed El aoun, Lionel Nganyewou Tidjon|arXiv (Cornell University)|2022. 11. 28.
Machine Learning and Data Classification인용 수 7
한 줄 요약

이 경험적 연구는 1,484개의 오픈소스 딥러닝 프로젝트를 분석하여 라이브러리 사용 패턴, 종속성, 워크플로우 통합 방식을 이해한다. 파이썬 코드에 대한 정적 분석을 통해, 토치와 사이킷런, 케라스와 텐서플로우가 가장 흔한 라이브러리 조합임을 밝혀냈으며, 개발자들이 워크플로우 전반에서 단순한 함수와 다수의 라이브러리를 선호함을 확인하였다. 이는 라이브러리 및 하드웨어 최적화에 유용한 통찰을 제공한다.

ABSTRACT

Recent advances in deep learning (dl) have led to the release of several dl software libraries such as pytorch, Caffe, and TensorFlow, in order to assist machine learning (ml) practitioners in developing and deploying state-of-the-art deep neural networks (DNN), but they are not able to properly cope with limitations in the dl libraries such as testing or data processing. In this paper, we present a qualitative and quantitative analysis of the most frequent dl libraries combination, the distribution of dl library dependencies across the ml workflow, and formulate a set of recommendations to (i) hardware builders for more optimized accelerators and (ii) library builder for more refined future releases. Our study is based on 1,484 open-source dl projects with 46,110 contributors selected based on their reputation. First, we found an increasing trend in the usage of deep learning libraries. Second, we highlight several usage patterns of deep learning libraries. In addition, we identify dependencies between dl libraries and the most frequent combination where we discover that pytorch and Scikit-learn and, Keras and TensorFlow are the most frequent combination in 18% and 14% of the projects. The developer uses two or three dl libraries in the same projects and tends to use different multiple dl libraries in both the same function and the same files. The developer shows patterns in using various deep-learning libraries and prefers simple functions with fewer arguments and straightforward goals. Finally, we present the implications of our findings for researchers, library maintainers, and hardware vendors.

연구 동기 및 목표

  • 딥러닝 라이브러리의 사용 추세가 시간에 따라 어떻게 변화해 왔는지 이해한다.
  • 실제 프로젝트에서 딥러닝 라이브러리 간의 공통된 조합 및 종속성 패턴을 특정한다.
  • 다양한 머신러닝 워크플로우 단계에서 다수의 딥러닝 라이브러리가 어떻게 사용되는지 분석한다.
  • 라이브러리 유지보수자, 하드웨어 제조사, 연구자들이 도구 및 시스템 설계를 향상시키기 위해 활용할 수 있는 실질적인 통찰을 제공한다.
  • 특히 다중 라이브러리 워크플로우와 종속성 구조에 관해 경험적 연구가 부족한 점을 보완한다.

제안 방법

  • 최소 두 개 이상의 딥러닝 라이브러리를 포함한 GitHub에서 1,484개의 오픈소스 딥러닝 프로젝트를 수집하고 분석하였다.
  • 파이썬의 추상구문트리(abstract syntax tree, AST) 파서를 활용한 정적 분석을 통해 라이브러리 사용 및 함수 호출을 추출하였다.
  • 버전 관리된 저장소 데이터를 활용해 2015년부터 2019년까지 라이브러리의 인기와 변화를 추적하였다.
  • 공동 합의를 확보하기 위해 수작업 레이블링을 통해 함수 호출을 머신러닝 워크플로우 단계(예: 데이터 전처리, 모델 학습, 평가)로 분류하였다.
  • 다양한 라이브러리 간에 파일 수준과 함수 수준에서의 종속성 패턴을 식별하였다.
  • 단위 테스트 및 종단 간 테스트를 통해 결과를 검증하였으며, 수작업 레이블링의 신뢰성을 확보하기 위해 이중 및 삼중 저자 검토를 실시하였다.

실험 결과

연구 질문

  • RQ1딥러닝 라이브러리의 사용은 시간에 따라 어떻게 변화해 왔는가?
  • RQ2동일한 프로젝트에서 가장 흔한 딥러닝 라이브러리 조합은 무엇인가?
  • RQ3딥러닝 라이브러리는 머신러닝 워크플로우의 다양한 단계에 어떻게 분포되어 있는가?
  • RQ4다수의 라이브러리 간에 함수 사용 패턴(예: 인자 수, 목적)에서 공통된 특징는 무엇인가?
  • RQ5이러한 발견은 라이브러리 유지보수자와 하드웨어 제조사에게 어떤 함의를 갖는가?

주요 결과

  • 2015년부터 2019년까지 딥러닝 라이브러리 사용은 급격히 증가하는 추세를 보이며, 특히 다중 라이브러리 사용이 증가하였다.
  • 텐서플로우가 가장 인기 있는 라이브러리였지만, 2019년 이후로는 사용 감소 추세를 보였으며, 이는 텐서플로우 2.0 출시 이후 두드러졌다.
  • 파이토치와 사이킷런 조합이 가장 흔한 조합으로 18%의 프로젝트에서 사용되었고, 다음으로 케라스와 텐서플로우 조합이 14%에서 사용되었다.
  • 개발자들은 일반적으로 동일한 프로젝트 내에서 두 개 또는 세 개의 딥러닝 라이브러리를 사용하며, 종종 동일한 파일과 함수 내에서 함께 사용한다.
  • 사용자들은 특히 사이킷런을 사용해 전처리 및 평가를 수행할 경우, 인자가 적고 목적만 단순한 함수를 선호한다.
  • 케라스는 단위 테스트 지원이 제한되어 있어 일부 라이브러리의 테스트 가능성에 격차가 있음을 시사하며, 이는 유지보수성과 신뢰성에 영향을 줄 수 있다.

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

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

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

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