Reference solution for image applications | Databricks on AWS [2022/5/23時点]の翻訳です。
Databricksクイックスタートガイドのコンテンツです。
本記事と関連ノートブックは、数多くの実世界の画像アプリケーションで用いられている一般的な設定に基づく分散画像推論モデルに対するリファレンスソリューションを説明するものです。ここでは、オブジェクトストレージに大量の画像を格納し、場合によっては継続的に新たな画像が登録されていくことを前提としています。あなたは、画像分類、物体検知のためのトレーニング済みのディープラーニング(DL)モデル、例えばプライバシー保護のためにユーザーがアップロードした画像から人間を検知するためのMobileNetV2をいくつか持っており、格納された画像に対してモデルを適用したいと考えています。
モデルを再トレーニングし、以前計算した予測結果をアップデートするかもしれません。しかし、多くの画像をロードし、DLモデルを適用することは、I/O、計算の負荷がかかるものです。幸運なことに、推論のワークロードは驚くほど並列化されたものであり、理論上は容易に処理を分散することができます。本ガイドにおいては、以下の二つのステージから構成される実践的なソリューションをウォークスルーします。
- オートローダーによるDelta Lakeへの画像ETL
- pandas UDF(ユーザー定義関数)による分散推論の実行
オートローダーによるDelta Lakeへの画像ETL
トレーニング、推論タスクを含む画像アプリケーションにおいては、オートローダーを使用して画像をDeltaテーブルにETLすることをお勧めします。オートローダーを用いることでデータ管理を容易にし、継続的に投入される画像を自動で処理することができます。
画像データセットをDeltaテーブルにETLするサンプルノートブック
画像データセットをDeltaテーブルにETLするサンプルノートブック
pandas UDFによる分散推論の実行
以下のノートブックでは、リファレンスソリューションをデモするために、PyTorchとTensorFlow tf.Kerasを用いています。
PyTorchとpandas UDFによる分散推論ノートブック
PyTorchとpandas UDFによる分散推論ノートブック
Kerasとpandas UDFによる分散推論ノートブック
制限
大容量の画像ファイル(平均画像サイズが100MB以上)の場合は、Deltaテーブルにはメタデータ(ファイル名の一覧)のみを格納し、必要な際にはパスを用いてオブジェクトストレージ上の画像を読み込むことをお勧めします。