[datasets] 300G 넘는 오디오 파일들 빠르게 로딩하기

Willow·2023년 1월 26일
0

SPEECH PROCESSING

목록 보기
4/11

Huggingface의 datasets 라이브러리가 간단하고 편해서 자주 애용하고 있다. 연구과제로 훈련시켜야 하는 모델의 수집 데이터 목표 시간이 1000시간이나 되는데, 당연하게도 양이 어마무시하다. 이렇게 되면 별다른 조작없이 load_from_disk 로 데이터를 메모리로 불러오는 작업만 해도 무려 2시간이 넘게 걸린다. 여기다 map() 까지하면 더 많이 걸린다...

관련 디스커션을 읽어보니 메모리 매핑을 하는 문제이기 때문에 pyarrow, OS의 관할이라 아직까지 뚜렷한 해결책이 없다고 한다. 그나마 조치할 수 있는 방법은 여러 개의 shard로 저장하기. 10G 당 하나씩 저장하면 통으로 300G를 불러오는 것보다 훨씬 빠르게 불러올 수 있다. 용량이 커질 수록 메모리 매핑 시간이 선형적이지 않고 기하급수적으로 늘어나기 때문.

몇 버추얼 파일시스템의 경우 더 느려지기 때문에, 이것도 주의할 것. 내 도커도 한번 확인해보기.

참고사이트
1. https://huggingface.co/docs/datasets/about_arrow
2. https://huggingface.co/docs/datasets/v2.8.0/en/package_reference/main_classes#datasets.IterableDataset
3. https://github.com/huggingface/datasets/pull/5410
4. https://github.com/huggingface/datasets/issues/2547
5. https://github.com/huggingface/datasets/issues/2252
6. https://discuss.huggingface.co/t/support-of-very-large-dataset/6872/12

profile
Speech Processing/AI/Linguistics/CS/etc.

0개의 댓글