Generative AI

NVIDIA TensorRT-LLM が NVIDIA H100 GPU 上で大規模言語モデル推論をさらに強化

Reading Time: 3 minutes

大規模言語モデルは驚くべき新機能を提供し、AI で実現できる領域を拡大しています。しかし、その大きなサイズと特有の実行特性は、費用対効果の高い方法で使用することを困難にすることがあります。

NVIDIA は、MetaAnyScaleCohereDeciGrammarlyMistral AIMosaicML (現在は Databricks の一部)、OctoMLServiceNowTabnineTogether AIUber などの主要な企業と緊密に協力し、LLM の推論の高速化と最適化に取り組んできました。

これらのイノベーションは、オープンソースの NVIDIA TensorRT-LLM ソフトウェアに統合され、Ampere、Lovelace、Hopper GPU に対応し、数週間以内にリリースされる予定です。TensorRT-LLM は、TensorRT ディープラーニング コンパイラで構成され、NVIDIA GPU 上で画期的なパフォーマンスを発揮するために最適化されたカーネル、プリ ポスト処理ステップ、およびマルチ GPU/マルチノードの通信プリミティブが含まれています。開発者は、C++ や NVIDIA CUDA の深い知識を必要とすることなく、最高のパフォーマンスと迅速なカスタマイズ機能を提供する新しい LLM を試すことができます。

TensorRT-LLM は、オープンソースのモジュラー Python API によって使いやすさと拡張性を向上させ、LLM の進化に合わせて新しいアーキテクチャと拡張機能を定義、最適化、実行し、簡単にカスタマイズすることができます。

例えば、MosaicML は、TensorRT-LLM の上に必要な特定の機能をシームレスに追加し、推論サービスに統合しました。Databricks のエンジニアリング担当バイス プレジデントである Naveen Rao 氏は次のように述べました。「それはまったく簡単なことでした」

「TensorRT-LLM は使いやすく、トークンのストリーミング、インフライト バッチング、ページ アテンション、量子化などの機能が満載で、効率的です。TensorRT-LLM は、NVIDIA GPU を使用した LLM のサービスに最先端のパフォーマンスを提供し、コスト削減を顧客に還元できるようになります」

性能比較

記事の要約は、LLM の多くのアプリケーションの 1 つに過ぎません。以下のベンチマークは、最新の NVIDIA Hopper アーキテクチャ上で TensorRT-LLM によってもたらされるパフォーマンスの向上を示しています。

以下の図は、NVIDIA A100 と NVIDIA H100 を使用し、要約性能の評価用データセットとしてよく知られている CNN/Daily Mail を用いた記事要約のパフォーマンスを表したものです。

図 1 では、H100 のみの場合は、A100 より 4 倍高速です。TensorRT-LLM とインフライト バッチングを含むその利点が加わると、パフォーマンスは合計で 8 倍に向上し、最高のスループットを実現します。

図1. GPT-J-6B、A100 と H100 の TensorRT-LLM の有無による比較

テキスト要約、可変 I/O 長、CNN / DailyMail データセット | A100 FP16 PyTorch Eager モード | H100 FP8 | H100 FP8、インフライト バッチング、TensorRT-LLM

Llama 2 は、Meta が最近リリースした言語モデルであり、生成 AI の導入を検討している企業で広く使用されています。TensorRT-LLM は A100 GPU と比較して推論性能を 4.6 倍高速化できます。

図 2. Llama 2 70B、A100 と H100 の TensorRT-LLM の有無による比較

テキスト要約、可変 I/O 長、CNN / DailyMail データセット | A100 FP16 PyTorch Eager モード | H100 FP8 | H100 FP8、インフライト バッチング、TensorRT-LLM

TCO とエネルギー効率の改善

データセンターにおける総所有コスト (TCO) とエネルギー消費の最小化は、AI を採用する顧客にとって重要な目標であり、特に LLM は計算要件が爆発的に増加するため、その重要性が増しています。顧客は、AI プラットフォームへの支出に関して、単一のサーバーのコストだけを見るわけではありません。むしろ、設備投資コストと運用コストを総合的に見なければなりません。

