1760億のパラメータを持つBLOOMZの推論、パフォーマンスレイテンシはわずか3.7秒

1760億のパラメータを持つBLOOMZの推論、パフォーマンスレイテンシはわずか3.7秒

大規模言語モデル (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 モデルは低レイテンシで推論を実行するのに十分です。

ハバナ®ガウディ® 2

Gaudi ® 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 つのモデルのパラメータ サイズは次のとおりです。

  • 1760億[19]パラメータ(BLOOMZ-176B)
  • 70億[20]のパラメータ(BLOOMZ-7B)

この記事では、DeepSpeed-inference を使用して、8 台のデバイスで 16 ビット精度の推論を実行し、キー値キャッシュを使用します。 CUDA Graphは現在DeepSpeed (DeepSpeed v0.8.2、記事の最後を参照[21]のモデル並列処理と互換性がありませんが、HabanaのDeepSpeedブランチはHPU Graphをサポートしていることは注目に値します。

すべてのベンチマークでは貪欲探索[22]を使用して100個のトークンを生成します。入力プロンプトは次のとおりです。

DeepSpeedは機械学習フレームワークです

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で視覚化できます) 。最初のいくつかのサンプルを以下に示します。

 Input: 'Businesses Will Not Be Able to Hide': Spy Satellites May Give Edge From Above ; Output: 'Businesses Will Not Be Able to Hide': Spy Satellites to Track Illegal Logging in Indonesia The Indonesian government has announced that it will use spy satellites to track illegal logging in the country. Input: Alphabet and SoftBank's solar-powered drone provides first LTE connection ; Output: Alphabet and SoftBank's solar-powered drone provides first LTE connection connection from the stratosphere. The drone, which is about the size of a small car, is equipped with a solar panel and can fly for up Input: SQLFlow (GitHub Repo); Output: SQLFlow (GitHub Repo): https://github.com/davidfowl/SQLFlow The code is written in Java and is available on GitHub. It is a simple, lightweight Input: Secret to keeping ice cream creamy (not crunchy); Output: Secret to keeping ice cream creamy (not crunchy) is to freeze it in a container that is airtight. Input: Tesla's giant battery saved $40 million during its first year, report says ; Output: Tesla's giant battery saved $40 million during its first year, report says Tesla's giant battery saved $40 million during its first year, report says Tesla's giant battery saved $40 million during its first year, Input: Python 3.9: Cool New Features for You to Try (28 minute read); Output: Python 3.9: Cool New Features for You to Try (28 minute read): This is a great article for those Input: A company aims to power the world for millions of years by digging the deepest holes ever ; Output: A company aims to power the world for millions of years by digging the deepest hole ever made in Input: In Nevada desert, a technology firm aims to be a government ; Output: In Nevada desert, a technology firm aims to be a government Introduction The use of the Internet has become a common practice in the daily life of people. The Internet has become△若代码显示不全,请左右滑动

次のセクションでは、このスクリプトを使用してベンチマークを実行する方法と、Hugging Face Hub の任意のデータセットにこのスクリプトを適用する方法を説明します。

これらの結果を再現するにはどうすればいいでしょうか?

Gaudi®2と第一世代Gaudi®上でBLOOMZをベンチマークするスクリプトについては、記事末尾の[23]を参照してください。

上記のスクリプトを実行する前に、Habana [24]の指示に従って、SynapseAIとGaudi®ドライバーの最新バージョンがインストールされていることを確認してください。

次に、次のコマンドを実行します。

 git clone https://github.com/huggingface/optimum-habana.git cd optimum-habana && pip install . && cd examples/text-generation pip install git+https://github.com/HabanaAI/[email protected]△若代码显示不全,请左右滑动

最後に、次のようにスクリプトを実行します。

 git clone https://github.com/huggingface/optimum-habana.git cd optimum-habana && pip install . && cd examples/text-generation pip install git+https://github.com/HabanaAI/[email protected]△若代码显示不全,请左右滑动

マルチノード推論については、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®2BLOOMZ推論を実行する際に優れた速度上の利点があり、複雑なスクリプトを書く必要がありません。これは、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 スキルを向上させましょう

ブログ    
ブログ    
ブログ    

推薦する

ついに! SM2 国家暗号アルゴリズムが Linux カーネル コミュニティに承認されました

背景Guomi は国家商用暗号化の略称です。アルゴリズム標準は国家暗号管理局によって策定され、多数の...

機械学習の仕組み

機械学習は、データセットに基づいて予測モデルを構築し、重要な意思決定に使用できる有用な回答を提供する...

機械学習システムの弱点: 保護が必要な 5 つの理由

[[345683]]日々の努力の究極の目的は、生活をより楽に、より便利にすることです。これが人類の歴...

人工知能とIoTがガソリン小売業界を変革

ネットワークは常に企業の神経系であり、ビジネス プロセスとトランザクションはネットワークを通じてのみ...

...

制御核融合における新たなマイルストーン! AIがプラズマの裂け目を予測することに成功し、ネイチャー誌に掲載され、クリーンエネルギーの「聖杯」に一歩近づいた。

制御された核融合に新たな進歩がありました!核融合は長い間、プラズマ不安定性の問題という「幽霊」に悩ま...

エントリーレベルのデータベースアルゴリズム [パート 2]

前回の記事「エントリーレベルのデータベースのアルゴリズム [I]」では、いくつかのデータ アルゴリズ...

人工知能では顔と性格の違いは分からない

中国の研究チームは、女性の外見だけに基づいてその性格特性を予測できる人工知能プログラムを立ち上げたと...

ChatGPTに「カスタムコマンド」機能が追加されました

海外メディアの報道によると、7月21日、OpenAIはユーザーにChatGPTの応答に対する強化され...

アヴネットは18年連続で「トップ10ベスト国際ブランドディストリビューター」の称号を獲得しました。

[[284150]] 深圳でグローバル電子部品販売代理店優秀賞授賞式が開催されました。アヴネット中...

人工知能プログラミングは、人間がよりインテリジェントな機械を作成するのに役立ちますか?

テクノロジーが急速に進歩するにつれ、人工知能プログラミングはますます成熟しつつあります。その開発は、...

...

C++ の巨匠、ジョン・カーマック氏: 心配しないでください、私は汎用 AI に取り組むつもりです!

本日、VRの第一人者でありOculusのCTOであるジョン・カーマック氏はFacebookにメッセー...

ビッグニュース!人工知能における新たなブレークスルー! Google ストリートビューを使って住民の投票傾向を調べてみましょう。

研究者は、新たに開発された人工知能技術の助けを借りて、大量の画像を分析し、分類およびマイニング可能な...

音声認識、マッチングアルゴリズム、モデルに関する簡単な説明

[[185868]]スピーチの基本概念スピーチは複雑な現象です。それがどのように生成され、どのように...