paint-brush
Data-Loader 환경 개요: 개요 및 소개~에 의해@serialization

Data-Loader 환경 개요: 개요 및 소개

~에 의해 The Serialization Publication5m2024/06/04
Read on Terminal Reader

너무 오래; 읽다

이 문서에서 연구자들은 ML 훈련을 개선하고 라이브러리의 기능, 유용성 및 성능을 비교하는 핵심 요소로 데이터로더를 강조합니다.
featured image - Data-Loader 환경 개요: 개요 및 소개
The Serialization Publication HackerNoon profile picture
0-item

저자:

(1) Iason Ofeidis, 뉴헤이븐 소재 예일대학교 전기공학과 및 예일 네트워크 과학 연구소 {동등 기여};

(2) Diego Kiedanski, 뉴헤이븐 소재 예일대학교 전기공학과 및 예일 네트워크 과학 연구소 {동등 기여};

(3) Leandros TassiulasLevon Ghukasyan, Activeloop, Mountain View, CA, USA, 전기 공학과, Yale University, New Haven의 네트워크 과학 연구소.

링크 표

추상적인

기계 학습 모델을 훈련하는 동안 스토리지에서 GPU로 데이터를 이동하는 역할을 하는 데이터로더는 훈련 작업의 성능을 획기적으로 향상시키는 열쇠를 쥐고 있을 수 있습니다. 최근의 발전은 훈련 시간을 상당히 단축할 뿐만 아니라 S3와 같은 원격 스토리지에서 데이터를 로드하는 등의 새로운 기능을 제공함으로써 가능성을 보여주었습니다. 본 논문에서는 데이터로더를 딥러닝(DL) 워크플로의 별도 구성 요소로 구별하고 그 구조와 기능을 개략적으로 설명한 최초의 사람입니다. 마지막으로, 사용 가능한 다양한 데이터 로딩 라이브러리에 대한 포괄적인 비교와 기능, 유용성, 성능 측면의 장단점, 그리고 그 라이브러리에서 얻은 통찰력을 제공합니다.

1. 소개

(심층) 기계 학습 모델을 훈련하려면 데이터 세트, 모델 및 하드웨어가 필요하며, 실제 문제에는 하나 이상의 GPU가 필요합니다.


우리는 항상 모델을 훈련하는 데 필요한 총 계산 시간을 줄이는 데 관심이 있습니다. 이는 비용 절감, 반복 용이성, 소규모 팀의 접근성 등 여러 가지 이유로 바람직합니다.


ML 파이프라인의 주요 구성 요소와 실행 시간 사이의 관계는 종종 명시적입니다. 즉, 데이터 세트가 클수록 더 오래 걸리고, 모델이 클수록 더 오래 걸리며, GPU가 빠를수록 총 실행 시간이 줄어듭니다. 종종 간과되는 퍼즐의 핵심 조각 중 하나는 이러한 모든 부분 사이의 접착제인 데이터 로더입니다. 데이터로더는 영구 저장소(RAM, 디스크 또는 네트워크)에서 데이터를 로드하고, 필요한 변환을 적용하고, 변환된 데이터를 모델이 수집할 수 있도록 적절한 장치로 보내는 작업을 담당합니다.


대부분의 개발자는 해당 기계 학습 프레임워크(Pytorch, Tensorflow, Jax)의 기본 데이터 로더가 이미 애플리케이션에 최적화되어 있다고 가정하며 타사 데이터 로더에 자주 의존하지 않습니다. 흥미롭게도 최근 데이터 로더가 ML 파이프라인의 더 중요한 병목 현상 중 하나일 수 있다는 것이 밝혀졌습니다(Mohan et al., 2020). 결과적으로 우리는 데이터로더 성능을 최적화하고 개선하는 데 전념하는 많은 새로운 라이브러리와 연구 프로젝트를 보았습니다.


예를 들어, MIT 연구팀이 개발한 새로운 오픈소스 라이브러리인 FFCV(Leclerc et al., 2022)는 기본 PyTorch 데이터 로더를 사용하는 데 걸리는 시간보다 훨씬 짧은 시간에 ImageNet을 훈련할 수 있었습니다. 이러한 이점은 Amazon Web Services(AWS) 및 Google Cloud Platform(GPC)과 같은 IaaS(Infrastructure as a Service)에 의존하는 기업 및 연구팀의 운영 비용을 획기적으로 줄일 수 있습니다.