設備投資コストには、GPU サーバー、管理ヘッド ノード (すべての GPU サーバーを調整する CPU サーバー)、ネットワーク機器 (ファブリック、イーサネット、ケーブル配線)、ストレージのコストが含まれます。運用コストには、データセンターの IT スタッフやソフトウェア、機器のメンテナンス、データセンターの賃料や電気代などが含まれます。データセンターで発生する実際のコストを全体的なレベルで見ると、大幅なパフォーマンスの高速化により、設備とメンテナンスの要件が削減され、資本と運用コストの大幅な節約につながります。

以下のチャートは、GPT-J 6B のような小規模な言語モデルで 8 倍の性能高速化を実現した場合、ベースラインの A100 と比較して TCO が 5.3 倍、エネルギー (電気代節約) が 5.6 倍削減されることを示しています。

図3. TCO とエネルギー コストの利点を示す TensorRT-LLM を使用した H100 と A100 の比較。

同様に、Llama2 のような最先端の LLM では、700 億のパラメータを使用した場合でも、ベースラインの A100 に対して 4.6 倍の性能高速化を実現し、TCO を 3 倍、消費エネルギーを 3.2 倍削減することができます。

図4. A100 と TensorRT-LLM を使用した H100 による TCO およびエネルギー コストの利点の比較。

上記の TCO に加え、ソフトウェア開発には多額の人件費がかかり、これはインフラストラクチャのコストそのものを容易に上回る可能性があります。NVIDIA が TensorRT、TensortRT-LLM、Triton Inference Server、および NeMo フレームワークに対して行った投資は、開発者の時間を大幅に節約し、市場投入までの時間を短縮します。顧客は、全体の AI 支出を正確に把握するために、資本コストや運用コストを容易に上回る可能性のある、これらの人件費を考慮する必要があります。

LLM エコシステムの急増

エコシステムは急速に革新し、新しく多様なモデル アーキテクチャを開発しています。より大規模なモデルは、新たな能力とユースケースを解き放ちます。Meta の 700 億パラメータを持つ Llama 2 のような、最大かつ最先端の言語モデルの中には、リアルタイムで応答を返すために、複数の GPU が協調して動作する必要があるものもあります。以前は、LLM の推論で最高のパフォーマンスを達成しようとする開発者は、AI モデルを書き直して手作業で断片に分割し、複数の GPU 間で実行を調整する必要がありました。

TensorRT-LLM は、個々の重み行列をデバイス間で分割するモデル並列の一種であるテンソル並列を使用します。これにより、開発者が介入したりモデルを変更することなく、NVLink を介して接続された複数の GPU や複数のサーバーで各モデルが並列に実行され、大規模で効率的な推論が可能になります。

新しいモデルやモデルアーキテクチャが導入されると、開発者は、TensorRT-LLM でオープンソースとして利用可能な最新の NVIDIA AI カーネルを使用してモデルを最適化することができます。サポートされるカーネル融合には、GPT モデル実行のコンテキストと生成フェーズ用の FlashAttention とマスクド マルチ ヘッド アテンションの最先端の実装など多くのものが含まれています。

さらに、TensorRT-LLM には、現在実運用で広く使用されている多くの LLM の完全に最適化された、すぐに実行できるバージョンが含まれています。これには、Meta Llama 2、OpenAI GPT-2 と GPT-3、Falcon、Mosaic MPT、BLOOM、その他多くの LLM が含まれており、これらはすべて、使いやすい TensorRT-LLM Python API で実装できます。

これらの機能により、開発者はカスタマイズされた LLM をより高速にかつ正確に作成し、事実上あらゆる業界のニーズに応えることができます。

インフライト バッチング

今日の大規模言語モデルは、非常に汎用性が高いです。1 つのモデルを、互いに全く異なる様々なタスクに同時に使用することができます。チャットボットでの単純な質疑応答から、文書の要約や長いコードの生成まで、ワークロードは非常に動的で、出力サイズは数桁異なります。

この多様性により、リクエストをバッチ処理し、効率的に並列実行することが難しくなることがあります。これはニューラルネットワークを提供するための一般的な最適化ですが、一部のリクエストが他のリクエストよりもはるかに早く終了してしまう可能性があります。

このような動的な負荷を管理するために、TensorRT-LLM には、インフライト バッチングと呼ばれる最適化されたスケジューリング テクノロジを備えています。これは、LLM の全体的なテキスト生成プロセスが、モデル上で実行される複数の反復に分割できるという事実を利用します。

