Azure Databricks を使用したデータ サイエンスと機械学習

Databricks
Data Lake Storage
Kubernetes Service
Machine Learning

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

この記事では、データ サイエンスと機械学習に Azure Databricks、Delta Lake、MLflow を使用して操作を改善する方法を示します。 機械学習モデルを開発、トレーニング、デプロイすることで、全体的な効率とカスタマー エクスペリエンスを向上させることができます。

アーキテクチャ

Azure Databricks でデータ ストレージ サービスを使用してデータを調整および分析し、他のサービスで使用できるようにする方法を示すアーキテクチャ図。

この図には 3 つの灰色の四角形 (Process、Serve、Store というラベルが付いたものが 1 つずつ) が含まれています。 図の上部にある Process と Serve の四角形は、相互に隣接しています。 Serve の四角形には、Machine Learning と Azure Kubernetes Service のアイコン付きの白いボックスが含まれています。 もう 1 つの白いボックスは、Process と Serve の四角形にまたがっています。 これには、Azure Databricks と MLflow のアイコンが含まれています。 そのボックスから Serve の四角形の白いボックスを指す矢印があります。 Process 四角形の下には、Store の四角形があります。 これには、Data Lake Storage、Delta Lake、および Bronze、Silver、Gold というラベルが付いた 3 つのデータベース テーブルのアイコンを含む白いボックスが含まれています。 Process と Store の四角形は 3 本の線でつながっており、それぞれの両端に矢印があります。

このアーキテクチャの Visio ファイルをダウンロードします。

このソリューションでは、データを格納、処理、および提供します。

データフロー

保存

Data Lake Storage には、Delta Lake 形式でデータが格納されています。 Delta Lake により、データ レイクのキュレーションされたレイヤーが形成されます。 メダルの形のアーキテクチャでは、次の 3 つのレイヤーにデータが編成されています。

  • Bronze テーブルには生データが保持されています。
  • Silver テーブルには、クリーニングされ、フィルター処理されたデータが含まれています。
  • Gold テーブルには、分析とレポートの準備ができている集計データが格納されています。

Process

  • さまざまな言語、フレームワーク、およびライブラリからのコードによって、生データの準備、調整、およびクレンジングが行われます (1)。 Python、R、SQL、Spark、Pandas、Koalas などでコーディングされる可能性があります。

  • Azure Databricks でデータ サイエンス ワークロードが実行されます。 このプラットフォームでは、機械学習モデルの構築とトレーニングも行われます (2)。 Azure Databricks では、事前にインストールされ、最適化されたライブラリが使用されます。 たとえば、scikit-learn、TensorFlow、PyTorch、XGBoost などです。

  • MLflow 追跡では、機械学習の実験、モデルの実行、および結果が取り込まれます (3)。 運用に最適なモデルの準備が整うと、Azure Databricks によってそのモデルが MLflow モデル リポジトリにデプロイされます。 この一元化されたレジストリには、運用モデルに関する情報が格納されます。 また、このレジストリを使用すると、他のコンポーネントでモデルを利用できるようになります。

    • Spark および Python パイプラインでは、モデルを取り込むことができます。 これらのパイプラインでは、バッチ ワークロードまたはストリーミング ETL プロセスを処理します。
    • REST API を使用すると、さまざまな目的でモデルにアクセスできます。 たとえば、モバイルおよび Web アプリケーションでのテストと対話式のスコアリングなどです。

Serve(サービス)

Azure Databricks では、Machine Learning や AKS などの他のサービスにモデルをデプロイできます (4)。

コンポーネント

  • Azure Databricks はデータ分析プラットフォームです。 そのフル マネージドの Spark クラスターでは、データ サイエンス ワークロードを実行します。 また、Azure Databricks では事前にインストールされ、最適化されたライブラリを使用して、機械学習モデルを構築し、トレーニングします。 MLflow と Azure Databricks との統合により、実験を追跡し、リポジトリにモデルを格納し、モデルを他のサービスで使用できるようになります。 Azure Databricks により、スケーラビリティが提供されます。

    • 単一ノード コンピューティング クラスターでは、小規模なデータ セットと単一モデルの実行を処理します。
    • 大規模なデータ セットの場合は、マルチノード コンピューティング クラスターまたはグラフィック処理装置 (GPU) クラスターを使用できます。 これらのクラスターでは、並列モデルの実行に HorovodRunner や Hyperopt などのライブラリとフレームワークを使用します。
  • Data Lake Storage は、高パフォーマンスの分析ワークロード用のスケーラブルで安全なデータ レイクです。 このサービスでは、数百ギガビットのスループットを維持しながら、数ペタバイトの情報を管理します。 データにはこれらの特性がある場合があります。

    • 構造化、半構造化、または非構造化である。
    • ログ、ファイル、メディアなど、複数の異種ソースからのものである。
    • 静的である、バッチからのものである、またはストリーミングである。
  • Delta Lake は、オープン ファイル形式を使用するストレージ レイヤーです。 このレイヤーは、Data Lake Storage などのクラウド ストレージ上で実行されます。 Delta Lake は、バッチおよびストリーミング データの変換とクレンジング用に最適化されています。 このプラットフォームでは、次の機能がサポートされています。

    • データのバージョン管理とロールバック。
    • 信頼性を確保するための ACID (原子性、一貫性、分離性、持続性) トランザクション。
    • データの準備、モデルのトレーニング、およびモデルの提供のための一貫した標準。
    • ソース データの一貫したスナップショットのタイム トラベル。 データ サイエンティストは、個別のコピーを作成するのではなく、スナップショットでモデルをトレーニングできます。
  • MLflow は、機械学習ライフ サイクル用のオープンソース プラットフォームです。 MLflow コンポーネントにより、トレーニング中および実行中に機械学習モデルが監視されます。 格納される情報には、コード、データ、構成情報、および結果が含まれます。 また、MLflow では、モデルの格納と運用環境での読み込みも行われます。 MLflow ではオープン フレームワークを使用するため、さまざまなサービス、アプリケーション、フレームワーク、およびツールでモデルを利用できます。

  • Machine Learning は、予測分析ソリューションの構築、デプロイ、管理に役立つクラウドベースの環境です。 これらのモデルを使用すると、行動、結果、傾向を予測できます。

  • AKS は、高可用性とセキュリティを備えたフル マネージド Kubernetes サービスです。 AKS により、コンテナ化されたアプリケーションのデプロイと管理が容易になります。

