Google Distributed Cloud(纯软件)参考架构上的开放模型部署

概览

此解决方案参考架构 (SRA) 定义了在 Google Distributed Cloud 软件专用独立集群上托管、应用和验证开放权重的大语言模型 (LLM) 的概念设计、组件拓扑和技术边界。

企业边缘环境通常需要低延迟推理和严格的数据主权。此解决方案参考架构提供了一个标准化、安全且可观测的服务堆栈,用于在配备客户自备 NVIDIA RTX PRO 6000 GPU (96GB VRAM) 的单节点 Google Distributed Cloud 纯软件集群上部署 Gemma 4 31B 模型。

特性和功能

  • 本地模型部署:在 Google Distributed Cloud 纯软件集群边界内本地公开符合业界标准的 OpenAI 兼容 API。
  • 支持大型边缘模型:经过优化,可原生精度 (BF16) 或量化格式运行 Gemma 4 31B,充分利用 96GB VRAM 容量。
  • 可观测性:使用原生 PodMonitoring 资源与 Google Distributed Cloud 纯软件版的监控基础设施 (Google Cloud Managed Service for Prometheus) 集成,以导出 GPU 遥测和 vLLM 性能指标,从而避免需要独立的本地 Prometheus 服务器。
  • 交互式验证:部署基于 Gradio 的网页界面,以便立即直观地验证模型响应能力。

架构原则

  • 简单性和可移植性:在 Kubernetes 原生构造(Deployment、Service)而非复杂的 Serving Operator 上进行标准化,确保在单节点设置中轻松部署和维护。
  • 数据主权:所有推理流量以及提示和回答数据都严格保留在本地集群边界内。
  • 资源隔离:将物理 GPU 加速器专用于单个模型部署实例,以防止资源争用并保证可预测的延迟时间。

架构和设计

组件

解决方案组件包括:

  • 客户命名空间(Google Distributed Cloud 纯软件集群):
    • vLLM 服务引擎:作为运行 vLLM 容器的 Kubernetes Deployment 进行部署。配置为从永久性存储空间加载 Gemma 权重,并提供与 OpenAI 兼容的 API。
    • Gradio Web 界面:作为 Kubernetes Deployment 部署,提供用于验证的聊天界面(可选:也可以在连接到集群 vLLM 服务的开发者工作站或测试运行时上从外部运行)。
  • 永久性卷声明 (PVC):由 Google Distributed Cloud 纯软件本地共享存储空间(使用 local-shared StorageClass)提供支持,用于托管模型权重。
  • Kubernetes Service:用于 vLLM API 端点的 ClusterIP Service;用于 Gradio 界面的 NodePort 或 LoadBalancer Service,以便将其公开给客户网络。
  • 基础设施(客户管理):
    • NVIDIA GPU Operator:编排物理 GPU 资源并将其公开给 Google Distributed Cloud(纯软件)Kubernetes 工作器节点。
    • NVIDIA RTX PRO 6000 GPU:底层物理加速器(96 GB GDDR7 内存架构)。
  • Google Cloud 集成:
    • Google Cloud Monitoring 和 Logging:默认的 Google Distributed Cloud 纯软件代理,用于收集系统日志、容器日志和基本指标并将其转发到Google Cloud。

概要架构概览

下图说明了 Google Distributed Cloud 纯软件集群中的请求流和组件交互:

Google Distributed Cloud(纯软件)上的开放模型部署架构图。

硬件限制

该解决方案专为配备 NVIDIA RTX PRO 6000 Blackwell GPU 的客户自有硬件而设计。

  • GPU 规格:NVIDIA RTX PRO 6000(Blackwell 服务器版或工作站版)。
  • 内存架构:96 GB GDDR7 VRAM(带 ECC)
  • 模型选择的影响:
    • 96 GB 的 VRAM 允许以原生 BF16 精度运行目标 Gemma 4 31B 模型(占用约 62 GB 的权重,并为键值对 (KV) 缓存留出约 34 GB 的 VRAM 空间)。
    • 启用 Blackwell 硬件加速 FP8 量化 (--quantization=fp8)(如参考实现中所配置)后,模型权重内存会减半至约 31 GB,从而将可用 KV 缓存扩展到 ~56.5 GiB(61,728 个词元,在 --gpu-memory-utilization=0.95 下),并支持大上下文窗口或高并发批处理大小,而不会遇到内存不足 (OOM) 错误。

