大型モデルを実行するカード、パフォーマンスは4090の80%に達し、価格は半分だけ:陳天奇TVMチームが制作

大型モデルを実行するカード、パフォーマンスは4090の80%に達し、価格は半分だけ:陳天奇TVMチームが制作

最近、テクノロジー分野の多くの人々がコンピューティング能力について懸念しています。

OpenAI CEO アルトマン氏:私は一日中失敗について考えています。

事前トレーニング済みの大規模モデルの登場以来、人々が直面するコンピューティングの課題はますます大きくなっています。このため、大規模言語モデル (LLM) 向けのトレーニングおよび推論ソリューションが数多く提案されてきました。明らかに、ほとんどの高性能推論ソリューションは CUDA に基づいており、NVIDIA GPU 用に最適化されています。

しかし、多くの場合、数千億のパラメータを持つモデル、複数のテクノロジー企業による激しい競争、そして単一のサプライヤーの共同の取り組みにより、GPU を獲得することは困難になっています。

最近、MicrosoftやOpenAIなどの企業は、AIタスクに使用されるH100およびA100専用GPUの不足を緩和するために必要な対策を講じていると発表しました。 Microsoft は従業員の GPU へのアクセスを制限しており、Quora の CEO はハードウェア不足により AI アプリケーションの真の可能性が見えにくくなっていると述べています。イーロン・マスク氏はまた、エンタープライズグレードの GPU は薬を買うよりも入手が難しいと冗談を言った。

マスク氏は、GPT-5のトレーニングには約3万~5万台のH100が必要になると予測している。

Nvidiaの株価が上昇し、生産計画の変更を余儀なくされたことに加え、強い需要により人々は他の選択肢を探さざるを得なくなった。良いニュースは、グラフィックチップ市場ではNvidiaが唯一の企業ではないということです。

昨日、カーネギーメロン大学の博士課程の学生であるBohan Hou氏が、AMDグラフィックカードを使用して大規模モデル推論を行うための新しいソリューションを発表し、機械学習コミュニティの注目を集めました。

CMU では、Hou Bohan のメンターは TVM、MXNET、XGBoost の作者である Chen Tianqi です。この新たな実践について、陳天奇氏は、AIハードウェア不足の解決策は依然としてソフトウェアにあると述べ、高性能で普遍的に展開可能なオープンソースの大規模モデルを導入したいと語った。

Zhihu では、著者は高性能 LLM 推論の実現について詳細に紹介しています。

この最適化方法により、最新の Llama2 7B および 13B モデルで AMD Radeon RX 7900 XTX を使用すると、速度は Nvidia の RTX 4090 の 80%、または 3090Ti の 94% に達することができます。

ROCm に加えて、この Vulkan サポートにより、AMD APU を搭載した SteamDeck など、他の AMD チップ タイプに大規模モデルの展開を拡張することもできます。

スペックをざっと比較してみると、AMD の RX 7900 XTX は、Nvidia の RTX 4090 や RTX 3090 Ti と同クラスであることがわかります。

どちらも 24GB のビデオ メモリを搭載しているため、同じサイズのモデルに対応でき、メモリ帯域幅も同様です。


しかし、計算能力の面では、RTX 4090 の FP16 パフォーマンスは 7900 XTX の 2 倍であり、3090 Ti の FP16 パフォーマンスは 7900 XTX の 1.3 倍です。レイテンシに敏感な大規模モデルの推論のみを考慮すると、そのパフォーマンスは主にメモリによって制限されるため、FP16 パフォーマンスはここではボトルネックにはなりません。

価格面では、RX 7900 XTX は RTX 4090 よりも 40% 以上安くなっています (JD.com では 50% も安くなっています)。コンシューマー分野では、前者は RTX 4080 とほぼ同等です。

3090Ti は、結局のところ前世代の製品なので、価格を比較するのは難しいです。しかし、純粋なハードウェア仕様の観点から見ると、AMD 7900 XTX は RTX 3090 Ti と同等であるように見えます。

