Azure Synapse Analytics の機械学習機能
Azure Synapse Analytics では、さまざまな機械学習の機能を提供しています。 この記事では、Azure Synapse のコンテキストで Machine Learning を適用する方法について概要を示します。
この概要では、データ サイエンス プロセスの観点から、機械学習に関連する Synapse のさまざまな機能について説明します。
一般的なデータ サイエンス プロセスがどのようなものかは、よくご存じかもしれません。 これはよく知られたプロセスであり、ほとんどの機械学習プロジェクトはこのプロセスに従います。
大まかに言えば、このプロセスには次の手順が含まれます。
- ビジネスの把握 (この記事では説明しません)
- データの取得と理解
- モデリング
- モデルのデプロイとスコアリング
この記事では、データ サイエンス プロセスの観点から、さまざまな分析エンジンにおける Azure Synapse の機械学習機能について説明します。 データ サイエンス プロセスのステップごとに、役立つ Azure Synapse の機能がまとめられています。
データの取得と理解
ほとんどの機械学習プロジェクトには、確立された手順が含まれています。そのような手順の 1 つは、データにアクセスして理解することです。
データ ソースとパイプライン
Azure Synapse の一部としてネイティブに統合されている Azure Data Factory には、データ インジェストとデータ オーケストレーションのパイプラインに使用できる強力なツール セットがあります。 これにより、データ パイプラインを簡単に作成して、データにアクセスしたり、機械学習に使用できる形式にデータを変換したりすることができます。 Synapse のデータ パイプラインについて詳しくは、こちらをご覧ください。
データの準備と探索/視覚化
機械学習プロセスにおいて、探索と視覚化によってデータについて理解することは重要な部分となります。
データの格納場所に応じて、Synapse には、分析と機械学習のためにデータを探索し、準備するためのさまざまなツールが用意されています。 データ探索を開始する最も簡単な方法の 1 つは、データ レイク内のデータに対して、Apache Spark またはサーバーレス SQL プールを直接使用することです。
Apache Spark for Azure Synapse には、大規模なデータの変換、準備、および探索を行う機能が用意されています。 これらの Spark プールでは、大規模なデータ処理のための PySpark/Python、Scala、.NET などのツールが提供されています。 強力な視覚化ライブラリを使用することで、データ探索のエクスペリエンスを向上させ、データの理解を深めることができます。 Spark を使用して Synapse のデータを探索し、視覚化する方法については、こちらの記事を参照してください。
サーバーレス SQL プールでは、データ レイクに対して TSQL を直接使用してデータを探索する方法が提供されます。 サーバーレス SQL プールには、Synapse Studio で使用する組み込みの視覚化機能もいくつか用意されています。 サーバーレス SQL プールを使用してデータを探索する方法について学習してください。
モデリング
Azure Synapse では、PySpark/Python、Scala、.NET などのツールを使用して、Apache Spark プールで機械学習モデルのトレーニングを実行できます。
MLlib を使用した Spark プールでのモデルのトレーニング
機械学習モデルは、さまざまなアルゴリズムやライブラリを利用してトレーニングできます。 Spark MLlib では、ほとんどの従来の機械学習の問題を解決するのに役立つ、スケーラブルな機械学習アルゴリズムが提供されます。 Synapse で MLlib を使用してモデルをトレーニングする方法のチュートリアルについては、「Apache Spark MLlib と Azure Synapse Analytics を使用して機械学習アプリを構築する」を参照してください。
MLlib に加えて、Scikit Learn などの一般的なライブラリを使用してモデルを開発することもできます。 Synapse Spark プールにライブラリをインストールする方法の詳細については、「Azure Synapse Analytics で Apache Spark 用のライブラリを管理する」を参照してください。
モデルのデプロイとスコアリング
Azure Synapse または外部の Azure Synapse でトレーニングされたモデルは、バッチ スコアリングに簡単に使用できます。 現在、Synapse には、バッチ スコアリングを実行する方法が 2 つあります。
Synapse SQL プールで TSQL PREDICT 関数を使用して、データが存在する場所で直接予測を実行できます。 この強力でスケーラブルな関数を使用すると、データ ウェアハウスからデータを移動せずにデータを強化することができます。 Synapse Studio での新しいガイド付き機械学習モデルのエクスペリエンスが導入され、PREDICT を使用してバッチ スコアリングを行うために、Synapse SQL プールの Azure Machine Learning モデル レジストリから ONNX モデルをデプロイできるようになりました。
Azure Synapse で機械学習モデルのバッチ スコアリングを行うためのもう 1 つのオプションは、Azure Synapse 用の Apache Spark プールを使うことです。 モデルのトレーニングに使用するライブラリによっては、コード エクスペリエンスを使用してバッチ スコアリングを実行できます。
SynapseML
SynapseML (旧称 MMLSpark) は、高度にスケーラブルな機械学習 (ML) パイプラインの作成を簡略化するオープンソース ライブラリです。 これは、Apache Spark フレームワークをいくつかの新しい方向へ拡張するために使われるツールのエコシステムです。 SynapseML は、いくつかの既存の機械学習フレームワークと新しい Microsoft アルゴリズムを、Python、R、Scala、.NET、Java で使用できる単一のスケーラブルな API に統合します。 詳細については、SynapseML の主要な機能に関する記事を参照してください。