Carregar uso de dados Petastorm
Este artigo descreve como usar o Petastorm para converter dados do Apache Spark para TensorFlow ou PyTorch. Ele também fornece um exemplo mostrando como usar Petastorm para preparar dados para ML.
Petastorm é uma biblioteca de acesso a dados de código aberto. Ele permite treinamento e avaliação de nó único ou distribuído de modelos de aprendizagem profunda diretamente do dataset no formato Apache Parquet e do dataset que já estão carregados como Apache Spark DataFrames. Petastorm oferece suporte a estruturas populares machine learning (ML) baseadas em Python, como TensorFlow, PyTorch e PySpark. Para obter mais informações sobre o Petastorm, consulte a documentação da API do Petastorm.
Carregar dados do Spark DataFrames usando Petastorm
A API do conversor Petastorm Spark simplifica a conversão de dados de Spark para TensorFlow ou PyTorch. O Spark DataFrame de entrada é primeiro materializado no formato Parquet e, em seguida, carregado como tf.data.Dataset
ou torch.utils.data.DataLoader
. Consulte a seção Spark Dataset Converter API na documentação da Petastorm API.
O fluxo de trabalho recomendado é:
Use o Apache Spark para carregar e, opcionalmente, pré-processar dados.
Use o método Petastorm
spark_dataset_converter
para converter dados de um Spark DataFrame em um dataset TensorFlow ou um PyTorch DataLoader.Alimente os dados em uma estrutura DL para treinamento ou inferência.
Configurar diretório de cache
O conversor Petastorm Spark armazena em cache o Spark DataFrame de entrada no formato Parquet em um local de diretório de cache especificado pelo usuário. O diretório de cache deve ser um caminho DBFS começando com file:///dbfs/
, por exemplo, file:///dbfs/tmp/foo/
que se refere ao mesmo local que dbfs:/tmp/foo/
. Você pode configurar o diretório de cache de duas maneiras:
Na clusters configuração do Spark , adicione a linha:
petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...
Em seu Notebook, chame
spark.conf.set()
:from petastorm.spark import SparkDatasetConverter, make_spark_converter spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
Você pode excluir explicitamente o cache depois de usá-lo chamando converter.delete()
ou gerenciar o cache implicitamente configurando as regras de ciclo de vida em seu armazenamento de objeto.
O Databricks oferece suporte ao treinamento DL em três cenários:
Treinamento de nó único
Ajuste de hiperparâmetro distribuído
treinamento distribuído
Para obter exemplos de ponta a ponta, consulte o seguinte Notebook:
Carregue arquivos Parquet diretamente usando o Petastorm
Este método é menos preferido do que a API do conversor Petastorm Spark.
O fluxo de trabalho recomendado é:
Use o Apache Spark para carregar e, opcionalmente, pré-processar dados.
Salve os dados no formato Parquet em um caminho DBFS que tenha uma montagem DBFS complementar.
Carregue dados no formato Petastorm por meio do ponto de montagem DBFS.
Use dados em uma estrutura DL para treinamento ou inferência.
Consulte Notebook de exemplo para obter um exemplo de ponta a ponta.
Exemplos: pré-processar dados e modelos de ensino com TensorFlow ou PyTorch
Este Notebook de exemplo demonstra o seguinte fluxo de trabalho no Databricks:
Carregar uso de dados Spark.
Converta o Spark DataFrame em um dataset TensorFlow usando Petastorm.
Alimente os dados em um modelo TensorFlow de nó único para treinamento.
Alimente os dados em uma função de ajuste de hiperparâmetro distribuído.
Alimente os dados em um modelo TensorFlow distribuído para treinamento.
Este Notebook de exemplo demonstra o seguinte fluxo de trabalho no Databricks:
Carregar uso de dados Spark.
Converta o Spark DataFrame em um PyTorch DataLoader usando Petastorm.
Alimente os dados em um modelo PyTorch de nó único para treinamento.
Alimente os dados em uma função de ajuste de hiperparâmetro distribuído.
Alimente os dados em um modelo PyTorch distribuído para treinamento.
Exemplo: Pré-processar dados e carregar arquivos Parquet com Petastorm
Este Notebook de exemplo mostra o seguinte fluxo de trabalho no Databricks:
Use o Spark para carregar e pré-processar dados.
Salve o uso de dados Parquet em
dbfs:/ml
.Carregar uso de dados Petastorm por meio da montagem FUSE otimizada
file:/dbfs/ml
.Alimente os dados em uma estrutura de aprendizagem profunda para treinamento ou inferência.