支持能力矩阵(责任)

组件 管理者 备注
物理硬件和操作系统 客户 客户自备的硬件(特别是配备 NVIDIA RTX PRO 6000 Blackwell GPU 的服务器或工作站)。
Google Distributed Cloud 纯软件集群安装 客户 必须遵循标准的 Google Distributed Cloud(纯软件)安装文档。
GPU 驱动程序和 Operator 客户 安装 NVIDIA GPU Operator 和 Helm chart。Google 不支持 NVIDIA Operator 部署。
vLLM 服务清单 Google(解决方案) 作为本解决方案指南的一部分提供。
模型制品 客户 下载并托管 Gemma 模型权重。
Gradio 界面和应用代码 客户 客户拥有的应用层,用于验证和使用。
Cloud Logging 和 Cloud Monitoring 关节 Google 提供默认集成;客户进行配置。

概念和技术

本部分详细介绍了功能组件、其职责以及它们在系统内的通信方式。它会确定支持目标用例所需的核心服务、数据存储区和网络接口。

基础架构和平台

  • NVIDIA RTX PRO 6000 GPU:提供 96GB GDDR7 VRAM。物理 GPU 完全专用于模型部署实例。未启用 GPU 分区 (MIG),以确保模型能够独占访问全部 VRAM 和内存带宽,从而避免资源争用。
  • NVIDIA GPU Operator:客户管理的 Operator,用于编排物理 GPU 资源并将其公开给 Google Distributed Cloud(纯软件)Kubernetes 工作器节点。
  • 节点本地存储(永久性卷声明):由 Google Distributed Cloud 纯软件节点本地存储提供支持,用于在节点上托管和持久保存模型权重。这样可以确保模型权重下载后会保留在本地。后续 Pod 重启或更新会从此本地缓存加载权重,从而缩短启动时间并防范 WAN 服务中断。
  • 共享内存段 (/dev/shm):一个具有 medium: Memory 的 emptyDir 卷会装载到 /dev/shm,并分配 16GiB,以防止在 vLLM 中进行高并发张量运算期间出现分段错误。

服务和逻辑

  • vLLM 服务引擎:作为 Kubernetes Deployment 部署,运行符合 Vertex AI 要求的 vLLM 容器,并通过 ClusterIP 服务(端口 8000)公开。关键配置参数包括:
    • --model:Gemma 模型的路径或 ID(例如 google/gemma-4-31B-it)。
    • --tensor-parallel-size:设置为 1(单个 GPU 限制)。
    • --dtype:设置为 bfloat16,以便为非量化层和激活函数利用硬件原生精度。
    • --quantization:在参考实现中设置为 fp8,以利用 Blackwell FP8 权重量化(约 31 GB 权重,约 56.5 GiB KV 缓存);如果首选未量化的 BF16(约 62 GB 权重,约 34 GB KV 缓存),则省略。
  • Gradio Web 界面:作为 Kubernetes Deployment 部署,提供用于验证的聊天界面,通过 ClusterIP 服务(端口 8080)公开。它连接到 vLLM 服务,以进行提示和回答互动。

可观测性和 Google Cloud 集成

  • Cloud Logging:使用默认的 Google Distributed Cloud 纯软件 Logging 代理,自动捕获容器日志(vLLM 应用日志和 GPU 诊断信息)并将其转发到 Cloud Logging。
  • Cloud Monitoring (PodMonitoring):Google Cloud Managed Service for Prometheus (GMP) 资源同时以 vLLM Pod(用于提供词元吞吐量和 KV 缓存用量等遥测数据)和 GPU 导出器 Pod(用于 GPU 遥测)为目标,将指标导出到 Cloud Monitoring。

