Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Databricks における画像の取り扱い

Databricks における画像の取り扱い

Databricksにおける画像の取り扱いについて説明いたします。

Databricks Japan

April 12, 2024
Tweet

More Decks by Databricks Japan

Other Decks in Technology

Transcript

  1. ©2024 Databricks Inc. — All rights reserved 画像処理パイプラインのアーキテクチャ • 画像処理にはトレーニングおよび推論パイプラインが含まれます。

    • モデルのトレーニング頻度は推論実行頻度よりも少ないかもしれません。 • 推論はバッチモード、あるいはリアルタイムストリーミングモードで実行されます。 • トレーニングしたモデルは推論のためにエッジデバイスにデプロイされることがあります。 • ディープラーニングフレームワークは、それらの精度と画像から特徴量を推定できる 能力から頻繁に活用されます。 • 一般的なフレームワークには、TensorFlow、Keras、PyTorchがあります。 • 多くの場合、ユーザーは事前学習済みモデルを再利用するか、ユースケースに応じて最終レイヤー を再トレーニングし、スクラッチでニューラルネットを構築することなしに、画像 処理パイプラインの構築を容易にします。
  2. ©2024 Databricks Inc. — All rights reserved ディープラーニングを用いた画像処理の課題 • モデルをトレーニングするオンプレミスGPU可用性の制限

    • GPUのアーキテクチャ設計は困難であり、セキュアかつ容易に管理することも大変で す。 • blobストレージに存在する大量の画像ファイル • 特徴量を持つ非構造化画像データを用いて構造化のテーブルを作ることが困難で す。
  3. ©2024 Databricks Inc. — All rights reserved モチベーション • 画像の格納にDelta

    lakeを活用することができます。 • Deltaは、blobストレージ上の小さなファイル問題の回避の助けとなります。 • 以下をサポート: • 高速な推論クエリー • ストリーム処理 • ACIDトランザクション • 設定可能な圧縮処理
  4. ©2024 Databricks Inc. — All rights reserved 探索 vs. 格納

    • Delta lakeでは画像の2つのフォーマットをサポートしています。 • イメージフォーマット - 探索 • 画像をデコードし、サムネイルを作成します。 • データのサブセットを可視化し、サンプルデータの高さや幅、チャンネル数をチェックする際に有用です。 • バイナリーファイルフォーマット - 格納 • それぞれのファイルは、バイナリーのコンテンツとメタデータを持つ単一行として格納されます。 • 画像のデコードは行いません。
  5. ©2024 Databricks Inc. — All rights reserved 画像の格納形態 - 生の画像ファイル

    パス その他のメタデータ s3a://mys3bucket/images/01.png s3a://mys3bucket/images/02.png s3a://mys3bucket/images/03.png • メリット • 管理が簡単 • デメリット • パフォーマンスが出ない • バージョン管理ができない(タイムトラベル) • データを拡張できない クラウドストレージ
  6. ©2024 Databricks Inc. — All rights reserved ID 座標 メタデータ

    … 画像 (バイナリー) 01 02 03 画像の格納形態 - Deltaテーブルに格納 • メリット • バージョン管理(タイムトラベル) • 大規模処理でも高いパフォーマンス(OPTIMIZE、Z-Orderなど) • Single source of truth(データが散在しない) • 管理が簡単 • デメリット • DeltaのAPIを使う必要あり Deltaテーブル
  7. ©2024 Databricks Inc. — All rights reserved ID 座標 メタデータ

    … パス 01 s3a://mys3bucket/ima ges/01.png 02 s3a://mys3bucket/ima ges/02.png 03 s3a://mys3bucket/ima ges/03.png 画像の格納形態 - ハイブリッド Deltaテーブル クラウドストレージ
  8. ©2024 Databricks Inc. — All rights reserved 更なる画像処理で .applyInPandas(...) を活用

    • 画像処理APIにアクセスするための簡潔なUDF構文 • 画像に対してより自然なpandas APIを活用 • Arrowに引き渡すデータのスキーマとデータ量を考慮 proc_df = df.select(<only cols for pandas function>) … rtn_schema = df.select(<return cols>).withColumn(“x”,...)... • 自分の pandas 関数を活用 rtn_df = proc_df.groupBy(<image_id or set>).applyInPandas(rtn_schema) • 特徴量を用いてバイナリー画像データを効率的に再構成するためにSparkを活用 full_df = rtn_df.join(df,<on-image-key>,”leftouter”)
  9. ©2024 Databricks Inc. — All rights reserved 格納時の圧縮の無効化 格納しようとしているデータの大部分が画像特徴量ではなく画像データの場合には、圧縮を無効化します。これによっ て、画像が最初から圧縮フォーマットである場合には、読み書きを劇的に高速化します。

    (ここでは.pngを使いました) # Save spark.conf.set("spark.sql.parquet.compression.codec", "uncompressed") ( full_df.write .format('delta') .mode('append') .option('mergeSchema',True) .save('/mnt/datalake/interesting_images') ) # Set compression back to what it was spark.conf.set("spark.sql.parquet.compression.codec", compression)
  10. ©2024 Databricks Inc. — All rights reserved Unity Catalogガバナンスによる 非テーブルデータへのアクセス、

    格納、整理、処理 データサイエンス、機械学習を含む任意のファイルの新た な処理機能の解放 すべてのファイルフォーマット。構造化、半構造化、非構造 化データ UI、Spark API、FUSE、dbutils、REST、SQL、 Databricks CLI、Terraform経由でアクセス可能なファイ ル ボリューム 14 Unity Catalogにおけるファイルのカタログコレクション
  11. ©2024 Databricks Inc. — All rights reserved Unity Catalogにおけるボリューム 非テーブルデータのアクセス、格納、制御、整理、処理

    * 15 - ボリュームタイプ: マネージド、外部 - Unity Catalogで集中管理される3レベルの名前空間で整理されるファイル <catalog>.<schema>.<volume_name> - Hadoop分散ファイルシステムの実装、FUSEサポート - パス Hadoop [dbfs:]/Volumes/<catalog>/<schema>/<volume>/<path>/<file_name> FUSE /Volumes/<catalog>/<schema>/<volume>/<path>/<file_name> - ANSI SQLのGRANTやREVOKEコマンドをベースとしたガバナンスモデル - ボリュームレベル - カタログエクスプローラやノートブックのファイル参照、管理のためのユーザインタフェース - API(Spark、dbutils、REST、SQL、ローカルファイルシステム)やDatabricks CLI経由でアクセスできるコン テンツ * テーブルではなくファイルとして直接アクセスできるデータ
  12. ©2024 Databricks Inc. — All rights reserved Unity Catalogにおけるボリューム 16

    Unity Catalogガバナンスによるファイルのアクセス、格納、整理、処理 - ボリュームは以下のような非テーブルデータに対するガバナン スを追加します - MLで活用される画像、音声、動画、 PDFファイルのような 非構造化データ - MLモデルトレーニングで活用される半構造のトレーニング、検証、 テストデータセット - ad-hocや初期段階のデータ探索で使用される生のデータ、 保存されるアウトプット - ワークスペース横断で利用されるライブラリ、設定ファイル - ロギングやチェックポイントの出力ファイルのようなオペレーション データ - … - 一方でテーブルはテーブルデータセットに対するガバナンスを 提供します * テーブルではなくファイルとして直接アクセスできるデータ
  13. ©2024 Databricks Inc. — All rights reserved 17 すべてのワークロードに対する自動リネージ •

    Databricksクラスター、SQLウェア ハウスにおける実行時データリネージ自動 キャプチャ • テーブル、カラムレベルのリネージ • Unity Catalogの共通権限モデルの活用 • テーブル、ダッシュボード、ワークフロー、 ノートブック、特徴量テーブル、ファイル、 DLTのリネージ 組織におけるデータフロー、データ活用に対するエンドツーエンドの可視性