Skip to main content
QUICK REVIEW

[論文レビュー] LSTM Benchmarks for Deep Learning Frameworks

Stefan Braun|arXiv (Cornell University)|Jun 5, 2018
Speech Recognition and Synthesis参考文献 10被引用数 19
ひとこと要約

この論文は、PyTorch、TensorFlow、Lasagne、KerasにおけるLSTM実装をベンチマークし、通常の自動音声認識(ASR)ワークロードにおける学習速度を評価している。cuDNN最適化LSTMは非最適化バージョンと比較して最大7.2倍高速であることが判明した。PyTorchとTensorFlowはcuDNN環境で類似した性能を示したが、非効率な可変長シーケンス処理により、古いPyTorchバージョンは著しく遅いことが判明した。

ABSTRACT

This study provides benchmarks for different implementations of LSTM units between the deep learning frameworks PyTorch, TensorFlow, Lasagne and Keras. The comparison includes cuDNN LSTMs, fused LSTM variants and less optimized, but more flexible LSTM implementations. The benchmarks reflect two typical scenarios for automatic speech recognition, notably continuous speech recognition and isolated digit recognition. These scenarios cover input sequences of fixed and variable length as well as the loss functions CTC and cross entropy. Additionally, a comparison between four different PyTorch versions is included. The code is available online https://github.com/stefbraun/rnn_benchmarks.

研究の動機と目的

  • 自動音声認識(ASR)で使用される主要なディープラーニングフレームワークにおけるLSTMユニットの学習速度を評価・比較すること。
  • 固定長および可変長シーケンスを含む一般的なASRワークロードにおける、最速のLSTM実装(最適化済みおよび柔軟性あり)を特定すること。
  • カスタマイズ可能で非統合(non-fused)な実装を想定した場合、PyTorchの異なるバージョンがLSTM学習速度に与えるパフォーマンスへの影響を評価すること。
  • 再現可能性を確保し、研究者が効率的なフレームワークおよびLSTMバリアントを選択できるようにするため、オープンソースのベンチマークスクリプトを提供すること。

提案手法

  • 研究では、標準的なASRの入力サイズ(1x320および4x320ユニット、100および1000時間ステップ、特徴次元123)を用いてLSTMユニットをベンチマークした。
  • 実際のASRワークロードを反映させるために、固定シーケンス(交差エントロピー損失)と可変シーケンス(CTC損失)の両方のシナリオを評価した。
  • 4つのディープラーニングフレームワーク(PyTorch、TensorFlow、Lasagne(Theanoバックエンド)、Keras(TheanoおよびTensorFlowバックエンド))をテストした。
  • 基本/柔軟性あり(例:LSTMCell)、統合済み(例:LSTMBlockFusedCell)、cuDNN最適化(例:cuDNNLSTM)の3つのLSTMバリアントを含む。
  • 各設定について100イテレーションにわたってバッチあたりの学習時間を測定し、平均値と標準偏差を報告した。
  • パフォーマンスの変化を評価するため、4つのPyTorchバージョン(0.1.12_2から0.4.0)を含めた比較を実施した。

実験結果

リサーチクエスチョン

  • RQ1標準的なASRワークロードにおける、最も高速なディープラーニングフレームワークおよびLSTM実装は何か?
  • RQ2最適化済みLSTM実装(例:cuDNN、統合済み)と柔軟性がありユーザーが変更可能なバージョンの間で、学習速度にどのような差があるか?
  • RQ3可変長シーケンス処理に関して、特にパラメータカスタマイズ可能な実装を想定した場合、PyTorchの異なるバージョン間でパフォーマンスに差は生じるか?
  • RQ4損失関数(交差エントロピー対比CTC)およびシーケンス長(固定対可変)の違いが、フレームワーク全体の学習時間に与える影響は何か?
  • RQ5フレームワーク固有のラッパー(例:Keras/TensorFlow対Keras/Theano)が、LSTMパフォーマンスに与える影響はどの程度か?

主な発見

  • cuDNN最適化LSTM実装が最も高速であり、最も遅い非最適化バージョンと比較して最大7.2倍の高速化を達成した。PyTorch、TensorFlow、KerasはcuDNN環境でほぼ同等のパフォーマンスを示した。
  • 非最適化・柔軟性ありLSTMの中では、LasagneのLSTMLayer、TheanoバックエンドのKeras、PyTorchのLSTMCell-basicが最も速く、TensorFlowのLSTMCellより1.6倍高速に学習した。
  • PyTorch 0.4.0は、可変長シーケンス処理のパフォーマンス改善のおかげで、PyTorch 0.2.0_4と比較して、柔軟なLSTMCell-basicバージョンで最大2.2倍高速だった。特に長時間シーケンスで顕著だった。
  • Keras/TheanoバックエンドはKeras/TensorFlowバックエンドより1.5〜1.7倍高速であり、Keras/TensorFlowはTensorFlowのネイティブ実装より1.1倍遅かった。
  • 固定シーケンスから可変シーケンスに切り替えると、学習時間が10〜20%増加した。最も大きな増加はLasagneのLSTMLayer(1.2倍)で、最小はPyTorch(1.1倍)だった。
  • 古いPyTorchバージョン(0.2.0_4および0.1.12_2)は、特に短いシーケンスで学習時間の標準偏差が著しく高かった。これはパフォーマンスの不安定性を示唆している。

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

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

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

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