데이터로더가 제공하는 또 다른 유망한 기능은 원격으로 저장된 데이터를 로드하는 기능입니다. 예를 들어 S3 버킷에서. 여기에는 많은 실질적인 이점이 있습니다. 로컬에서 데이터 세트를 설정하는 시간이 절약되고 컴퓨팅 시스템에 필요한 디스크 용량이 줄어들며 팀 구성원이 동일한 데이터 세트의 다른 버전을 사용할 위험이 줄어듭니다. 훈련하는 동안 데이터를 스트리밍해야 하는 자연스러운 단점은 일반적으로 네트워크 전송 속도가 디스크 I/O보다 느리고 결과적으로 모델을 훈련하는 데 더 오랜 시간이 걸린다는 것입니다. 흥미롭게도 Hub(Team, 2022a) 및 Deep Lake(Hambardzumyan et al., 2022)와 같은 일부 라이브러리는 일부 시나리오에서 로컬로 데이터를 읽는 기본 Pytorch 데이터 로더보다 네트워크를 통해 더 나은 성능을 달성하는 것을 관찰했습니다. 이는 GPU가 필요로 하기 전에 데이터로더가 필요한 데이터를 미리 가져오기 때문에 가능합니다. 5절에서 좀 더 폭넓은 논의를 하도록 하겠다.


모든 라이브러리가 원격 로딩을 지원하는 것은 아니며, 지원하는 라이브러리도 반드시 동일한 원격 스토리지 서비스와 통합될 필요는 없습니다. 데이터로더를 구현하는 사용 가능한 라이브러리 수가 증가함에 따라 우리는 현재의 최첨단 기술을 조명하고 어떤 문제가 이미 해결된 것으로 보이며 향후 개선이 가장 유망한 영역을 발견하기 위한 포괄적인 벤치마크를 구축하기 시작했습니다. 연구.


이 시점에서 (Kumar & Sivathanu, 2020), (Mohan et al., 2020)과 같은 다른 작업과의 실험과의 특별한 차이점 중 하나는 중소형 워크스테이션에서 실행되는 작업에 중점을 둔다는 것입니다. 제한된 용량(GPU, RAM, SSD). 이는 예산상 대규모 클러스터 사용이 허용되지 않는 업계 내 대부분의 개인 및 소규모 팀이 사용할 수 있는 하드웨어를 반영할 가능성이 높습니다.

1.1 기여

우리는 우리의 기여를 다음과 같이 요약할 수 있습니다:


• 오픈 소스 코드: 우리는 Pytorch[1]에서 가장 인기 있는 데이터 로딩 라이브러리를 비교하는 오픈 소스 벤치마크를 구축했습니다. 프로젝트는 커뮤니티에서 계속 사용할 수 있으므로 관심이 증가함에 따라 새로운 라이브러리와 데이터세트를 추가할 수 있습니다. 또한 이 백서에서 벤치마킹한 라이브러리에 대한 주요 업데이트 이후 이러한 벤치마크에서 얻은 수치 결과를 업데이트할 것으로 예상됩니다.


• 원격 교육의 실행 가능성: 합리적인 상황에서 공용 인터넷 연결을 통해 데이터 스트림을 사용하여 기계 학습 모델을 교육하는 것이 가능하다는 것을 보여줍니다. 특히, 우리는 데이터를 제공하는 컴퓨팅의 영향을 지적합니다. 우리의 결과는 다운로드 후 데이터세트가 로컬로 캐시된다고 가정하지 않기 때문에 (Mohan et al., 2020)의 결과와 다릅니다.


• 속도를 위한 하이퍼파라미터 최적화: 기존의 하이퍼파라미터 접근 방식은 훈련되는 모델의 전반적인 정확도를 높이는 것을 목표로 합니다. 이 문서에서는 총 실행 시간의 프록시로서 속도(시간에 따른 처리된 샘플)를 최적화할 수 있는 방법도 보여줍니다. 이 최적화는 하드웨어에 따라 다르므로 작업을 오래 실행하기 전에 수행하는 것이 좋습니다. 이 프로세스는 동등한 정확도 도달 시간 측정법보다 최소한 10배 이상 빨라야 합니다.


이 문서는 CC 4.0 라이선스에 따라 arxiv에서 볼 수 있습니다.


[1] Github 저장소: https://github.com/smartnets/dataloaderbenchmarks