Поделиться через


Загрузка данных с помощью потоковой передачи мозаики

В этой статье описывается, как использовать потоковую передачу Мозаики для преобразования данных из 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), который затем можно загрузить для использования в распределенной среде.

Рекомендуемый рабочий процесс:

  1. Используйте Apache Spark для загрузки и, при необходимости, предварительной обработки данных.
  2. Используется streaming.base.converters.dataframe_to_mds для сохранения кадра данных на диск для временного хранилища и (или) в том каталога Unity для постоянного хранения. Эти данные будут храниться в формате MDS и могут быть оптимизированы с поддержкой сжатия и хэширования. Дополнительные варианты использования также могут включать предварительную обработку данных с помощью определяемых пользователем пользователей. Дополнительные сведения см. в руководстве по Кадру данных Spark в MDS.
  3. Используется streaming.StreamingDataset для загрузки необходимых данных в память. StreamingDataset — это версия IterableDataset PyTorch, которая включает эластично детерминированное перетасовку, что обеспечивает быстрое возобновление в середине эпохи. Дополнительные сведения см. в документации StreamingDataset.
  4. Используется streaming.StreamingDataLoader для загрузки необходимых данных для обучения, оценки и тестирования. StreamingDataLoader — это версия DataLoadch PyTorch, которая предоставляет дополнительный интерфейс контрольных точек или возобновления, для которого он отслеживает количество примеров, наблюдаемых моделью в этом ранге.

Полный пример см. в следующей записной книжке:

Упрощение загрузки данных из Spark в PyTorch с помощью записной книжки для потоковой передачи мозаики

Получить записную книжку