Carga de datos mediante Mosaic Streaming
En este artículo se describe cómo usar Mosaic Streaming para convertir datos de Apache Spark a un formato compatible con PyTorch.
Mosaic Streaming es una biblioteca de carga de datos de código abierto. Permite el entrenamiento y la evaluación de modelos de aprendizaje profundo de un solo nodo o distribuidos desde conjuntos de datos cargados como DataFrames de Apache Spark. Mosaic Streaming admite principalmente Mosaic Composer, pero también se integra con las versiones nativas de PyTorch, PyTorch Lightning y TorchDistributor. Mosaic Streaming aporta una serie de ventajas sobre las versiones tradicionales de PyTorch DataLoaders, entre las que se incluyen:
- Compatibilidad con todos los tipos de datos, los que incluye imágenes, texto, vídeo y datos multimodales.
- Compatibilidad con los principales proveedores de almacenamiento en la nube (AWS, OCI, GCS, Azure, Databricks UC Volume y cualquier almacén de objetos compatible con S3, como Cloudflare R2, Coreweave, Backblaze b2, etc.)
- Maximización de las garantías de corrección, el rendimiento, la flexibilidad y la facilidad de uso. Para más información, vea su página de características clave.
Para obtener información general sobre Mosaic Streaming, consulte la documentación de la API de Streaming.
Nota:
Mosaic Streaming se ha preinstalado tanto en todas las versiones de Databricks Runtime 15.2 ML como en las versiones posteriores.
Carga de datos de DataFrames de Spark mediante Mosaic Streaming
Mosaic Streaming proporciona un flujo de trabajo sencillo para realizar conversiones de Apache Spark al formato Mosaic Data Shard (MDS), que se puede cargar para su uso en un entorno distribuido.
El flujo de trabajo recomendado es:
- Use Apache Spark para cargar y, opcionalmente, preprocesar los datos.
- Use
streaming.base.converters.dataframe_to_mds
para guardar el DataFrame en disco de forma transitoria o en un volumen de Unity Catalog para almacenarlo de forma permanente. Estos datos se almacenarán en formato MDS y se pueden optimizar aún más con la compatibilidad con la compresión y el hash. Los casos de uso avanzados también pueden incluir el procesamiento previo de los datos mediante UDF. Para más información, consulte el tutorial de DataFrame de Spark en MDS. - Use
streaming.StreamingDataset
para cargar los datos necesarios en la memoria.StreamingDataset
es una versión de IterableDataset de PyTorch que presenta un orden aleatorio elásticamente determinista, lo que permite la reanudación rápida de la época media. Para obtener más información, consulte la documentación de StreamingDataset. - Use
streaming.StreamingDataLoader
para cargar los datos necesarios para el entrenamiento, la evaluación o las pruebas.StreamingDataLoader
es una versión de DataLoader de PyTorch que proporciona una interfaz adicional de punto de control o reanudación, para la que realiza un seguimiento del número de muestras que ve el modelo en esta clasificación.
Para ver un ejemplo de un extremo a otro, consulte el siguiente cuaderno: