Google Cloudがllm-d 1.0を紹介

Google Cloudがllm-d 1.0を紹介、KV cacheを考慮したルーティングが可能

公開:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座

llm-d 1.0は、vLLMやSGLangのような単体の推論エンジンを、クラスタ全体で連携する提供基盤に変える分散推論の制御基盤です。一方、標準のingressコントローラは、LLMの連続するターンを別々のレプリカへ散らし、KV cacheを作り直し続けます。[1]

この記事では、llm-d 1.0でできることやGKE Inference Gatewayとの連携、同Gatewayの料金を解説します。KubeRayによるRayクラスタの管理やgVisorを使ったAIエージェントの隔離も対象です。[1][2][3]

目次
  1. llm-d 1.0でできること
  2. GKEで動かすllm-d 1.0
  3. KubeRayによるRayクラスタの管理
  4. AIエージェント向けのサンドボックス
  5. GKEでllm-d 1.0を使う前の確認点

llm-d 1.0でできること

llm-d 1.0の中核機能には、リクエストの送り先の選択やKV cacheの退避、処理段階の分離、非同期処理の優先制御などがあります。llm-d 1.0のコンポーネントは組み合わせて使う設計で、推論エンジンやモデル、クラスタはそのままに、必要なコンポーネントと設定だけを採用できます。[1][2][3]

llm-d 1.0の主な中核機能

図1 llm-d 1.0の主な中核機能

Endpoint Pickerの振り分け

Endpoint Pickerは、ワーカーPodごとのKV cacheの保持状況をリアルタイムに評価し、リクエストの送り先を選びます。Prefix-cache-aware routingを担う機能で、Kubernetes Gateway API Inference Extensionに組み込まれています。

Endpoint Pickerの働きと効果

図2 Endpoint Pickerの働きと効果

Google Cloudは、Endpoint Pickerの本番導入で、複数ターンのエージェント処理のKV cacheヒット率が35%から70%に倍増したと公表しました。最初のトークンが返るまでの時間(TTFT)の中央値も、70〜85%短くなったとしています。

KV cacheの3層オフロード

3-Tier KV cache offloadは、長い文脈のやり取りでHBM(アクセラレータの高帯域メモリ)が上限に近づくと働きます。llm-dは、KV cacheのブロックをHBMからホストのCPU RAMへ移し、その先の層へ順に移します。

3-Tier KV cache offloadの移動順

図3 3-Tier KV cache offloadの移動順

3層目の移動先は、ローカルNVMe SSDやGoogle Cloud Managed Lustre、Cloud Storageです。このオフロードは、高コストな文脈の再計算を防ぎます。

EPDの3段階の分離

EPD Disaggregationは、EncodingやPrefill、Decodeの3段階を、高速な接続でつながった専用ハードウェアのプールへ分けて置きます。Prefillは計算負荷が高く、Decodeはメモリに制約される処理です。

EPD Disaggregationで分ける3段階

図4 EPD Disaggregationで分ける3段階

DisaggregatedSetは、複数ホストでの推論向けのKubernetes APIであるLeaderWorkerSet(LWS)を基盤にしています。各段階を独立して水平スケールでき、停止時間なしのローリングアップグレードを協調して行えます。

非同期処理の優先制御

llm-d-async-processorは、遅延を許容できるバックグラウンド処理を、Pub/SubやRedisからクラスタの空き容量へ取り込みます。バックグラウンド処理が対話型の利用者体験を損なわないよう、トラフィックに厳格な優先順位を付ける仕組みです。

llm-d-async-processorの動き

図5 llm-d-async-processorの動き

TorchTPUによるTPU対応

TorchTPUを通じて、PyTorchモデルはupstreamのvLLMやSGLangの中で、Google Cloud TPU上でネイティブに動きます。TPU v5eやv6e、v7xでもNVIDIA GPUと並んで初日から同等に使え、独自の分岐版の保守やパイプラインの書き直しは不要です。


Python研修一覧はこちら

目的に合うPython研修を一覧形式から探したい方は、ぜひご利用ください。

Python研修を比較する

Java研修一覧はこちら

目的に合うJava研修を一覧形式から探したい方は、ぜひご利用ください。

Java研修を比較する

PHP研修一覧はこちら

目的に合うPHP研修を一覧形式から探したい方は、ぜひご利用ください。

PHP研修を比較する

新入社員研修

目的に合う新入社員研修を一覧形式から探したい方は、ぜひご利用ください。

新入社員研修を比較する

