Carregar uso de dados Petastorm
Este artigo descreve como usar o Petastorm converter dados de Apache Spark para TensorFlow ou PyTorch. Ele também fornece um exemplo que mostra como usar o Petastorm para preparar dados para o ML.
O pacote petastorm
está obsoleto. A transmissão em mosaico é o substituto recomendado para carregar grandes conjuntos de dados do armazenamento em nuvem.
O Petastorm é uma biblioteca de acesso a dados de código aberto. Ele permite o treinamento distribuído ou de nó único e a avaliação de modelos de aprendizagem profunda diretamente do conjunto de dados no formato Apache Parquet e do conjunto de dados já carregado como Apache Spark DataFrames. O Petastorm é compatível com estruturas populares de aprendizado de máquina (ML) baseadas em Python, como TensorFlow, PyTorch e PySpark. Para obter mais informações sobre Petastorm, consulte a documentaçãoPetastorm API.
Carregar dados do Spark DataFrames usando o Petastorm
A API do conversor Petastorm Spark simplifica a conversão de dados do Spark para o 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çãoSpark dataset Converter API na documentação 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 para um conjunto de dados TensorFlow ou um DataLoader PyTorch. - Alimentar dados em uma estrutura de 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 do cache deve ser um caminho DBFS que comece 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 configuração doSpark clustering, adicione a linha:
petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...
-
Em seu Notebook, chame
spark.conf.set()
:Pythonfrom petastorm.spark import SparkDatasetConverter, make_spark_converter
spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
O senhor pode excluir explicitamente o cache depois de usá-lo, chamando converter.delete()
, ou gerenciar o cache implicitamente, configurando as regras do ciclo de vida no armazenamento de objetos.
A Databricks oferece suporte ao treinamento em DL em três cenários:
- Treinamento de nó único
- Ajuste distribuído de hiperparâmetros
- Treinamento distribuído
Para obter exemplos de ponta a ponta, consulte o Notebook a seguir:
- Simplifique a conversão de dados do Spark para o TensorFlow
- Simplifique a conversão de dados do Spark para o PyTorch
Carregar arquivos Parquet diretamente usando o Petastorm
Esse 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.
- Salvar dados no formato Parquet em um caminho DBFS que tenha uma montagem DBFS complementar.
- Carregar dados no formato Petastorm por meio do ponto de montagem DBFS.
- Use dados em uma estrutura de DL para treinamento ou inferência.
Veja o exemplo do Notebook para um exemplo de ponta a ponta.
Exemplos: Pré-processar dados e treinar modelos com TensorFlow ou PyTorch
Este exemplo de Notebook demonstra o seguinte fluxo de trabalho em Databricks:
- Carregar uso de dados Spark.
- Converta o Spark DataFrame em um conjunto de dados TensorFlow usando Petastorm.
- Alimentar os dados em um modelo TensorFlow de nó único para treinamento.
- Alimente os dados em uma função de ajuste de hiperparâmetros distribuída.
- Alimentar os dados em um modelo TensorFlow distribuído para treinamento.
Simplifique a conversão de dados de Spark para TensorFlow Notebook
Este exemplo de Notebook demonstra o seguinte fluxo de trabalho em Databricks:
- Carregar uso de dados Spark.
- Converta o Spark DataFrame em um PyTorch DataLoader usando o Petastorm.
- Alimentar os dados em um modelo PyTorch de nó único para treinamento.
- Alimente os dados em uma função de ajuste de hiperparâmetros distribuída.
- Alimentar os dados em um modelo PyTorch distribuído para treinamento.
Simplifique a conversão de dados de Spark para PyTorch Notebook
Exemplo: Pré-processar dados e carregar arquivos Parquet com o Petastorm
Este exemplo de Notebook mostra ao senhor o seguinte fluxo de trabalho em 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.