« 12月のAWS Black Belt オンラインセミナーのご案内 | メイン | re:InventでJAWS-UGで広く活躍されているAWSサムライの1人、吉田さんがTIPS公開セッションに登壇しました »

[和訳] MXNet - AWSでの最適な深層学習フレームワーク

SA岩永です。Amazon CTO Wernerのブログで、深層学習フレームワークであるMXNetについての投稿がありました。AWSを使って機械学習・深層学習をお考えの方に非常に重要な内容なので、日本語訳しましたのでご覧ください。

また、記事内にもありますが今週ラスベガスにて開催されるre:Invent 2016では11月30日に機械学習についてのMini Conもありますので、現地にいらっしゃる方はぜひご参加下さい。

追記: re:Invent 2016の中で、深層学習フレームワークのベンチマーク用のコードが公開されました。https://github.com/awslabs/deeplearning-benchmark

 

原文: MXNet - Deep Learning Framework of Choice at AWS


  Mxnetbanner

機械学習は、私達のビジネスや生活の多くの領域において段々と重要な役割を担う様になっていて、明示的にアルゴリズムをプログラムすることが実現不可能な多くの計算タスクで利用されています。

Amazonにおいて、レコメンデーションから不正検知、在庫レベルから書籍の分類、不正なレビューの検出まで、機械学習は我々の多くのビジネス・プロセスの鍵を握って来ました。そして機械学習を広範囲に使っているもっと沢山のアプリケーション領域があります: 検索、自律ドローン、配送センターのロボット、文章や音声の認識、等。

機械学習アルゴリズムの中で、深層学習と呼ばれるアルゴリズム群は、大量のデータを吸収してそのデータから洗練された役に立つパターン、 例えば写真の中の顔、文章の意味、または話された言葉の意図、等を学習できるアルゴリズムの代表格となってきました。深層学習で開発者がAIモデルを定義し学習するのを手助けしてくれるプログラムモデルがいくつか登場し、オープンソースのフレームワークと合わせて深層学習を一般人でも扱えるようになってきました。AWSでサポートしている深層学習の人気フレームワークのいくつかの例の中には、Caffe、CNTK、MXNet、TensorFlow、Theano、そしてTorchが含まれます。

これら全ての人気フレームワークの中で、私達はMXNetが最もスケール可能なフレームワークだと結論付けました。私達はAIのコミュニティがMXNetに対してより注力することで利益を得られると信じています。本日、MXNetが我々の深層学習フレームワークの最適な選択肢であることをお伝えします。AWSはコードへの貢献とドキュメントの改善に加え、MXNet周辺のエコシステムへの投資も行います。さらなるMXNetの進歩のために他の組織とパートナーとなります。

AWSと深層学習フレームワークのサポート

AWSでは、我々はお客様に選択肢を提供することを方針としています。我々のゴールは、インスタンスの種類、ソフトウェア(AMI)、そしてマネージドサービスの正しいセットを提供することで、お客様に最適なツール、システム、ソフトウェアでお客様をサポートすることです。Amazon RDSがMySQL、PostgreSQL、そしてMariaDBといった複数のオープンソースエンジンをサポートしているように、深層学習フレームワークの領域でも、私達は最適なEC2インスタンスと適切なソフトウェアツールを提供することで、全ての人気の深層学習フレームワークをサポートします。

Amazon EC2は、多数のインスタンスタイプと大量メモリのGPUによって、深層学習トレーニングの中心となってきました。そして深層学習を支え、出来る限り簡単にツール群を使い始められる様、最近Deep Learning AMIを公開しました。これは先に言及した人気のオープンソース深層学習フレームワークが既にインストールされていて、CUDAドライバが既にインストールされ設定され動かす準備ができた状態のGPUアクセラレーションができて、そしてAnacondaやJupyterといったツールをサポートしています。また開発者は、分散深層学習のCloudFormationテンプレートを使って、もっと大きな学習実行のためにこのAMIを使ったP2インスタンスのスケールアウトする弾力的なクラスタを起動することもできます。

AmazonとAWSは引き続き深層学習に支えられたいくつかの技術に対して投資を続けていくので、これら全てのフレームワークを、使いやすさ、スケールしやすさ、そして機能の面で改善し続けていきます。しかし、この中の1つに対して特に貢献していく計画です、それがMXNetになります。

深層学習フレームワークを選ぶ

