datasets: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지

datasets: 무엇인지, 어떤 문제를 해결하는지 & 왜 인기를 얻고 있는지

어떤 문제를 해결하는가

🤗 Datasets는 머신러닝을 위한 데이터 액세스 및 준비 프로세스를 단순화하기 위해 설계된 경량 라이브러리입니다. 이 라이브러리는 파편화된 데이터 형식과 다양한 모달리티(text, audio, image, video, 3D medical imaging)에 걸친 대규모 공개 데이터셋을 다운로드하고 전처리하는 데 따르는 어려움을 해결합니다.

작동 방식

이 라이브러리는 load_dataset() 함수를 중심으로 통일된 API를 제공하며, 사용자는 이를 통해 Hugging Face Hub 또는 로컬 파일에서 데이터셋을 다운로드하고 준비할 수 있습니다. Apache Arrow 백엔드를 사용하여 zero-copy memory-mapped storage를 구현함으로써 RAM 제한을 제거합니다. 매우 큰 데이터셋의 경우, 전체 세트를 디스크에 다운로드하지 않고도 데이터를 즉석에서 반복 처리할 수 있는 "streaming mode"를 제공합니다.

대상 사용자

PyTorch, TensorFlow, JAX, NumPy, Pandas, Polars와 같은 프레임워크를 사용하여 데이터셋을 효율적으로 로드, 처리 및 훈련 또는 평가 파이프라인에 통합해야 하는 ML 실무자, 연구자 및 데이터 과학자를 위해 구축되었습니다.

주요 특징

  • 한 줄 로딩: Hugging Face Hub를 통해 수천 개의 공개 데이터셋에 빠르게 액세스할 수 있습니다.
  • 멀티모달 지원: text, audio, image, video, PDF, NIfTI (3D medical) 데이터를 기본적으로 처리합니다.
  • Streaming mode: 전체 다운로드 없이 대규모 데이터셋을 반복 처리하여 대기 시간을 크게 줄입니다.
  • 효율적인 전처리: 멀티프로세싱 지원이 포함된 .map() 함수를 사용하여 빠르고 병렬적인 데이터 조작이 가능합니다.
  • 멀티 프레임워크 상호 운용성: 다양한 데이터 과학 라이브러리와 ML 프레임워크 간의 원활한 변환을 지원합니다.
  • 스마트 캐싱: 중복 처리를 피하기 위해 캐시된 결과를 자동으로 재사용합니다.

Sources