데이터를 잘 준비해도, 학습 작업이 그 데이터를 느리게 읽으면 GPU는 데이터를 기다리며 놀게 된다. 비싼 GPU 인스턴스가 I/O 병목 때문에 유휴 상태가 되는 것은 실무에서 가장 흔하고 값비싼 낭비다. 그래서 "데이터를 어떤 방식으로 학습 컨테이너에 흘려보내는가"는 성능과 비용에 직결된다.
오늘은 SageMaker의 입력 모드(Pipe vs File vs FastFile), 고성능 파일 시스템 FSx for Lustre, 그리고 분산 학습을 위한 데이터 샤딩 개념을 다룬다.
SageMaker 학습 작업이 S3의 데이터를 컨테이너로 가져오는 방식에는 여러 모드가 있다.
학습이 시작되기 전에 S3의 데이터 전체를 컨테이너의 EBS 볼륨으로 먼저 다운로드한 뒤 학습을 시작한다.
데이터를 미리 다운로드하지 않고, S3에서 스트리밍으로 직접 흘려보내며 학습한다.