マイクロソフト、アマゾンと協業で深層学習をすべての開発者に解放~『Gluon』の発表

[2017 年 10 月 12 日]

マイクロソフトは本日、アマゾン ウェブ サービスと共同で、「Gluon (グルーオン)」という新しい深層学習ライブラリを発表しました。このオープンソースベースの Gluon を使うと、訓練速度を損なうことなく深層学習モデルを作成するプロセスを大幅に簡素化でき、深層学習の専門家に限らずデータサイエンティストや一般の開発者に広く使っていただくことができるようになります。

 

深層学習モデルを開発する際の課題

マイクロソフトでは「すべての人と組織が AI を使えるようにする」というビジョンのもと、人類の創意工夫を最大化できるように努めています。しかし、今日の深層学習モデルの開発はとても難しく、多くのデータサイエンティストにとってかなり困難なものです。

開発者は、トレーニングデータ、モデル、アルゴリズムの3つのコンポーネントでニューラルネットワークを構築します。アルゴリズムは、データ内のパターンを認識するためにモデルを訓練します。データ量が多く、モデルとアルゴリズムが複雑なため、モデルのトレーニングには数日から数週間かかることがあります。Apache MXNet、Microsoft Cognitive Toolkit、TensorFlowなどの深層学習エンジンの進化により、トレーニングプロセスの最適化とスピードアップがなされました。しかし、これらのエンジンでは、開発者はモデルとアルゴリズムの変更が難しい長い複雑なコードを、前もって書いておく必要があります。深層学習ツールの中には、モデル構築が容易なものもありますが、トレーニングパフォーマンスが犠牲にされています。

そのため、マイクロソフトではこれら深層学習モデルの開発の障壁になるものを取り除く努力をしてきました。先月フェイスブックと共同で発表した「ONNX」もその一例で、深層学習フレームワーク間の相互運用性を確保する第一歩となりました。さらに今回発表された Gluon により提供されるPythonプログラミング API を使うことで、開発者が複数の深層学習ライブラリを交互に実行することができます。

 

Gluonとは何ですか?

Gluonは、ニューラルネットワークを構築するための、簡潔でダイナミックな高レベルの深層学習ライブラリ (またはインターフェイス) です。Apache MXNetまたはMicrosoft Cognitive Toolkitのどちらでも使用でき、すべてのAzureサービス、ツール、インフラストラクチャでサポートされる予定です。Gluonは、開発者向けの使いやすいインターフェイス、スケーラビリティの高いトレーニング、効率的なモデル評価を提供します。すべてにおいて、柔軟性を犠牲にすることなく経験豊かな研究者が利用できます。Gluonは、高度なAPIとあらかじめ構築されモジュール化された部品を提供することで、企業、データサイエンティストと開発者にとって、深層学習をスピードを犠牲にせずにより使いやすいシンプルなものにします。

 

Gluonの主な機能と利点は何ですか?

Gluonを使用すると、開発者は深層ニューラルネットワークの学習、定義、デバッグ、反復、維持が容易になり、開発者はネットワークを素早く構築しトレーニングすることができます。主な機能は次のとおりです。

  • シンボリックな命令型プログラミング:  上級ユーザーのために、Gluonは動的なグラフや柔軟な構造のような洗練されたテクニックをサポートしています。シンボリックプログラミングと命令型プログラミングを両方サポートしているツールキットは他にありません。
  • ハイブリダイゼーション:  Gluonには、制御フローを含む手続き的に実行されたコードの完全にシンボリックな自動識別が含まれます。Gluonはハイブリダイゼーションによってこれを実現します。静的な計算グラフは最初に計算され、キャッシュされ、その後の反復で再利用されます。計算グラフは、モバイルデバイス上でのサービスなどのためにエクスポートすることもできます。
  • 複雑なモデルの定義:  Gluonには豊富なビルトインレイヤライブラリが用意されており、ライブラリからあらかじめ構築された部品を再利用して複雑なモデルアーキテクチャを定義する作業が大幅に簡素化されます。
  • 実行効率:  Gluonは、ループと不規則テンソル(可変長シーケンスのバッチ処理)をネイティブサポートしており、RNNとLSTMモデルの比類のない実行効率につながります。
  • 疎データ (スパーズデータ) のサポート:  Gluonは、計算と通信の両方で、疎と量子化されたデータと演算を包括的にサポートしています。スパース性 (行列の要素にゼロが多いスカスカな状態) は、自然言語処理のディープニューラルネットワークで一般的に発生するものであり、量子化はランタイム評価パフォーマンスにとって重要です。
  • 高度なスケジューリング:  1つのGPUでスケジューリングするのは簡単ですが、複数のGPUでスケジューリングするのははるかに複雑です。MxNetまたはCognitive Toolkitのバックエンドを使用して、Gluonは記号モードと命令モードの両方の自動配布を提供します。

 

Azureのデータサイエンスの仮想マシンは、 AIの開発に使用できる環境を提供し、Cognitive ToolkitとMxNetをサポートしています。Azure Machine Learningは、モデル開発と展開を加速するための高度なサービスを提供します。Azure Machine Learning Workbench またはVisual Studio Code Tools for AIを使用すると、任意のフレームワークのモデル開発プロセスで生産性が向上します。

Gluon は現在 MxNet 向けにはGitHubに既に公開されています。今後のリリースでMicrosoft Cognitive Toolkit(CNTK)をサポートします。今後のリリースにご期待ください。
この文章は以下の原文を要約したものです: