Mosaic Streaming을 사용하여 데이터 로드
이 문서에서는 Mosaic Streaming을 사용하여 Apache Spark에서 PyTorch와 호환되는 형식으로 데이터를 변환하는 방법을 설명합니다.
모Mosaic Streaming은 오픈 소스 데이터 로드 라이브러리입니다. Apache Spark DataFrames로 이미 로드된 데이터세트에서 딥 러닝 모델의 단일 노드 또는 분산 학습과 평가가 가능합니다. Mosaic Streaming은 주로 Mosaic Composer를 지원하지만 네이티브 PyTorch, PyTorch Lightning 및 TorchDistributor와 통합됩니다. Mosaic Streaming은 다음과 같은 기존 PyTorch DataLoaders보다 일련의 이점을 제공합니다.
- 이미지, 텍스트, 비디오 및 다중 모드 데이터를 비롯한 모든 데이터 형식과의 호환성
- 주요 클라우드 스토리지 공급업체(AWS, OCI, GCS, Azure, Databricks UC Volume 및 Cloudflare R2, Coreweave, Backblaze b2 등과 같은 S3 호환 객체 저장소)를 지원합니다.
- 정확성 보장, 성능, 유연성 및 사용 편의성을 극대화합니다. 자세한 내용은 주요 기능 페이지를 참조하세요.
Mosaic Streaming에 대한 일반적인 내용은 스트리밍 API 설명서를 참조하세요.
참고 항목
Mosaic Streaming은 Databricks Runtime 15.2 ML 이상의 모든 버전에 미리 설치되었습니다.
Mosaic Streaming을 사용하여 Spark DataFrames에서 데이터 로드
Mosaic Streaming은 Apache Spark에서 MDS(Mosaic Data Shard) 형식으로 변환하는 간단한 워크플로를 제공하며 분산 환경에서 사용하기 위해 로드할 수 있습니다.
권장 워크플로는 다음과 같습니다.
- Apache Spark를 사용하여 데이터를 로드하고 필요에 따라 전처리합니다.
- 임시 스토리지를 위해 디스크에 데이터 프레임을 저장하거나 영구 스토리지를 위해 Unity 카탈로그 볼륨에 저장하는 데
streaming.base.converters.dataframe_to_mds
을 사용합니다. 이 데이터는 MDS 형식으로 저장되며 압축 및 해시를 지원하여 추가로 최적화할 수 있습니다. 고급 사용 사례에는 UDF를 사용하는 데이터의 전처리도 포함될 수 있습니다. 자세한 내용은 Spark DataFrame에서 MDS로의 자습서를 참조하세요. - 메모리에 필요한 데이터를 로드하는 데
streaming.StreamingDataset
을 사용합니다.StreamingDataset
는 PyTorch의 IterableDataset 버전으로, 빠른 중반 epoch 재개를 가능하게 하는 탄력적으로 결정적 순서 섞기를 제공합니다. 자세한 내용은 StreamingDataset 설명서를 참고하세요. - 학습/평가/테스트에 필요한 데이터를 로드하는 데
streaming.StreamingDataLoader
을 사용합니다.StreamingDataLoader
는 추가 검사점/재개 인터페이스를 제공하는 PyTorch의 DataLoader 버전으로, 이 순위에서 모델에서 볼 수 있는 샘플 수를 추적합니다.
엔드투엔드 예제는 다음 Notebook을 참조하세요.