🤗 APIのお客様のためにTransformerの推論を100倍高速化する方法
'🤗 APIのお客様向け、Transformerの推論を100倍高速化する方法'
🤗 トランスフォーマーは、データサイエンティストが世界中で利用するデフォルトのライブラリとなり、最新のNLPモデルを探索し、新しいNLP機能を構築するためのものです。5,000以上の事前学習済みモデルとファインチューニングモデルが250以上の言語で提供されており、どのフレームワークを使用していても簡単にアクセスできる、豊富なプレイグラウンドです。
🤗 トランスフォーマーでモデルを試すことは簡単ですが、これらの大規模なモデルをパフォーマンス最大化で本番環境に展開し、使用状況にスケーリングするアーキテクチャで管理することは、どの機械学習エンジニアにとっても困難なエンジニアリングの課題です。
この100倍のパフォーマンス向上と組み込みのスケーラビリティのために、私たちのホストされたアクセラレーテッドインフェランスAPIのサブスクライバーは、その上にNLP機能を構築することを選択しました。パフォーマンスを最後の10倍向上させるためには、最適化はモデルに特化し、ターゲットのハードウェアに特化して低レベルで行う必要があります。
この記事では、お客様のために計算リソースを最大限に活用するための私たちのアプローチの一部を共有します。🍋
- ZeROを使用して、DeepSpeedとFairScaleを介してより多くのフィットと高速なトレーニングを実現
- Hugging Face Transformersでより高速なTensorFlowモデル
- PyTorch / XLA TPUsでのHugging Face
最初の10倍のスピードアップへの取り組み
最初の最適化のステップは最もアクセスしやすく、ターゲットのハードウェアに依存しないHugging Faceライブラリが提供する最適な技術の組み合わせを使用することです。
Hugging Faceモデルパイプラインに組み込まれた最も効率的な方法を使用して、各フォワードパス中の計算量を減らします。これらの方法はモデルのアーキテクチャとターゲットのタスクに固有であり、例えばGPTアーキテクチャのテキスト生成タスクでは、各パスの最後のトークンの新しいアテンションに焦点を当てることでアテンション行列の次元削減を行います。
トークン化は推論中の効率性においてボトルネックとなることが多いです。私たちは🤗 Tokenizersライブラリから最も効率的な方法を使用し、モデルのトークナイザーのRust実装とスマートキャッシングを組み合わせて、全体のレイテンシーを10倍高速化します。
Hugging Faceライブラリの最新機能を活用することで、特定のモデル/ハードウェアのデフォルト展開に比べて確実な10倍のスピードアップを実現します。TransformersとTokenizersの新リリースは通常毎月提供されるため、APIのお客様は常に新しい最適化の機会に合わせる必要はありません。彼らのモデルは単により高速に実行され続けます。
コンパイルFTW: 難しい10倍のスピードアップ
ここからが本当に難しくなります。最高のパフォーマンスを得るためには、モデルを変更し、推論の特定のハードウェアをターゲットにしてコンパイルする必要があります。ハードウェアの選択そのものは、モデル(メモリサイズ)と需要プロファイル(リクエストのバッチ処理)に依存します。同じモデルから予測を提供する場合でも、一部のAPIのお客様はアクセラレートされたCPU推論から、他のお客様はアクセラレートされたGPU推論から、それぞれ異なる最適化技術とライブラリを適用することでより大きな恩恵を受けることがあります。
計算プラットフォームがユースケースに選択されたら、作業に取り掛かることができます。ここでは、静的グラフで適用できるいくつかのCPU固有のテクニックを示します:
- グラフの最適化(未使用のフローの削除)
- レイヤーのフュージョン(特定のCPU命令との組み合わせ)
- 演算の量子化
オープンソースライブラリ(例: 🤗 Transformers with ONNX Runtime)のデフォルトの関数を使用すると、最良の結果が得られない可能性がありますし、量子化中に精度の大幅な損失が発生することもあります。銀の弾丸はありませんし、最適なパスは各モデルアーキテクチャによって異なります。しかし、TransformersのコードとONNX Runtimeのドキュメントに深く入り込むことで、別の10倍のスピードアップを実現するための条件を整えることができます。
不公平な優位性
トランスフォーマーアーキテクチャは、機械学習のパフォーマンスにおける決定的な転換点であり、NLPを始めとする自然言語理解と生成の改善率は過去3年間で急速かつ加速しています。それに伴い加速した別の指標は、モデルの平均サイズです。BERTの1億10万のパラメータからGPT-3の1750億のパラメータにまで増加しました。
このトレンドは、最新のモデルを本番環境に展開する際に機械学習エンジニアにとって困難な課題をもたらしました。100倍のスピードアップは高いハードルですが、リアルタイムのコンシューマーアプリケーションで受け入れ可能なレイテンシーで予測を提供するためには、それが必要です。
Hugging Faceの機械学習エンジニアとして、私たちはまさに🤗 Transformersと🤗 Tokenizersのメンテナーたちと同じ(仮想)オフィスに座っているという不公平な優位性を持っています 😬。また、Intel、NVIDIA、Qualcomm、Amazon、Microsoftなどのハードウェアおよびクラウドベンダーとのオープンソースの協力関係により、最新のハードウェア最適化技術を用いてモデルとインフラストラクチャを調整することができる非常に幸運な立場にいます。
当社のインフラストラクチャで速度を感じたい場合は、無料トライアルを開始してお問い合わせください。自社インフラストラクチャで推論を最適化する経験から利益を得たい場合は、🤗 エキスパートアクセラレーションプログラムに参加してください。
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