全体概要
本セミナーは、急速に多様化・分散化する深層学習フレームワーク群の「断片化問題」を中心的な問いとして据え、その解決策として台頭してきた標準化・統合化の潮流——ONNX、NNEF、Gluon API、TVM/NNVM——と、クラウド上での機械学習ライフサイクル全体を管理するAmazon SageMakerの実践的活用、さらにはブラウザ上での推論を実現するTensorFlow.jsまでを一気通貫に俯瞰するものです。[p.1]
2017年後半から2018年初頭にかけて、深層学習の世界では「フレームワーク戦国時代」とも呼ぶべき状況が生まれていました。Google(TensorFlow/Keras)、Facebook(PyTorch/Caffe2)、Amazon(MXNet/Gluon)、Microsoft(CNTK)、さらにChainerやCore MLといった多数のフレームワークが並立し、それぞれが独自のグラフ表現・モデル形式・最適化ターゲットを持つため、研究成果をプロダクションへ移行する際のコストや、異なるハードウェア(CPU/GPU/FPGA)への対応に多大な摩擦が生じていました。[p.21, p.22, p.31]
この断片化に対する応答として、本セミナーは三つの軸で議論を展開します。第一に、フレームワーク間の相互運用性を実現する「共通中間表現(IR)」としてのONNX(Open Neural Network Exchange)[p.55, p.59]とNNEF[p.65, p.67]の登場と意義。第二に、学習済みモデルをどう共有・再利用するかというModel Zoo、TensorFlow Hub、Gluon Model Zooのエコシステム[p.44~p.53]。第三に、データ準備から学習・デプロイ・推論までをマネージドサービスとして提供するAmazon SageMakerのアーキテクチャと、fit/deploy/predictという三段階のAPIによる実践[p.81~p.98]。
そしてセミナーの締めくくりとして、TensorFlow.jsを用いたWebブラウザ上でのDoodleリアルタイム認識やWebCamを使ったImageNet分類というデモが示され、「エッジ・ブラウザへの推論の民主化」という方向性が示されます。[p.73, p.75]本セミナーは、単なるツール紹介に留まらず、「研究と本番の間の溝をどう埋めるか」という技術史的問いに対する、2018年時点での集合知的な解答を丁寧に整理した内容となっています。
—
講義のロードマップ
ここでは、セミナーの講演資料がどのようなパートから構成されているかを示します。また、それぞれのパートのポイントを紹介します。
■ Part 1: 深層学習フレームワーク群の全体像と断片化の構造
多数のフレームワークが乱立する現状を整理し、「どのフレームワークを選ぶべきか」という問いの背景にある断片化の構造的問題を提示します。Google・Facebook・Amazon・Microsoft各社の主要フレームワークをマッピングし、それぞれの位置づけと関係性を明確化します。[p.21, p.22, p.31]
■ Part 2: データセットとModel Zooのエコシステム
深層学習の学習基盤となる代表的データセット群(MNIST、Fashion MNIST、Quick Draw!、CIFAR10、ImageNet)を概観した上で、各フレームワークが提供する学習済みモデルのリポジトリ(Model Zoo)の意義と活用方法を整理します。[p.12~p.16, p.44]
■ Part 3: 共通IR(中間表現)による断片化の解決——ONNX・NNEF・TVM
フレームワーク断片化の本質的解決策として、モデルの共通中間表現(IR)というアプローチを深掘りします。ONNX(Microsoft/Facebook主導)とNNEF(Khronos Group主導)という二つの標準化の試みを対比し、さらにコンパイラスタックTVM/NNVMによるハードウェア向け最適化の方向性も示します。[p.43, p.55, p.65, p.76]
■ Part 4: Gluon API——MXNetにおける動的グラフの統合
MicrosoftとAWSが共同で2017年10月に発表したGluon APIは、「シンプルなコード・柔軟な命令的構造・動的グラフ・高パフォーマンス」という四つの利点を掲げ、PyTorchに代表される動的グラフの利便性とMXNetの実行速度を両立しようとする試みです。[p.30, p.32, p.34]
■ Part 5: Amazon SageMaker——MLライフサイクルのマネージドプラットフォーム
Amazon SageMakerは、データ準備・モデル学習・デプロイ・推論という機械学習ワークフロー全体を、Jupyter Notebook環境と組み合わせてフルマネージドで提供するAWSのプラットフォームです。fit/deploy/predictという三段階APIで一貫した体験を実現します。[p.81, p.85, p.86]
■ Part 6: TensorFlow.jsとブラウザ上での推論の実現
TensorFlow.jsはブラウザ(WebGL)上でニューラルネットの学習・推論を実行可能にするJavaScriptライブラリであり、サーバー不要でプライバシーを保ちながらリアルタイムMLアプリを実現します。Doodle認識PWAやWebCamを用いたImageNet分類の実装例を通じて、エッジへの推論民主化の到達点を示します。[p.69, p.73, p.75]