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

ハンズオンで学ぶ Databricks - Databricksにおける機械学習、画像処理

ハンズオンで学ぶ Databricks - Databricksにおける機械学習、画像処理

1. 座学(1時間)
a. Databricks概要
b. Databricksにおける機械学習
c. Databricksにおける画像の取り扱い

2. ハンズオン(1.5時間)
a. Databricksにおける機械学習
i. データの前処理
ii. 機械学習モデルのトレーニング
iii. 実験管理
iv. 推論
b. 画像の取り扱い

Takaaki Yayoi

January 17, 2025
Tweet

More Decks by Takaaki Yayoi

Other Decks in Technology

Transcript

  1. ©2025 Databricks Inc. — All rights reserved 1 1 ハンズオンで学ぶ

    Databricks Databricksにおける機械学習、画像処理 2025/1/17 Databricks Japan 弥生 隆明
  2. ©2024 Databricks Inc. — All rights reserved 自己紹介 弥生 隆明

    (やよい たかあき) シニア スペシャリスト ソリューションアーキテクト ▪ 2020年からデータブリックス ジャパンにお いて、プレセールス、POCに従事 ▪ 前職はコンサル、総合電機メーカー にてデータ分析・Webサービス構築 などに従事。インド赴任経験あり。 ▪ Databricks Certified (Data Engineer | Machine Learning) Professional, Generative AI Engineer Associate ▪ Qiitaでいろいろ書いています。 2 @taka_aki
  3. ©2024 Databricks Inc. — All rights reserved 1. 座学(1時間) a.

    Databricks概要 b. Databricksにおける機械学習 c. Databricksにおける画像の取り扱い 2. ハンズオン(1.5時間) a. Databricksにおける機械学習 i. データの前処理 ii. 機械学習モデルのトレーニング iii. 実験管理 iv. 推論 b. 画像の取り扱い
  4. データ+AIカンパニー クリエーター 10,000+ グローバルのお客様 $2.4B+ 年間収益 4B+ の投資 レイクハウス の

    発明者 生成AIの パイオニア LEADER 2023 Cloud Database Management Systems LEADER 2024 Data Science & Machine Learning Analytic Stream Processing
  5. ディザスターリカバリ コストコントロール エンタープライズセキュリティ 100% サーバレス レイクハウス AI/BI ビジネス インテリジェンス Databricks

    SQL データウェアハウス Workflows/DLT 取り込み、ETL ストリーミング Mosaic AI 人工知能 Databricksデータインテリジェンスプラットフォーム
  6. 従来のカタログ 全てのデータ+AIのガバナンスを統合 テーブル AIモデル ファイル ノートブック ダッシュボード 全てのデータ&AI資産 に対する単一の オープンガバナンスモ

    デル リネージ、監視、観測 可能性による データへの信頼 アクセス制御 ディスカバリー リネージ 監査 セキュアな データ共有 品質監視 コスト制御 ビジネス セマンティクス セキュリティ コラボレーション 品質 管理
  7. 走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保

    歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える Databricksにおける機械学習・生成AI構築の哲学
  8. 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ステージ1 ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  9. 慣れ親しんだツールを使う 一般的なツール Databricksでは ノートブックやIDE Databricksノートブック、ローカルIDE 言語 Python, R, SQL, Scala,

    Java MLライブラリ 事前パッケージ済みライブラリ + 自分でライブラリをインストール Git 自動ノートブックバージョン管理、 Gitリポジトリとワークスペースの同期 データ Pandas, Spark, Koalas; 任意のデータソースやフォーマット 可視化 Plotly, Matplotlib, Seaborn インテグレーション 任意のライブラリ、システム、サービスとインテグレーションする APIとクラウド ネイティブのプラットフォーム
  10. エンタープライズ向け エンタープライズレベルのアクセス コントロール、アイデンティティパス スルー、監査 コラボレーティブ 共有とアクセス権によるリアルタイ ム同時編集 再現可能性 バージョン管理のための自動改訂 記録とGit連携

    ビジュアライゼーション ビルトインの可視化と最も人気の 可視化ライブラリのサポート (matplotlib, ggplotなど) 実験トラッキング メトリクス、パラメーター、アーティ ファクトなどを記録するビルトイン のDS、MLエクスペリメントのトラッ キング 多言語 Scala, SQL, Python, R: すべてを一つのノートブックで DatabricksにおけるMLユーザー体験 統合された機械学習 & データ分析のためのコラボレーティブな環境を提供
  11. 分析のセルフサービス 計算資源 ライブラリと環境 人気のMLライブラリ プラグ&プレイの環境 requirements.txt conda.yaml カスタマイゼーション オンデマンドでマシンや クラスターを起動

    • オートスケール、自動停止 • クラスターポリシーによる管理 オプション2: ユーザーやプロ ジェクトごとに分離された Python環境を用いてクラス ターを共有 オプション1: 自分のク ラスターを使用
  12. MLのオートロギング : 1 行のコードで パラメー タ、メトリクスデータリ ネージュ、モデルと環 境を記録 mlflow.autolog() による開発の追跡と結果の分析

    UIあるいはプログラムによる分析 • パラメーターXのチューニングはメトリックにどの様な影響が? • ベストモデルはどれか? • 十分長い時間トレーニングを実行したか? データバージョンを含む パラメーター、タグ モデル、環境、アーティファクト メトリクス
  13. サンプル: Databricksにおけるディープラーニング DLモデルの開発 インタラクティブ な開発でノート ブック + TensorBoardを 活用します。 結果の分析

    モデルのパフォー マンスを分析する ために、自動で記 録されたMLflowメ トリクスをレビュー します。 コードの同期 .py や .ipynbノート ブックをインポート しGitと同期しま す。 データロード S3やADLSなど から効率的に データをロードし ます。 GPUマシンを 起動 Databricks MLラ ンタイムは GPUドライバー + DLライブラリを 提供します。 コードとモ デルの共有 セキュアに共 有するために ノートブックと MLflowのアク セス権を活用し ます。
  14. ステージ1の振り返り 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  15. ステージ2 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  16. より大きハードウェアを使用 • どのシングルマシンMLライブラリでも動作 • 特徴量生成、トレーニング、チューニング、推論 • Databricks: リソースのリクエストと解放は簡単 必要に応じてスケールアップ・スケールアウト 1マシンで

    スケールアップ シングルマシンの ワークロードを スケールアウト それぞれのクラスターノードでシングルマシンワーク ロードを実行 • どのシングルマシンMLライブラリでも動作 • 特徴量生成、チューニング、推論 • Databricks: クラスター、Spark、UDFを用いて簡単にスケー ルアウト 分散アルゴリズムによるクラスターサイズに応じたス ケールアウト • 分散MLライブラリ: Spark, XGBoost, TensorFlow, ... • トレーニング • Databricks: クラスター、Spark、UDFを用いて簡単にス ケールアウト 分散アルゴリズム を通じたスケール アウト GPU
  17. データ準備 特徴量 エンジニア リング モデル トレーニング モデル評価 モデルデプロ イメント モデル

    チューニング モデル モニタリング • Koalas • Sparkデータフレーム • Spark UDF • Feature Store • より大きなインスタンス • GPU • 分散トレーニング (Spark ML, HorovodRunnerなど) • Hyperopt • MLflow • バッチ & ストリーミング: ジョブ、 Sparkデータフレーム & UDF • オンラインサービング: Databricksモデルサービング & 外部のサービングシステム • MLflow 典型的な機械学習ワークフローにおけるスケーリング
  18. 再現性確保のための自動ロギング ランを再現する機能 : ✓ ✓ ✓ ✓ コードバージョン管 理 データバージョン管

    理 クラスター設定 環境の仕様 再現性確保チェックリスト : プラットフォームにおけるジョ ブスケジューリング 自動化: スケジュールアラート、リトライ、 API セキュリティ : クラスターポリシー | テーブルACL 自動化と再現性確保
  19. 特徴量の共有と本格運用 特徴量の共有と検索 リネージュベースの検索による Feature Storeの 探索、ACLによって管理された再利用を促進し ます。 トレーニングとサービングの一貫性の確 保 トレーニングとサービングの両方で同じ特徴量

    が使用されることを保証します。 モデルデプロイメントの整流化 MLflowモデルはどの特徴量が必要なのかを 知っているので、MLOpsをシンプルにします。 他のデータと特徴量の統合 特徴量テーブルはDelta Lakeなので、高パ フォーマンスでACIDトランザクションが保証 されます。 リネージュ追跡による特徴量の管理 特徴量テーブルは自動で作成者や利用者を追跡 し、プロダクションの安定性を保証します。
  20. サンプル: Databricksにおけるディープラーニング DLワークフローの「這う」ステージを最適化、スケール、自動化 トレーニングの スケールアップ スケールアウト マシン数増強。マ ルチGPU。分散ト レーニング。 ETL

    + トレーニング ジョブのスケジュー ル ノートブックからジョブを 作成。スケジュール、リ トライ、アラートの追加。 推論ジョブのス ケジュール パフォーマンスが 最適化された Pandas UDF。 性能の最適化 小規模画像向けDelta。 データ取り込み + チェッ クポイント作成のための DBFS。Sparkデータセッ トコンバーター。 ハイパーパラメーター チューニング Hyperopt + SparkTrials によるチューニングのス ケール。 MLflow autologgingによ るチューニングの管理。
  21. ステージ2の振り返り 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  22. ステージ3 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  23. モデルのライフサイクル ステージン グ プロダクショ ン アーカイブ データ サイエンティスト MLエンジニア v1

    v2 モデル トラッキング Flavor 2 Flavor 1 モデルレジストリ Custom Models コード内 コンテナ バッチ & ストリーム スコアリング クラウド推論サー ビス OSSサービングソ リューション Serving Parameters Metrics Artifacts Models Metadata モデル デプロイメント オプション
  24. Databricksにおける MLOpsの例 トレー ニング モデル 検証 ジョブ プロダクションのス コアリング ジョブ、モデルサー

    バー メール モデルバージョンの 作成 ステージングの新規モデル バージョンに対する Webhook テスト結果のコメント + プロダクションへの 移行リクエスト プロダクションの新規モデ ルバージョンに対する Webhook プロダクションへの移行がリクエスト されたことを通知するメールを MLOps担当が受信 新規プロダクション モデルを承認 モデル レジストリ
  25. デプロイメントモード モデル トレーニング バッチ モデル トラッキング レジストリ ストリーム REST API

    埋め込み Delta Lake / Feature Store BIツール MLの予測結果を出力... • ビジネスアプリケーション • データパイプライン • ウェブアプリケーション • 埋め込みアプリ • などなど デプロイメントの最適化... • コスト / レーテンシーのトレードオ フ • Databricksのサービス、 サード パーティのサービス、埋め込みア プリケーション
  26. 特徴量の定義 特徴量テーブル トレーニングデータセットの生成 バッチスコアリング オンラインサービング 特徴量1 特徴量2 • 再利用、共有可能な特徴量 計算ロジックの定義

    顧客 特徴量 商品 特徴量 ... ... • 任意の言語からクエリーでき るテーブルとして特徴量を表 現 • SQL、ACL、バージョン、 パフォーマンス最適化 保存 REST エンドポイント モデルサービング スナップショット ロード 公開 Feature Store
  27. 部門を超えてスケール 新たな問題を解決するため に、皆様のチームの一員とし てSMEや他のビジネスユニッ トと取り組みます。 • ビジネスリーダー • 技術エキスパート •

    ソリューションアクセラ レータ • カスタマーサクセスストー リー 調整して構築する 様々なチームと連携した我々 の経験を活用し、統合プラット フォームを構築します: • DS/ML • DE • BI/アナリティクス • セキュリティ/インフラ • プラットフォーム 成功を繰り返す 新たなデータ問題に対して同 じ様なツール、データアーキ テクチャ、知識を適用します。 組織内にDS/MLのCoEを構築 します。 企業内でスケールさせる
  28. ステージ3の振り返り 這って • 慣れ親しんだツールを 使い続ける • より生産的に • 未来に備える ディープラーニングワークフローの例

    走る • プロダクションに移行 • CI/CDと開発プロセスの 実装 • エンドツーエンドかつ部 門間の自動化と再現性 の確保 歩いて • 徐々にデータとワーク ロードをスケールさせる • 自動化と再現可能な DS/MLワークロードの 自動化と再現 • 組織内でスケールさせ る
  29. Databricksにおける機械学習 MLライフサイクル全体に対するデータネイティブ、コラボレーティブなソリューション によるオープンなデータレイクハウス基盤 MLOps / ガバナンス データ準備 データの バージョン管理 モニタリング

    バッチスコアリン グ オンライン サービング モデル トレーニング モデル チューニング ランタイム環境 Feature Store バッチ (高スループット) リアルタイム (低レーテン シー) AutoML データサイエンスワークスペース
  30. エンドツーエンドのMLOps / ガバナンス データサイエンスワークスペース データ投入 データ バージョン管理 モデル トレーニング モデル

    チューニング ランタイム環境 モニタリング バッチ スコアリング オンラインサー ビング データガバナンス エクスペリメントのト ラッキング 再現性の確保 モデルガバナンス Powered by
  31. Powered by データガバナンス エクスペリメントのト ラッキング 再現性の確保 モデルガバナンス パラメーター メトリクス モデル

    アーティファクト MLメトリクス、パラメーター、アーティファクトなどの自 動キャプチャ
  32. ©2024 Databricks Inc. — All rights reserved 画像処理パイプラインのアーキテクチャ • 画像処理にはトレーニングおよび推論パイプラインが含まれます。

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

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

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

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

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

    … 画像 (バイナリー) 01 02 03 画像の格納形態 - Deltaテーブルに格納 • メリット • バージョン管理(タイムトラベル) • 大規模処理でも高いパフォーマンス(OPTIMIZE、Z-Orderなど) • Single source of truth(データが散在しない) • 管理が簡単 • デメリット • DeltaのAPIを使う必要あり Deltaテーブル
  38. ©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テーブル クラウドストレージ
  39. ©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”)
  40. ©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)
  41. ©2024 Databricks Inc. — All rights reserved Unity Catalogガバナンスによる 非テーブルデータ

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

    * 59 - ボリュームタイプ: マネージド、外部 - 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経由でアクセスできるコン テンツ * テーブルではなくファイルとして直接アクセスできるデータ
  43. ©2024 Databricks Inc. — All rights reserved Unity Catalogにおけるボリューム 60

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

    Databricksクラスター、SQLウェア ハウスにおける実行時データリネージ自動 キャプチャ • テーブル、カラムレベルのリネージ • Unity Catalogの共通権限モデルの活用 • テーブル、ダッシュボード、ワークフロー、 ノートブック、特徴量テーブル、ファイル、 DLTのリネージ 組織におけるデータフロー、データ活用に対するエンドツーエンドの可視性
  45. ©2024 Databricks Inc. — All rights reserved 64 クラスターの作成 今回は各自でクラスターを作成いただきます。

    • クラスター名は適宜変 更ください。わかりや すくするために頭に 「ハンズオン 」と記入く ださい。 • それ以外の項目は デフォルトのままとし てください。 • ハンズオンが終了 したらクラスターを停 止あるいは削除 することを忘れないで ください。