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

  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 em um dataset TensorFlow ou um PyTorch DataLoader.

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

  1. Use o Apache Spark para carregar e, opcionalmente, pré-processar dados.

  2. Salve os dados no formato Parquet em um caminho DBFS que tenha uma montagem DBFS complementar.

  3. Carregue dados no formato Petastorm por meio do ponto de montagem DBFS.

  4. 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:

  1. Carregar uso de dados Spark.

  2. Converta o Spark DataFrame em um dataset TensorFlow usando Petastorm.

  3. Alimente os dados em um modelo TensorFlow de nó único para treinamento.

  4. Alimente os dados em uma função de ajuste de hiperparâmetro distribuído.

  5. Alimente os dados em um modelo TensorFlow distribuído para treinamento.

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

Abra o bloco de anotações em outra guia

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

  1. Carregar uso de dados Spark.

  2. Converta o Spark DataFrame em um PyTorch DataLoader usando Petastorm.

  3. Alimente os dados em um modelo PyTorch de nó único para treinamento.

  4. Alimente os dados em uma função de ajuste de hiperparâmetro distribuído.

  5. Alimente os dados em um modelo PyTorch distribuído para treinamento.

Simplifique a conversão de dados do Spark para NotebookPyTorch

Abra o bloco de anotações em outra guia

Exemplo: Pré-processar dados e carregar arquivos Parquet com Petastorm

Este Notebook de exemplo mostra o seguinte fluxo de trabalho no 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 Spark e Petastorm para preparar dados para Notebook de aprendizagem profunda

Abra o bloco de anotações em outra guia