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 は、Foundry Tools などの事前構築済みのインテリジェント サービス用のシンプルな API を提供し、ビジネスと研究の両方に関連する大規模な AI の課題をすばやく解決します。 SynapseML を使用すると、開発者は 50 を超える最新の ML サービスをシステムとデータベースに直接埋め込むことができます。 これらのすぐに使用できるアルゴリズムは、さまざまなドキュメントを解析し、マルチスピーカーの会話をリアルタイムで文字起こしし、テキストを 100 を超える言語に翻訳することができます。 事前構築済みの AI を使用してタスクをすばやく解決する方法のその他の例については、 SynapseML の "コグニティブ" の例を参照してください。
SynapseML と Foundry Tools の統合を迅速かつ効率的に行うために、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 で一般提供されています。 Foundry Tools、LightGBM、ONNX、およびその他の 選択した SynapseML 機能を使用して、大規模な機械学習パイプラインを構築できます。 これには、ビジュアル検索エンジン、予測メンテナンス パイプライン、ドキュメント翻訳など、分散機械学習システムをすばやくプロトタイプ化するためのテンプレートも含まれています。
次のステップ
SynapseML の詳細については、「 SynapseML: シンプル、多言語、超並列機械学習ライブラリ」を参照してください。