全ての研修からも探したい方はこちら

Prismでの性能の確認

Prismは、llm-dのオープンソースのベンチマークと性能のダッシュボードです。フリートの観測として、クラスタ全体のスループットやトークン間の遅延(ITL)、TTFT、キャッシュヒット率を追跡できます。

Prismによるフリートの観測

図6 Prismによるフリートの観測

GKEで動かすllm-d 1.0

GKEでは、GKE Inference GatewayがEndpoint Pickerをネイティブに管理します。GKE Inference Gatewayは、Gateway Modeで動くllm-d routerで、利用者自身によるプロキシの運用は不要です。[1][2][3]

GKEへの導入の進め方

Google Cloudは、既存のvLLMデプロイメントの前にprefix-aware routingを置いて始める進め方を勧めています。その後で加えるのが、flow controlやKV cache offload、disaggregationです。

InferencePool設定例

InferencePoolでPrefixCacheAwareを指定する設定例は、以下の通りです。

apiVersion: inference.networking.x-k8s.io/v1alpha1
kind: InferencePool
metadata:
  name: gemma-serving-pool
  namespace: ai-serving
spec:
  targetRef:
    group: apps
    kind: Deployment
    name: vllm-gemma-27b
  scheduling:
    # Routes multi-turn requests to replicas holding matching KV context
    strategy: PrefixCacheAware
    fallback: LeastQueueDepth
  observability:
    kvCacheSyncInterval: "50ms"

公式資料からの抜粋:The open AI-native stack on Kubernetes: From open models to distributed inference and agents(Distributed inference at scale with llm-d 1.0)。対象版・範囲:公式のInferencePool設定例(inference.networking.x-k8s.io/v1alpha1)。

上記のコードでは、vllm-gemma-27bというDeploymentを対象に、strategyをPrefixCacheAwareにしています。複数ターンのリクエストを一致するKVの文脈を持つレプリカへ送る設定で、fallbackはLeastQueueDepthです。

InferencePoolの設定例の主な値

図7 InferencePoolの設定例の主な値

KubeRayによるRayクラスタの管理

推論とRLループは専用のランタイムが担う一方、分散データ準備や埋め込み生成、PyTorchの分散学習はRayに大きく依存しています。KubeRayは、RayClusterやRayJob、RayServiceのライフサイクル全体を管理する、オープンソースのKubernetesネイティブなオペレーターです。[1]

プラットフォームチームにとってのKubeRay

図8 プラットフォームチームにとってのKubeRay

宣言的なライフサイクル管理では、臨時の学習用に自己修復する一時的なRayクラスタを必要なときに起動でき、バッチ処理用のクラスタを長期間動かせます。KubeRayはKueueと直接連携してキューイングに対応し、共有のGPUとTPUの容量でマルチテナントの公平な共有や優先度による割り込み、割り当て量を管理します。

KubeRayは、実行中のRayタスクやアクターの配置に応じてワーカーPodを増減し、遊休資源の消費を防ぐ仕組みです。RayJobの設定例は、以下の通りです。

apiVersion: ray.io/v1
kind: RayJob
metadata:
  name: gemma-fine-tune-job
  namespace: ai-workloads
  labels:
    kueue.x-k8s.io/queue-name: ml-team-queue
spec:
  shutdownAfterJobFinishes: true
  ttlSecondsAfterFinished: 60
  entrypoint: python fine_tune_gemma.py --model-id google/gemma-2-27b-it

公式資料からの抜粋:The open AI-native stack on Kubernetes: From open models to distributed inference and agents(Distributed Python & ML orchestration with KubeRay)。対象版・範囲:公式のRayJob設定例(ray.io/v1) / 公式のRayJob設定例。

上記のコードでは、google/gemma-2-27b-itを微調整するRayJobを定義しています。メタデータのラベルは、kueue.x-k8s.io/queue-name: ml-team-queueです。


Python基礎・実践(Django)

企業・法人向けのPython研修では、基礎から応用まで体系的に学べます。

Python研修の詳細

DX社員研修

企業・法人向けのDX研修では、実務に繋がるリスキリングでITレベルを向上させます。

DX研修の詳細

Javaエンジニア育成研修

企業・法人向けのJavaエンジニア育成研修では、Javaの基礎から応用まで確実に習得できます。

Java研修の詳細

新卒・新入社員向け研修

企業・法人に新入社員・新卒社員に向けたプログラミング研修を提供しています。

新入社員研修の詳細

