PyTorch と TensorFlow のベンチマーク: どちらのプラットフォームが NLP モデル推論をより速く実行しますか?

PyTorch と TensorFlow のベンチマーク: どちらのプラットフォームが NLP モデル推論をより速く実行しますか?

PyTorch と TensorFlow のどちらが優れているかという議論は、決して終わることはありません。

オープンソース コミュニティからのサポートと、使い始めることの容易さは重要な基準です。他の人はこう言います: PyTorch は学術界で使用され、TensorFlow は産業界で使用されます。

[[279747]]

しかし、無視できないもう一つの要素があります。それは、両者の実際のパフォーマンスです。

問題ありません。同意しない場合は、テストを実行してください。 !

最近、「Huggingface」のエンジニアが NLP の Transformer モデルを使用して、2 つの主要プラットフォームで一連の推論速度をテストしました。

Huggingface はスタートアップ企業ですが、NLP の分野ではかなりの評価を得ています。1 つの API だけで 27 の NLP モデルを呼び出すことができる GitHub 上のオープンソース プロジェクトは、広く称賛され、15,000 個のスターを獲得しています。

PyTorch と TensorFlow のどちらが速いでしょうか?以下に、詳細な評価データをお伝えします。

動作環境

著者は、PyTorch 1.3.0 と TenserFlow2.0 でそれぞれ CPU と GPU の推論パフォーマンスをテストしました。

2 つの異なる環境における具体的なハードウェア構成は次のとおりです。

  1. CPU の理由: Google Cloud Platform では、32 個の vCPU、120 GB のメモリ、2.3 GHz Intel Xeon プロセッサを搭載した n1-standard-32 ハードウェアを使用しています。
  2. GPU 推論: 12 個の vCPU、40 GB のメモリ、1 つの V100 GPU (16 GB のビデオメモリ) を含む Google Cloud Platform 上のカスタム ハードウェアを使用します。

[[279748]]

推論時間は、ネイティブ Python モジュール timeit を使用してテスト中に測定されます。各実験を30回繰り返し、これらの30個の値を平均して平均推論時間を取得しました。

NLP モデルのバッチ サイズはそれぞれ 1、2、4、8 に設定され、シーケンスの長さは 8、64、128、256、512、1024 です。

テスト結果

さっそく、実行結果をご紹介します。

ほとんどの場合、両方のプラットフォームで同様の結果が得られます。 PyTorch と比較すると、TensorFlow は一般的に CPU では遅くなりますが、GPU では速くなります。

CPU では、PyTorch の平均推論時間は 0.748 秒ですが、TensorFlow の平均推論時間は 0.823 秒です。

GPU では、PyTorch の平均推論時間は 0.046 秒ですが、TensorFlow の平均推論時間は 0.043 秒です。

上記のデータはすべてのモデルの平均結果です。結果は、入力サイズ (バッチ サイズ × シーケンスの長さ) が大きいほど、最終結果への影響が大きくなることを示しています。

入力が大きすぎると、PyTorch はメモリ不足になります。著者らは結果からこれらの部分を削除したため、結果が PyTorch に偏ることになります。

一般的に、PyTorch モデルは TensorFlow モデルよりもメモリ不足になる可能性が高くなります。 Distilled モデルを除き、入力サイズがバッチ サイズ 8 およびシーケンス長 1024 に達すると、PyTorch はメモリ不足になります。

より完全で詳細なリストについては、この記事の最後にある Google ドキュメントのリンクを参照してください。

両プラットフォーム向けのアクセラレーションツール

予備テストに加えて、著者は 2 つのプラットフォームに固有の加速ツールも使用して、モデルの推論速度をどの程度向上できるかを確認しました。

TorchScript は、C++ 環境など、Python に依存せずにさまざまな環境で実行できるシリアル化可能なモデルを作成する PyTorch の方法です。

TorchScript はモデルと入力サイズに大きく依存しているようです。

TorchScript を使用すると XLNet で永続的なパフォーマンス向上が得られますが、XLM で使用すると信頼性が低くなります。