AMD が長い間機械学習で遅れをとっていた理由は、必ずしもハードウェア レベルでの計算能力ではないことはわかっています。主なギャップは、関連モデルのソフトウェア サポートと最適化の欠如にあります。生態学的観点から見ると、現状を変え始めている要因が 2 つあります。

  • AMD は、ROCm プラットフォームへの投資を増やすために懸命に取り組んでいます。
  • 機械学習コンパイルなどの新しいテクノロジーは、バックエンド全体にわたるより普遍的なソフトウェア サポートの全体的なコストの削減に役立っています。

研究者らは、AMD GPU アーキテクチャが、現在一般的な NVIDIA GPU で利用可能な高性能 CUDA ソリューションとどのように比較されるかについて詳細に議論しました。

ROCm を使用した機械学習用のコンパイル

機械学習コンパイル

機械学習コンパイルは、機械学習モデルをコンパイルして自動的に最適化するための新しいテクノロジーです。 MLC ソリューションは、各バックエンド (ROCm や CUDA など) に特定の演算子を記述する代わりに、さまざまなバックエンドで動作するコードを自動的に生成します。ここで著者らは、機械学習コンパイルベースのソリューションである MLC-LLM を活用して、LLM の高性能な汎用展開を提供します。 MLC-LLM は、効率的な Python ベースの開発とユニバーサルな展開を提供する機械学習コンパイル ソフトウェア スタックである Apache TVM Unity 上に構築されています。 MLC-LLM は、サーバークラスの GPU からモバイル デバイス (iPhone および Android) に至るまで、CUDA、Metal、ROCm、Vulkan、OpenCL などのさまざまなバックエンドに最先端のパフォーマンスを提供します。

全体として、MLC-LLM を使用すると、ユーザーは Python ベースのワークフローを使用してオープンソースの大規模言語モデルを取得し、計算グラフの変換、テンソル レイアウトの最適化、GPU 演算子のスケジュール設定を含めながらコンパイルし、対象のプラットフォームにローカルに展開することができます。

ROCm 用の機械学習コンパイル テクノロジー スタック。

AMD GPUおよびAPU向けMLC

機械学習に AMD カードの使用を検討する人は珍しくありません。AMD GPU をサポートするには、ROCm、OpenCL、Vulkan、WebGPU など、いくつかの技術的なルートがあります。 ROCm テクノロジー スタックは AMD が最近提供したもので、CUDA テクノロジー スタックと多くの類似点があります。 Vulkan は、さまざまな GPU デバイスを幅広くサポートする最新のグラフィック レンダリング標準です。 WebGPU は、Web ブラウザー上で計算を実行できるようにする最新の Web 標準です。

このように多くのルートが考えられますが、CUDA 以外のアプローチをサポートするソリューションはほとんどありません。その主な理由は、新しいハードウェアや GPU プログラミング モデル用にテクノロジ スタックを複製するためのエンジニアリング コストが法外に高いためです。 MLC-LLM は、各 GPU オペレーターごとに再カスタマイズする必要なく自動コード生成を可能にすることで、上記のすべてのアプローチをサポートします。ただし、最終的なパフォーマンスは、GPU ランタイムの品質と各プラットフォームでの可用性に依存します。

この場合、著者は、Radeon 7900 XTX に ROCm を選択し、Steamdeck の APU に Vulkan を選択し、ROCm テクノロジー スタックがすぐに使用できることを確認しました。 TVM unity の効率的な Python ベースの開発プロセスにより、ROCm のパフォーマンスをさらに最適化するために数時間が費やされました。具体的には、研究者は ROCm サポートを提供するために次の手順を実行しました。

  • メモリ計画、演算子の融合など、CUDA や Metal などの既存のバックエンドの MLC パイプライン全体を再利用します。
  • TVM TensorIRの一般的なGPU演算子最適化空間を再利用し、バックエンドとしてAMD GPUを選択します。
  • TVM の ROCm コード生成プロセスを再利用し、LLVM を通じて ROCm コードを生成します。
  • 最後に、生成されたコードは、CLI、Python、REST API から呼び出すことができる共有ライブラリまたは静的ライブラリとしてエクスポートされます。

