Udostępnij za pośrednictwem


Ładowanie danych przy użyciu biblioteki Petastorm

W tym artykule opisano sposób używania narzędzia Petastorm konwertowania danych z platformy Apache Spark na bibliotekę TensorFlow lub PyTorch. Zawiera również przykład pokazujący, jak przygotować dane do uczenia maszynowego przy użyciu narzędzia Petastorm.

Petastorm to biblioteka dostępu do danych typu open source. Umożliwia on trenowanie jednowęźle lub rozproszone i ewaluację modeli uczenia głębokiego bezpośrednio z zestawów danych w formacie Apache Parquet i zestawach danych, które są już ładowane jako ramki danych platformy Apache Spark. Platforma Petastorm obsługuje popularne platformy uczenia maszynowego opartego na języku Python, takie jak TensorFlow, PyTorch i PySpark. Aby uzyskać więcej informacji na temat platformy Petastorm, zobacz dokumentację interfejsu API Petastorm.

Ładowanie danych z ramek danych platformy Spark przy użyciu narzędzia Petastorm

Interfejs API konwertera Spark Petastorm upraszcza konwersję danych z platformy Spark na bibliotekę TensorFlow lub PyTorch. Wejściowa ramka danych Platformy Spark jest najpierw zmaterializowana w formacie Parquet, a następnie ładowana jako tf.data.Dataset lub torch.utils.data.DataLoader. Zobacz sekcję Interfejs API konwertera zestawów danych platformy Spark w dokumentacji interfejsu API petastorm.

Zalecany przepływ pracy to:

  1. Ładowanie i opcjonalne wstępne przetwarzanie danych przy użyciu platformy Apache Spark.
  2. Użyj metody Petastorm spark_dataset_converter , aby przekonwertować dane z ramki danych platformy Spark na zestaw danych TensorFlow lub moduł DataLoader PyTorch.
  3. Dane są wprowadzane do struktury DL na potrzeby trenowania lub wnioskowania.

Konfigurowanie katalogu pamięci podręcznej

Konwerter Petastorm Spark buforuje wejściowe ramki danych Spark w formacie Parquet w lokalizacji katalogu pamięci podręcznej określonej przez użytkownika. Katalog pamięci podręcznej musi być ścieżką systemu plików DBFS rozpoczynającą się od file:///dbfs/, na przykład file:///dbfs/tmp/foo/ , która odwołuje się do tej samej lokalizacji co dbfs:/tmp/foo/. Katalog pamięci podręcznej można skonfigurować na dwa sposoby:

  • W konfiguracji spark klastra dodaj wiersz:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • W notesie wywołaj metodę spark.conf.set():

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

Pamięć podręczną można jawnie usunąć po jej użyciu przez wywołanie converter.delete() pamięci podręcznej lub niejawnie zarządzać nią, konfigurując reguły cyklu życia w magazynie obiektów.

Usługa Databricks obsługuje szkolenie DL w trzech scenariuszach:

  • Trenowanie z jednym węzłem
  • Dostrajanie hiperparametrów rozproszonych
  • Szkolenie rozproszone

Aby uzyskać kompleksowe przykłady, zobacz następujące notesy:

Ładowanie plików Parquet bezpośrednio przy użyciu narzędzia Petastorm

Ta metoda jest mniej preferowana niż interfejs API konwertera Petastorm Spark.

Zalecany przepływ pracy to:

  1. Ładowanie i opcjonalne wstępne przetwarzanie danych przy użyciu platformy Apache Spark.
  2. Zapisz dane w formacie Parquet w ścieżce systemu plików DBFS, która ma towarzyszącą instalację systemu plików DBFS.
  3. Załaduj dane w formacie Petastorm za pośrednictwem punktu instalacji systemu plików DBFS.
  4. Używanie danych w strukturze DL na potrzeby trenowania lub wnioskowania.

Zobacz przykładowy notes , aby zapoznać się z przykładem kompleksowego.

Przykłady: wstępne przetwarzanie danych i trenowanie modeli za pomocą biblioteki TensorFlow lub PyTorch

W tym przykładowym notesie przedstawiono następujący przepływ pracy w usłudze Databricks:

  1. Ładowanie danych przy użyciu platformy Spark.
  2. Przekonwertuj ramkę danych platformy Spark na zestaw danych TensorFlow przy użyciu biblioteki Petastorm.
  3. Przekaż dane do modelu TensorFlow z jednym węzłem na potrzeby trenowania.
  4. Przekaż dane do funkcji dostrajania hiperparametrów rozproszonych.
  5. Przekaż dane do rozproszonego modelu TensorFlow na potrzeby trenowania.

Uproszczenie konwersji danych z platformy Spark do notesu TensorFlow

Pobierz notes

W tym przykładowym notesie przedstawiono następujący przepływ pracy w usłudze Databricks:

  1. Ładowanie danych przy użyciu platformy Spark.
  2. Przekonwertuj ramkę danych platformy Spark na element DataLoader PyTorch przy użyciu narzędzia Petastorm.
  3. Przekaż dane do modelu PyTorch z jednym węzłem na potrzeby trenowania.
  4. Przekaż dane do funkcji dostrajania hiperparametrów rozproszonych.
  5. Przekaż dane do rozproszonego modelu PyTorch na potrzeby trenowania.

Uproszczenie konwersji danych z platformy Spark do notesu PyTorch

Pobierz notes

Przykład: wstępne przetwarzanie danych i ładowanie plików Parquet za pomocą narzędzia Petastorm

W tym przykładowym notesie przedstawiono następujący przepływ pracy w usłudze Databricks:

  1. Używanie platformy Spark do ładowania i wstępnego przetwarzania danych.
  2. Zapisz dane przy użyciu narzędzia Parquet w obszarze dbfs:/ml.
  3. Załaduj dane przy użyciu narzędzia Petastorm za pośrednictwem zoptymalizowanej instalacji file:/dbfs/mlFUSE.
  4. Dane są przekazywane do platformy uczenia głębokiego na potrzeby trenowania lub wnioskowania.

Przygotowywanie danych do notesu uczenia głębokiego za pomocą platform Spark i Petastorm

Pobierz notes