Pular para o conteúdo principal

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.

nota

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 é:

  1. Use o Apache Spark para carregar e, opcionalmente, pré-processar dados.
  2. 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.
  3. 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():

    Python
    from 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:

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 é:

  1. Use o Apache Spark para carregar e, opcionalmente, pré-processar dados.
  2. Salvar dados no formato Parquet em um caminho DBFS que tenha uma montagem DBFS complementar.
  3. Carregar dados no formato Petastorm por meio do ponto de montagem DBFS.
  4. 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:

  1. Carregar uso de dados Spark.
  2. Converta o Spark DataFrame em um conjunto de dados TensorFlow usando Petastorm.
  3. Alimentar os dados em um modelo TensorFlow de nó único para treinamento.
  4. Alimente os dados em uma função de ajuste de hiperparâmetros distribuída.
  5. Alimentar os dados em um modelo TensorFlow distribuído para treinamento.

Simplifique a conversão de dados de Spark para TensorFlow Notebook

Open notebook in new tab

Este exemplo de Notebook demonstra o seguinte fluxo de trabalho em Databricks:

  1. Carregar uso de dados Spark.
  2. Converta o Spark DataFrame em um PyTorch DataLoader usando o Petastorm.
  3. Alimentar os dados em um modelo PyTorch de nó único para treinamento.
  4. Alimente os dados em uma função de ajuste de hiperparâmetros distribuída.
  5. Alimentar os dados em um modelo PyTorch distribuído para treinamento.

Simplifique a conversão de dados de Spark para PyTorch Notebook

Open notebook in new tab

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:

  1. Use o Spark para carregar e pré-processar dados.
  2. Salve o uso de dados Parquet em dbfs:/ml.
  3. Carregar uso de dados Petastorm por meio da montagem FUSE otimizada file:/dbfs/ml.
  4. Alimente os dados em uma estrutura de aprendizagem profunda para treinamento ou inferência.

Use os sites Spark e Petastorm para preparar dados para o Notebook de aprendizagem profunda

Open notebook in new tab