シナリオの詳細

組織はデータ サイエンスと機械学習の能力を認識しているため、効率を高め、カスタマー エクスペリエンスを向上させ、変更を予測することができます。 ビジネスクリティカルなユースケースでこれらの目標を達成するには、以下の一貫性のある信頼性の高いパターンが必要です。

  • 実験の追跡。
  • 結果の再現。
  • 運用環境への機械学習モデルのデプロイ。

この記事では、一貫性のある信頼性の高い機械学習フレームワークのためのソリューションの概要を示します。 Azure Databricks は、このアーキテクチャの中核となります。 また、ストレージ レイヤーの Delta Lake と機械学習プラットフォームの MLflow も、重要な役割を果たします。 これらのコンポーネントは、Azure Data Lake Storage、Azure Machine Learning、Azure Kubernetes Service (AKS) などの他のサービスとシームレスに統合されます。

これらのサービスを組み合わせて使用し、次のようなデータ サイエンスと機械学習のためのソリューションを提供します。

  • シンプル: オープン データ レイクにより、アーキテクチャが簡素化されます。 データ レイクには、キュレーションされたレイヤーである Delta Lake が含まれています。 このレイヤーでは、オープンソース形式のデータへのアクセスが提供されます。

  • オープン: このソリューションでは、オープンソース コード、オープン標準、オープン フレームワークがサポートされています。 この方法では、将来の更新の必要性が最小限に抑えられます。 Azure Databricks と Machine Learning では、MLflow と Delta Lake がネイティブでサポートされます。 これらのコンポーネントを組み合わせて使用し、業界をリードする ''機械学習の運用 (MLOps) ''、または機械学習のための DevOps を提供します。 さまざまなデプロイ ツールがソリューションの標準化されたモデル形式と統合されています。

  • コラボレーション: データ サイエンスと MLOps チームは、このソリューションで共同作業を行います。 これらのチームでは MLflow 追跡を使用して実験を記録し、クエリを実行します。 また、これらのチームでは中央の MLflow モデル レジストリにモデルをデプロイします。 その後、データ エンジニアは、データ インジェスト、抽出、変換、読み込み (ETL) プロセス、およびストリーミング パイプラインでデプロイされたモデルを使用します。

考えられるユース ケース

このソリューションは、エネルギー予測のために構築された AGL のプラットフォームに基づくものです。 このプラットフォームでは、数千の並列モデルに対して、迅速かつコスト効率の高いトレーニング、デプロイ、およびライフサイクル管理が提供されます。

このソリューションにより、エネルギー プロバイダー以外にも次のような組織でベネフィットが得られます。

  • データ サイエンスを使用する。
  • 機械学習モデルを構築し、トレーニングする。
  • 運用環境で機械学習モデルを実行する。

たとえば、次のような組織があります。

  • 小売と eコマース。
  • 銀行と金融。
  • 医療とライフ サイエンス。
  • 自動車業界と製造。

次の手順

  • AGL Energy では、数千の並列モデル用の標準化されたプラットフォームを構築します。 このプラットフォームにより、モデルに対して迅速かつコスト効率の高いトレーニング、デプロイ、ライフサイクル管理が提供されます。
  • Open Grid Europe (OGE) では、人工知能モデルを使用してガス パイプラインを監視します。 OGE では、Azure Databricks と MLflow を使用してモデルを開発します。
  • スカンジナビア航空 (SAS) では、共同研究フェーズ中に Azure Databricks を使用します。 また、この航空会社では、Machine Learning を使用して予測モデルを開発します。 このモデルでは、会社のデータのパターンを特定することで、日常業務を改善します。