注意事项

可扩展性与性能

  • GPU 专用:NVIDIA RTX PRO 6000 GPU 完全专用于 vLLM 容器。此架构中未实现通过 MIG 或时间片共享 GPU,以确保可预测的推理延迟时间并防止 OOM。Gemma 4 31B 模型还需要大部分 VRAM 容量来存储模型权重(约 62GB),这导致没有太多内存可供其他模型同时运行。
  • 部署策略:强制执行为 Recreate。由于我们只有一个 GPU,因此在更新期间无法同时运行两个 vLLM Pod 实例。 必须先终止旧 Pod 以释放 GPU 锁,然后才能启动新 Pod。

资源管理

  • VRAM 预留空间:虽然 96 GB NVIDIA RTX PRO 6000 能够以未量化的 BF16 精度容纳 Gemma 4 31B 模型(权重约占 62 GB,KV 缓存约占 34 GB),但参考部署启用了 Blackwell FP8 量化 (--quantization=fp8),将权重内存减少到约 31 GB,并将可用 KV 缓存扩展到约 56.5 GiB(61,728 个并发 token)。
  • KV 缓存大小:SRA 采用默认的 vLLM 分配 (--gpu-memory-utilization=0.95),这会最大限度地提高引擎的 VRAM 使用率。

可用性和可靠性

  • 缓存预热:使用节点本地 PV 至关重要。如果节点重启,系统会重复使用主机目录中的缓存权重。
  • 映像缓存:由于 vLLM 容器映像很大 (>10GB),因此建议设置 imagePullPolicy: IfNotPresent,以避免在 Pod 重启时出现注册表拉取延迟。

运维复杂性

  • 控制台可见性:与 GKE 不同,Google Distributed Cloud 纯软件不支持基于控制台的“AI/ML 模型”视图。所有验证和监控都必须通过 kubectl CLI、端口转发和直接 Cloud Monitoring 信息中心执行。

设计决策

推理引擎:vLLM、Triton 和 Ollama

  • 所选选项:vLLM
  • 理由:vLLM 通过 PagedAttention 为 LLM 提供最佳开箱即用性能,支持 OpenAI API 奇偶校验,并具有来自 Vertex AI 的预限定容器映像。
  • 备选方案被拒:
    • Triton:对于单模型边缘部署而言,配置和编译过于复杂。
    • Ollama:缺少生产监控所需的高级遥测端点和精细并发调优。

遥测路径:原生 GMP 与本地 Prometheus

所选选项:原生 GMP (PodMonitoring)

  • 理由:Google Distributed Cloud 纯软件仅支持与 Cloud Monitoring 的原生集成。我们可以使用 Managed Prometheus 将指标直接路由到Google Cloud ,从而减少集群上的运营开销。
  • 备选方案被拒:
    • 本地 Prometheus 和 Grafana 堆栈:已拒绝,以最大限度地减少单节点集群上的控制平面资源用量。

假设和限制

前提

  • GPU Operator 可用性:假设客户在部署此解决方案之前已成功安装 NVIDIA GPU Operator 并配置了 nvidia RuntimeClass。
  • Hugging Face 访问权限:部署需要一个有效的 Hugging Face 令牌,该令牌具有对受限 Gemma 4 代码库的访问权限,并存储为 Kubernetes Secret。
  • 网络路径:集群必须具有互联网访问权限(或内部代理),才能在初始设置期间下载容器映像和模型权重。

限制

  • 单 GPU 边界:第 1 阶段架构受限于单个 NVIDIA RTX PRO 6000 GPU 的物理容量。第 1 阶段不支持大于约 31B 的模型(或需要多 GPU 张量并行的高并发工作负载)。
  • 无滚动更新:Recreate 策略意味着在模型更新或配置更改期间会出现临时服务停机,因为 GPU 无法在旧 Pod 和新 Pod 之间共享。
  • 不包括性能调优:根据项目范围,此架构不包括节点级优化(CPU 绑定、大页、PerformanceTuningProfile)。

后续步骤