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

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ベンジオ、ヒントン、張亜琴らAI界の巨人たちが新たな共同書簡を発表! AIは危険すぎるので、再配置する必要がある

AI リスク管理は、AI 大手企業によって再び議題に挙げられています。ちょうど今、ベンジオ、ヒントン...

NLP フィールド インデックス ツール、3000 以上のコード ベース、論文や GitHub ライブラリのワンクリック検索

検索について言えば、学術的な検索も科学です。検索を上手に使いこなすと、必要な学術情報を素早く見つける...

AIを活用して都市の建物の特性を識別し、地震などの災害に対するリスクを予測する

ビッグデータダイジェスト制作出典: サイエンスデイリー編集者: ジェーン人工知能は、ビジネスから工業...

...

クレイジーすぎる、GPTsがオンライン:ウルトラマンがマスクの大型模型の手こすりを披露、誰かがサードパーティのマーケットを作った

数日前の開発者会議で、OpenAIは、メンバーシップを購入すれば、GPT-4大規模モデルの新バージョ...

口の中に124個のセンサーを埋め込み、Google Glassの創設者の新プロジェクト:舌でメッセージを送信

不運なGoogle Glassはスマートデバイスの波の中で大きなインパクトを与えることはできなかった...

高度な自動運転システムの開発において解決すべき課題についてお話しします

次世代のインテリジェントコネクテッドカーには、高度な自動運転システムが必須です。車両が自動運転をいか...

...

...

COVID-19パンデミックは顔認識技術の導入を促進している

COVID-19は顔認識技術の使用にどのような影響を与えるでしょうか? [[374366]] #p#...

...

はるか先へ! BEVHeight++: 道路脇の視覚的な 3D オブジェクト検出のための新しいソリューション!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

教師あり学習、教師なし学習、強化学習とは何ですか?ついに誰かが明らかにした

01 用語このセクションでは、機械学習の概要とその 3 つの分類 (教師あり学習、教師なし学習、強化...

自動化を推進するAIテストツール

テスト自動化における人工知能の使用は、品質保証業界を支配する最新のトレンドの 1 つです。実際、キャ...