インフライト バッチングでは、バッチ全体が終了するのを待ってから次のリクエスト セットに移るのではなく、TensorRT-LLM ランタイムは、終了したシーケンスをバッチから即座に追い出します。そして、他のリクエストがまだ処理中に、新しいリクエストの実行を開始します。インフライト バッチングと追加のカーネル レベルの最適化により、GPU 使用率が向上し、H100 Tensor コア GPU 上の実際の LLM リクエストのベンチマークでスループットが最低でも 2 倍になり、電力コストを削減し、TCO を最小化するのに役立ちます。

H100 Transformer Engine と FP8

LLM には何十億ものモデルの重みと活性化が含まれており、通常、各値が 16 ビットのメモリを占有する 16 ビット浮動小数点 (FP16 または BF16) の値でトレーニング、表現されます。しかし推論時には、最新の量子化技術を使えば、ほとんどのモデルは 8 ビットや 4 ビット整数 (INT8 や INT4) のような低い精度で効率的に表現できます。

量子化とは、正確度を犠牲にすることなく、モデルの重みと活性化の精度を下げるプロセスです。精度を下げるということは、各パラメータが小さくなり、モデルが GPU メモリに占めるスペースが小さくなることを意味します。これにより、同じハードウェアでより大きなモデルの推論が可能になると同時に、実行中のメモリ操作に費やす時間を減らすことができます。

TensorRT-LLM を使用した NVIDIA H100 GPU は、モデルの重みを新しい FP8 フォーマットに簡単に変換し、最適化された FP8 カーネルを利用するためにモデルを自動的にコンパイルする機能を提供します。これは、Hopper Transformer Engine テクノロジによって可能になり、モデル コードを変更することなく実行できます。

H100 で導入された FP8 データ フォーマットにより、開発者はモデルの正確度を落とすことなくモデルを量子化し、メモリ消費量を根本的に削減することができます。FP8 量子化は、INT8 や INT4 のような他のデータ フォーマットと比較して高い正確度を維持しながら、最速のパフォーマンスを達成し、最もシンプルな実装を提供します。

概要

LLM は急速に進歩しています。多様なモデル アーキテクチャが日々開発され、成長するエコシステムに貢献しています。そして、より大規模なモデルは、新たな機能とユースケースを解放し、あらゆる産業での採用を促進しています。

LLM の推論はデータセンターを再構築しています。より高い正確度でより高いパフォーマンスを実現することは、企業にとってより良い TCO をもたらします。モデルの革新は、より良い顧客体験を可能にし、収益と利益の向上につながります。

推論展開プロジェクトを計画する際、最先端の LLM を使って最高のパフォーマンスを達成するためには、他にも多くの考慮すべき事項があります。最適化が自動的に行われることは稀です。ユーザーは、並列性、エンドツーエンドのパイプライン、高度なスケジューリング テクノロジなどの調整要素を考慮しなければなりません。また、正確度を落とすことなく混合精度を扱えるコンピューティング プラットフォームが必要です。

TensorRT-LLM は、TensorRT のディープラーニング コンパイラ、最適化されたカーネル、プリ ポスト処理、マルチ GPU/マルチノード通信で構成され、シンプルでオープンソースの Python API で、実運用での推論のために LLM を定義、最適化、実行することができます。

TensorRT-LLM の使用方法

NVIDIA TensorRT-LLM は現在、早期アクセスで利用可能となっており、間もなく NVIDIA NeMo フレームワーク (セキュリティ、安定性、管理性、サポートを備えたエンタープライズ グレードの AI ソフトウェア プラットフォームである NVIDIA AI Enterprise の一部) に統合されます。開発者や研究者は、NGC の NeMo フレームワークまたは GitHub のソース リポジトリから TensorRT-LLM にアクセスできるようになります。

早期アクセス リリースに参加するには、NVIDIA Developer Program への登録が必要です。また、組織のメール アドレスを使用してログインする必要があります。Gmail、Yahoo、QQ などの個人的なメール アカウントからの申請は受け付けられません。

参加するには、簡単な申し込みフォームに必要事項を記入し、ユースケースの詳細を記入してください。

Tags