Intel Sapphire Rapids を使用した PyTorch トランスフォーマーの高速化

Intel Sapphire Rapids CPU は、Hugging Face Optimum Intel ライブラリと組み合わせることで、従来の Intel Xeon(Ice Lake)世代と比較して PyTorch トランスフォーマーの推論を最大 3 倍高速化できます。この性能向上により、長いテキストシーケンスでもシングルデジットの予測レイテンシが実現でき、以前は主に GPU でしか達成できなかったベンチマークとなります。

CPU ベース推論の戦略的優位性

CPU ベースの推論は、モデルサイズ、タスクの並列性、コスト制約に応じて、GPU ベースの推論に対する実用的かつしばしば優れた代替手段です。

  • Model Size: 小規模なモデルは通常 CPU で効率的に実行でき、大規模なモデルは GPU の膨大な計算能力からより大きな恩恵を受けます。
  • Parallelism: GPU は大規模な並列処理に優れています。推論タスクに高い並列性がない場合、CPU の方が効果的かもしれません。
  • Cost and Flexibility: CPU は特に極端に低いレイテンシを必要としないユースケースにおいて、GPU よりもコスト効率が高いことが多いです。また、推論ワーカーのスケーリングや多様なハードウェア環境へのデプロイにおいて、より柔軟性を提供します。

ハードウェアおよびソフトウェア構成

性能向上を評価するために、以下の仕様の Amazon EC2 インスタンスを使用してベンチマークを実施しました。

  • Ice Lake (Baseline): c6i.16xlarge インスタンス。
  • Sapphire Rapids: r7iz.16xlarge-metal インスタンス。

両インスタンスとも 32 物理コア(64 vCPU)を使用し、Ubuntu 22.04、Linux 5.15.0、PyTorch 1.13、Intel Extension for PyTorch 1.13、Transformers 4.25.1 で構成されました。Sapphire Rapids インスタンスはさらに Optimum Intel ライブラリを利用しています。

NLP モデル性能のベンチマーク

ベンチマークは、distilbert-base-uncasedbert-base-uncasedroberta-base モデルを使用したテキスト分類タスクで実施しました。テストでは、短い(16 トークン)シーケンスと長い(128 トークン)シーケンスに対する単一推論とバッチ推論の平均および p99 予測レイテンシを測定しました。

最適化手法

Sapphire Rapids アーキテクチャ上で、ハードウェア機能を活用するために Optimum Intel ライブラリを通じて以下の最適化が適用されました。

  • bfloat16 Mode: Advanced Matrix Extensions (AMX) 命令を利用できるように有効化しました。
  • Just-In-Time (JIT) Compilation: True に設定し、モデル実行をさらに最適化しました。

パフォーマンス結果

distilbert-base-uncased モデルにおいて、Sapphire Rapids での単一予測は、従来世代の Xeon CPU と比較して 60〜65% のレイテンシ削減(60〜65% 高速)を示しました。このハードウェアとソフトウェアの組み合わせにより、長いテキストシーケンスを処理する場合でもシングルデジットの予測レイテンシを実現できます。

結論

第4世代の Intel Xeon CPU は、PyTorch トランスフォーマーの推論性能に大幅な飛躍をもたらします。Intel Extension for PyTorch と Hugging Face Optimum を統合することで、開発者はディープラーニングモデルをよりコスト効率よくデプロイでき、特定の NLP タスクにおいて GPU ベースのソリューションに匹敵する性能レベルを実現できます。

Sources