XLM では、TorchScript は小さい入力ではパフォーマンスを向上できますが、大きい入力ではパフォーマンスが低下します。

平均して、TorchScript でトレースされたモデルは、PyTorch でトレースされていない同じモデルよりも推論が 20% 高速に実行されます。

XLA は、TensorFlow モデルを高速化する線形代数コンパイラです。著者らは、一部のモデルのサブグラフをコンパイルする TensorFlow の自動クラスタリング機能を備えた GPU でのみこれを使用しています。結果は次のようになります:

XLA を有効にすると、速度とメモリ使用量が改善され、すべてのモデルのパフォーマンスが向上します。

ほとんどのベンチマークは最大 1.15 倍高速に実行されます。極端なケースでは、特に入力が小さい場合、推論時間が 70% 短縮されます。

最後に、著者は Google ドキュメントのリストに「トレーニング」タブも追加しました。近い将来、2 つのプラットフォームでのトレーニング テストの比較を見ることができるかもしれません。このテストの唯一の障害は資金かもしれません。

ポータル

オリジナルリンク:

https://medium.com/huggingface/benchmarking-transformers-pytorch-and-tensorflow-e291​​7fb891c2

完全なランニングスコアリスト:

https://docs.google.com/spreadsheets/d/1sryqufw2D0XlUH4sq3e9Wnxu5EAQkaohzrJbd5HdQ_w/edit#gid=0

<<:  快手科技のY-tech AI Labが「2019 CCF科学技術賞」を受賞

>>:  すべてのAI公開コースが無料でご利用いただけます! 14 のカテゴリ、230 のコース、6,000 以上の GitHub スター

ブログ    

推薦する

企業がビッグデータの可能性を最大限に引き出す方法

専門家は、2025 年までにデータ ユニバース、つまりデータ ユニバースの規模が 180 ゼタバイト...

...

マインドコントロールが現実に:話したり手を動かさずに、ただ横たわっているだけでゲームをプレイできる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能に関する国家3カ年戦略が発表されました。この8種類の製品が流行るでしょう!

工業情報化部が突然、人工知能に関するもう一つの重要な文書を発行しました!文書では、2018年から2...

人工知能が生き残るために頼りにしているビッグデータは、独占企業の手に渡ると本当に恐ろしいものになる

わずか5年で、人工知能は急速に発展しました。最近、GPT-3が再び白熱した議論を巻き起こしています。...

機械学習がデータセンター管理をどう変えるか

機械学習はデータセンターの経済性を劇的に変え、将来のパフォーマンス向上への道を開きます。機械学習と人...

2024 年のデータ テクノロジーのトレンド: 基礎モデルと機密コンピューティング

おそらく、現代のデータ環境を形作る最大の力は、基礎となるモデルの遍在性です。これらのモデルは、外部の...

AIは50個の三角形を使って、ポストモダンな雰囲気を持つモナリザの抽象版を描きます

[[425382]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

4大産業用ロボット産業の市場分析と産業用ロボットの中長期的発展

中国製造2025の状況下で、イノベーションと起業家精神を奨励し、経済を高品質発展へと転換する中、中国...

OpenAI: GPT-5が危険すぎる場合、理事会はアルトマンの釈放を阻止する権利がある

OpenAIは新たな発表を行った。取締役会はアルトマン氏の決定を拒否する権限を持つようになった。特に...

...

ニューラルネットワークにおける量子化と蒸留

この記事では、ディープラーニングにおけるモデルを合理化する技術、量子化と蒸留について詳しく説明します...

人工知能は医療をよりスマートにできるでしょうか?

人工知能といえば、実は誰もが知っている存在です。もはやSF映画のワンシーンではなく、私たちの生活にど...

ウー・ジアン:nEqual は、優れたユーザー エクスペリエンスで企業がスマートなビジネスを構築できるよう支援します

[原文は51CTO.comより] 1月中旬に開催されたAdMaster再編メディアカンファレンスで、...