高品質な機械学習モデルの訓練には、慎重なデータと特徴量の準備が必要です。Databricksにテーブルとして保存された生データをフルに活用するためには、ETLパイプラインの実行や特徴量エンジニアリングが必要となり、生データを有用な特徴量テーブルに変換することが求められます。テーブルが大きい場合、このステップは非常に時間がかかることがあります。今回、Databricks Machine Learning RuntimeでPhoton Engineを有効に できることを発表できることを嬉しく思います。これにより、Sparkジョブや特徴量エンジニアリングのワークロードを2倍以上高速化することが可能になります。
「Photonを有効にし、新しいPITジョインを使用することで、私たちのフィーチャーストアを使用してトレーニングデータセットを生成するための時間が20倍以上短縮されました。」 - Sem Sinchenko, Advanced Analytics Expert Data Engineer, Raiffeisen Bank International AG
Photon とは何ですか?
Photon Engineは、Spark SQLやSpark DataFrameをより高速に実行できる高性能クエリエンジンで、ワークロードごとの総コストを削減します。内部的には、PhotonはC++で実装されており、特定のSpark実行ユニットはPhotonのネイティブエンジン実装に置き換えられています。
Photonは機械学習のワークロードにどのように役立つのか?
PhotonがDatabricks Machine Learning Runtimeで有効にできるようになった今、機械学習開発ワークフローにおいてPhoton対応クラスタを統合するのはいつが適切でしょうか?
以下はいくつかの主な考慮事項です:
- 高速なETL: Photonは、データ準備のためのSpark SQLとSpark DataFrameのワークロードを高速化します。Photonの初期の顧客は、SQLクエリの平均速度向上を2倍から4倍観察しました。
- 特徴量エンジニアリングの高速化: DatabricksのFeature Engineering Python APIを使用して時系列特徴量テーブルを扱う際、Photonを有効にすると、特定時点の結合(point-in-time join)がより速くなります。
Photonによる高速な特徴量エンジニアリング
Databricks Feature Engineeringライブラリは、時系列データのための新しいバージョンのポイントインタイム結合(point-in-time join)を実装しました。この新しい実装は、Databricksの顧客であるRaiffeisen Bank InternationalのSemyon Sinchenko氏からの提案に基づいており、以前のバージョンよりもネイティブSparkを使用することで、よりスケーラブルで堅牢なものになっています。さらに、このネイティブSpark実装はPhotonエンジンから大きな恩恵を受けます。テーブルが大きければ大きいほど、Photonによる改善が顕著になります。
- 特徴量テーブル(行数1,000万、ユニークID数1万、各IDに対してタイムスタンプ数1,000)とラベルテーブル(ユニークID数10万、各IDに対してタイムスタンプ数100)の結合では、Photonはポイントインタイム結合を2.0倍に高速化します。
- 特徴量テーブル(行数1億、ユニークID数10万)の結合では、Photonはポイントインタイム結合を2.1倍に高速化します。
- 特徴量テーブル(行数10億、ユニークID数100万)の結合では、Photonはポイントインタイム結合を2.4倍に高速化します。
上記の図は、同じラベル表を持つ3つの異なるサイズの特徴表の結合実行時間を比較しています。各実験は、r6id.xlargeインスタンスタイプと1つのワーカーノードを持つDatabricks AWSクラスター上で実行されました。平均実行時間を計算するために、このセットアップは5回繰り返されました。
Databricks Machine Learning RuntimeクラスターでPhotonを選択
PhotonのクエリパフォーマンスとDatabricks ML Runtimeの事前構築されたAIインフラにより、機械学習モデルの構築がこれまでよりも高速かつ容易になります。Databricks Machine Learning Runtime 15.2以降では、「Photon Accelerationを使用する」を選択することで、Photon対応のML Runtimeクラスタを作成できます。また、ネイティブSpark版のポイントインタイム結合は、ML Runtime 15.4 LTS以降で利用可能です。
PhotonやDatabricksを用いた特徴量エンジニアリングについて詳しく知りたい方は、以下のドキュメンテーションページをご覧ください。