開発者、データサイエンティスト、そして研究者は深層学習フレームワークを選ぶ時に、3つの主要な要素を考慮します:

  • より大規模な洗練されたデータセットから、より大規模な洗練されたモデルを学習するために、(複数ホストに渡る)複数のGPUを使ったスケーラビリティ。深層学習のモデルは学習に数日から数週かかることもあるので、たった少しの改善であっても、新しいモデルを開発し評価する際のスピードに対しては非常に大きな違いが生まれます。
  • 開発速度とプログラムしやすさ、特に既に馴染みのある言語を使えるかどうかは、素早く新しいモデルを開発したり既存のものを更新したりできるかに関係します。
  • 数多くのデバイスやプラットフォーム上への可搬性。深層学習のモデルは、ノートパソコンから優れたネットワークと大量の計算パワーを持ったサーバファーム、そしてネットワークの信頼性が無く計算パワーが貧弱でしばしば離れた場所にあるモバイルや接続済デバイスまで、非常に沢山の異なる場所で実行される必要があります。

この3つと全く同じ事が、AWSの開発者や多くのお客様においても重要です。評価を行った結果、我々はMXNetを最適な深層学習フレームワークとして選択し、既存やこれから来る新しいサービスにおいて広範囲に使っていくことを計画しています。

その約束の一部として、コード貢献を通じたオープンソース開発を推進・サポートしていき(既にほんの少し始めています)、オンラインやAWS上の開発体験やドキュメントを改善し、可視化や開発、他のフレームワークからの移行のサポートツールへの投資を、積極的に行っていきます。

MXNetの背景

MXNetは深層学習に必要な全ての機能を持った、柔軟にプロブラム可能で、そして超スケール可能な深層学習フレームワークで、畳み込みニューラルネットワーク (CNN)やlong short-term memoryネットワーク (LSTM)を含む最先端の深層学習モデルをサポートしています。MXNetは学術界にその起源を持ち、幾つかのトップ大学の研究者たちによる協力と貢献を受けて生まれました。創立組織には、University of WashingtonやCarnegie Mellon Universityが含まれます。

"CMUで生まれ育ったMXNetは、私が今まで見てきた中で最もスケール可能な深層学習のためのフレームワークであり、コンピュータ科学のこの領域をこんなにも美しくしてくれる - 異なる学問分野がとてもうまく一緒に動いて、斬新な大規模分散コンピューティング手法で独創的に線形代数が動き、深層学習を全く新しい領域に導いてくれる、という素晴らしい例です。我々はAmazonがMXNetに投資することに興奮していて、MXNetがもっともっと強くなっていくのが待ちきれません。" Andrew Moore - Dean of Computer Science at Carnegie Mellon University

MXNetのスケール

深層学習フレームワークが複数コアに渡ってスケールアウトする効率は、重要な要素の1つです。より効率の良いスケールができれば、新しいモデルを学習させる速度を著しく上昇させたり、同じ学習時間の中でのモデルの洗練度を劇的に向上させることができます。

ここがMXNetが実力を発揮する領域です: 我々は有名な画像分析アルゴリズムのInception v3 (MXNetで実装しP2インスタンスで実行)を、GPUの数を増やしながら学習させました。MXNetは他に評価したどんなライブラリよりも高速なスループットを出しただけでなく(毎秒何枚の画像を学習したかで計測)、学習に使ったGPUの数とほぼ一致した比率でスループットが向上していました(スケーリングの実行効率は85%でした)。

Mxnetgraph

MXNetを使った開発

スケーラビリティに加え、MXNetはプログラミングモデルの混合と(命令的と宣言的)、Python、C++、R、Scala、Julia、Matlab、そしてJavaScriptを含む多数のプログラミング言語でのコーディングを提供します。

MXNetのモデルの効率の良さと、可搬性

計算効率は重要です(そしてそれはスケーラビリティにも寄与します)が、メモリのフットプリントも同じくらい重要です。MXNetは1000層もの深いネットワークを扱う時でもわずか4GBのメモリしか消費しません。またそのモデルはプラットフォームを超えて可搬性があり、コアライブラリ(依存も含む)は単一のC++ソースファイルに収まり、Android向けにもiOS向けにもコンパイルすることができます。JavaScript拡張を使えば、ブラウザで実行することさえできます!

MXNetについてもっと学ぶ

私たちはMXNetに対してワクワクしています。もっと学びたい方は、MXNetのホームページや、詳細な情報のためにGitHubレポジトリを見たり、そしてDeep Learning AMIを使ったり自身のマシンで今すぐ試すことができます。また、AWS re:Inventでは11月30日にLas VegasのMirageホテルで機械学習の"State of the Union"と引き続くブレイクアウトセッションに、MXNetを使ったワークショップを行います。

機械学習のこの新時代は、まだ1日目です。実際には、まだ起きてもいなくて最初のコーヒーすら飲んでいません。MXNet(や他の深層学習フレームワーク)の様なツールと、EC2といったサービスによって、今まさに非常に面白い時間が始まろうとしています。

コメント

Twitter, Facebook

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

2017年10 月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31