Bagikan melalui


Memuat data menggunakan Petastorm

Artikel ini menjelaskan cara menggunakan Petastorm mengonversi data dari Apache Spark ke TensorFlow atau PyTorch. Ini juga memberikan contoh yang menunjukkan cara menggunakan Petastorm untuk menyiapkan data untuk ML.

Petastorm adalah pustaka akses data sumber terbuka. Ini memungkinkan node tunggal atau pelatihan terdistribusi dan evaluasi model pembelajaran mendalam langsung dari himpunan data dalam format Apache Parquet dan himpunan data yang sudah dimuat sebagai Apache Spark DataFrames. Petastorm mendukung kerangka kerja pembelajaran mesin (ML) berbasis Python populer seperti TensorFlow, PyTorch, dan PySpark. Untuk informasi selengkapnya tentang Petastorm, lihat dokumentasi Petastorm API.

Memuat data dari Spark DataFrames menggunakan Petastorm

API konverter Petastorm Spark menyederhanakan konversi data dari Spark ke TensorFlow atau PyTorch. Input Spark DataFrame pertama kali terwujud dalam format Parket dan kemudian dimuat sebagai tf.data.Dataset atau torch.utils.data.DataLoader. Lihat bagian Spark Dataset Converter API di dokumentasi Petastorm API.

Alur kerja yang direkomendasikan adalah:

  1. Gunakan Apache Spark untuk memuat dan memproses data secara opsional.
  2. Gunakan metode Petastorm spark_dataset_converter untuk mengonversi data dari Spark DataFrame menjadi TensorFlow Dataset atau PyTorch DataLoader.
  3. Masukkan data ke dalam kerangka DL untuk pelatihan atau inferensi.

Konfigurasikan direktori cache

Konverter Petastorm Spark menyimpan cache Input Spark DataFrame dalam format Parket dalam lokasi direktori cache yang ditentukan pengguna. Direktori cache harus berupa jalur DBFS yang dimulai dengan file:///dbfs/, misalnya, file:///dbfs/tmp/foo/ yang mengacu pada lokasi yang sama dengan dbfs:/tmp/foo/. Anda dapat mengonfigurasi direktori cache dengan dua cara:

  • Dalam konfigurasi Spark kluster tambahkan baris:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • Di buku catatan Anda, hubungi spark.conf.set():

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

Anda dapat menghapus cache secara eksplisit setelah menggunakannya dengan memanggil converter.delete() atau mengelola cache secara implisit dengan mengonfigurasi aturan siklus hidup di penyimpanan objek Anda.

Databricks mendukung pelatihan DL dalam tiga skenario:

  • Pelatihan simpul tunggal
  • Penyetelan hiperparameter terdistribusi
  • Pelatihan yang didistribusikan

Untuk contoh end-to-end, lihat buku catatan berikut:

Memuat file Parket secara langsung menggunakan Petastorm

Metode ini kurang disukai daripada Petastorm Spark converter API.

Alur kerja yang direkomendasikan adalah:

  1. Gunakan Apache Spark untuk memuat dan memproses data secara opsional.
  2. Simpan data dalam format Parquet ke jalur DBFS yang memiliki pemasangan DBFS pendamping.
  3. Muat data dalam format Petastorm melalui titik pemasangan DBFS.
  4. Masukkan data ke dalam kerangka DL untuk pelatihan atau inferensi.

Lihat contoh buku catatan untuk contoh end-to-end.

Contoh: Pra-pemrosesan data dan melatih model dengan TensorFlow atau PyTorch

Contoh buku catatan ini menunjukkan alur kerja berikut di Databricks:

  1. Muat data menggunakan Spark.
  2. Konversikan Spark DataFrame menjadi Himpunan Data TensorFlow menggunakan Petastorm.
  3. Umpan data ke dalam model TensorFlow simpul tunggal untuk pelatihan.
  4. Masukkan data ke dalam fungsi penyetelan hiperparameter terdistribusi.
  5. Umpan data ke dalam model TensorFlow terdistribusi untuk pelatihan.

Menyederhanakan konversi data dari Spark ke TensorFlow

Dapatkan buku catatan

Contoh buku catatan ini menunjukkan alur kerja berikut di Databricks:

  1. Muat data menggunakan Spark.
  2. Konversikan Spark DataFrame ke PyTorch DataLoader menggunakan Petastorm.
  3. Masukkan data ke dalam model PyTorch simpul tunggal untuk pelatihan.
  4. Masukkan data ke dalam fungsi penyetelan hiperparameter terdistribusi.
  5. Masukkan data ke dalam model PyTorch terdistribusi untuk pelatihan.

Menyederhanakan konversi data dari Spark ke TensorFlow

Dapatkan buku catatan

Contoh: Prapemroscesan data dan memuat file Parquet dengan Petastorm

Contoh buku catatan ini memperlihatkan alur kerja berikut pada Databricks:

  1. Gunakan Spark untuk memuat dan memproses data sebelumnya.
  2. Simpan data menggunakan Parquet di bawah dbfs:/ml.
  3. Muat data menggunakan Petastorm melalui pemasangan file:/dbfs/mlFUSE yang dioptimalkan .
  4. Umpan data ke dalam kerangka kerja pembelajaran mendalam untuk pelatihan atau inferensi.

Gunakan Spark dan Petastorm untuk menyiapkan data untuk buku catatan pembelajaran mendalam

Dapatkan buku catatan