日本語

モデルサービングとは?スケールで機能するAIモデルの展開

ロードバランサーがリクエストをモデルレプリカにルーティングするモデルサービングインフラ図

Turn this article into takeaways for your work.

Each assistant summarizes the article only for you and suggests best practices for your work.

AIモデルを学習させることは研究上の問題です。毎秒数千のリクエストに対して、一貫したlatency・高可用性・予測可能なコストで信頼性高く回答させることは、別次元のエンジニアリング上の問題です。モデルサービングは、学習済みモデルと企業が依拠できる本番システムとの間の溝を埋める基盤インフラ層です。

テクノロジーおよびオペレーションのリーダーにとって、モデルサービングは実世界のAI展開の多くが成功するか失敗するかを左右する場所です。モデルが優れていても、サービングインフラが負荷を処理できなければ、稼働時間を維持できなければ、コストを抑制できなければ、ビジネス価値は決して実現しません。

モデルサービングとは

モデルサービングは、学習済みmachine learningモデルを呼び出し可能なサービスとして公開するソフトウェアとインフラの総体です。アプリケーションがAIアシスタントにユーザークエリを送信する際、モデルサービングはリクエストを受け取り、実行中のモデルインスタンスにルーティングし、モデルを実行して結果を返す層です。

最も単純な形では、モデルサービングは以下を含みます。

  • 実行中のモデルインスタンス(GPUまたはCPUメモリにロード済み)
  • リクエストを受け付けるAPIエンドポイント
  • 同時実行性を管理するロジック(複数の同時リクエストの処理)
  • 呼び出し元に結果を返すメカニズム

実際の本番モデルサービングはかなり複雑です。オートスケーリング(負荷に応じてモデルインスタンスを追加し、コスト削減のためにスケールダウン)、ロードバランシング(インスタンス間でリクエストを分散)、ヘルスチェック(障害インスタンスの検出と置き換え)、バージョン管理(ロールアウト中に複数のモデルバージョンを同時実行)、モニタリング(latency・エラーレート・リソース使用率の追跡)が含まれます。

モデルサービングと関連用語の違い

これらの用語はしばしば曖昧に使われますが、意思決定において違いが重要です。

Inference とは、モデルをインプットに対して実行して出力を生成する行為です。計算上の操作です。モデルサービングは、inferenceを信頼性の高いサービスとして利用できる状態にするインフラです。

Inference最適化 はinferenceをより速く・安くする技術を指します。量子化・バッチ処理・キャッシュ・カーネル最適化などです。最適化はモデルとランタイムの特性です。サービングは最適化されたモデルをホスト・公開するシステムです。

MLOps はmachine learningを運用化する広範な実践で、学習パイプライン・実験追跡・モデルレジストリ・展開自動化・モニタリングを含みます。モデルサービングはMLOpsライフサイクルの中の一コンポーネントで、特に展開とランタイム層に該当します。

モデルデプロイメント はモデルサービングと同義に使われることがありますが、デプロイメントはモデルを利用可能にするという行為(移行イベント)をより正確に指し、サービングはその可用性の継続的な稼働状態を指します。

本番サービングシステムのアーキテクチャ

本番モデルサービングシステムには通常いくつかの層があります。

モデルレジストリ。 学習済みモデルアーティファクトのバージョン管理されたストア。モデルを提供する前に、登録が必要です(メタデータとともに:学習日・パフォーマンスベンチマーク・依存関係)。

サービングランタイム。 モデルをロードしてinferenceを実行するソフトウェア。一般的な選択肢にはTensorFlow Serving・TorchServe・NVIDIA Triton Inference Server、およびAWS SageMakerやAzure MLエンドポイントなどプロバイダー管理ランタイムがあります。大規模言語モデルには特に、vLLM・TGI(Text Generation Inference)・Ollamaなどのフレームワークが広く使われています。

APIゲートウェイ。 受信リクエストをルーティングし、認証とレート制限を適用し、基盤サービングインフラがスケールまたは更新されても変わらない安定したエンドポイントアドレスを提供します。

オートスケーラー。 リクエスト量とリソース使用率を監視し、負荷に合わせてモデルインスタンスを追加・削除します。これにより、常にピーク時の容量を事前プロビジョニングすることなく10倍のトラフィックスパイクを処理できます。

モデルモニタリング 本番環境でのlatency・エラーレート・出力品質を追跡します。モデルの動作がベースラインから逸脱したときに警告を発します。

モデルサービングにおけるビジネス上の意思決定

モデルサービングはAI投資のコストと信頼性のトレードオフが具体化する場所です。ビジネスリーダーは通常いくつかの主要な意思決定に影響を与えます。

マネージドと自己ホスト。 クラウドプロバイダー(AWS・Azure・Google Cloud)はプロバイダーがスケーリング・ハードウェア・ランタイム管理を担うマネージドモデルサービングプラットフォームを提供します。自己ホストサービング(自社のクラウドインフラまたはオンプレミス)はより多くの制御と大規模での潜在的なコスト削減を提供しますが、運用するためのエンジニアリング投資が必要です。

中堅企業の多くは大手プロバイダーのマネージドサービングから始め、より大きなスケールでまたはコスト経済性がエンジニアリングオーバーヘッドを正当化する時に自己ホストに移行します。

共有エンドポイントと専用エンドポイント。 ほとんどのAI APIは共有インフラ上で動作し、あなたのリクエストは他の顧客のリクエストと並んで待機します。専用エンドポイントはあなたのために容量を確保し、latencyと可用性を保証しますが、コストは高くなります。latencyに敏感な本番アプリケーションでは、専用エンドポイントのコストはしばしば正当化されます。

latencyとコストのトレードオフ。 より高速で上位ティアのハードウェアはコストがかかります。リクエストをまとめてバッチ処理すること(複数のリクエストが蓄積されるのを待ってからまとめて処理)はハードウェア使用率を改善しコストを下げますが、latencyが増加します。適切なトレードオフはユースケースの応答時間への感度によって異なります。

スケーリング設定。 最低限実行し続けるモデルインスタンスの数は何か(ゼロはトラフィック再開時のコールドスタート遅延を意味し、ゼロ以外は常にアイドル容量の費用を意味します)?最大は?オートスケーラーはどれほど積極的に容量を追加すべきか?

これらの意思決定は直接的なコストへの影響を持ちます。オーバープロビジョニングされたサービング展開は月に数万ドルを無駄にする可能性があります。アンダープロビジョニングされたものはピーク時のユーザー体験を劣化させます。

大規模言語モデルのモデルサービング

大規模言語モデルは主にそのサイズのために、小さいモデルにはないサービング上の課題をもたらします。

GPT-4クラスのモデルはロードするだけで数十から数百ギガバイトのGPUメモリを必要とします。ほとんどの本番LLM展開はマルチGPUサービングを必要とし、モデルは複数のGPUに分割されます。これはテンソル並列性またはパイプライン並列性と呼ばれ、サービングフレームワークはそれを調整しなければなりません。

Key-value(KV)キャッシュ管理 はLLMサービングにおける主要な運用上の懸念事項です。トークンごとにレスポンスを生成する際、モデルは再計算を避けるために以前のトークンからの中間計算をキャッシュします(KVキャッシュ)。このキャッシュはGPUメモリ上に存在し、コンテキスト長とともに増大します。サービングシステムは同時リクエスト間でこのメモリを慎重に管理しなければなりません。

Continuous batching はLLM固有の最適化で、サービングシステムが新しい受信リクエストをすでに生成中のリクエストとグループ化し、バッチが完了するのを待ってから新しいものを開始するのではなく、GPU使用率を高く保ちます。vLLMのようなシステムがこのアプローチを先駆けました。

エッジAI展開では、制約のあるハードウェア(ラップトップ・スマートフォン・組み込みデバイス)上のモデルサービングには追加の最適化が必要です。小さいモデルサイズ・より低精度のinference、そしてデータセンターGPUではなくCPUまたはモバイルGPU環境向けに設計されたサービングフレームワークです。

サービング問題がビジネス価値に影響している兆候

モデルサービングの問題はインフラ障害として必ずしも明示されません。多くの場合、以下のような形で現れます。

  • ユーザーがAIが「遅く感じる」と報告するが、明確な技術的アラートがない
  • 明らかな品質問題なしに、最初のローンチスパイクの後に採用率が低下する
  • コストが使用量に不釣り合いに増大する
  • 不安定な応答時間(時に速く、時に遅い)がフィーチャーを信頼できないように感じさせる
  • 通常の条件下ではモデルが問題なく動作しているのに、負荷下でエラーレートが急増する

これらの症状が見られる場合、問題は通常モデル自体ではありません。サービング層にあります。

重要なポイント

  • モデルサービングは学習済みAIモデルを本番サービスとして利用できる状態にするインフラで、inference(計算)やMLOps(より広い運用実践)とは区別されます。
  • 本番サービングシステムにはモデルレジストリ・サービングランタイム・APIゲートウェイ・オートスケーラー・モニタリングが含まれます。
  • 主なビジネス上の意思決定:マネージド対自己ホスト、共有対専用エンドポイント、latency対コストのトレードオフ、スケーリング設定。
  • 大規模言語モデルは固有のサービング課題をもたらします。マルチGPUメモリ管理・KVキャッシュ・continuous batching。
  • ほとんどのサービング問題はハードな障害ではなくユーザー体験の劣化(遅さ・不安定さ)として現れます。