事例研究:Hugging Face InfinityとモダンなCPUを使用したミリ秒レイテンシー
Case Study Millisecond Latency Using Hugging Face Infinity and Modern CPUs
はじめに
転移学習は、自然言語処理(NLP)から音声およびコンピュータビジョンのタスクまで、機械学習を新たな精度レベルに変えてきました。Hugging Faceでは、これらの新しい複雑なモデルと大規模なチェックポイントをできるだけ簡単にアクセス可能かつ利用可能にするために、努力して取り組んでいます。しかし、研究者やデータサイエンティストがTransformersの新しい世界に移行している一方で、これらの大規模で複雑なモデルを実稼働環境で大規模に展開することができる企業はほとんどありません。
主なボトルネックは、予測のレイテンシーであり、大規模な展開を実行するために高コストになり、リアルタイムのユースケースが実用的になりません。これを解決するには、どの機械学習エンジニアリングチームにとっても難しいエンジニアリング上の課題であり、ハードウェアまでモデルを最適化するための高度な技術の使用を必要とします。
Hugging Face Infinityでは、最も人気のあるTransformerモデルに対して、低レイテンシー、高スループット、ハードウェアアクセラレーションされた推論パイプラインを簡単に展開できるコンテナ化されたソリューションを提供しています。企業は、Transformersの精度と大容量展開に必要な効率性を、使いやすいパッケージで手に入れることができます。このブログ投稿では、最新世代のIntel Xeon CPU上で実行されるInfinityの詳細なパフォーマンス結果を共有したいと思います。
Hugging Face Infinityとは
Hugging Face Infinityは、お客様が最新のTransformerモデルを最適化したエンドツーエンドの推論パイプラインを任意のインフラストラクチャ上で展開できるコンテナ化されたソリューションです。
- Hugging Face Hubへようこそ、Stable-baselines3さん🤗
- 🤗 Hubでのスーパーチャージド検索
- 🤗 Transformersを使用して、Wav2Vec2を使用して大規模なファイルで自動音声認識を行う方法
Hugging Face Infinityには、2つの主要なサービスがあります:
- Infinityコンテナは、Dockerコンテナとして提供されるハードウェア最適化された推論ソリューションです。
- Infinity Multiverseは、Hugging Face Transformerモデルをターゲットハードウェアに最適化するモデル最適化サービスです。Infinity MultiverseはInfinityコンテナと互換性があります。
Infinityコンテナは、ターゲットハードウェアアーキテクチャで実行するように特別に設計されており、HTTP /predictエンドポイントを公開して推論を実行します。
図1. Infinityの概要
Infinityコンテナは、1つのモデルと1つのタスクを提供するように設計されています。タスクは、Transformers Pipelinesのドキュメントで定義される機械学習タスクに対応します。このブログ投稿の執筆時点では、サポートされているタスクには、特徴抽出/ドキュメント埋め込み、ランキング、シーケンス分類、トークン分類などがあります。
Hugging Face Infinityの詳細については、hf.co/infinityで詳細情報をご覧いただけます。ご自身でテストしてみたい場合は、hf.co/infinity-trialで無料トライアルにサインアップすることもできます。
ベンチマーク
推論パフォーマンスのベンチマークは、モデルの実行のみを測定することが多いです。このブログ投稿およびInfinityのパフォーマンスについて話す際には、常に前処理、予測、後処理を含めたエンドツーエンドのパイプラインを測定します。他のレイテンシー測定と比較する際には、これを考慮してください。
図2. Infinityエンドツーエンドパイプライン
環境
ベンチマーク環境として、Amazon EC2 C6iインスタンスを使用します。これは、第3世代のIntel Xeon Scalableプロセッサで動作するコンピューティング最適化型のインスタンスです。これらの新しいIntelベースのインスタンスは、アイスレイクプロセス技術を使用し、Intel AVX-512、Intel Turbo Boost、Intel Deep Learning Boostをサポートしています。
機械学習ワークロードの優れたパフォーマンスに加えて、Intel Ice Lake C6iインスタンスはコストパフォーマンスにも優れており、Amazon Web ServicesでInfinityを展開するためのおすすめの選択肢です。詳細については、EC2 C6iインスタンスのページをご覧ください。
方法論
BERTのようなモデルのベンチマークを行う際には、次の2つのメトリックが最も採用されています:
- レイテンシー:モデルの単一の予測にかかる時間(前処理、予測、後処理を含む)
- スループット:一定のベンチマーク設定で実行される実行回数(物理的なCPUコア、シーケンス長、バッチサイズを尊重)
この2つのメトリックを使用して、このブログ投稿でHugging Face Infinityをさまざまなセットアップでベンチマークします。これにより、利点とトレードオフを理解することができます。
結果
ベンチマークを実行するために、EC2 C6iインスタンス(アイスレイク)用のInfinityコンテナを作成し、Infinity Multiverseを使用してシーケンス分類用にDistilBERTモデルを最適化しました。
このアイスレイク最適化されたInfinityコンテナは、既存のカスケードレイクベースのインスタンスと比較して、レイテンシーおよびスループットが最大34%向上し、アイスレイク上で実行されるバニラトランスフォーマーよりも最大800%のレイテンシーおよびスループットが向上します。
私たちが作成したベンチマークには、192種類の異なる実験と設定が含まれています。以下の実験を実施しました:
- 物理CPUコア:1、2、4、8
- シーケンスの長さ:8、16、32、64、128、256、384、512
- バッチサイズ:1、2、4、8、16、32
各実験では以下の数字を収集しました:
- スループット(リクエスト数/秒)
- レイテンシ(最小、最大、平均、p90、p95、p99)
ベンチマークの詳細なデータは、以下のGoogleスプレッドシートで確認できます: 🤗 インフィニティ:CPU Ice-Lake ベンチマーク。
このブログ記事では、ベンチマークの最良のレイテンシとスループットの設定を含むいくつかの結果を強調します。
さらに、ベンチマークで使用したDistilBERTモデルをAPIエンドポイントとして2つの物理コアに展開しました。Infinityのパフォーマンスをテストして体感することができます。以下に、ホストされたエンドポイントにリクエストを送信する方法を示すcurl
コマンドがあります。APIは、エンドツーエンドのパイプラインの所要時間が含まれるx-compute-time
HTTPヘッダを返します。
curl --request POST `-i` \
--url https://infinity.huggingface.co/cpu/distilbert-base-uncased-emotion \
--header 'Content-Type: application/json' \
--data '{"inputs":"I like you. I love you"}'
スループット
以下に、2つの物理コアでバッチサイズが1の状態でInfinityを実行した場合のスループットの比較結果が示されています。
図3. スループット:Infinity vs Transformers
レイテンシ
以下に、Hugging Face Infinityを2つの物理コアでバッチサイズ1で実行した実験のレイテンシ結果が示されています。p95、p99、またはp100(最大レイテンシ)の偏差が最小限であるInfinityの堅牢性と一定性が目立ちます。この結果は、ベンチマークの他の実験でも確認されています。
図4. レイテンシ(バッチサイズ1、物理コア2)
結論
この投稿では、Hugging Face Infinityが新しいIntel Ice Lake Xeon CPU上でどのように動作するかを示しました。Hugging Face InfinityをCPUで使用する際に期待できる結果を共有しました。また、レイテンシを最適化するための最適な構成とスループットを最大化するための最適な構成についても説明しました。
Hugging Face Infinityは、バニラトランスフォーマーよりも最大800%の高いスループットを提供し、シーケンス長が64トークンまでの場合には1〜4ミリ秒のレイテンシを実現できます。
トランスフォーマーモデルをスループット、レイテンシ、または両方の最適化する柔軟性により、ビジネスは同じワークロードのインフラストラクチャコストを削減するか、以前は不可能だったリアルタイムのユースケースを可能にすることができます。
Hugging Face Infinityを試してみたい場合は、hf.co/infinity-trialでトライアルにサインアップしてください。
リソース
- Hugging Face Infinity
- Hugging Face Infinity Trial
- Amazon EC2 C6iインスタンス
- DistilBERT
- DistilBERT論文
- DistilBERTモデル
- 🤗 インフィニティ:CPU Ice-Lake ベンチマーク
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles