하나의 라이브러리로 수많은 데이터셋을 다뤄
Hugging Face의 datasets 라이브러리는 Hub의 데이터셋과 여러 형식의 로컬 데이터를 같은 API로 다룰 수 있게 해. 특히 두 가지 특징이 돋보여:
- Apache Arrow 기반 저장 방식: 디스크의 데이터셋을 메모리에 매핑해. 100GB 데이터셋도 불러오는 데 RAM을 거의 쓰지 않고, 실제로 순회하는 부분만 읽어.
- 스트리밍 모드: 통째로 내려받기 어려운 큰 데이터셋은
streaming=True로 설정해 전체 파일을 다운로드하지 않고 바로 순회할 수 있어.
표준 작업 흐름
load_dataset("name"): 데이터셋을 가져와 캐시하거나 스트리밍해..map(fn, batched=True): 전처리를 병렬로 적용하고 결과를 디스크에 캐시해..set_format("torch", columns=[...]): 순회할 때 수동 변환 없이 PyTorch 텐서를 직접 반환하게 해.- 일반 데이터셋처럼 DataLoader에 넘겨.
직접 만든 데이터에도 유용한 이유
로컬 데이터에서도 이 라이브러리는 디스크 캐시를 이용한 병렬 전처리, CSV·JSON·Parquet·Arrow 사이의 손실 없는 형식 변환, 간단한 학습·검증·테스트 분할 관리를 제공해. 적당한 규모의 NLP나 비전 프로젝트에서 데이터 계층으로 사용할 가치가 충분해.