MLC Python パッケージを使用したパフォーマンス テスト

著者らは、4 ビット量子化を使用して Llama 2 7B および 13B のパフォーマンス テストを実行しました。デコードのパフォーマンスは、プロンプトの長さを 1 トークンに設定し、512 トークンを生成することによって測定されます。すべての結果はバッチ サイズ = 1 でテストされます。

AMD RX 7900 XTX と NVIDIA RTX 4090 および 3090 Ti のパフォーマンス比較。

ROCm5.6 に基づくと、AMD 7900 XTX は NVIDIA 4090 の 80% の速度に達することができます。

CUDA パフォーマンスについて: ここでの CUDA ベースラインのパフォーマンスはどうでしょうか?私たちの知る限りでは、MLC-LLM は CUDA 上の大規模言語モデル推論に最適なソリューションです。しかし著者らは、例えば注意演算子の最適化の改善などにより、まだ改善の余地があると考えています。これらの最適化が MLC に実装されると、AMD と NVIDIA の両方の数値が向上すると予想されます。

これらの最適化が Nvidia カードのみに実装された場合、その差は 20% から 30% に拡大します。したがって、著者らは、これらの数値を見る際には 10% の誤差を許容することを推奨しています。

自分で試してみましょう

このプロジェクトでは、ユーザーが自分のデバイスで新しい結果を再現できるように、事前に構築されたインストール パッケージと手順を提供します。これらのパフォーマンス テストを実行するには、Linux に ROCm 5.6 以降を搭載した AMD GPU がインストールされていることを確認してください。 ROCm が有効になっているビルド済みの MLC パッケージをインストールするには、ここの手順に従ってください。

次の Python スクリプトを実行します。パフォーマンス データを再現するには MLC パッケージが必要です。

 from mlc_chat import ChatModule # Create a ChatModule instance that loads from `./dist/prebuilt/Llama-2-7b-chat-hf-q4f16_1`cm = ChatModule(model="Llama-2-7b-chat-hf-q4f16_1") # Run the benchmarksoutput = cm.benchmark_generate("Hi", generate_length=512) print(f"Generated text:\n{output}\n") print(f"Statistics: {cm.stats()}") # Reset the chat module by # cm.reset_chat()

MLC-LLM は、ユーザーがモデルと対話的にチャットできるコマンド ライン インターフェイス (CLI) も提供します。 ROCm の場合、CLI をソースからビルドする必要があります。ソースから CLI をビルドするには、ここの指示に従ってください。

統合メモリを使用して SteamDeck で Vulkan を実行する

筆者は、より幅広いAMDデバイス、具体的にはAMD APUを搭載したSteam Deckについても調査する予定だと述べた。 ROCm で使用可能な GPU VRAM は BIOS で 4GB に制限されていますが、Mesa Vulkan ドライバーは、統合メモリを使用してバッファーをその制限を超えて最大 16GB まで使用できる強力なサポートを備えており、4 ビット量子化 Llama-7B を実行するには十分です。

Steam Deck 上の大規模言語モデルとの対話。

これらの結果は、より多様なタイプの消費者をサポートするためのいくつかの示唆を提供します。

議論と今後の方向性

生成 AI の時代において、ハードウェアの可用性は対処が必要な差し迫った問題となっています。 ML コンパイルは、ハードウェア バックエンド全体にわたって高性能な共通デプロイメントを提供することで、ハードウェアの可用性を向上させることができます。

この論文で提示されたデータを考慮すると、適切な価格と入手可能性があれば、AMD GPU を LLM 推論に使用し始めることができると著者らは考えています。

Chen Tianqi 氏のチームでは現在、消費者向け GPU の研究に重点を置いています。著者らは、過去の経験に基づくと、コンシューマーグレードの GPU モデルに対する MLC 最適化は、通常、クラウド GPU に一般化できると述べています (たとえば、RTX 4090 から A100 および A10g まで)。彼らは、このソリューションがクラウドとコンシューマーグレードの AMD および NVIDIA GPU 間で普遍的であると確信しており、より多くの GPU にアクセスできるようになったら研究を更新する予定です。その間、著者らは研究コミュニティが MLC 汎用展開プロセスに基づいてソリューションを構築することを期待しています。

この記事は、MLC を通じて効率的かつ一般的な機械学習の展開をサポートするための段階的な取り組みです。研究者たちは、次の方向で成果を促進するために積極的に取り組んでいます。

  • バッチ処理とマルチ GPU サポートを有効にします (サーバー側推論では特に重要)。
  • PyTorch エコシステムとの統合。
  • より多くの量子化とモデル アーキテクチャをサポートします。
  • より多くのハードウェア バックエンドでより自動的な最適化が行われます。

機械学習システム エンジニアリングは継続的な問題であり、NVIDIA は継続的なイノベーションの面で最前線に立ち続けています。新しいハードウェア (H100 など) と、さらに重要なソフトウェアの進化によって、この分野全体が変化すると予想しています。したがって、重要な問題は、今すぐに適切なソリューションを構築する方法だけでなく、機械学習エンジニアリングを継続的に追いつき、新しいプラットフォームに導入する方法でもあります。このプロセスでは、機械学習エンジニアリングの生産性が重要です。

Python ベースの ML コンパイル開発プロセスのおかげで、数時間で ROCm 最適化のサポートを受けることができます。共通の展開に関するアイデアがさらに検討され、ハードウェアの可用性の問題が解決されるにつれて、提案された新しいアプローチがより有用になることが期待されます。

関連リソース

このプロジェクトはGitHubでリリースされました。 MLC LLM デプロイメントを試す方法の詳細な手順については、プロジェクト ページを参照してください。 MLC LLM のソースコードは公式 GitHub で入手できます。

  • プロジェクトページ: https://mlc.ai/mlc-llm/docs/
  • GitHub: https://github.com/mlc-ai/mlc-llm/

<<: 

>>: 

ブログ    
ブログ    

推薦する

Nature サブジャーナル: 機械学習を使用してヒトの遺伝子制御の背後にある「文法」を明らかにする

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

初級データベースアルゴリズム [I]

作者は長い間ブログを更新していませんでした。その理由の一つは、開発したプロジェクトで使用されている技...

...

...

...

最新レビュー!拡散モデルと画像編集の愛憎関係

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

2019 年の機械学習に関するトップ 10 の Q&A: 面接で知っておくべきこと

新興テクノロジーが世界を席巻し、前例のない革新、機会、脅威をもたらしています。これらの分野における専...

AI 対応スマート ビルディングの利点は何ですか?

世界が人工知能(AI)を採用し続けるにつれて、AIを使用したスマートビルディングの人気が高まっていま...

大規模ウェブサイトのアルゴリズムとアーキテクチャについての簡単な説明(パート 2)

順序前回の記事「大規模 Web サイトのアルゴリズムとアーキテクチャに関する簡単な説明 (パート 1...

中国の自動運転はアメリカの自動運転と比べてどう劣っているのか?

アリゾナ州フェニックスからテキサス州エルパソまでの距離は約 690 キロメートルで、地図に示されてい...

Baidu Brainは、顔をスキャンしてWeChat Momentsで拡散できるAIベースの春節連句をサポート

大晦日、家族が集まる夜。 1月28日、オンライン春節祝賀会(略称オンライン春節祝賀会)が予定通り開催...

企業は人工知能の可能性に目がくらんでいるのでしょうか?

多くの企業が AI イニシアチブの導入に意欲的に取り組んでいる一方で、AI が自社のビジネスにどのよ...

健康コードがないと旅行するのは難しいですか?顔認識により健康コードのバリアフリー利用が可能に

「公共交通機関では健康コードの提示が求められますが、提示できない場合はどうすればよいですか?」予防と...

...