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

ブログ    
ブログ    
ブログ    

推薦する

ついに誰かがナレッジグラフをわかりやすく説明してくれた

[[382731]]この記事は、劉宇、趙紅宇らが執筆したWeChatパブリックアカウント「ビッグデー...

複数のAI企業の人事担当者/面接官が明かす:機械学習エンジニアの採用方法

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

ハイブリッドクラウドプラットフォームがデータの障壁を打ち破り、人工知能がデータの価値を活性化

デジタル経済の時代において、企業の将来の競争力を形成する鍵として、データの価値は企業からますます注目...

ML 向け勾配降下法アルゴリズム 機械学習初心者向け勾配降下法アルゴリズム

[[197951]]基本概念このセクションでは、勾配降下法をより一般化するために、機械学習アルゴリズ...

伝染病警報!人工知能は何をするのでしょうか?

中国で新型コロナウイルスの感染が初めて確認されたのは2019年12月19日。感染源については、これま...

テレンス・タオ:私の数学的経験に基づくと、室温超伝導LK-99とその再現は非常に刺激的です

昨今、室温超伝導の再現に対する世界的な熱気は衰えを知らず、さまざまな有力者が自らの見解を表明している...

戻れる幼少時代!快手が「子供になる」特殊効果をリリース

「子供時代に戻りたい。子供の頃はよく食べて、よく寝て、あまり考えないことが好きだった」。山西省大同市...

中国と米国の差を縮め、人工知能開発の主導権を徐々に握る

60年以上の発展を経て、人工知能は人々の仕事や日常生活に入り込み、影響を与えており、新たな一般技術と...

人工知能は機械に流動的知能を与えることができるか?

2021年2月初旬に開催された第35回AAAI人工知能会議で、新しいタイプの人工知能(AI)機械学...

「顔認証」は大人気だけど、知らないことも多い

[[185752]] CeBITカンファレンスでのジャック・マー氏の「顔スキャン」支払いから、マイク...

...

怠け者に朗報:AIが家事を引き受けてくれる

誰もが食べることは大好きですが、必ずしも鍋を洗うのは好きではありません。この文章を読んだ後、自分自身...

F5、AI時代のアプリケーションセキュリティの新たな革命をリード

サンノゼ — 2024年2月20日— F5(NASDAQ: FFIV)は先日、アプリケーションセキュ...

AlphaGoの仕組み:マルチエージェント強化学習の詳細な説明

このレビュー記事では、著者はマルチインテリジェンス強化学習の理論的基礎を詳細に紹介し、さまざまなマル...