Intel Sapphire RapidsによるPyTorch Transformerの高速化 - パート2
Accelerating PyTorch Transformers with Intel Sapphire Rapids - part 2
この記事では、Hugging FaceのTransformerモデルをPyTorchで実装し、推論(インファレンス)に焦点を当てています。まず、Ice LakeサーバーでNLPトークンシーケンスの長短におけるパフォーマンスを測定し、次に最新のHugging Face Optimum Intelライブラリを使用したSapphire Rapidsサーバーで同様の測定を行います。テストにはAmazon EC2のc6i.16xlarge(Ice Lake)とr7iz.16xlarge-metal(Sapphire Rapids)インスタンスを使用し、Ubuntu 22.04、PyTorch 1.13、Intel Extension for PyTorch 1.13、Transformers 4.25.1の環境を構築しました。Sapphire Rapidsインスタンスには、ハードウェアアクセラレーションのためのOptimum Intelライブラリを追加し、bfloat16モードとjit=Trueを有効にしてAMX命令を活用しました。ベンチマークでは、distilbert-base-uncased、bert-base-uncased、roberta-baseのモデルを使用し、短い/長い文章、およびバッチ推論における平均およびp99予測レイテンシを測定しました。結果として、Sapphire RapidsとOptimum Intelの組み合わせにより、前世代CPUと比較して単一予測が60-65%高速化され、コードの変更を最小限に抑えつつ推論速度を3倍に向上させることが可能になりました。これにより、長文シーケンスでもGPUのみで可能だったシングルディジットの予測レイテンシが達成可能になりました。
- Intel Sapphire Rapids搭載のEC2 r7iz.16xlarge-metalインスタンス上でOptimum Intelライブラリを活用し、PyTorch Transformerの推論速度を前世代Ice Lake比で最大3倍に高速化するベンチマーク結果が公開された。
本記事はIntel Sapphire Rapids CPUとOptimum Intelライブラリの組み合わせにより、NLP推論タスクにおいてGPUを使わずにCPUのみで最大3倍(60-65%)の高速化を達成した点が重要。特にbfloat16モードとAMX命令によるハードウェアアクセラレーションが、長文シーケンスでシングルディジットのレイテンシを実現したことは、クラウド上のCPUインスタンスでGPU代替が可能になることを示唆する。Hugging Face Optimum IntelがIntel CPUの活用を容易にしたことで、AWSやAzure上の機械学習ワークロードにおいて、GPUよりもコスト効率の高いCPU推論が選択肢として現実的になりつつある点に注目したい。