コードキャンプのIT研修を全て見る

AIエージェント向けのサンドボックス

AIエージェントがコードの生成やシェルコマンドの実行、外部APIの操作を担うと、共有クラスタで信頼できないコードを動かすことに深刻なセキュリティ上のリスクが生じます。Google Cloudは、CNCF SandboxでAgent Substrateをコントリビュートし、gVisorへの貢献も続けています。[1]

Agent SubstrateとgVisorによる隔離

図9 Agent SubstrateとgVisorによる隔離

gVisorは、システムコールを横取りして仮想化する、ユーザー空間のカーネルです。信頼できないエージェントのコードが、ホストのカーネルを侵害したり、隣のテナントのワークロードにアクセスしたりするのを防ぐのに役立ちます。

Agent SubstrateとgVisorのサンドボックスは、エージェントのターンごとにミリ秒単位で起動します。隔離された実行環境の用途は、OpenRLでの強化学習(RL)のロールアウト生成と、本番で動くエージェントのワークフローの両方です。[1][3]

GKEでllm-d 1.0を使う前の確認点

llm-d 1.0は、発表時点でCNCF Sandboxのプロジェクトです。GKE Inference Gatewayは追加料金なしで利用でき、課金されるのは使用した基盤のGoogle Cloudリソースだけです。[1][2][3]

llm-d 1.0とGKE Inference Gatewayの情報

図10 llm-d 1.0とGKE Inference Gatewayの情報

llm-d 1.0が土台とする構成要素

llm-d 1.0は、すでに運用しているかもしれないKubernetesの構成要素を土台にしています。構成要素は、以下の通りです。

Gateway API:Kubernetesの構成要素/LeaderWorkerSet:Kubernetesの構成要素/Dynamic Resource Allocation:構成要素/Prometheus:Kubernetesの構成要素/OpenTelemetry:Kubernetesの構成要素

Priorityとストリーミング

GKE Inference Gatewayでは、InferenceObjectiveのPriorityが0未満のリクエストが、負荷時に最初に破棄され、429エラーが返ります。Priorityの既定値は0で、破棄の対象になるのは0未満を明示的に設定した場合だけです。

GKE Inference Gatewayの応答の仕様

図11 GKE Inference Gatewayの応答の仕様

ストリーミング応答の途中でエラーが起きると、ストリーミングは終了し、クライアントにエラーメッセージが送られます。GKE Inference Gatewayは、ストリーミング応答を再試行しません。

マルチポートのNEG上限

マルチポートのInferencePoolでは、各ゾーンの各ポートに専用のNEG(ネットワークエンドポイントグループ)が作られます。NEGの上限はGoogle Cloudのバックエンドサービスごとに50個で、3ゾーンで8ポートのInferencePoolが作るNEGは24個です。

マルチポートのInferencePoolのNEG

図12 マルチポートのInferencePoolのNEG

マルチポートのInferencePoolをマルチクラスタGatewayで集約する場合は、クラスタごとのNEGを足し合わせ、50個に収まるかを確かめます。3ゾーンで8ポートの例では、集約できるのは最大2クラスタ(48個)までです。

出典

  1. ^ Google Cloud. 「The open AI-native stack on Kubernetes: From open models to distributed inference and agents」. https://cloud.google.com/blog/topics/developers-practitioners/the-open-ai-native-stack-on-kubernetes-from-open-models-to-distributed-inference-and-agents, (参照 26-11-10).
  2. ^ Google Cloud. 「llm-d を搭載した GKE Inference Gateway について」. https://docs.cloud.google.com/kubernetes-engine/docs/concepts/about-gke-inference-gateway?hl=ja, (参照 26-11-10).
  3. ^ Google Cloud. 「Announcing llm-d 1.0: Open distributed inference for agents on Google Cloud TPUs and GPUs」. https://cloud.google.com/blog/topics/ai-infrastructure/llm-d-1-0-an-open-source-stack-for-distributed-inference?hl=en, (参照 26-11-10).

※本記事は公式の一次情報を基に編集しています。内容はAIで確認していますが、誤りや最新情報との差異がある場合は、以下フォームよりご報告ください。

修正・削除・掲載などの依頼はこちら
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

企業・法人向けのIT・プログラミング・生成AI研修を探す、比較する - IT・プログラミングを知って学べるコネクトメディア CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 3.5日の研修で、年間1,600時間の削減効果が見込まれる。東京きらぼしフィナンシャルグループのDX人材育成事例 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

What's New

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する