Aracılığıyla paylaş


Petastorm kullanarak verileri yükleme

Bu makalede, Petastorm'un apache Spark'tan TensorFlow veya PyTorch'a veri dönüştürmeyi nasıl kullanacağınız açıklanmaktadır. Ayrıca, ML için veri hazırlamak için Petastorm'un nasıl kullanılacağını gösteren bir örnek de sağlar.

Petastorm bir açık kaynak veri erişim kitaplığıdır. Derin öğrenme modellerinin doğrudan Apache Parquet biçimindeki veri kümelerinden ve Apache Spark DataFrames olarak yüklenmiş veri kümelerinden tek düğümlü veya dağıtılmış eğitim ve değerlendirmeye olanak tanır. Petastorm, TensorFlow, PyTorch ve PySpark gibi popüler Python tabanlı makine öğrenmesi (ML) çerçevelerini destekler. Petastorm hakkında daha fazla bilgi için Petastorm API belgelerine bakın.

Petastorm kullanarak Spark DataFrames'ten veri yükleme

Petastorm Spark dönüştürücü API'si, Spark'tan TensorFlow veya PyTorch'a veri dönüştürmeyi kolaylaştırır. Spark DataFrame girişi önce Parquet biçiminde gerçekleştirilir ve ardından veya torch.utils.data.DataLoaderolarak tf.data.Dataset yüklenir. Petastorm API belgelerindeki Spark Veri Kümesi Dönüştürücü API'si bölümüne bakın.

Önerilen iş akışı:

  1. Apache Spark kullanarak verileri yükleme ve isteğe bağlı olarak ön işleme.
  2. Bir Spark DataFrame'den TensorFlow Veri Kümesine veya PyTorch DataLoader'a veri dönüştürmek için Petastorm spark_dataset_converter yöntemini kullanın.
  3. Eğitim veya çıkarım için verileri bir DL çerçevesine besleme.

Önbellek dizinini yapılandırma

Petastorm Spark dönüştürücüsü, giriş Spark DataFrame'i kullanıcı tarafından belirtilen önbellek dizini konumunda Parquet biçiminde önbelleğe alır. Önbellek dizini ile başlayan file:///dbfs/bir DBFS yolu olmalıdır; örneğin, file:///dbfs/tmp/foo/ ile aynı konuma dbfs:/tmp/foo/başvurur. Önbellek dizinini iki şekilde yapılandırabilirsiniz:

  • Spark yapılandırması kümesine şu satırı ekleyin:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • Not defterinizde öğesini çağırın spark.conf.set():

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

Önbelleği kullandıktan sonra çağırarak converter.delete() açıkça silebilir veya nesne depolamanızdaki yaşam döngüsü kurallarını yapılandırarak önbelleği örtük olarak yönetebilirsiniz.

Databricks üç senaryoda DL eğitimini destekler:

  • Tek düğümlü eğitim
  • Dağıtılmış hiper parametre ayarlama
  • Dağıtılmış eğitim

Uçtan uca örnekler için aşağıdaki not defterlerine bakın:

Parquet dosyalarını doğrudan Petastorm kullanarak yükleme

Bu yöntem Petastorm Spark dönüştürücü API'sinden daha az tercih edilir.

Önerilen iş akışı:

  1. Apache Spark kullanarak verileri yükleme ve isteğe bağlı olarak ön işleme.
  2. Parquet biçimindeki verileri, eşlikçi DBFS bağlaması olan bir DBFS yoluna kaydedin.
  3. DBFS bağlama noktası aracılığıyla Petastorm biçiminde veri yükleyin.
  4. Eğitim veya çıkarım için DL çerçevesindeki verileri kullanın.

Uçtan uca örnek için örnek not defterine bakın.

Örnekler: TensorFlow veya PyTorch ile verileri ön işleme ve modelleri eğitme

Bu örnek not defteri Databricks'te aşağıdaki iş akışını gösterir:

  1. Spark kullanarak veri yükleme.
  2. Petastorm kullanarak Spark DataFrame'i TensorFlow Veri Kümesine dönüştürün.
  3. Eğitim için verileri tek düğümlü bir TensorFlow modeline aktarın.
  4. Verileri dağıtılmış bir hiper parametre ayarlama işlevine aktarın.
  5. Verileri eğitim için dağıtılmış bir TensorFlow modeline aktarın.

Spark'tan TensorFlow not defterine veri dönüştürmeyi basitleştirme

Not defterini alma

Bu örnek not defteri Databricks'te aşağıdaki iş akışını gösterir:

  1. Spark kullanarak veri yükleme.
  2. Petastorm kullanarak Spark DataFrame'i PyTorch DataLoader'a dönüştürün.
  3. Verileri eğitim için tek düğümlü bir PyTorch modeline aktarın.
  4. Verileri dağıtılmış bir hiper parametre ayarlama işlevine aktarın.
  5. Verileri eğitim için dağıtılmış bir PyTorch modeline aktarın.

Spark'tan PyTorch not defterine veri dönüştürmeyi basitleştirme

Not defterini alma

Örnek: Petastorm ile verileri ön işleme ve Parquet dosyalarını yükleme

Bu örnek not defteri, Databricks'te aşağıdaki iş akışını gösterir:

  1. Spark'ı kullanarak verileri yükleme ve ön işleme.
  2. altında dbfs:/mlParquet kullanarak verileri kaydedin.
  3. İyileştirilmiş FUSE bağlantısı file:/dbfs/mlaracılığıyla Petastorm kullanarak veri yükleyin.
  4. Eğitim veya çıkarım için verileri derin öğrenme çerçevesine aktarma.

Derin öğrenme not defteri için veri hazırlamak için Spark ve Petastorm kullanma

Not defterini alma