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

Azure Databricks
Azure Data Lake Storage
Azure Kubernetes Service (AKS)
Azure Machine Learning

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

この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。

この記事では、データ サイエンスと機械学習に 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 を使用して予測モデルを開発します。 このモデルでは、会社のデータのパターンを特定することで、日常業務を改善します。