SynapseML とは

SynapseML (旧称 MMLSpark) は、大規模スケーラブルな機械学習 (ML) パイプラインの作成を簡略化するオープンソース ライブラリです。 SynapseML は、テキスト分析、ビジョン、異常検出など、さまざまな機械学習タスクに対して、シンプルで構成可能な分散型 API を提供します。 SynapseML は Apache Spark 分散コンピューティング フレームワーク上に構築され、SparkML/MLLib ライブラリと同じ API を共有するため、SynapseML モデルを既存の Apache Spark ワークフローにシームレスに埋め込むことができます。

SynapseML を使用すると、異常検出、コンピューター ビジョン、ディープ ラーニング、テキスト分析などの分野の課題を解決するスケーラブルでインテリジェントなシステムを構築できます。 SynapseML は、単一ノード、マルチノード、および柔軟にサイズ変更可能なコンピューターのクラスターでモデルをトレーニングおよび評価できます。 これにより、リソースを無駄にすることなく作業をスケーリングすることができます。 SynapseML は、Python、R、Scala、Java、.NET で使用可能です。 さらに、API を使用すると、さまざまなデータベース、ファイル システム、クラウド データ ストアを抽象化して、データの場所に関係なく実験を簡略化できます。

SynapseML には、Scala 2.12、Spark 3.0 以降、Python 3.6 以降が必要です。

SynapseML の主な機能

モデルを作成、トレーニング、スコアリングするための統合 API

SynapseML は、フォールト トレラント分散プログラムの開発を簡略化する統合 API を提供します。 特に、SynapseML は、スケーラブルでデータや言語に依存せず、バッチ、ストリーミング、アプリケーションの提供に対応する単一の API により、さまざまな機械学習フレームワークを公開します。

統合 API は、多くのツール、フレームワーク、アルゴリズムを標準化し、分散型機械学習エクスペリエンスを効率化します。 これにより、開発者はさまざまな機械学習フレームワークをすばやく作成し、コードをクリーンに保ち、複数のフレームワークが必要なワークフローを実現できます。 たとえば、Web 教師あり学習や検索エンジンの作成などのワークフローには、複数のサービスとフレームワークが必要です。 SynapseML は、この複雑さからユーザーを保護します。

事前構築済みのインテリジェント モデルを使用する

SynapseML の多くのツールでは、ラベル付けされた大規模なトレーニング データセットは必要ありません。 その代わりに、SynapseML は、Azure AI サービスなどの事前構築済みのインテリジェント サービス用のシンプルな API を提供して、ビジネスと研究の両方に関連する大規模な AI の課題を迅速に解決します。 SynapseML を使用すると、開発者は 50 を超える最新の ML サービスをシステムやデータベースに直接埋め込むことができます。 これらのアルゴリズムはすぐに使用可能で、さまざまなドキュメントを解析したり、複数話者の会話をリアルタイムで文字起こししたり、テキストを 100 を超える言語に翻訳したりすることができます。 事前構築済みの AI を使用してタスクを迅速に解決する方法の例については、SynapseML コグニティブ サービスの例を参照してください。

SynapseML と Azure AI サービスの統合を迅速かつ効率的に行うために、SynapseML では、サービス指向ワークフローに対する多くの最適化が導入されています。 特に、SynapseML は一般的な調整応答を自動的に解析して、ジョブがバックエンド サービスに過剰な負荷をかけないようにします。 さらに、エクスポネンシャル バックオフを使用して、信頼性の低いネットワーク接続や失敗した応答を処理します。 最後に、Spark のワーカー マシンは、Spark の新しい非同期並列処理プリミティブでビジー状態を維持します。 非同期並列処理により、ワーカー マシンはサーバーからの応答を待機している間に要求を送信することができ、スループットが 10 倍向上します。

ONNX との広範なエコシステム互換性

SynapseML を使用すると、開発者は Open Neural Network Exchange (ONNX) フレームワークを通じて、さまざまな ML エコシステムのモデルを使用できます。 この統合により、わずか数行のコードで、さまざまな従来型のディープ ラーニング モデルを大規模に実行できます。 SynapseML は、ONNX モデルのワーカー ノードへの分散、高スループットのための入力データのバッチ処理とバッファリング、ハードウェア アクセラレータでのスケジュール作業を自動的に処理します。

ONNX を Spark に導入することで、開発者はディープ ラーニング モデルをスケーリングできるだけでなく、さまざまな ML エコシステム間での分散推論が可能になります。 特に、ONNXMLTools はモデルを TensorFlow、scikit-learn、Core ML、LightGBM、XGBoost、H2O、PyTorch から ONNX に変換し、SynapseML を使用した高速な分散推論を行います。

責任ある AI システムを構築する

モデルを構築した後は、デプロイ前に研究者やエンジニアがその制限事項と動作を理解することが不可欠です。 SynapseML は、モデルが特定の予測を行う理由と、偏りを排除するためにトレーニング データセットを改善する方法を明らかにする新しいツールを導入することで、開発者や研究者が責任ある AI システムを構築するのに役立ちます。 SynapseML を使用すると、開発者が数百台のコンピューターに計算を分散できるため、ユーザーのトレーニング済みモデルを理解するプロセスを大幅に高速化できます。 具体的には、SynapseML には、視覚モデル、テキスト モデル、表形式モデルの予測を説明するための、Shapley Additive Explanations (SHAP) と Locally Interpretable Model-Agnostic Explanations (LIME) の分散実装が含まれています。 また、個別条件付き期待値 (ICE) や、認識された偏りのあるデータセットに対する部分依存分析などのツールも含まれています。

Azure Synapse Analytics でのエンタープライズ サポート

SynapseML は、エンタープライズ サポート付きの Azure Synapse Analytics で一般提供されています。 Azure AI サービス、LightGBM、ONNX、およびその他の選択した SynapseML 機能を使用して、大規模な機械学習パイプラインを構築できます。 これには、ビジュアル検索エンジン、予測メンテナンス パイプライン、ドキュメント翻訳など、分散機械学習システムをすばやくプロトタイプ化するためのテンプレートも含まれています。

次のステップ