Amazon Web Services ブログ

AWS が Apache MXNet のマイルストーン 1.0 リリースに貢献、モデル提供機能を追加

Dr. Matt Wood による投稿

AWS は MXNet 向けの新しいモデル提供機能の導入を含む、Apache MXNet ディープラーニングエンジンのマイルストーンとなる 1.0 のリリースへの協力について発表しました。MXNet の新機能は、ユーザーにとって次のような利点があります。

1) MXNet は使用が簡単: MXNet 向けモデルサーバーは AWS が導入した新機能であり、わずか数行のコードを使用するだけで、ディープラーニングモデルを数秒でパッケージ化、実行、提供します。これにより API エンドポイント経由でインターネットを使用してアクセスすることができるため、アプリケーションに簡単に統合することができます。また、1.0 リリースには、詳細なインデックス作成機能が含まれています。これにより、ユーザーはより直観的な方法でマトリックス操作を実行できます。

  • Model Serving により予測のための API エンドポイントのセットアップが可能に: わずか数行のコードで予測機能を実行してアプリケーションに統合するための API エンドポイントの設定タスクを要約し、開発者の時間と労力を減らします。Docker コンテナベースのデプロイモデルを通じて、Python ベースのディープラーニングフレームワークと本稼働システム間の壁を克服します。
  • MXNet 用の配列オペレーションの用の高度なインデックス作成: 開発者が MXNet で強力な配列オペレーションを利用できるよう、より直感的になりました。NumPy/SciPy 配列の既存の知識を利用して、高度なインデックス作成機能を使用できます。たとえば、MXNet NDArray および Numpy ndarray をインデックスとしてサポートします (例: a[mx.nd.array([1,2], dtype = ‘int32’])。

2) MXNet は高速: 1.0 リリースには、トレーニングと推論のパフォーマンスを最適化する、最新鋭の機能が実装されています。グラデーション圧縮により、ユーザーは集束率または正確さを失うことなく、コンピューティングノード間の通信の帯域幅を減らすことで、最大 5 倍高速にモデルをトレーニングすることができます。Alexa 音声のような音声認識アコースティックモデルの場合、この機能により、トレーニング中に最大 3 桁までネットワーク帯域幅を減らすことができます。NVIDIA Collective Communication Library (NCCL) のサポートにより、ユーザーはマルチ GPU システムでモデルを 20% 高速にトレーニングできます。

  • グラデーション圧縮によりネットワーク帯域幅を最適化: 分散トレーニングでは、各マシンが重量ベクトルを更新し、それにより、単一モデルを集合的に構築して、高いネットワークトラフィックとなるよう、各マシンは頻繁に他のマシンと通信する必要があります。グラデーション圧縮アルゴリズムにより、ユーザーは各インスタンスから伝えられたモデル変更を圧縮することで、最大 5 倍高速にモデルをトレーニングすることができます。
  • NCCL を利用してトレーニングのパフォーマンスを最適化: NCCL は、NVIDIA GPU に対してパフォーマンスが最適化されたマルチ GPU およびマルチノードの集合的な通信プリミティブを実装しています。NCCL は、マルチ GPU 間の相互通信で高い帯域幅を達成するよう最適化された通信ルーチンを提供します。MXNet は NCCL のサポートにより、マルチ GPU システムよりも約 20% 高速にモデルをトレーニングします。

3) MXNet が簡単な相互運用性を提供: MXNet は、Caffe フレームワークで書かれたニューラルネットワークコードを MXNet コードに変換し、ユーザーが MXNet のスケーラビリティおよびパフォーマンスを簡単に活用できるようにします。

  • Caffe モデルを MXNet に移行: Caffe コードを MXNet コードに変換する新しいソースコード変換を使用して、Caffe コードを簡単に MXNet に移行できるようになりました。

MXNet は開発者や研究者が言語の翻訳から自動運転車や行動バイオメトリックセキュリティまで、すべてにおいて前進を可能にしてきました。MXNet で開発およびトレーニングされたニューラルネットワークモデルを利用した本番稼働用の人工知能アプリケーションを構築する幅広いユーザーベースが生まれるのを楽しみにしています。たとえば、自動運転の会社である TuSimple は最近、アリゾナ州ユマからカリフォルニア州サンディエゴまで 200 マイルの距離の移動を、MXNet を使用して無人運転トラックで試験しました。このリリースには、Gluon プログラミングインターフェイスの完全な機能とパフォーマンスに最適化したバージョンも含まれています。この使いやすさと幅広い一連のチュートリアルにより、ディープラーニングを初めて学習する開発者の間でもかなり採用が進んでいます。このインターフェイスの柔軟性が、研究コミュニティ (特に自然言語処理分野) 内で関心を高めています。

MXNet の使用開始
MXNet の開始は簡単です。Gluon インターフェイスとディープラーニングの詳細については、この包括的な一連のチュートリアルを参照できます。これらのチュートリアルでは、ディープラーニングの概要から最先端のニュートラルネットワークモデルを実装する方法まで紹介しています。機械学習フレームワークに携わっている場合は、GitHub でインターフェイスの仕様をご確認ください。

Apache MXNet 向けモデルサーバーの使用を開始するには、以下のコマンドを使用してライブラリをインストールします。

$ pip install mxnet-model-server

モデルサーバーのライブラリには、SqueezeNet 1.1 オブジェクト分類モデルを含む Model Zoo と 10 個のトレーニング済みディープラーニングモデルが含まれています。次のコマンドを使用するだけで SqueezeNet モデルの提供を開始できます。

$ mxnet-model-server \
  --models squeezenet=https://s3.amazonaws.com/model-server/models/squeezenet_v1.1/squeezenet_v1.1.model \
  --service dms/model_service/mxnet_vision_service.py

モデルサーバーの詳細とソースコード、リファレンスサンプル、チュートリアルの表示方法については、https://github.com/awslabs/mxnet-model-server/ を参照してください。

-Dr. Matt Wood