LLM統合のためのAPI活用
LLMをコードベースに統合する方法はいくつかありますが、本番環境への導入にはOpenAI互換のAPIを使用することを強くお勧めします。このアプローチにより、急速に進化するモデル環境に柔軟に対応できます。ほんの数か月前まで最先端と考えられていたモデルが、すぐに時代遅れになる可能性があります。
2022年にChatGPTから始まったAIブーム以来、OpenAIのAPIインターフェースは、アプリケーションをLLMに接続するための事実上の標準として登場しました。この標準により、開発者は利用可能なリソースを使用してアプリケーションを構築できます。たとえば、ノートPC上のLlama.cppでMistral 7Bから始め、本番環境への導入のためにMistral AIのAPIサーバーにシームレスに移行できます。これにより、単一のモデル、推論エンジン、またはAPIプロバイダーに縛られることがなくなります。
クラウドベースの推論サービスは、AIデプロイメントを拡張するための設備投資(capex)に優しい手段を提供します。これらのサービスは、ハードウェア管理やモデル構成の必要性を排除し、代わりにアプリケーション統合のためのAPIを提供します。
主要なモデルビルダーからのAPI提供に加えて、AIインフラストラクチャの新興企業が、オープンウェイトモデルのinference-as-a-serviceを提供しています。これらのプロバイダーは、そのアプローチが異なります。SambaNova、Cerebras、およびGroqなどの一部は、推論を高速化するために特殊なハードウェアまたは投機的デコードなどの技術を活用していますが、モデルの選択肢は少なくなっています。Fireworks AIなどの他の企業は、Low Rank Adaptation(LoRA)アダプターを使用したカスタムファインチューニングモデルのデプロイメントをサポートしています。AIエコシステムの多様性により、特定のプロバイダーにコミットする前に徹底的な調査が必要になります。
オンプレミスLLMデプロイメントの考慮事項
プライバシー、規制、または既存のインフラストラクチャの制約(たとえば、企業がすでにGPUサーバーに投資している)により、クラウドベースのアプローチが実現可能ではない状況では、オンプレミスデプロイメントが必要になります。これにより、いくつかの課題が生じる可能性があります。発生する一般的な質問には、次のものがあります。
- モデルの選択: 適切なモデルは、特定のユースケースによって異なります。顧客サービスチャットボット用に設計されたモデルは、検索拡張生成またはコードアシスタントとして使用されるモデルとは異なる要件を持ちます。ニーズを満たすモデルを特定するために、APIプロバイダーと時間をかけて検討することをお勧めします。
- ハードウェア要件: 必要なハードウェアを決定することは非常に重要です。GPUは高価であり、入手が難しい場合があります。モデル自体が、モデルを実行するために必要なハードウェアに関する洞察を提供できます。より大きなモデルでは、より多くのハードウェアが必要です。最小GPUメモリの概算は、16ビット精度でトレーニングされたモデルの場合、パラメーター数(10億単位)に2GBを掛けることで計算できます。8ビットモデルの場合、10億パラメーターあたり1GBが必要です。量子化などのモデル圧縮技術により、これを10億パラメーターあたり512MBに削減できます。これは下限です。モデルの短期記憶として機能するキーバリューキャッシュにより、モデルを複数のユーザーに同時に提供するには、追加のメモリが必要です。Nvidiaのサポートマトリックスは、さまざまなモデルを実行するために必要なGPUに関するガイダンスを提供します。
- 冗長性: ハードウェアをモデルに合わせてサイジングすることに加えて、冗長性を考慮する必要があります。単一のGPUノードは障害の影響を受けやすいため、フェイルオーバーと負荷分散のために2つ以上のシステムをデプロイすることが重要です。
- デプロイメント方法: LLMは、ロードバランサーを備えたベアメタル、仮想マシン、またはDockerまたはKubernetesのコンテナなど、さまざまな方法を使用してデプロイおよび提供できます。Kubernetesは、コンテナの作成、ネットワーク、および負荷分散を自動化することにより、大規模なデプロイメントに関連する複雑さの多くを簡素化します。
LLMデプロイメントのためのKubernetes
Kubernetesは、コンテナの作成、ネットワーク、および負荷分散を自動化することにより、大規模なデプロイメントに関連する複雑さの多くを抽象化します。多くの企業はすでにKubernetesを採用し、理解しています。Nvidia、Hugging Faceなどは、一般的なワークロードとデプロイメント用に事前構成されたNvidia Inference Microservices(NIM)およびHugging Face Generative AI Services(HUGS)を備えたコンテナ化された環境を支持しています。
推論エンジン
さまざまな推論エンジンがモデルの実行に利用できます。これには、幅広いハードウェアと互換性のあるOllamaやLlama.cppが含まれます。モデルをスケーリングするために、vLLM、TensorRT LLM、SGLang、およびPyTorchなどのライブラリがよく使用されます。このガイドでは、vLLMを使用してモデルをデプロイすることに焦点を当てます。これは、幅広い人気のあるモデルをサポートし、Nvidia、AMD、およびその他のハードウェア全体で幅広いサポートと互換性を提供するからです。
Kubernetes環境の準備
GPUで動作するKubernetes環境をセットアップするには、通常のKubernetesセットアップと比較して、追加のドライバーと依存関係が必要です。セットアッププロセスは、AMDおよびNvidiaハードウェアで異なります。
このガイドでは、シングルノード構成でK3Sを使用します。基本的な手順はマルチノード環境と同様ですが、依存関係は各GPUワーカーノードで満たす必要があり、ストレージ構成の調整が必要になる場合があります。
目標は、本番環境に適した方法で推論ワークロードをデプロイするための強固な基盤を提供することです。次の前提条件が必要です。
- 少なくとも1つのサポートされているAMDまたはNvidia GPUボードを備えたサーバーまたはワークステーション
- Ubuntu 24.04 LTSの新しいインストール
Nvidiaの依存関係
NvidiaアクセラレーションK3S環境をセットアップするには、CUDA Drivers Fabric ManagerおよびHeadlessサーバードライバーをインストールする必要があります。ドライバーの問題をデバッグするために、Nvidiaのサーバーユーティリティをインストールします。