Azure Databricks での機械学習

完了

Azure Databricks には、機械学習モデル開発のための包括的なクラウドベース環境が用意されています。 機械学習は、データを分析しモデル化する "データ サイエンティスト" と、モデルをデプロイし管理する "機械学習エンジニア" の共同作業が必要な分野です。 Azure Databricks を使用するデータ サイエンティストは、データ インジェスト、探索、準備タスク、モデルのトレーニング、評価、管理タスクを実行できます。

Screenshot of the Azure Databricks portal for the Machine Learning persona.

Machine Learning Databricks ランタイム

Azure Databricks ワークスペースでクラスターを作成するときに、クラスターにインストールする Databricks ランタイムを指定できます。 Azure Databricks には、機械学習に最適化された databricks ランタイムがいくつか含まれています。 これらには、機械学習フレームワークや機械学習操作を管理するためのユーティリティなど、機械学習ワークロードで一般に使われるライブラリのサポートが含まれています。

機械学習ソリューションを実装する場合は、ML ランタイムのいずれかを使ってクラスターを作成します。 従来の機械学習シナリオには CPU ベースのランタイムを、ディープ ラーニング フレームワークを使って複雑なニューラル ネットワークを構築する必要がある場合は GPU ベースのランタイムを選択できます (この場合、GPU の機能を利用してマトリックスとベクトル ベースのデータを効率的に処理できます)。

Azure Databricks の機械学習フレームワーク

Azure Databricks は、分散データ処理に適した高度にスケーラブルなプラットフォームである Apache Spark に基づいて構築されています。 Spark では、通常、データ サイエンティストと機械学習エンジニアは対話型ノートブックで作業し、データを準備し、機械学習モデルをトレーニングするコードを PySpark (Spark 用に最適化された Python の一種) で記述します。 Python エコシステム内には、次のようによく使われる機械学習フレームワークが多数あります。

  • Scikit-Learn: 機械学習によく使われるフレームワークです。予測モデルのトレーニングと評価に役立つさまざまなアルゴリズムとその他のライブラリが用意されています。
  • Spark MLlib: Spark 専用に構築された機械学習ライブラリです。 MLlib には、機械学習モデルのトレーニングと評価の方法が 2 つ用意されています。
    • Spark の回復性がある分散データセット (RDD) 構造に基づくクラス。
    • Spark のデータフレーム構造に基づくクラス。 MLlib を使う場合は、このフレームワーク (一般に Spark ML と呼ばれます) をお勧めします。
  • PyTorch: "ディープ ラーニング" フレームワークです。複雑な予測、コンピューター ビジョン、自然言語処理のワークロードの "ニューラル ネットワーク" モデルを構築するために使われます。
  • TensorFlow: もう 1 つのよく使われるディープ ラーニング フレームワークです。

Azure Databricks では、これらのフレームワーク (など) のいずれかを使って、機械学習モデルをトレーニングし、評価することができます。