複合LLMセルフホスティング・システム実践ガイド

SFの#TechWeek期間中に開催されたZillizの月例イベント「Unstructured Data Meetup」には、800人以上のビルダー、創業者、VCが参加し、AIエコシステムの最新動向について議論した。Chaoyu Yang](https://www.linkedin.com/in/parano/)(BentoMLの創設者/CEO)による2つ目の講演では、マネージドAPIを呼び出すだけのパフォーマンスを達成しようとしながらも、大規模言語モデル(LLMs)のセルフホスティングのコントロールとカスタマイズを好む人々に対する実用的なアドバイスがあった。BentoMLは、AIオーケストレーションにおける研究洞察を共有し、モデルをセルフホストする際の一般的なパフォーマンス問題を最適化するために開発したソリューションを実演した。
この投稿では、Chaoyu の講演の要点をまとめ、LLM をセルフホストする際の主な課題、考慮事項、実践方法について説明します。また、BentoMLとMilvusを統合して、より強力なGenAIアプリケーションを構築する方法を探ります。
LLMドゥームスタック
AIを始めたばかりの私にとって、BentoMLとMilvusを理解するには、現代のLLMスタックのコンテキストを理解するのが最も簡単だと感じました。順不同ですが、単に格好良く聞こえるので、私が「LLMドゥームスタック」と呼んでいるものを探ってみましょう。
データ:*** 高品質なトレーニングと推論のための大規模データセットの準備、保存、処理。このような技術には、データパイプライン、埋め込みモデル、ベクトルデータベース (Zilliz/Milvusのような、ウー!)が含まれる。
運用:*** デプロイされたモデルの健全性とパフォーマンスを監視し、スケーリングし、維持する。信頼性を維持するための積極的なデバッグのためのリアルタイムの観測可能性。
LLM と外部システム、ユーザー間のフローを管理します。(ここが BentoML の重要な役割です)。
AIモデル:** LLMアプリケーションの中核となるもので、API、オープンソース、または事前に訓練されたモデルを使用して、特定のタスクのためにモデルを訓練、微調整、最適化します。
図- LLMドゥームスタック.png](https://assets.zilliz.com/Figure_The_LLM_Doom_Stack_4eb3ecb813.png)
図:LLMのDoomスタック(この画像から引用。)
AIインフラストラクチャーのスタートアップはすべて、このDoomのフレームワークに収まっている。Milvus**とそのマネージドクラウドサービスであるZilliz Cloudは、高次元空間のベクトル埋め込みと呼ばれる数値表現で非構造化データを保存、インデックス付け、検索するために構築されたベクトルデータベースである。LLMを利用した様々なシステム、特に検索拡張生成(RAG)の基本的な構成要素である。BentoML**は、現在のLLMワークフローの運用最適化を提供する。BentoMLは、オペレーティングシステムで実績のあるコンセプトを借用し、データに裏打ちされた研究と組み合わせることで、LLMの構築と展開に優れたパフォーマンスを提供することが証明されています。
LLM のジレンマ:セルフホストか、それとも API を呼び出すだけか?
LLMをデプロイする際に最も重要な決断の1つは、セルフホストにするかマネージドAPIに依存するかということだ。どちらの選択肢にもトレードオフがあり、利便性とコントロールを天秤にかけることが重要だ。マネージドAPIは、使いやすさ、メンテナンスのオーバーヘッドの低さ、迅速なスケーリングが可能な点で魅力的だが、セルフホストは完全なコントロールと柔軟性を提供し、より深いカスタマイズを可能にする。最終的に、ほとんどのチームにとっての決断は、短期的なデプロイメントのスピードと、長期的なスケーラビリティやパフォーマンスの目標とのバランスをとることに行き着く。
図- セルフホストLLMの利点と課題.png
図:LLMセルフホスティングの利点と課題
誰がLLMをセルフ・ホストすべきか?
Chaoyu氏は、マネージドLLMとセルフホスティングLLMの簡単なアンケートから話を始めた。ほとんどの参加者はマネージドAPIに手を挙げたが、それも当然だろう。アプリケーションの開発と同時にインフラを構築し、スケーリングし、メンテナンスするのは簡単なことではない。
Chaoyu氏は、マネージドサービスは便利ではあるが、特定のユースケースに対する最適化よりもスループットを優先することが多いと強調した。一方、セルフホスティングは、モデルのカスタム微調整、高度な推論戦略、予測可能な品質とレイテンシーを可能にする。
しかし、セルフホスティングは誰にとっても正しい選択というわけではない。では、どのような人がセルフホストLLMを検討すべきなのでしょうか?このアプローチを検討する主な理由は以下の通りです:
図- 誰がLLMをセルフ・ホストすべきか.png](https://assets.zilliz.com/Figure_Who_Should_Self_Host_LL_Ms_6cc42242f9.png)
図-誰がLLMをセルフ・ホストすべきか?誰がLLMをセルフ・ホストすべきか?
コントロール**:セルフ・ホスティングは、データ・セキュリティ、プライバシー規制、特定の組織のニーズに準拠し、独自の条件でLLMを運用することができます。これは、特にデータ保護要件が厳しく、機密データがインフラから外部に漏れることがない業界に当てはまります。
カスタマイズセルフホスティングでは、特定のユースケースに合わせてモデルを微調整し、推論戦略を最適化することで、マネージドAPIが提供するものよりも優れたパフォーマンス、スピード、精度を実現できます。また、Chain of Thought (CoT)デコーディングや平衡探索のような、推論レイヤーを完全に制御することで初めて可能になる高度な推論テクニックを柔軟に試すことができます。
長期的なコストメリットセルフ・ホスティングは、インフラやメンテナンスの面で初期費用が高くつく可能性がありますが、長期的なコスト削減が可能です。ベンダーの価格モデルに縛られることなく、BentoML や OpenLLM のようなオープンソースのプラットフォームを活用することで、時間の経過とともにコストを最適化し、規模を拡大することができます。
##セルフホスティングLLMの主な課題と最適化
セルフホスティング LLM は、より大きなコントロールを提供しますが、特にスケーリング、推論の最適化、コールドスタート問題など、技術的な課題が伴います。BentoML は、これらの問題に対処するための一連のソリューションを提供し、チームがデプロイメントを効率的に最適化できるようにします。Chaoyu 氏は、このような課題に対処するために使用した主なアプローチを紹介しました。
推論の最適化
LLMをセルフホストする場合、パフォーマンスを向上させ、コストを削減するためには、推論を最適化することが重要である。Chaoyu氏はいくつかの重要なテクニックを紹介した:
図- LLM推論の最適化- テーブルスタック.png](https://assets.zilliz.com/Figure_LLM_Inference_Optimization_The_Table_Stacks_8d707382ce.png)
図:LLM推論最適化:テーブルスタック
バッチ要求
最もインパクトのある戦略の1つとして、リクエストのバッチ処理はスループットを最大23倍向上させることができます。複数のリクエストを順次ではなく並列に処理することで、GPUリソースの使用率を最大化し、アイドル時間を短縮し、特にトラフィックの多いアプリケーションの効率を向上させることができます。
**トークン ストリーミング
もう1つの重要な最適化はトークン・ストリーミングで、トークンが生成されるとインクリメンタルにトークンを返します。このアプローチにより、知覚されるレイテンシーが大幅に改善され、特にチャットボットのようなリアルタイム・アプリケーションでは、応答時間の高速化によりユーザー・エクスペリエンスが向上します。
**量子化
さらに、量子化はモデルの精度を下げる(例えば、32ビットから8ビットへ)ことによって、メモリ使用量と推論レイテンシを下げます。このアプローチにより、特定のタスクでは出力品質が若干低下する可能性がありますが、パフォーマンス向上のためにはトレードオフの価値があります。
**カーネルの最適化
カーネルレベルで最適化することで、LLM ワークロードに合わせた低レベル GPU 最適化が可能になり、計算タスクが可能な限り効率的に処理されるようになります。しかし、こうした最適化は、異なるハードウェア・プラットフォーム間での移植性を低下させる可能性があります。
**モデル並列化
非常に大きなモデル(70B 以上のパラメータ)の場合、複数の GPU に作業負荷を分散することで、より効率的な推論が可能になります。これはスループットを向上させますが、GPU 間の通信オー バーヘッドを発生させます。
LLM 推論のスケーリング:同時実行ベースのオートスケーリング
セルフホスト環境における一般的な課題は、スケールの管理です。CPU/GPU使用率や1秒あたりのクエリー数(QPS)のような従来のスケーリング・メトリクスは、入力の複雑さによってリソース需要が変化するLLMには不十分です。
Chaoyu氏は、同時実行ベースのスケーリングがより効果的なアプローチであると説明した。この方法は、同時リクエスト数を監視してシステム負荷を決定し、バッチサイズに基づいて動的にリソースを調整する。この方法では、必要なときにシステムが正確にスケールするため、過剰なプロビジョニングを防ぎ、コストを削減しながら、トラフィックの急増時にも高いパフォーマンスを維持することができます。
プリフィックス・キャッシングによるコスト削減
セルフホスティング環境でコストを削減し、パフォーマンスを向上させる最も効果的な方法の1つは、90%以上のコスト削減につながるプリフィックス・キャッシングです。この戦略は、システム命令や静的コンテンツなど、プロンプトの共通部分をキャッシュして冗長な計算を避けることで機能します。
リクエストの最初に静的情報をフロントローディングすることで、 キャッシュヒット の可能性を高め、類似した構造を持つ後続のリクエストの計算負荷を軽減します。これは、プロンプトのほとんどが同じままであるような、頻繁に繰り返される クエリを扱うアプリケーションに特に有用です。接頭辞キャッシュは、待ち時間を短縮し、リソースの使用量を減らし、LLM推論のパフォーマンスとコストを大幅に最適化します。
コールドスタート問題
新しいインスタンスがトラフィックを処理できるようになるまでに時間がかかることである。Chaoyu氏は、この問題を克服するための2つの重要な戦略について議論した。
ひとつの解決策は、プレヒートモデルをスタンバイさせることです。これにより、急増が発生したときに即座にリクエストに対応できるようになり、起動の遅れを最小限に抑えることができる。
もう一つの重要な最適化は、コンテナ・イメージのスリム化です。不要な依存関係を減らすことで、サービスを動的にスケールアップする際にイメージを引き出すのに必要な時間を劇的に短縮することができます。例えば、154MBのイメージは、6.7GBのかさばるイメージよりもはるかに速くロードされ、起動時間を大幅に短縮します。
さらに、モデルのウェイトを逐次ロードするのではなく、徐々にGPUメモリにストリームすることで、初期化時間がさらに短縮されます。これにより、システムは、長い起動遅延なしに突然のトラフィックの急増に対応できるようになり、セルフホスト型モデルの全体的な応答性が向上します。
BentoML と Milvus の統合でより強力な LLM アプリケーションを実現
BentoML は、AI アプリケーションとモデル推論のためのオンラインサービングシステムを最適化します。そのマネージドサービスであるBentoCloudは、Llama 3、Stable Diffusion、CLIP、Sentence Transformersなど、最先端のオープンソースAIモデルを提供しています。これらのビルド済みモデルは、プラットフォーム上でワンクリックするだけでデプロイできる。
Milvusはオープンソースのベクトルデータベースであり、高次元のベクトル埋め込みを使用して、10億スケールの非構造化データを保存、インデックス付け、検索するために構築されている。RAG、セマンティック検索、マルチモーダル検索、推薦システムなどの最新のAIアプリケーションに最適です。
BentoCloudは、MilvusおよびそのマネージドサービスであるZilliz Cloudとシームレスに統合されており、強力なLLMを搭載したアプリケーション、特にRAG(Retrieval Augmented Generation)を簡単に開発することができます。RAGは、LLMがアクセスできなかった外部の知識をモデルに提供することで、LLMの出力を向上させる技術です。
BentoCloudを使って埋め込みモデルを提供し、非構造化データをベクトル埋め込みに変換することができます。Milusは、最も関連性の高い結果を取得し、LLMのコンテキストとして提供することで、より正確な結果を生成します。
図- RAGワークフロー.png](https://assets.zilliz.com/Figure_RAG_workflow_5bfbcccddf.png)
RAGや他のタイプのGenAI APPを構築する方法の詳細については、以下のチュートリアルやブログをご覧ください:
まとめ
LLMの導入には、セルフホスティングとマネージドAPIの選択から、パフォーマンスとスケーリングの最適化まで、重要な決定と課題が伴います。マネージド API は利便性とシンプルさを提供しますが、セルフホスティングは、カスタムソリューションを必要とするチームにとって、より大きなコントロールと柔軟性、長期的なコスト効率を提供します。BentoML のプラットフォームは、推論の最適化、効率的なスケーリング、コールドスタート問題などの技術的ハードルの克服のための強力なツールを提供し、セルフホスティングの複雑な問題の多くに対処します。
BentoML、Milvus、またはそれらのマネージドサービスを活用することで、チームはLLMアプリケーションのデータレイヤーとオペレーションレイヤーをシームレスに統合し、それぞれのニーズに合った高性能なシステムを構築することができます。
BentoML や OpenLLM、Milvus のようなツールを利用すれば、LLM をセルフホストして LLM アプリケーションを構築する準備が整いました。
DOOMスタックの各レイヤーを最適化することに専念している人たちとチームを組みましょう。巨人の肩の上に立ち、アルキメデスのように世界を活用し、勢いを維持しましょう。
読み続けて

DeepSeek vs. OpenAI: A Battle of Innovation in Modern AI
Compare OpenAI's o1 and o3-mini with DeepSeek R1's open-source alternative. Discover which AI model offers the best balance of reasoning capabilities and cost efficiency.

Semantic Search vs. Lexical Search vs. Full-text Search
Lexical search offers exact term matching; full-text search allows for fuzzy matching; semantic search understands context and intent.

Vector Databases vs. NewSQL Databases
Use a vector database for AI-powered similarity search; use a NewSQL database for scalable transactional workloads requiring strong consistency and relational capabilities.