Load data | Databricks on AWS [2021/6/11時点]とPreprocess data | Databricks on AWS [2021/9/7時点]の翻訳です。
本書では、特にML、DL向けのデータ準備をカバーした情報とサンプルを提供します。
データのロード
このセクションでは、特にML、DLアプリケーションにおけるデータのロードについて説明します。データロードに関する一般的な情報については、Data guideをご覧ください。
データロードとモデルのチェックポイントのためのデータの格納
機械学習アプリケーションは、データロードとモデルのチェックポイントのために共有ストレージを必要とするケースがあります。これは特に分散ディープラーニングにおいて重要となります。Databricksは、クラスターがSpark API、ローカルファイルAPIを用いてデータにアクセスできるようにDatabricksファイルシステム(DBFS)を提供しています。
- Databricks機械学習ランタイム6.3(6.3自体はサポート外)以降: Databricksは高性能のFUSEマウントを提供します。
- Databricks機械学習ランタイム5.5 LTS(Long Term Support): ディープラーニングおI/Oにおいて高パフォーマンスを提供する特殊なフォルダー
dbfs:/ml
を提供しており、これはドライバー、ワーカーノードのfile:/dbfs/ml
にマッピングされます。データを/dbfs/ml
に保存することをお勧めします。このFUSEマウントは、2GB以下のファイルのみをサポートしているDatabricksランタイムのローカルファイルI/O APIの制限を軽減します。
表形式データのロード
テーブル、あるいはファイル(例えばCSVファイル)から表形式の機械学習データをロードすることができます。PySparkのメソッドのtoPandas()
を用いることで、Apache Sparkデータフレームをpandasのデータフレームに変換することができ、必要に応じて、pandasメソッドのto_numpy()
を用いてNumPyフォーマットに変換することができます。
分散トレーニングに向けたデータの準備
ここでは分散トレーニング向けにデータを準備する2つの方法、PetastormとTFRecordsをカバーします。
データの前処理
Databricksの特徴量ストアを活用することで、新規に特徴量を作成し、既存の特徴量の探索、再利用、機械学習モデルのトレーニング、スコアリングのための特徴量の取得、そして、リアルタイム推論で必要となる低レーテンシーのオンラインストアに特徴量を公開することができます。
大規模データセットにおいては、特徴量エンジニアリングにSpark SQLとMLlibを活用することができます。Databricks機械学習ランタイムに含まれるscikit-learnのようなサードパーティライブラリもまた、有用なヘルパーメソッドを提供します。例えば、以下のscikit-learnやMLlibによる機械学習ノートブックをご覧ください。
より複雑なディープライーニングの特徴量処理に関しては、以下のノートブックでどのように特徴量作成に転移学習を使うのかを説明しています。