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 Machine Learning の自動 ML を使用してモデルをトレーニングする
機械学習の知識をあまり必要としない、機械学習モデルのもう 1 つのトレーニング方法は、自動 ML を使用することです。 自動 ML は、一連の機械学習モデルを自動的にトレーニングし、ユーザーが特定のメトリックに基づいて最適なモデルを選択できるようにする機能です。 Azure Synapse Notebooks から Azure Machine Learning とシームレスに統合できるため、ユーザーは Microsoft Entra パススルー認証を使用して Synapse で自動 ML を簡単に利用できます。 つまり、Azure Machine Learning ワークスペースをポイントするだけでよく、資格情報を入力する必要はありません。 Synapse Spark プールで Azure Machine Learning の自動 ML を使用してモデルをトレーニングする方法については、「自動機械学習で Python のモデルをトレーニングする」を参照してください。
警告
- 2023 年 9 月 29 日より、Azure Synapse では Spark 2.4 ランタイムの公式サポートが中止となります。 2023 年 9 月 29 日の後は、Spark 2.4 に関連するサポート チケットに対応しません。 Spark 2.4 のバグやセキュリティ修正のためのリリース パイプラインはありません。 サポート終了後の Spark 2.4 の利用は自己責任で行われます。 セキュリティと機能に関する潜在的な懸念があるため、使用停止を強くお勧めしています。
- Apache Spark 2.4 の非推奨プロセスの一環として、Azure Synapse Analytics の AutoML も非推奨になることをお知らせします。 これには、ロー コード インターフェイスと、コードを介して AutoML 試用版を作成するために使用される API の両方が含まれます。
- AutoML 機能は Spark 2.4 ランタイムを通じて排他的に使用できました。
- AutoML 機能を引き続き利用したいお客様には、Azure Data Lake Storage Gen2 (ADLSg2) アカウントにデータを保存することをお勧めします。 そこから、Azure Machine Learning (AzureML) を介して AutoML エクスペリエンスにシームレスにアクセスできます。 この回避策の詳細については、こちらを参照してください。
モデルのデプロイとスコアリング
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 の主要な機能に関する記事を参照してください。