大規模言語モデル (LLM) のサイズが大きくなるにつれて、これらのモデルを本番環境で推論に導入して使用することがますます困難になります。これらの課題に対応するために、ハードウェアとソフトウェアの両方で複数の革新が行われてきました。 以下では、これらの課題を効果的に克服する方法について説明します。 BLOOMZについてBLOOM [3]は、テキストシーケンスを生成するために訓練できる1760億のパラメータを持つ自己回帰モデルです。 46言語、13プログラミング言語に対応しています。 BigScience [4]イニシアチブによるオープンサイエンスプロジェクトとして、BLOOMの設計とトレーニングには世界中の多くの研究者やエンジニアが参加しました。 BLOOMZ [5]は、BLOOMと同じアーキテクチャを持つ最近リリースされたモデルです。これは、より優れた一般化とゼロショット[6]機能を備えた、複数のタスクに対するBLOOMの微調整バージョンです。 トレーニング[7]でも推論[8]のシナリオでも、このような大規模なモデルはメモリと速度に新たな課題をもたらします。 16 ビットの精度を使用した場合でも、1 つのインスタンスに必要なメモリは 352 GB にもなります。このような大容量メモリを搭載したデバイスは現在では見つけるのが難しいかもしれませんが、Habana ® Gaudi ® 2 のような高度なハードウェアがあれば、BLOOM および BLOOMZ モデルは低レイテンシで推論を実行するのに十分です。 ハバナ®ガウディ® 2Gaudi ® 2 は、Habana Labs が設計した第 2 世代の AI ハードウェア アクセラレータです。 1 台のサーバーには 8 枚のアクセラレータ カード(Habana Processing Unit、または HPU と呼ばれる)が搭載されており、それぞれ最大 96 GB のメモリを搭載しているため、大規模なモデルを収容するのに十分なスペースが確保されています。 ただし、計算が遅い場合、大規模なモデルに大きなメモリを用意しても意味がありません。幸いなことに、Gaudi ® 2 の計算速度も非常に優れています。 Gaudi ® 2 と GPU の主な違いは、そのアーキテクチャによりアクセラレータが一般的な行列乗算(GeMM)とその他の演算を並列に実行できるようになり、ディープラーニング ワークフローが高速化される点です。これらの機能により、Gaudi ® 2 は LLM のトレーニングと推論に最適な選択肢となります。 Habana の SDK SynapseAI TM は、PyTorch と DeepSpeed の使用をサポートし、LLM のトレーニングと推論を高速化します。 SynapseAIグラフコンパイラ[9]は、グラフに蓄積された操作(演算子の融合、データレイアウト管理、並列化、パイプライン化、メモリ管理、グラフの最適化など)の実行を最適化します。 さらに、SynapseAIは最近、HPU Graph [10]とDeepSpeed-inference [11]のサポートを導入しました。どちらもレイテンシに敏感なアプリケーションに適しています(以下のベンチマークを参照) 。 上記の機能はすべてOptimum Habana [12]ライブラリに統合されているため、 Gaudi®へのモデルの展開は非常に簡単です。 クイック スタート ページを表示するには、このリンク https://huggingface.co/docs/optimum/habana/quickstart にアクセスしてください。 Gaudi ® 2を試すには、 Intel® Developer Cloud [13]にログインし、このガイド[14]に従ってください。 ベンチマークこのセクションでは、Gaudi ® 2 および第 1 世代 Gaudi ®における BLOOMZ のベンチマーク結果を示します。 Gaudi ® 2 および初代 Gaudi ®はメモリ容量が大きいものの、モデルのサイズが大きいため、単一の BLOOMZ インスタンスを単一のデバイスに収容することはできません。 この問題を解決するために、本論文ではディープラーニング最適化ライブラリDeepSpeed [15]を使用してさまざまなメモリと速度の最適化を実装し、モデル推論を高速化し、モデルをデバイスに適応させます。 私たちのアプローチはDeepSpeed推論[16]に依存しており、利用可能なデバイスを最大限に活用するためにモデル(またはパイプライン)並列性[17]などのいくつかの機能を導入しています。 Gaudi®2では、HPUサポートを追加したHabanaのDeepSpeed [18]ブランチが使用されました。 レイテンシーこの論文では、スケールは異なるが数十億のパラメータ(バッチサイズは 1 サンプル)を持つ 2 つの BLOOMZ モデルに基づいて実験テストを実施します。2 つのモデルのパラメータ サイズは次のとおりです。
この記事では、DeepSpeed-inference を使用して、8 台のデバイスで 16 ビット精度の推論を実行し、キー値キャッシュを使用します。 CUDA Graphは現在DeepSpeed (DeepSpeed v0.8.2、記事の最後を参照[21] )のモデル並列処理と互換性がありませんが、HabanaのDeepSpeedブランチはHPU Graphをサポートしていることは注目に値します。 すべてのベンチマークでは貪欲探索[22]を使用して100個のトークンを生成します。入力プロンプトは次のとおりです。
BLOOM トークナイザーはプロンプトを 7 つのトークンに分割します。 推論遅延テストの結果は次の図に示されています(秒単位) 。 △ 図1. Gaudi ® 2と第一世代Gaudi ®におけるBLOOMZ推論レイテンシテスト結果Habana チームは最近、SynapseAI 1.8 に DeepSpeed 推論サポートを導入しました。これにより、1,000 億を超えるパラメータを持つモデルの推論を迅速に実行できるようになります。 図 1 のテスト結果によると、1,760 億のパラメータを持つ BLOOMZ モデルの場合、Gaudi ® 2 はレイテンシがわずか約 3.7 秒と優れたパフォーマンスを発揮します。70 億のパラメータを持つより小型の BLOOMZ-7B モデルの場合、Gaudi ® 2 のレイテンシの利点はさらに顕著で、単一のデバイスでは第 1 世代の Gaudi ®の約 37.21% であり、デバイスの数が 8 に増えると、この割合はさらに約 24.33% に低下します。 Habana チームは、SynapseAI の今後のリリースでもこれらのモデルのパフォーマンスを最適化し続けます。例えば、SynapseAI 1.9 のプレビュー版では、BLOOMZ-176B のレイテンシが 3.7 秒から 3.5 秒にさらに短縮されました。 完全なデータセットで推論を実行する私たちが書いたスクリプトにより、モデルは完全なデータセット上のすべての文の推論を完了できるようになります。これは、独自のデータセットで Gaudi ® 2 を使用して BLOOMZ 推論を試してみたい場合に特に便利です。 ここでは、tldr_news データセットを例に挙げます。データセットには、複数の記事のタイトルと内容が含まれています(すべてHugging Face Hubで視覚化できます) 。最初のいくつかのサンプルを以下に示します。 次のセクションでは、このスクリプトを使用してベンチマークを実行する方法と、Hugging Face Hub の任意のデータセットにこのスクリプトを適用する方法を説明します。 これらの結果を再現するにはどうすればいいでしょうか?Gaudi®2と第一世代Gaudi®上でBLOOMZをベンチマークするスクリプトについては、記事末尾の[23]を参照してください。 上記のスクリプトを実行する前に、Habana [24]の指示に従って、SynapseAIとGaudi®ドライバーの最新バージョンがインストールされていることを確認してください。 次に、次のコマンドを実行します。 最後に、次のようにスクリプトを実行します。 マルチノード推論については、Optimum Habanaのドキュメント[25]のガイドラインを確認して従ってください。 パラメータ --dataset_name my_dataset_name を使用して、Hugging Face Hub から任意のデータセットを読み込み、テキスト生成のヒントを取得します。 このベンチマークは、ソースからインストールされた Transformers v4.27.1、SynapseAI v1.8.0、および Optimum Habana に基づいています。 GPUの場合、このリポジトリ[26]には、この論文[27]で前述したテスト結果を再現するために使用できるスクリプトが含まれています。 CUDA Graph を使用するには静的シェイプが必須条件ですが、Transformers は静的シェイプをサポートしていません。したがって、静的シェイプを有効にするには、Habanaチーム[28]によって書かれたコードを使用する必要があります。 結論はこの記事からわかるように、 Habana®Gaudi®2はBLOOMZ推論を実行する際に優れた速度上の利点があり、複雑なスクリプトを書く必要がありません。これは、Optimum Habana [29]がHPU上で実行される10億パラメータモデルの推論をサポートする使いやすいツールを提供しているためです。 Habana の SynapseAI SDK は、今後のバージョンでさらにパフォーマンスが向上します。 SynapseAI での大規模言語モデル推論の最適化が進むにつれて、このベンチマークも定期的に更新される予定です。また、Gaudi ® 2 が FP8 推論にさらなるパフォーマンス上の利点をもたらすことを期待しています。 最新のAIハードウェアアクセラレータとソフトウェアライブラリを使用して機械学習のトレーニングと推論ワークフローを加速することに興味がある場合は、Hugging Faceのエキスパートアクセラレーションプログラム[30]をチェックしてください。 Habanaのソリューションの詳細については、HabanaとHugging Faceのパートナーシップ[31]を読んで、Habanaに連絡してください[32] 。 Hugging FaceがAIハードウェアアクセラレータをより利用しやすくする方法の詳細については、Hugging Faceのハードウェアパートナープログラム[33]をご覧ください。 Intel Lab の認知 AI チームの研究科学者である Philip Howard 氏と Anahita Bhiwandiwalla 氏も、Gaudi ® 2 と BLOOMZ の関連テストを紹介しました。 BLOOMZなどの大規模言語モデルをGaudi®2に簡単に導入する方法については、ビデオ[34]をご覧ください。 [1] https://huggingface.co/blog/habana-gaudi-2-bloom [2] https://habana.ai/products/gaudi2/ [3] https://arxiv.org/abs/2211.05100 [4] https://bigscience.huggingface.co/ [5] https://arxiv.org/abs/2211.01786 [6] 「ゼロショット」とは、新しいまたは準備されていない入力データ(つまり、トレーニング例が提供されていないデータ)に基づいてタスクを完了するモデルの能力を指します。私たちは、自然言語で記述されたヒントと指示(つまり、モデルに何を実行させたいか)をモデルに提供します。ゼロショット分類には、達成されるタスクに関連する例は含まれません。これらのタスクは特定のタスクの 1 つ以上の例で構成されるため、ワンショット分類や少数ショット分類とは区別されます。 [7] https://huggingface.co/blog/bloom-megatron-deepspeed [8] https://huggingface.co/blog/bloom-inference-optimization [9] https://docs.habana.ai/en/latest/Gaudi_Overview/SynapseAI_Software_Suite.html#グラフコンパイラとランタイム [10] https://docs.habana.ai/en/latest/PyTorch/Inference_on_PyTorch/Inference_Using_HPU_Graphs.html [11] https://docs.habana.ai/en/latest/PyTorch/DeepSpeed/Inference_Using_DeepSpeed.html [12] https://github.com/huggingface/optimum-habana [13] https://huggingface.co/docs/optimum/habana/quickstart [14] https://huggingface.co/blog/habana-gaudi-2-benchmark#how-to-get-access-to-gaudi2 [15] https://www.deepspeed.ai/ [16] https://arxiv.org/abs/2207.00032 [17] https://huggingface.co/blog/bloom-megatron-deepspeed#パイプライン並列 [18] https://github.com/HabanaAI/deepspeed [19] bigscience/bloomz · ハグフェイス [20] bigscience/bloomz-7b1 ハグフェイス [21] https://github.com/microsoft/DeepSpeed/blob/v0.8.2/deepspeed/inference/engine.py#L158 [22] https://huggingface.co/blog/how-to-generate#greedy-search [23] https://github.com/huggingface/optimum-habana/tree/main/examples/text-generation [24] https://docs.habana.ai/en/latest/インストールガイド/index.html [25] https://huggingface.co/docs/optimum/habana/usage_guides/multi_node_training [26] transformers-bloom-inference/bloom-inference-scripts メイン · huggingface/transformers-bloom-inference · GitHub [27]DeepSpeedとAccelerateによる驚くほど高速なBLOOM推論(huggingface.co) [28]モデルリファレンス/PyTorch/nlp/bloom 1.8.0 · HabanaAI/モデルリファレンス · GitHub [29] https://huggingface.co/docs/optimum/habana/index [30] https://huggingface.co/support [31] https://huggingface.co/hardware/habana [32] https://habana.ai/contact-us/ [33] https://huggingface.co/hardware [34] https://videos.sproutvideo.com/embed/799fd9b8141be0c6f0/79c248b5ecd76231?playerColor=0270c1&endFrame=posterFrame&autoplay=true&lightbox=true |
<<: 人工知能はドローンの将来にどのような影響を与えるのでしょうか?
>>: プロンプトの可能性を探り、ChatGPT スキルを向上させましょう
[[187530]]人工知能 (AI) がどのように未来を予測し、職場を変え、さらには雇用を生み出...
米国のセキュリティサービスプロバイダーRSAは昨日、同社が米国国家安全保障局(NSA)と協力して暗号...
以前、Googleとボストン大学の研究者は、DreamBoothと呼ばれる「パーソナライズされた」テ...
10 年前、ほとんどの人は、今日では現金やカードを持ち歩かずに携帯電話だけを持って街を歩き回り、買...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
OpenAIは今年初めにSoraを発表し、世界中に衝撃を与えた。数年前まではまだ、この大柄なモデル...
人工知能が人間の生活と市場に与える影響は計り知れません。世界経済統計によると、人工知能は2030年ま...
インターネット時代の恩恵が徐々に薄れていくにつれ、プレイヤーは次の発展のトレンドを求めて模索と実践を...
AI 競争が始まっており、世界中の企業が AI ベースのイノベーションにおける世界的優位性を求めて競...