LoginSignup
0
0

More than 1 year has passed since last update.

Load data using Petastorm | Databricks on AWS [2021/10/20時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

Petastormはオープンソースのデータアクセスライブラリです。このライブラリは、Apache Parquetフォーマットのデータセット、すでにApache Sparkデータフレームとしてロードされているデータセットから直接ディープラーニングモデルに対する、シングルノード、分散処理によるトレーニングおよび評価を可能にします。PetastormはTensorflow、PyTorch、PySparkのような町名なPythonベースの機械学習(ML)フレームワークをサポートしています。Petastormの詳細に関しては、Petastorm GitHub pagePetastorm API documentationをご覧ください。

Petastormを用いたSparkデータフレームからのデータロード

Petastorm Spark converter APIは、SparkからTensorflow、PyTorchへのデータ変換をシンプルにします。入力されたSparkデータフレームは、最初にParquetフォーマットとしてマテリアライズされ、tf.data.Datasettorch.utils.data.DataLoaderとしてロードされます。Petastorm APIドキュメントのSpark Dataset Converter API sectionをご覧ください。

お勧めのワークフローは以下のようになります。

  1. Sparkを用いてロードし、場合によってはデータ処理を行います。
  2. Petastormのspark_dataset_converterメソッドを用いて、SparkデータフレームからTensorFlow DatasetやPyTorch DataLoaderにデータを変換します。
  3. トレーニング、推論のためにデータをDLフレームワークに投入します。

キャッシュディレクトリの設定

Petastorm Sparkコンバーターは、入力されたSparkデータフレームをParquetフォーマットでユーザーが指定したキャッシュディレクトリにキャッシュします。キャッシュディレクトリは、file:///dbfs/で始まるDBFS FUSEパスである必要があります。例えば、file:///dbfs/tmp/foo/dbfs:/tmp/foo/と同じ場所を参照します。2つの方法でキャッシュディレクトリを設定することができます。

  • クラスターのSpark設定に以下の行を追加します。
    petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • ノートブックでspark.conf.set()を呼び出します。

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

キャッシュの使用後にconverter.delete()を呼び出して明示的にキャッシュを削除するか、お使いのオブジェクトストレージのライフサイクルルールを設定することで、暗黙的にキャッシュを管理することができます。

Databricksは以下の3つのシナリオでのDLトレーニングをサポートしています。

  • シングルノードでのトレーニング
  • 分散ハイパーパラメーターチューニング
  • 分散トレーニング

エンドツーエンドのサンプルに関しては、以下のノートブックをご覧だ臭い。

Petastormを用いた直接的なParquetファイルのロード

この方法は、Petastorm Spark converter APIよりはお勧めしません。

お勧めするワークフローは以下の通りとなります。

  1. Apace Sparkを用いてデータをロードし、場合によってはデータ処理を行います。
  2. FUSEマウントを持つDBFSパスにデータをParquetフォーマットで保存します。
  3. FUSEマウントポイント経由でPeatastormフォーマットでデータをロードします。
  4. トレーニング、推論のためにDLフレームワークでデータを使用します。

エンドツーエンドのサンプルに関しては、サンプルノートブックをご覧ください。

サンプル

SparkからTensorFlowへのデータ変換をシンプルに

SparkからPyTorchへのデータ変換をシンプルに

ディープラーニング向けにデータを準備するためにSparkとPetastormを使う

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0