BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoft、分散マシンラーニングライブラリSynapseMLをオープンソース公開

Microsoft、分散マシンラーニングライブラリSynapseMLをオープンソース公開

原文(投稿日:2021/12/28)へのリンク

Microsoftは、分散マシンラーニング(ML)パイプラインの構築と管理を行うオープンソースライブラリのSynapseMLをリリースすると発表した。SyanpseMLはApache Spark上で動作し、複数のデータストアを対象に言語非依存のAPI抽象化を提供するもので、Open Neural Network Exchange(ONNX)など既存のMLテクノロジに統合される。

リリースの発表は、ソフトウェアエンジニアのMark Hamilton氏によるブログ記事で行われた。SynapseMLはApache Spark上で動作することにより、Sparkの提供する大規模なフォールトトレラント・コンピュータクラスタ管理のアドバンテージを享受する。Python用とJava用のAPIが用意されており、Java、R、C#用のバインディング生成が可能である。さらにHTTP on Sparkを包含することで、Webサービスをパイプラインに効率的にインテグレーションできる他、Azure Cognitive Servicesなどのサービスを起動するためのラッパも用意されている。ONNXを使うことで、MicrosoftのONNX Model Hubからのトレーニング済モデルのデプロイや、TensorFlowあるいはPyTorchといった他フレームワークで構築されたモデルをコンバートして、Spark上で分散推論を実行することが可能になる。また、Spark Servingモジュールによって、Sparkパイプラインを低レイテンシのWebサービスとして提供することができる。Hamilton氏によると、

開発者が分散実装の詳細な部分に煩わされることなく、コードを修正する必要もなく、さまざまなデータベースやクラスタに、さまざまな言語でデプロイできるようにすることが、私たちの目標です。

SynapseMLは、ONNXやCNTKLightGBMOpenCVVowpal Wabbitといった、一般的なMLフレームワークに統合することができる。これらのインテグレーションは、SparkのMLパイプラインが定義するTransformerとEstimatorの抽象化に準拠したAPIを提供する。ONNXとCNTKの各インテグレーションでは、他のシステムで生成されたトレーニング済ディープラーニングモデルをインポートして、Sparkを分散推論エンジンとして使用することも可能だ。OpenCVインテグレーションでは、"反転"や"ぼかし"といったイメージデータの操作を、MLパイプライン内で行うためのTransformer抽象化が提供される。LightGBMとVowpal Wabbitの各インテグレーションでは、Estimatorによるモデルトレーニングと、Transformerによる推論の両方が利用できる。

Azure Cognitive Servicesとのインテグレーションをサポートするために、SynapseMLには、HTTP on Sparkモジュールが含まれている。このモジュールについては、Hamilton氏の研究チームの論文に詳細な説明がある。HTTP on Sparkを使うことにより、SparkワーカからWebサービスを効率的に呼び出すことが可能になる。Sparkの並列処理モデルを拡張することにより、SparkワーカがHTTP要求の完了を待つ間、複数のタスクを実行できるようになるのだ。これにより、Spark本来の並列性を損なうことなく、スループットが向上する。クラスタがダウンストリームのWebサービスを圧迫するリスクを軽減するために、HTTP on Sparkでは、"バックプレッシャ"とリトライの実装にrate-limitingヘッダレスポンスを処理している。50近いAzureサービス用のTransformerラッパに加えて、SynapseMLには、任意のWebサービスを呼び出し可能な汎用HTTPTransformerも用意されている。

これら以外にも、SynapseMLにはいくつかの機能がある。Spark ServingはSparkのStructured Streamingエンジンを強化して、任意のStructured StreamingジョブをWebサービスとして公開できるようにする。データバランス分析やモデルの説明可能性など、"責任あるAI(responsible AI)"のためのツールも用意されている。さらにライブラリには、ハイパーパラメータ探索を使用したベストパフォーマンスなモデル選択などのAutoML機能、サイバーセキュリティのための異常検知モデルなどのSparkネイティブな実装、非線形外れ値検知を行うアイソレーションフォレストモデル、条件付きk近傍モデルなども含まれている。

今回のオープンソースリリースに加えて、Microsoftは、先日のIgniteカンファレンスにおいて、Azure Synapse AnalyticsサービスでのSynapseMLの一般提供(GA)を発表している。SynapseMLとSparkのMLLibの違いを問うTwitterでの質問に対して、MicrosoftプリンシパルテクニカルアーキテクトのBart Czernicki氏は、Azure Synapse Analytics用に再パッケージと最適化されたものだ、と応答している。それとは別のSynapseMLに関するツイートでは、ML研究者のMorein Kareshk氏が次のように述べている。

速度に関するベンチマークを行う機会はまだありませんが、APIは明確で、#MLプロダクトのプロトタイプを簡単に作ることができます。

SynapseMLのコードはGitHubで公開されている。

作者について

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT