Azure Databricks を使用して Spark モデルのスケーラブルなバッチ スコアリングを実装する
この参照アーキテクチャでは、Azure Databricks を使用して、スケジュールに従って Apache Spark 分類モデルをバッチ スコアリングするスケーラブルなソリューションを構築する方法を示します。 Azure Databricks は、Azure に最適化された Apache Spark ベースの分析プラットフォームです。
Azure Databricks には、Databricks SQL、Databricks Data Science & Engineering、Databricks Machine Learning という、データ集中型アプリケーションを開発するための 3 つの環境が用意されています。 Databricks Machine Learning は、実験の追跡、モデルのトレーニング、機能の開発と管理、機能とモデルの提供のための管理サービスを組み込んだ、統合されたエンドツーエンドの機械学習環境です。 この参照アーキテクチャは、他のシナリオのために一般化できるテンプレートとして使用できます。
Apache® および Apache Spark® は、Apache Software Foundation の米国およびその他の国における登録商標です。 これらのマークを使用することが、Apache Software Foundation による保証を意味するものではありません。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
ワークフロー
このアーキテクチャでは、連続して実行される一連のノートブックに基づいて、Azure Databricks 内に完全に含まれるデータ フローを定義します。 これは、次のコンポーネントで構成されます。
データ ファイル 。 参照実装では、5 つの静的なデータ ファイルに含まれているシミュレートされたデータ セットが使用されます。
取り込み 。 データ取り込みノートブックでは、入力データ ファイルを Databricks データ セットのコレクションにダウンロードします。 現実のシナリオでは、IoT デバイスからのデータが、Databricks にアクセス可能なストレージ (Azure SQL や Azure Blob Storage など) にストリーミングされます。 Databricks では、複数のデータ ソースがサポートされています。
データ インジェストの最近の機能強化には、さまざまなデータベースや SaaS アプリケーションからのリアルタイム データ レプリケーションが含まれます。これは、Lake House Federationなどの機能によって可能になります。
トレーニング パイプライン。 このノートブックでは、取り込まれたデータから分析データ セットを作成する特徴エンジニアリング ノートブックが実行されます。 その後、パイプラインは、スケーラブルな機械学習ライブラリ
Databricks の強化された ML 機能には、実験の追跡とモデルトレーニングが含まれており、このパイプラインをさらに最適化します。
スコアリング パイプライン。 このノートブックでは、取り込まれたデータからスコアリング データ セットを作成する特徴エンジニアリング ノートブックが実行され、スコアリング ノートブックが実行されます。 スコアリング ノートブックでは、トレーニング済みの Spark MLlib モデルを使用して、スコアリング データ セットの観察に関する予測が生成されます。 予測は、結果ストアに格納され、Databricks データ ストアの新しいデータ セットになります。
スコアリング パイプラインでは、バッチ推論に ai_query
関数を使用し、スケーラビリティとパフォーマンスの最適化のためのプロビジョニングを使用して大規模なデータセットを効率的に処理できます。
スケジューラ。 スケジュールされた Databricks ジョブは、Spark モデルによるバッチ スコアリングを処理します。 このジョブでは、スコアリング パイプライン ノートブックが実行され、スコアリング データ セットを構築するための詳細と結果データ セットの格納場所を指定する変数の引数が、ノートブックのパラメーターを通して渡されます。
ソリューションの詳細
このシナリオは、パイプライン フローとして構築されます。 各ノートブックは、操作 (取り込み、特徴エンジニアリング、モデルの構築、およびモデルのスコアリング) の各操作をバッチ設定で実行するように最適化されています。 特徴エンジニアリング ノートブックは、トレーニング、較正、テスト、またはスコアリング操作のすべてにとって一般的なデータ セットを生成するように設計されています。 このシナリオでは、これらの操作に対して一時分割戦略を使用するため、ノートブックのパラメーターを使用して日付範囲フィルターが設定されます。
考えられるユース ケース
資産が多い業界の企業が、予期しない機械の不具合に関連するコストとダウンタイムを最小化することを望んでいます。 機械から収集される IoT データを使用して、予知メンテナンス モデルを作成できます。 企業は、このモデルを使用して、部品を積極的に保守し、不具合が発生する前にそれらを修繕できます。 機械部品を最大限使用できるようにすることで、コストを制御し、ダウンタイムを短縮できます。
予知メンテナンス モデルでは、機械からデータが収集され、部品の不具合例の履歴が保持されます。 その後、このモデルを使用して、部品の現在の状態を監視し、特定の部品で近い将来不具合が発生するかどうかを予測します。
この参照アーキテクチャは、機械部品の新しいデータの存在によってトリガーされるワークロード用に設計されています。 処理には次の手順が含まれます。
外部データ ストアから Azure Databricks データ ストアにデータを取り込みます。
データをトレーニング データセットに変換した後、Spark MLlib モデルを構築して、機械学習モデルをトレーニングします。 MLlib は、最も一般的な機械学習アルゴリズムと、Spark のデータ スケーラビリティ機能を活用するように最適化されたユーティリティで構成されています。
データをスコアリング データセットに変換することで、部品の不具合を予測 (分類) するトレーニング済みモデルを適用します。 Spark MLLib モデルを使用してデータをスコア付けします。
処理後の使用のために、Databricks データ ストアに結果を格納します。
選択肢
このアーキテクチャでは、Mosaic AI Model Serving を使用して、Azure Databricks のサーバーレス コンピューティングを使用してバッチおよびリアルタイム推論用のモデルをデプロイできます。 リソースを動的にスケーリングするためのインターフェイスを提供し、大規模なデータセットの処理におけるパフォーマンスとコスト効率の両方を向上させます。
Azure Databricks Microsoft Fabric を使用して、より複雑なスケジュールされたパイプラインを開発します。
推奨事項
Databricks は、お客様がご自身でトレーニングしたモデルを読み込んでデプロイし、新しいデータを使用して予測を行えるようにセットアップされています。 Databricks には、他にも次の利点があります。
- Microsoft Entra 資格情報を使用したシングル サインオンのサポート。
- 運用パイプライン用のジョブを実行するジョブ スケジューラ。
- コラボレーション、ダッシュボード、REST API による完全対話型ノートブック。
- 任意のサイズにスケーリングできる制限のないクラスター。
- 高度なセキュリティ、ロールベースのアクセス制御、および監査ログ。
Azure Databricks サービスを操作するには、Web ブラウザーまたはコマンド ライン インターフェイス (CLI) で Databricks ワークスペース インターフェイスを使用します。
このアーキテクチャでは、ノートブックを使用してタスクを順番に実行します。 各ノートブックでは、入力データと同じデータ ストアに、中間データ成果物 (トレーニング、テスト、スコアリング、または結果データ セット) が格納されます。 目標は、お客様固有のユース ケースで、必要に応じて簡単に使用できるようにすることです。 実際には、お使いのデータ ソースをノートブックの Azure Databricks インスタンスに接続して、ストレージとの読み取りと書き込みを直接的に実行します。
必要に応じて、Databricks ユーザー インターフェイス、データ ストア、または Databricks CLI 経由でジョブの実行を監視します。 Databricks が提供するイベント ログやその他のメトリックを使用してクラスターを監視します。
考慮事項
以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
確実
信頼性により、アプリケーションは顧客に対するコミットメントを確実に満たすことができます。 詳細については、「信頼性
このアーキテクチャでは、わかりやすくするために、データは Databricks ストレージ内に直接格納されます。 ただし、運用環境の設定では、Azure Blob Storageなどのクラウド データ ストレージにデータ
コストの最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化
Azure Databricks は、優れた Spark サービスであり、関連するコストがあります。 さらに、Databricks の価格レベルには、Standard と Premium があります。
このシナリオでは、Standard 価格階層で十分です。 ただし、特定のアプリケーションで、より大きなワークロードやインタラクティブな Databricks ダッシュボードを処理するためにクラスターを自動的にスケーリングする必要がある場合は、Premium 階層ではコストがさらに増加する可能性があります。
パフォーマンス効率
パフォーマンス効率は、ユーザーの要求を効率的に満たすワークロードの機能です。 詳細については、「パフォーマンス効率
Azure Databricks クラスターは、既定で自動スケールが可能になっているため、実行時に Databricks によってお客様のジョブの特性を構成するワーカーが動的に再割り当てされます。 パイプラインの特定の部分で、その計算負荷が他の部分よりも高くなる場合があります。 Databricks では、ジョブのこれらのフェーズ中にワーカーが追加されます (不要になったときには削除されます)。 自動スケーリングでは、ワークロードに適合するようにクラスターをプロビジョニングする必要がないため、高いクラスター使用率を簡単に実現できます。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
主な作成者:
- フレディ・アヤラ |クラウド ソリューション アーキテクト
- John Ehrlinger | シニア応用科学者
パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次の手順
- Azure Databricks を使用して機械学習ソリューションを実装する
- バッチ エンドポイント にモデルをデプロイする
- チュートリアル: 運用環境の機械学習パイプライン を作成する