Загрузка данных с помощью потоковой передачи мозаики
В этой статье описывается, как использовать потоковую передачу Мозаики для преобразования данных из Apache Spark в формат, совместимый с PyTorch.
Потоковая передача мозаики — это библиотека загрузки данных открытый код. Он обеспечивает одноузловую или распределенную подготовку и оценку моделей глубокого обучения из наборов данных, которые уже загружены в качестве кадров данных Apache Spark. Потоковая передача мозаики в основном поддерживает Композитор Мозаики, но также интегрируется с собственным PyTorch, PyTorch Lightning и ФакелDistributor. Потоковая передача мозаики предоставляет ряд преимуществ по сравнению с традиционными данными PyTorch DataLoaders, в том числе:
- Совместимость с любым типом данных, включая изображения, текст, видео и многомодальные данные.
- Поддержка крупных поставщиков облачных хранилищ (AWS, OCI, GCS, Azure, Databricks UC Volume и любых совместимых с S3 объектов, таких как Cloudflare R2, Coreweave, Backblaze b2 и т. д.)
- Максимизация гарантий правильности, производительности, гибкости и простоты использования. Дополнительные сведения см. на странице основных функций .
Общие сведения о потоковой передаче Мозаики см. в документации по API потоковой передачи.
Примечание.
Потоковая передача мозаики предварительно установлена во всех версиях Databricks Runtime 15.2 ML и более поздних версий.
Загрузка данных из кадров данных Spark с помощью потоковой передачи мозаики
Потоковая передача мозаики предоставляет простой рабочий процесс для преобразования из Apache Spark в формат Shard (MDS), который затем можно загрузить для использования в распределенной среде.
Рекомендуемый рабочий процесс:
- Используйте Apache Spark для загрузки и, при необходимости, предварительной обработки данных.
- Используется
streaming.base.converters.dataframe_to_mds
для сохранения кадра данных на диск для временного хранилища и (или) в том каталога Unity для постоянного хранения. Эти данные будут храниться в формате MDS и могут быть оптимизированы с поддержкой сжатия и хэширования. Дополнительные варианты использования также могут включать предварительную обработку данных с помощью определяемых пользователем пользователей. Дополнительные сведения см. в руководстве по Кадру данных Spark в MDS. - Используется
streaming.StreamingDataset
для загрузки необходимых данных в память.StreamingDataset
— это версия IterableDataset PyTorch, которая включает эластично детерминированное перетасовку, что обеспечивает быстрое возобновление в середине эпохи. Дополнительные сведения см. в документации StreamingDataset. - Используется
streaming.StreamingDataLoader
для загрузки необходимых данных для обучения, оценки и тестирования.StreamingDataLoader
— это версия DataLoadch PyTorch, которая предоставляет дополнительный интерфейс контрольных точек или возобновления, для которого он отслеживает количество примеров, наблюдаемых моделью в этом ранге.
Полный пример см. в следующей записной книжке: