|
データホエール・ユー・カイチャオ Datawhaleの推奨事項 著者: ユー・カイチャオ、清華大学ソフトウェア学院博士課程学生 くさびvLLM との私のつながりは、5 年前の夏に遡ります。 2019年、カリフォルニア大学バークレー校のRISELabで、マイケル・ジョーダン教授の指導のもと、夏季研究プログラムに参加しました。ある日、偶然、新しく入学した博士課程の学生と出会い、少し勇気を出してWeChatで彼を追加してしまいました。この「ソーシャルアドベンチャー」が5年後、私の人生を大きく変えることになるとは、当時は知る由もありませんでした。 ChatGPTの変更点2022年末に早送りすると、ChatGPTが登場しました。かつて一緒に泥んこ遊びをしていた幼なじみはChatGPTのトレーナーになりましたが、私はいまだにトップAIカンファレンスで、ランダムに割り当てられた査読者たちと無意味な議論を繰り広げています。カンファレンスでの激しい競争に私は途方もない不安を感じ、そして「何かを変えなければならない」と悟りました。 当時、私はConv-BNモジュールのファインチューニング効率を向上させる最適化手法の研究に注力していました。アルゴリズム自体は複雑ではありませんでしたが、モデルの計算グラフに深い変更を加える必要がありました。少し調べた後、PyTorchの 在学中、PyTorchコンパイラチームのJason Ansel氏に出会いました。彼はDynamoの原理を教えてくれただけでなく、機械学習システム(MLSys)分野の基礎知識も教えてくれました。こうして、Conv-BNの学習効率を最適化することから始めて、機械学習コンパイラの中核原理を探求することができました。同時に、コンピュータアーキテクチャの巨匠David Patterson氏とコンパイラの巨匠Chris Lattner氏の名講義も学びました。二人とも、ムーアの法則後の時代においては、コンピューティング能力を高める唯一の方法は専用チップであり、機械学習コンパイラは重要な研究分野となるだろうと述べていました。 2023年末、マイケル・ジョーダン教授が再び清華大学を訪れました。私は機械学習研究の現状について戸惑い、機械学習システムの研究に重点を移したいと伝えました。偶然にも、ジョーダン教授の旧友であり、機械学習システムのトップエキスパートであるイオン・ストイカ氏も来訪していました。それを聞いたジョーダン教授はすぐに私をイオン氏に推薦してくれました。イオン氏との会話の中で、私は「自分が学んだこと」を披露し、ドメイン特化型ハードウェアと機械学習コンパイラの将来について詳しく説明しました。イオン氏は非常に同意して話を聞いてくれ、MI300XやInferentiaといった複数のチップ(正直に言うと、当時はこれらのチップの名前すら聞いたことがありませんでした)を含むプロジェクトを主導していることを教えてくれました。結局、私たちはすぐに意気投合し、研究室と指導教官の強力なサポートのおかげで、カリフォルニア大学バークレー校を再び訪れる機会を得ることができました。 2024年、私はスーツケースを手に、再びバークレーの土を踏んだ。5年が経っていたが、何もかもが変わっていないように思えた。イオン・ストイカの研究室は5年前と変わらず馴染みのある場所で、研究室の管理者もKatttのままだった。唯一の変化は、研究室の名前がRISELabからSkyLabに変わったことだった。そして、イオンが言っていた複数のチップを処理するプロジェクトは、5年前に出会った博士課程の学生ともう一人の韓国人が共同設立したvLLMプロジェクトだった。まるで運命づけられていたかのようだった。vLLMとの私の物語が、正式に始まったのだ。 Spark、Ray、vLLM という名前が付けられた SkyLab の歴史的な看板は、この研究所が大規模なオープンソース ソフトウェアを大量に生み出してきたことを反映しています。 入門:格闘技の世界へ2024年3月までに、vLLMはコミュニティ内で既に一定の認知度を得ていましたが、プロジェクト管理はまだ未熟な状態でした。プロジェクトに参加した後、私はまず、PyTorchから成熟したオープンソース管理エクスペリエンスをvLLMに移植しました。例えば、課題テンプレート(課題を提起する各人に完全なランタイム環境情報を提供することを義務付け、問題の特定を容易にする)やPRテンプレートなどです。 プロジェクトを素早く理解するために、vLLMのGitHubアップデートをすべて購読しました。毎朝、目が覚めて最初にやることは、新しい問題やプルリクエストを確認し、プロジェクトの進捗状況を追跡し、できる限りの質問に答えることでした。この「vLLMオンコール」モードは半年以上続き、プロジェクトを大まかに把握できた時点で、ついに「オンコール」状態を終えました。 頭への一撃:PyTorch 2.2 の影最初の仕事は、一見すると信じられないほど簡単なものに見えました。vLLMが依存するPyTorchをバージョン2.1から2.2にアップグレードするのです。しかし、この一見「初心者レベル」の作業は、私の人生の選択を疑わせるほどでした。 数週間のデバッグを経て、最終的に、次の 4 つの条件が同時に満たされると、迂回アプローチが機能することを発見しました。
vLLM のメモリ使用量が不思議なことに 2 GiB 増加します。 この問題を解決するために、私はNVIDIAのCUDAプログラミング、ドライバ、ランタイムに関するドキュメントを隅々まで読み、コードを一つ一つ丹念にチェックしました。最終的に、問題はNCCLの実験的な機能にあり、解決策は環境変数を設定してその機能を無効にすることだけで済む(たった1行のコード)ことがわかりました。しかし、その「たった1行のコード」を見つけるのに丸3ヶ月もかかりました。 問題が完全に解決されるまでは、PyTorchとは独立したNCCL 2.18バージョンを強制的にインストールするという、一時的な対策しか取れません。そのため、私はvLLMのCIやリリースプロセスといったオープンソースプロジェクトの管理業務に積極的に参加する必要があり、またvLLMの分散推論も引き継いで 予想外にも、6ヶ月後、vLLMのRLHFプロセスでほぼ同じ問題が再発し、ジョン・シュルマン氏の注目を集めました。そう、彼はOpenAIのジョン・シュルマン氏、PPOを発明した人物です。彼もvLLMを使っていたと知り、私は大変喜び、この問題を最優先で解決しました。RLHFの重み更新時間を3分から4秒に短縮することができました。PRでも彼と共同作業しました。 厳しい時代: GPU 貧弱から GPU 豊富へ4月と5月に、H100上でのvLLMのパフォーマンスが不十分だというフィードバックをいただきました。しかし、問題が発生しました。私たち自身にH100がなかったのです!当時、私はまだラボのV100を使ってコード開発を行っており、CIプロセスは限界に達していました。コードの基本的な正しさは検証できるものの、パフォーマンスの変化を全く追跡することができませんでした。 ある時、ある貢献者が一見無害そうな変更を提出しました。私はそれをちらっと見て、問題ないと思い、すぐにマージを承認しました。ところが、その翌日、このPRによって全体の速度が数倍も遅くなったという報告が来るとは、誰も想像もしていませんでした! これを聞いた時、私は面白がると同時に憤慨しました。プロジェクト開発者である私たちは、コードのパフォーマンスさえ理解していなかったのに、コミュニティ内の裕福なユーザーの中には、すべてのコミットのパフォーマンスを綿密に追跡・テストしている人もいたのです。 幸いなことに、コミュニティの熱意とサポートは、まさに危機的な状況において大きな助けとなりました。各方面に支援を求めた結果、NVIDIAはフル装備のH100とH200を送付し、AWSやGoogle Cloudなどのクラウドプロバイダーは大量のコンピューティングリソースを寄付し、ZhenFundやSequoia Capitalなどのベンチャーキャピタルも惜しみない資金提供を行い、差し迫った問題の解決に尽力してくれました。 NVIDIAから提供されたH200マシンの写真 vLLMはバークレーで誕生しましたが、その成長は多くの方々のご支援によって支えられてきたと言っても過言ではありません。私たちは皆様のご支援に深く感謝しており、vLLMの今日の成功はコミュニティの皆様のご支援と切り離せないという信念を強めました。そして、将来に向けてコミュニティに恩返しをしていく必要があると考えています。 LLaMA 3.1 405Bに直面vLLMは多くのオープンソースモデルをサポートしており、通常はモデルのリリース当日にサポートを開始します。私たちはこれを「Day 1サポート」と呼んでいます。しかし、この「電光石火のスピード」の裏には、目に見えない多くの「Day 1サポート」が隠されています。モデルのリリース前に、私たちはひっそりと多くの準備作業を行ってきました。その中でも、私が最も感銘を受けたのは、LlaMA 3.1 405Bへの準備作業です。 今年4月、MetaはLLaMA 3シリーズのモデルをリリースしました。一見すると、LLaMAやLLaMA 2からアーキテクチャに大きな変更はなく、vLLMによる追加サポートも必要ないように見えます。しかし、Metaのリリースブログには、4000億を超えるモデルも学習中であることが記載されていました。このニュースは、私たちを不安にさせました。 405Bモデルは重み付けだけで800GiBのGPUメモリを必要とすることを理解することが重要です。最上位機種のH100マシンでさえ、このスケールには対応できません。そのため、私たちはすぐにマルチマシン分散推論機能の開発に着手しました。これには、RDMA非対応マシン向けのパイプライン並列推論、単一マシンテスト向けのCPUオフロードなどが含まれます。最終的に、LLaMA 3.1 405Bモデルの推論をサポートすることに成功しました。 興味深いことに、Meta社は後に、405Bモデルを複数のパートナーとテストしていた際に、これらのベンダーがモデルの導入方法を全く理解していないことに気づいたと語っています。他に選択肢がなかったため、Meta社は405Bモデル用のFP8量子化バージョンを緊急に開発する必要がありました。vLLMの本格的な非量子化405Bモデル向けマルチマシン展開ソリューションは、Meta社の公式リリースパートナー10社のうち8社がvLLMを採用するきっかけとなりました。 モデルアーキテクチャにおけるマイクロイノベーションは継続的に進められており、vLLMチームは様々なモデルのサポート拡大に尽力しています。vLLMは、最も幅広いオープンソースモデルタイプをサポートする推論フレームワークであると言っても過言ではありません。 再構築と最適化:永遠のテーマvLLMはリリース当初、HuggingFace Transformersの数十倍もの推論速度を誇ることから大きな注目を集めました。しかし、コミュニティが成長し、より多くの機能が利用可能になるにつれて、初期段階ではパフォーマンス追跡メカニズムが不足していることが徐々に明らかになり、特にハイエンドのH100 GPUでは、小規模モデルの推論性能が低かったことが顕著になりました。 4月か5月頃から、パフォーマンステストが徐々に改善していくにつれ、リファクタリングの必要性について議論が始まりました。LMDeploy、LightLLM、TRT-LLMといった類似フレームワークの経験を踏まえ、ZMQベースのAPIサーバーやマルチステップスケジューリングなど、パフォーマンスを大幅に向上させる機能をvLLMに追加しました。しかし、vLLMの機能数が多いため、これらの最適化が特定のニッチな機能と競合し、コード内に多数の分岐ロジックが存在するという問題がありました。 この問題を完全に解決するため、メジャーバージョンの全面的な見直しを準備しています。この全面的な見直しでは、パフォーマンスの最適化に重点を置き、使用頻度の高い機能のサポートを優先し、使用頻度の低い機能を段階的にリファクタリングすることで、最終的にはフレームワーク全体の包括的なアップグレードを実現します。一部のアーリーアダプターは既に新しいシステムのベータ版を導入しており、2~3倍のパフォーマンス向上を実感しています。 |
2024年のvLLMへの旅:清華大学卒業生のvLLM開発パス
関連するおすすめ記事
-
スタンフォード大学フェイフェイ・リー教授のチーム:2024年人工知能開発報告書の概要
-
OpenAI は突然、ヒューマノイド ロボット ユニコーンから外され、ネットユーザーからは「代わりに DeepSeek に切り替えるのだろうか?」という声が上がっています。
-
史上最も厳しい中国の真正性評価:OpenAIはO1で1位、Doubaoで2位にランクイン、他はすべて不合格。
-
『Black Myth』は記録を破るほどの人気を誇り、Nvidia の CEO である Jensen Huang 氏もゲーム エキスポで同作を披露しています。パノラマ レイ トレーシングは Nvidia 独自の技術であり、同じテクノロジを採用した他のゲームが 20 種類以上も登場予定です。
-
大型模型の中の6匹の子虎たちの近況をお話しましょう!
-
AlphaFold3の国産初版がリリース!優れた高分子予測精度、すぐに使えるオンラインプラットフォーム、そして圧倒的な推論コストを誇ります。