Skip to main content
QUICK REVIEW

[論文レビュー] Predicting the Computational Cost of Deep Learning Models

Daniel Justus, John Brennan|arXiv (Cornell University)|Nov 28, 2018
Advanced Neural Network Applications参考文献 10被引用数 12
ひとこと要約

この論文では、モデルアーキテクチャ、ハードウェア、データの特徴から学習することで、深層ニューラルネットワークの学習コストを予測するディープラーニングベースのモデルを提案する。層レベルの実行時間のデータを用いてニューラルネットワークを訓練することで、非線形なパフォーマンス要因(メモリバッファの制限やGPUの非効率的利用など)を捉え、線形モデルに比べて、エポックごとのエンドツーエンドの学習時間をより正確に予測できる。

ABSTRACT

Deep learning is rapidly becoming a go-to tool for many artificial intelligence problems due to its ability to outperform other approaches and even humans at many problems. Despite its popularity we are still unable to accurately predict the time it will take to train a deep learning network to solve a given problem. This training time can be seen as the product of the training time per epoch and the number of epochs which need to be performed to reach the desired level of accuracy. Some work has been carried out to predict the training time for an epoch -- most have been based around the assumption that the training time is linearly related to the number of floating point operations required. However, this relationship is not true and becomes exacerbated in cases where other activities start to dominate the execution time. Such as the time to load data from memory or loss of performance due to non-optimal parallel execution. In this work we propose an alternative approach in which we train a deep learning network to predict the execution time for parts of a deep learning network. Timings for these individual parts can then be combined to provide a prediction for the whole execution time. This has advantages over linear approaches as it can model more complex scenarios. But, also, it has the ability to predict execution times for scenarios unseen in the training data. Therefore, our approach can be used not only to infer the execution time for a batch, or entire epoch, but it can also support making a well-informed choice for the appropriate hardware and model.

研究の動機と目的

  • 学習時間の正確な予測が不足しているという問題に取り組み、コストとリソース計画に不可欠である。
  • 浮動小数点演算数(FLOPs)に基づく線形モデルの限界を克服し、非線形なシステムレベルのボトル neck を捉えること。
  • 実行時間の個々の層を予測し、それらを組み合わせて全エポックの予測を構築する、データ駆動型で一般化可能なフレームワークを開発すること。
  • 実際に学習を実行する前に行える、ハードウェア選定、モデルアーキテクチャ、ハイパーパramータチューニングに関する意思決定を可能にすること。
  • 新しいハードウェア、ネットワークタイプ、またはデータ分布を含む、未観測の構成に対しても予測を可能にすること。

提案手法

  • モデルアーキテクチャ、データ、ハードウェアから得られる特徴を用いて、各層の実行時間を予測するディープニューラルネットワークを訓練する。
  • さまざまなGPU、ネットワークタイプ(例:VGG-16)、設定(バッチサイズ、最適化手法)からの層単位の実行時間データを、訓練信号として用いる。
  • 各層の実行時間を個別にモデル化し、それらを合算することで、バッチごとおよびエポックごとの合計実行時間を推定する。
  • FLOPベースのモデルが見逃す非線形なシステム挙動(例:メモリ帯域幅の制限、GPUの未利用)を組み込む。
  • 学習された特徴表現により、ハードウェア、モデル構造、ハイパーパramータの未確認の組み合わせへの一般化を可能にする。
  • 追加の訓練データを用いることで、16ビットや固定小数点などの混合精度計算に対しても拡張可能である。

実験結果

リサーチクエスチョン

  • RQ1ディープラーニングモデルは、FLOPsベースの近似を超えて、深層ニューラルネットワークの各層の実行時間を正確に予測できるか?
  • RQ2このようなモデルは、ハードウェア、モデルアーキテクチャ、ハイパーパramータ(例:バッチサイズ、最適化手法)の未確認の組み合わせにどの程度一般化できるか?
  • RQ3モデルは、メモリボトル neck やGPUの非効率的利用といった非線形なパフォーマンス要因をどの程度正確に捉えられるか?
  • RQ4モデルの予測精度は、さまざまなネットワークタイプ(例:畳み込み層対全結合層)やバッチサイズによってどのように変化するか?
  • RQ5モデルは、学習を実行する前に行える、ハードウェア選定やモデル設計に関する意思決定を支援できるか?

主な発見

  • 提案されたモデルは、FLOPベースのアプローチに比べて、メモリ帯域幅の制限やGPUの非効率的利用といった非線形なパフォーマンス特性を捉えることで、顕著に優れた性能を示す。
  • さまざまなバッチサイズにおいて高い予測精度を示し、大規模バッチサイズでは畳み込み層が実行時間の大部分を占め、小規模バッチサイズでは全結合層が支配的であることを正しく特定している。
  • VGG-16を複数のGPUで学習する際、エポックごとのエンドツーエンドの学習時間を正確に予測できており、予測値と実測値の間に強い一致が見られた。
  • システムおよびモデルの特徴を学習した表現のおかげで、新しいハードウェアやモデルハイパーパramータの未観測な組み合わせに対しても、モデルは成功裏に一般化している。
  • フレームワークは拡張可能であり、混合精度推論および学習の予測に対応でき、将来的にはさまざまなフレームワークやプログラミング言語への応用が可能である。
  • モデルは、ハードウェア選定やモデル設計のための実行可能なインサイトを提供し、例えば、パフォーマンスボトル neck の特定や、特定の層タイプに最適化されたバッチサイズの最適化を可能にする。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。