SynapseML - シンプルで分散型の機械学習

(Simple and Distributed Machine Learning)

Created at: 2017-06-05 16:23:44
Language: Scala
License: MIT

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.2+、および Python 3.6+ が必要です。

トピック リンク
建てる ビルド ステータス コードコフ コードスタイル:黒
バージョン バージョン リリースノート スナップショット バージョン
ドキュメント Scala ドキュメント PySpark ドキュメント 学術論文
サポート ギッター 郵便
バインダー バインダー
目次

特徴

Spark の Vowpal Wabbit ビッグデータ向けのコグニティブ サービス Spark 上の LightGBM スパークサービング
高速、スパース、および効果的なテキスト分析 既存の SparkML パイプラインで、かつてない規模で Microsoft Cognitive Services を活用する LightGBM を使用した勾配ブースト マシンのトレーニング ミリ秒未満のレイテンシであらゆる Spark コンピューティングを Web サービスとして提供
スパーク上の HTTP ONNX on Spark 責任ある AI Spark バインディングの自動生成
Spark と HTTP プロトコルの統合により、分散型マイクロサービス オーケストレーションを実現 Spark での分散型およびハードウェア アクセラレーション モデルの推論 オペーク ボックス モデルを理解し、データセットのバイアスを測定する PySpark と SparklyR の Spark バインディングを自動的に生成する
Spark の分離フォレスト サイバーML 条件付き KNN
分散非線形外れ値検出 サイバー セキュリティのための機械学習ツール 条件付きクエリを使用したスケーラブルな KNN モデル

ドキュメントと例

クイックスタート、ドキュメント、デモ、サンプルについては、当社のWeb サイトを参照してください。

セットアップとインストール

まず、SynapseML をインストールする正しいプラットフォームを選択します。

シナプス分析

Azure Synapse ノートブックでは、ノートブックの最初のセルに次を配置してください。

Spark 3.2 プールの場合:

%%configure -f
{
  "name": "synapseml",
  "conf": {
      "spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.10.1",
      "spark.jars.repositories": "https://mmlspark.azureedge.net/maven",
      "spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.12,org.scalactic:scalactic_2.12,org.scalatest:scalatest_2.12,com.fasterxml.jackson.core:jackson-databind",
      "spark.yarn.user.classpath.first": "true"
  }
}

Spark 3.1 プールの場合:

%%configure -f
{
  "name": "synapseml",
  "conf": {
      "spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.9.5-13-d1b51517-SNAPSHOT",
      "spark.jars.repositories": "https://mmlspark.azureedge.net/maven",
      "spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.12,org.scalactic:scalactic_2.12,org.scalatest:scalatest_2.12",
      "spark.yarn.user.classpath.first": "true"
  }
}

ノートブック レベルではなくプール レベルでインストールするには、上記の spark プロパティをプール構成に追加します

データブリック

SynapseML をDatabricks クラウドにインストールするには、ワークスペースのMaven 座標から新しいライブラリを作成し ます。

座標の使用:

com.microsoft.azure:synapseml_2.12:0.10.1
とリゾルバ:
https://mmlspark.azureedge.net/maven
。このライブラリがターゲット クラスターに接続されていることを確認します。

最後に、Spark クラスターに少なくとも Spark 3.2 と Scala 2.12 があることを確認します。Netty の依存関係の問題が発生した場合は、DBR 10.1 を使用してください。

SynapseML は、Scala ノートブックと PySpark ノートブックの両方で使用できます。サンプル ノートブックの使用を開始するには、次の databricks アーカイブをインポートします。

https://mmlspark.blob.core.windows.net/dbcs/SynapseMLExamplesv0.10.1.dbc

Python スタンドアロン

Python (または Conda) インストールで SynapseML を試すには、Spark を pip 経由でインストールできます

pip install pyspark
pyspark
次に、上記の例のように、または python から使用できます。

import pyspark
spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
            .config("spark.jars.packages", "com.microsoft.azure:synapseml_2.12:0.10.1") \
            .getOrCreate()
import synapse.ml

スパーク送信

SynapseML は、

--packages
オプションの例を使用して既存の Spark クラスターに簡単にインストールできます。

spark-shell --packages com.microsoft.azure:synapseml_2.12:0.10.1
pyspark --packages com.microsoft.azure:synapseml_2.12:0.10.1
spark-submit --packages com.microsoft.azure:synapseml_2.12:0.10.1 MyApp.jar

SBT

Scala で Spark アプリケーションを構築している場合は、次の行を に追加します

build.sbt

libraryDependencies += "com.microsoft.azure" % "synapseml_2.12" % "0.10.1"

Apache Livy と HDInsight

Apache Livy が提供する Jupyter ノートブック内から SynapseML をインストールするには、次の構成マジックを使用できます。この構成セルが実行された後、新しいセッションを開始する必要があります。

Livy 0.5 の現在の問題により、ライブラリから特定のパッケージを除外する必要がある場合があります。

%%configure -f
{
    "name": "synapseml",
    "conf": {
        "spark.jars.packages": "com.microsoft.azure:synapseml_2.12:0.10.1",
        "spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.12,org.scalactic:scalactic_2.12,org.scalatest:scalatest_2.12,com.fasterxml.jackson.core:jackson-databind"
    }
}

ドッカー

SynapseML を評価する最も簡単な方法は、ビルド済みの Docker コンテナーを使用することです。これを行うには、次のコマンドを実行します。

docker run -it -p 8888:8888 -e ACCEPT_EULA=yes mcr.microsoft.com/mmlspark/release

Web ブラウザーで http://localhost:8888/ に移動して、サンプル ノートブックを実行しますDocker の使用の詳細については、ドキュメントを参照してください。

Docker イメージを使用するための EULA を読むには、\ を実行します。

docker run -it -p 8888:8888 mcr.microsoft.com/mmlspark/release eula

R (ベータ)

R 自動生成ラッパーを使用して SynapseML を試すには、手順を参照してください。注: この機能はまだ開発中であり、必要なカスタム ラッパーが不足している可能性があります。

C# (.NET)

.NET で SynapseML を試すには、.NET インストール ガイドに従ってください。、

AzureSearchWriter
DiagnosticInfo
UDPyFParam
、を含むいくつかのクラスはまだ開発中であり、まだ .NET で公開されていないことに注意してください。
ParamSpaceParam
BallTreeParam
ConditionalBallTreeParam
LightGBMBoosterParam

ソースからのビルド

SynapseML は最近、新しいビルド インフラストラクチャに移行しました。詳細な開発者向けドキュメントについては、開発者向け Readmeを参照してください。

既存の synapseml 開発者である場合は、開発セットアップを再構成する必要があります。プラットフォームに依存しない開発をサポートし、intellij および SBT との統合を改善しました。問題が発生した場合は、サポート メールにご連絡ください。

論文

もっと詳しく知る

貢献とフィードバック

このプロジェクトは、Microsoft オープン ソース行動規範を採用しています。詳細については、行動規範に関する FAQ を参照するか、 opencode@microsoft.comに連絡 して追加の質問やコメントをお寄せください。

コントリビューションのガイドラインについては、 CONTRIBUTING.mdを参照してください。

フィードバックを提供したり、問題を報告したりするには、GitHub の問題を開きます。

その他の関連プロジェクト

Apache®、Apache Spark、および Spark® は、米国およびその他の国における Apache Software Foundation の登録商標または商標です。