Carregar dados usando o Mosaic Streaming
Este artigo descreve como usar o Mosaico Streaming para converter dados do Apache Spark em um formato compatível com o PyTorch.
O Mosaic Streaming é uma biblioteca de carregamento de dados de código aberto. Ele permite o treinamento de nó único ou distribuído e a avaliação de modelos de aprendizado profundo de conjuntos de dados que já estão carregados como DataFrames do Apache Spark. O Mosaic Streaming dá suporte principalmente ao Mosaic Composer, mas também se integra ao PyTorch nativo, PyTorch Lightning e ao TorchDistributor. O Mosaic Streaming oferece uma série de benefícios em relação aos DataLoaders tradicionais do PyTorch, incluindo:
- Compatibilidade com qualquer tipo de dados, incluindo imagens, texto, vídeo e dados multimodais.
- Suporte para grandes provedores de armazenamento em nuvem (AWS, OCI, GCS, Azure, Databricks UC Volume e qualquer repositório de objetos compatível com S3, como Cloudflare R2, Coreweave, Backblaze b2, etc.)
- Maximizando garantias de correção, desempenho, flexibilidade e facilidade de uso. Para obter mais informações, confira a página principais recursos.
Para obter informações gerais sobre o Mosaic Streaming, leia a Documentação da API de Streaming.
Observação
O Mosaic Streaming foi pré-instalado em todas as versões do Databricks Runtime 15.2 ML e superior.
Carregar dados de DataFrames do Spark usando o Mosaic Streaming
O Mosaic Streaming fornece um fluxo de trabalho simples para converter do Apache Spark no formato MDS (Mosaic Data Shard), que pode ser carregado para uso em um ambiente distribuído.
O fluxo de trabalho recomendado é:
- Usar o Apache Spark para carregar e, opcionalmente, processar previamente os dados.
- Use
streaming.base.converters.dataframe_to_mds
para salvar o dataframe em disco para armazenamento transitório e/ou em um volume do Catálogo do Unity para armazenamento persistente. Esses dados serão armazenados no formato MDS e poderão ser otimizados com suporte para compactação e hash. Casos de uso avançado também podem incluir o pré-processamento de dados usando UDFs. Veja o tutorial DataFrame do Spark para MDS para obter mais informações. - Use
streaming.StreamingDataset
para carregar os dados necessários na memória.StreamingDataset
é uma versão do IterableDataset do PyTorch que apresenta embaralhamento determinístico elasticamente, o que permite a retomada rápida no meio da época. Consulte a documentação do StreamingDataset para obter mais informações. - Use
streaming.StreamingDataLoader
para carregar os dados necessários para treinamento, avaliação e teste.StreamingDataLoader
é uma versão do DataLoader do PyTorch que fornece uma interface de ponto de verificação/retomada adicional, que controla o número de amostras vistas pelo modelo nessa classificação.
Para ver exemplos de ponta a ponta, confira os seguintes notebooks: