Charger des données à l’aide de Mosaic Streaming
Cet article explique comment utiliser Mosaic Streaming pour convertir les données d’Apache Spark en un format compatible avec PyTorch.
Mosaic Streaming est une bibliothèque de chargement de données open source. Elle permet la formation et l’évaluation de modèles Deep Learning sur un nœud unique ou distribué à partir de jeux de données déjà chargés en tant que DataFrames Apache Spark. Mosaic Streaming prend principalement en charge Mosaic Composer, mais s’intègre également à PyTorch natif, PyTorch Lightning et TorchDistributor. Mosaic Streaming offre une série d’avantages par rapport aux composants PyTorch DataLoader traditionnels, notamment :
- Compatibilité avec tous les types de données, notamment les images, le texte, la vidéo et les données multimodales.
- Prise en charge des principaux fournisseurs de stockage cloud (AWS, OCI, GCS, Azure, Databricks UC Volume et tout magasin d’objets compatible S3 tel que Cloudflare R2, Coreweave, Backblaze b2, etc.)
- Optimisation de l’intégrité, des performances, de la flexibilité et de la facilité d’utilisation. Pour plus d’informations, consultez la page relative aux fonctionnalités clés.
Pour plus d’informations sur Mosaic Streaming, consultez la documentation sur l’API de Streaming.
Remarque
Mosaic Streaming a été préinstallé sur toutes les versions de Databricks Runtime 15.2 ML et versions ultérieures.
Charger des données à partir de DataFrames Spark à l’aide de Mosaic Streaming
Mosaic Streaming fournit un workflow simple pour la conversion de données Apache Spark au format MDS (Mosaic Data Shard), qui peut ensuite être chargé pour être utilisé dans un environnement distribué.
Le workflow recommandé est le suivant :
- Utilisez Apache Spark pour charger et éventuellement prétraiter les données.
- Utilisez
streaming.base.converters.dataframe_to_mds
afin d’enregistrer le dataframe sur disque pour un stockage temporaire, et/ou sur un volume Unity Catalog dans le cadre d’un stockage persistant. Ces données sont stockées au format MDS, et peuvent être optimisées davantage avec la prise en charge de la compression et du hachage. Les cas d’usage avancés peuvent également inclure le prétraitement des données à l’aide de fonctions définies par l’utilisateur. Pour plus d’informations, consultez le Tutoriel de conversion d’un DataFrame Spark au format MDS. - Utilisez
streaming.StreamingDataset
pour charger les données nécessaires en mémoire.StreamingDataset
est une version du composant IterableDataset de PyTorch, qui dispose d’un mécanisme de lecture aléatoire élastique et déterministe, ce qui permet une reprise rapide de l’exécution à mi-parcours. Pour plus d’informations, consultez la documentation relative à StreamingDataset. - Utilisez
streaming.StreamingDataLoader
pour charger les données nécessaires à la formation/à l’évaluation/aux tests.StreamingDataLoader
est une version du composant DataLoader de PyTorch, qui fournit une interface de point de contrôle/reprise supplémentaire, pour laquelle il suit le nombre d’échantillons vus par le modèle dans ce classement.
Pour obtenir un exemple de bout en bout, consultez le notebook suivant :