저자:
(1) Iason Ofeidis, 뉴헤이븐 소재 예일대학교 전기공학과 및 예일 네트워크 과학 연구소 {동등 기여};
(2) Diego Kiedanski, 뉴헤이븐 소재 예일대학교 전기공학과 및 예일 네트워크 과학 연구소 {동등 기여};
(3) Leandros TassiulasLevon Ghukasyan, Activeloop, Mountain View, CA, USA, 전기 공학과, Yale University, New Haven의 네트워크 과학 연구소.
이 작업에서는 시간을 주요 도구로 사용하여 여러 라이브러리 간의 성능을 비교했습니다. 이에 대해서는 여러 가지 말이 있습니다. 첫째, 실행 시간은 상당히 가변적이며 제어하기 어려운 백그라운드 프로세스에 따라 달라집니다. 동시에 다중 GPU 리소스에 대한 액세스는 비용이 많이 들기 때문에 실행할 수 있는 실험 수가 제한됩니다. 이상적으로는 더 많은 매개변수(더 많은 작업자, 더 많은 배치 크기)를 사용하여 각 실험을 3회 이상 반복 실행했지만 이를 위한 리소스가 없었습니다. 우리는 모든 오픈소스 코드를 만들고 있으므로 독자들이 자신의 하드웨어에서 벤치마크를 실행하고 결과를 보고하도록 초대합니다. 동시에 라이브러리는 상당히 자주 업데이트되며 버전 변경으로 인해 성능이 크게 증가하거나 감소할 수 있습니다.
위의 점을 고려하여 독자가 이 논문의 질적 측면을 내면화하도록 권장하지만 여기에서 얻은 수치는 변경되기 쉽다는 점에 유의하십시오.
둘째, 비교하기 어려운 측면은 이 프로젝트에서 고려한 라이브러리의 사용 용이성입니다. 이 벤치마크에 포함된 대부분의 라이브러리에는 포괄적인 문서가 없으며 주로 구체적인 예에 의존합니다. 결과적으로 이러한 라이브러리의 구현은 쉽지 않으며 비효율적이 되기 쉽습니다. 코드를 오픈 소스로 만드는 이점 중 하나는 모든 개발자가 코드를 식별하고 개선할 수 있다는 것입니다. 이는 이 프로젝트에서 생성된 벤치마크가 커뮤니티의 상용구 코드로 사용될 수 있을 것으로 기대하기 때문에 특히 관련이 있습니다.
우리는 다른 모든 라이브러리보다 더 나은 라이브러리는 없는 것 같습니다. 대신 각자의 장점이 있습니다. FFCV의 예를 생각해 보세요. 실험에서 가장 빠른 것 같지만 라벨 변환에 대한 지원이 부족하여 이러한 기능이 필요한 프로젝트에 채택되지 않습니다.
우리는 향후 작업에서 여러 GPU에 걸친 필터링과 훈련 간의 상호 작용을 분석하기를 희망합니다. 동시에 GPU 수가 증가함에 따라 이러한 라이브러리의 확장 기능을 살펴보는 것도 흥미로울 것입니다. 마찬가지로 DL 교육 워크플로의 셔플링 단계 성능 측면에서 데이터 로딩 라이브러리를 벤치마킹하는 것은 큰 관심을 끌 것입니다. 이는 전체 교육 시간에 상당한 영향을 미칠 수 있고 구현은 사소한 문제가 아니기 때문입니다. 여러 종류의 접근 방식이 있는 곳입니다.
원격 저장소에서 데이터 로딩을 제공하고 로컬 저장소 실험과 비슷한 결과를 보여주는 라이브러리에 대한 연구는 우리가 네트워크를 통한 데이터 스트리밍을 위한 캐싱 정책을 공식화하고 설계하는 아이디어를 탐구하도록 동기를 부여했습니다. 이러한 설정에서는 데이터 포인트(예: 이미지)를 전송하는 데 필요한 시간을 줄이면 전체 교육 시간(및 네트워크 사용량을 지불하는 경우 비용도 발생할 수 있음)을 크게 단축할 수 있습니다. 훈련 중에 네트워크 데이터 세트를 캐싱한다는 아이디어는 새로운 것이 아닙니다(Mohan et al., 2020). 그럼에도 불구하고 훈련 및 스트리밍 데이터를 논의할 때 전체 데이터 세트를 캐시할 수 있다고 가정하는 경우가 많습니다. 또한 모든 샘플은 전통적으로 그렇듯이 시대당 한 번씩 사용된다고 가정합니다(Kumar & Sivathanu, 2020). 우리는 캐시 크기가 작을 때 어떤 일이 일어나는지 탐구하고 모든 데이터 포인트를 에포크당 한 번씩 사용해야 하는 요구 사항을 제거하는 데 관심이 있습니다. 이러한 공식화는 능동적 학습, 데이터 요약, 커리큘럼 학습에서 빌려와야 합니다.
이 문서는 CC 4.0 라이선스에 따라 arxiv에서 볼 수 있습니다.