Delen via


Gegevens laden met Petastorm

In dit artikel wordt beschreven hoe u Petastorm-gegevens van Apache Spark converteert naar TensorFlow of PyTorch. Het bevat ook een voorbeeld waarin wordt getoond hoe u Petastorm gebruikt om gegevens voor te bereiden voor ML.

Petastorm is een opensource-bibliotheek voor gegevenstoegang. Het maakt het mogelijk om modellen met één knooppunt of gedistribueerde training en evaluatie rechtstreeks vanuit gegevenssets in Apache Parquet-indeling en -gegevenssets die al als Apache Spark DataFrames zijn geladen, mogelijk te maken. Petastorm ondersteunt populaire machine learning-frameworks (ML) op basis van Python, zoals TensorFlow, PyTorch en PySpark. Zie de Petastorm API-documentatie voor meer informatie over Petastorm.

Gegevens laden uit Spark DataFrames met petastorm

De Petastorm Spark-conversie-API vereenvoudigt de gegevensconversie van Spark naar TensorFlow of PyTorch. Het invoer-Spark DataFrame wordt eerst gerealiseerd in Parquet-indeling en vervolgens geladen als een tf.data.Dataset of torch.utils.data.DataLoader. Zie de sectie Api voor Spark Dataset Converter in de petastorm-API-documentatie.

De aanbevolen werkstroom is:

  1. Gebruik Apache Spark om gegevens te laden en eventueel vooraf te verwerken.
  2. Gebruik de Petastorm-methode spark_dataset_converter om gegevens van een Spark DataFrame te converteren naar een TensorFlow-gegevensset of een PyTorch DataLoader.
  3. Gegevens invoeren in een DL-framework voor training of deductie.

Cachemap configureren

De Petastorm Spark-conversieprogramma slaat het invoer-Spark DataFrame in Parquet-indeling op in een door de gebruiker opgegeven cachemaplocatie. De cachemap moet een DBFS-pad zijn dat begint met file:///dbfs/, bijvoorbeeld, file:///dbfs/tmp/foo/ die verwijst naar dezelfde locatie als dbfs:/tmp/foo/. U kunt de cachemap op twee manieren configureren:

  • Voeg in de Spark-configuratie van het cluster de regel toe:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • Roep in uw notitieblok het volgende aan spark.conf.set():

    from petastorm.spark import SparkDatasetConverter, make_spark_converter
    
    spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
    

U kunt de cache expliciet verwijderen nadat u deze hebt gebruikt door de cache aan te roepen converter.delete() of impliciet te beheren door de levenscyclusregels in uw objectopslag te configureren.

Databricks ondersteunt DL-training in drie scenario's:

  • Training met één knooppunt
  • Gedistribueerde hyperparameterafstemming
  • Gedistribueerde training

Zie de volgende notebooks voor end-to-end-voorbeelden:

Parquet-bestanden rechtstreeks laden met Petastorm

Deze methode heeft minder de voorkeur dan de Petastorm Spark-conversie-API.

De aanbevolen werkstroom is:

  1. Gebruik Apache Spark om gegevens te laden en eventueel vooraf te verwerken.
  2. Sla gegevens op in Parquet-indeling in een DBFS-pad met een bijbehorende DBFS-koppeling.
  3. Laad gegevens in Petastorm-indeling via het DBFS-koppelpunt.
  4. Gebruik gegevens in een DL-framework voor training of deductie.

Zie een voorbeeldnotitieblok voor een end-to-end-voorbeeld.

Voorbeelden: Gegevens vooraf verwerken en modellen trainen met TensorFlow of PyTorch

In dit voorbeeldnotebook ziet u de volgende werkstroom in Databricks:

  1. Gegevens laden met Behulp van Spark.
  2. Converteer het Spark DataFrame naar een TensorFlow-gegevensset met behulp van Petastorm.
  3. Voer de gegevens in een TensorFlow-model met één knooppunt in voor training.
  4. Voer de gegevens in een gedistribueerde hyperparameterafstemmingsfunctie in.
  5. Voer de gegevens in een gedistribueerd TensorFlow-model voor training in.

Gegevensconversie van Spark naar TensorFlow-notebook vereenvoudigen

Notebook downloaden

In dit voorbeeldnotebook ziet u de volgende werkstroom in Databricks:

  1. Gegevens laden met Behulp van Spark.
  2. Converteer het Spark DataFrame naar een PyTorch DataLoader met behulp van Petastorm.
  3. Voer de gegevens in een PyTorch-model met één knooppunt in voor training.
  4. Voer de gegevens in een gedistribueerde hyperparameterafstemmingsfunctie in.
  5. Voer de gegevens in een gedistribueerd PyTorch-model voor training in.

Gegevensconversie van Spark naar PyTorch-notebook vereenvoudigen

Notebook downloaden

Voorbeeld: Gegevens vooraf verwerken en Parquet-bestanden laden met Petastorm

In dit voorbeeldnotebook ziet u de volgende werkstroom in Databricks:

  1. Spark gebruiken om gegevens te laden en voor te verwerken.
  2. Sla gegevens op met Behulp van Parquet onder dbfs:/ml.
  3. Laad gegevens met behulp van Petastorm via de geoptimaliseerde FUSE-koppeling file:/dbfs/ml.
  4. Gegevens invoeren in een Deep Learning-framework voor training of deductie.

Spark en Petastorm gebruiken om gegevens voor te bereiden voor deep learning-notebooks

Notebook downloaden