Sdílet prostřednictvím


Načtení dat s využitím Petastormu

Tento článek popisuje, jak pomocí Petastorm převést data z Apache Sparku na TensorFlow nebo PyTorch. Poskytuje také příklad použití Petastorm k přípravě dat pro ML.

Petastorm je opensourcová knihovna pro přístup k datům. Umožňuje jednouzlu nebo distribuované trénování a hodnocení modelů hlubokého učení přímo z datových sad ve formátu Apache Parquet a datových sad, které jsou už načtené jako datové rámce Apache Spark. Petastorm podporuje oblíbené architektury strojového učení založené na Pythonu, jako jsou TensorFlow, PyTorch a PySpark. Další informace o Petastorm najdete v dokumentaci k rozhraní API Petastorm.

Načtení dat z datových rámců Sparku pomocí Petastorm

Rozhraní API převaděče Petastorm Spark zjednodušuje převod dat ze Sparku na TensorFlow nebo PyTorch. Vstupní datový rámec Sparku je nejprve materializován ve formátu Parquet a pak se načte jako nebo tf.data.Datasettorch.utils.data.DataLoader. V dokumentaci k rozhraní API Petastorm si prohlédnou část rozhraní API převaděče datových sad Sparku.

Doporučený pracovní postup je:

  1. K načtení a volitelnému předběžnému zpracování dat použijte Apache Spark.
  2. Pomocí metody Petastorm spark_dataset_converter můžete převést data ze sparkového datového rámce na datovou sadu TensorFlow nebo PyTorch DataLoader.
  3. Zařazovat data do architektury DL pro trénování nebo odvozování.

Konfigurace adresáře mezipaměti

Převaděč Petastorm Spark ukládá vstupní datový rámec Sparku ve formátu Parquet do umístění adresáře mezipaměti zadaného uživatelem. Adresář mezipaměti musí být cesta DBFS začínající file:///dbfs/například file:///dbfs/tmp/foo/ na stejné umístění jako dbfs:/tmp/foo/. Adresář mezipaměti můžete nakonfigurovat dvěma způsoby:

  • V konfiguraci Sparku clusteru přidejte řádek:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • V poznámkovém bloku zavolejte spark.conf.set():

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

Mezipaměť můžete buď explicitně odstranit tak, že ji zavoláte converter.delete() nebo implicitně spravujete tak, že nakonfigurujete pravidla životního cyklu v úložišti objektů.

Databricks podporuje trénování DL ve třech scénářích:

  • Trénování s jedním uzlem
  • Ladění distribuovaných hyperparametrů
  • Distribuované trénování

Kompletní příklady najdete v následujících poznámkových blocích:

Přímé načtení souborů Parquet pomocí Petastorm

Tato metoda je méně upřednostňovaná než rozhraní API převaděče Petastorm Spark.

Doporučený pracovní postup je:

  1. K načtení a volitelnému předběžnému zpracování dat použijte Apache Spark.
  2. Uložte data ve formátu Parquet do cesty DBFS, která obsahuje doprovodné připojení DBFS.
  3. Načtěte data ve formátu Petastorm prostřednictvím přípojného bodu DBFS.
  4. Data můžete použít v rámci DL pro trénování nebo odvozování.

Podívejte se na ukázkový poznámkový blok pro kompletní příklad.

Příklady: Předběžné zpracování dat a trénování modelů pomocí TensorFlow nebo PyTorch

Tento ukázkový poznámkový blok ukazuje následující pracovní postup v Databricks:

  1. Načtěte data pomocí Sparku.
  2. Převeďte datový rámec Sparku na datovou sadu TensorFlow pomocí Petastorm.
  3. Data můžete vložit do modelu TensorFlow s jedním uzlem pro trénování.
  4. Nasměrujte data do distribuované funkce ladění hyperparametrů.
  5. Data předáte do distribuovaného modelu TensorFlow pro trénování.

Zjednodušení převodu dat z Sparku na poznámkový blok TensorFlow

Získat poznámkový blok

Tento ukázkový poznámkový blok ukazuje následující pracovní postup v Databricks:

  1. Načtěte data pomocí Sparku.
  2. Převeďte datový rámec Sparku na datovýloader PyTorch pomocí Petastorm.
  3. Načte data do modelu PyTorch s jedním uzlem pro trénování.
  4. Nasměrujte data do distribuované funkce ladění hyperparametrů.
  5. Načte data do distribuovaného modelu PyTorch pro trénování.

Zjednodušení převodu dat ze Sparku na poznámkový blok PyTorch

Získat poznámkový blok

Příklad: Předběžné zpracování dat a načtení souborů Parquet pomocí Petastorm

Tento ukázkový poznámkový blok ukazuje následující pracovní postup v Databricks:

  1. K načtení a předběžnému zpracování dat použijte Spark.
  2. Uložte data pomocí Parquet v části dbfs:/ml.
  3. Načtěte data pomocí Petastormu prostřednictvím optimalizovaného připojení file:/dbfs/mlFUSE .
  4. Data můžete vést do architektury hlubokého učení pro trénování nebo odvozování.

Použití Sparku a Petastormu k přípravě dat pro poznámkový blok hlubokého učení

Získat poznámkový blok