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 スター

ブログ    
ブログ    
ブログ    

推薦する

素晴らしいディープラーニング コース 8 つ (評価付き)

エンジニアリング分野では、機械学習の応用は想像されているほど一般的ではありませんが、ディープラーニン...

新しいアルゴリズムと産業チェーン市場が立ち上げられ、ArcSoft Open Platformは「技術の開放+産業のエコロジー」の新たな段階を切り開きます。

現在、業界のビジュアル AI に対する焦点は最先端技術から産業エコロジーへと移行しており、これはビ...

ジェスチャーをすると、AIが絵文字を認識し、ブラウザ上で動作する:オープンソース

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

...

...

ChatGPT と Stack Overflow: どちらの回答がより良いでしょうか?

米国のパデュー大学が最近発表した「誰の回答が優れているか? ChatGPT と Stack Over...

ベイジアンディープラーニング: ディープラーニングと確率的グラフィカルモデルを統合するフレームワーク

人工知能 (AI) の進歩により、多層のディープ ネットワークを構築し、大量のデータを学習に活用する...

860万の超軽量中国語と英語のOCRモデルをオープンソース化し、ワンストップでトレーニングと展開が可能

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

人工知能は人類の生存を脅かすでしょうか?

有名なイギリスの科学者スティーブン・ホーキングはかつて、知能機械を作ろうとする人間の努力は私たち自身...

...

デザイナーがAIについて語る:「デザインは最終的に完全に消滅するだろう」

デザイン界では有名なブランド、フィリップ・スタルク。国際宇宙ステーションの居住モジュールからスティー...

...

人工知能の将来の発展における4つの主要なトレンドについての簡単な議論

[[349269]] 2020年に世界的パンデミックが発生し、世界が完全にひっくり返る前から、人工知...

清華大学の趙明国氏:AIチップ+ロボット、アルゴリズムのボトルネックを突破

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

製造業者はデジタルツインをどのように活用して生産性を向上できるでしょうか?

メーカーは、競争上の優位性を獲得し、コストを削減し、顧客によりカスタマイズされた体験を提供するために...