ML Diagnostics 平台
Google Cloud ML Diagnostics 是一个端到端托管式平台,用于优化、监控和诊断 Google Cloud上的 AI 和机器学习工作负载。使用机器学习诊断功能监控工作负载,并在一个平台内收集并直观呈现所有工作负载指标、配置和配置文件。机器学习诊断适用于训练、训练后强化学习 (RL) 和推理工作负载,并且与 Cloud TPU 上的所有编排器兼容。GKE 支持已正式发布。通过 Cluster Director、自定义编排器(例如 Kubernetes 和 Slurm)以及 Compute Engine 对代管式 Slurm 的支持目前处于预览版阶段。
机器学习诊断包括以下正式版功能:
- 工作负载监控:自动监控和诊断在 GKE TPU 上运行的 AI/机器学习工作负载。对于每个 GKE 作业,机器学习诊断工作负载监控功能都会自动创建机器学习运行、监控整个工作负载的 TPU 占空比、检测影响工作负载的事件,并分析工作负载的不同层(例如基础设施、编排器和框架),以帮助确定事件的潜在原因。
- 机器学习运行作业:使用 ML Diagnostics,通过 Google Cloud CLI 创建和注册机器学习运行作业,或将 ML Diagnostics SDK 与您的工作负载集成。您可以通过工作负载监控自动创建和注册运行,并使用机器学习运行部署代管式 XProf 实例,以及收集和管理工作负载指标、配置和性能分析会话。
- gcloud CLI 体验:通过 gcloud CLI 使用 ML Diagnostics API 注册和管理运行、部署代管式 XProf 资源、直观呈现存储桶中的性能分析会话,以及从 CLI 触发性能分析捕获。您还可以通过 CLI 或 API 列出工作负载监控检测到的所有事件,并获取这些事件的分析器详细信息。
- Python SDK:使用与机器学习工作负载集成的开源 ML Diagnostics SDK,获得完整的机器学习工作负载诊断体验。在 Google Cloud上监控工作负载,并收集和管理工作负载指标、配置和配置文件。
- 代管式性能分析:机器学习诊断会将具有可伸缩后端的 XProf 代管式实例部署到关联的账号中,从而实现大型性能分析文件的快速加载。它支持多个用户同时访问性能剖析文件,并包含多主机性能剖析和按需性能剖析等内置功能。
- 工作负载指标:跟踪工作负载指标,包括模型质量、模型性能和系统指标。借助工作负载监控,您无需集成 SDK 即可获取与工作负载关联的系统指标。
- 工作负载配置管理:跟踪工作负载配置,包括软件配置、系统配置和用户定义的配置。
- Cluster Director 和 GKE 中的可视化:在 Google Cloud 控制台的 Cluster Director 和 Google Kubernetes Engine 中直观呈现指标、配置和配置文件。
- 链接共享:使用共享链接进行协作,其中包含有关机器学习运行、工作负载监控、指标和配置文件的信息。
机器学习诊断还包含以下预览版功能:
- 工作负载监控:当性能下降分析器显示不良状态时,自动捕获 XProf 配置文件(使用 Diagon DaemonSet)以进行进一步诊断。
- Python SDK:支持 vLLM、Tunix 和 TorchTPU 工作负载。
- 代管式性能分析:快照模式下的持续性能分析(使用 Diagon DaemonSet)和智能体性能分析。
- 编排器:支持自行管理的 Kubernetes、Cluster Director 管理的 Slurm、自行管理的 Slurm 和 Compute Engine。
工作负载框架和编排器类型
机器学习诊断支持 JAX,并且已在 GKE 上正式发布。 TorchTPU、vLLM 和 Tunix 等工作负载框架处于预览版阶段。
下表总结了不同编排器类型下 TPU 工作负载支持的功能和所需组件:
| 编排器类型 | 支持的功能和必需组件 |
|---|---|
| GKE |
|
| 自行管理的 Kubernetes(预览版) |
|
| Cluster Director 托管式 Slurm、自行管理的 Slurm 和 Compute Engine(预览版) |
|
如需申请使用预览版功能,请与您的客户支持团队联系。您无需申请访问权限,即可在 GKE 上将 SDK 指标、程序化性能分析或按需性能分析与 TorchTPU、vLLM 和 Tunix 工作负载搭配使用。
用户路径
您可以将 ML Diagnostics 平台与工作负载监控功能搭配使用,自动监控所有 GKE 作业,也可以将 SDK 与工作负载集成,获得完整的机器学习工作负载诊断体验。您可以通过 Google Cloud 控制台或 CLI 与机器学习诊断平台进行交互。工作负载监控功能会自动对通过 GKE 在 TPU 上部署的所有工作负载可用。
借助 CLI,您可以使用 ML Diagnostics gcloud CLI 创建或修改机器学习运行作业,并部署代管式 XProf 资源。使用 ML Diagnostics SDK 时,需要将该 SDK 集成到机器学习工作负载中,以便收集和管理工作负载指标和配置,并部署代管式 XProf 资源。
如需开始使用,请参阅以下指南之一:
前提条件
在使用机器学习诊断之前,请先启用 Cluster Director API 并添加所需的 IAM 权限。如果您使用的是 GKE,则工作负载监控功能已启用。不过,ML Diagnostics SDK 和按需性能分析需要额外的 GKE 工件和 GKE 集群配置。如需了解详情,请参阅设置 GKE。
启用 Cluster Director API
您无需使用 Cluster Director 来部署和管理集群,即可使用 ML Diagnostics 产品。机器学习诊断功能适用于由 GKE、Cluster Director 或自定义编排器管理的集群。ML Diagnostics 是 Cluster Director 系列 API 的一部分,但不依赖于用户使用 Cluster Director 产品本身。
如需详细了解如何启用 Cluster Director API,请参阅在 Google Cloud 项目中启用 API。
IAM 权限
工作负载使用的 Google Cloud 服务账号需要为项目分配以下 IAM 角色:
roles/hypercomputecluster.editor:拥有创建和管理MLRun资源以及查看界面的完整访问权限。roles/logging.logWriter:将日志和指标写入 Cloud Logging。roles/storage.objectUser:将配置文件保存到machinelearning_run中指定的 Cloud Storage 存储桶。
您还可以创建自定义角色,为用户分配机器学习诊断所需的部分 API。由于用户无需使用 Cluster Director 来管理集群,因此您只需分配以下权限:
hypercomputecluster.locations.gethypercomputecluster.locations.listhypercomputecluster.clusters.listhypercomputecluster.nodes.listhypercomputecluster.machineLearningRuns.createhypercomputecluster.machineLearningRuns.deletehypercomputecluster.machineLearningRuns.gethypercomputecluster.machineLearningRuns.listhypercomputecluster.machineLearningRuns.updatehypercomputecluster.operations.cancelhypercomputecluster.operations.deletehypercomputecluster.operations.gethypercomputecluster.operations.listresourcemanager.projects.getresourcemanager.projects.list
对于 Google Kubernetes Engine 上的工作负载,请使用 Workload Identity 联合将 Kubernetes 服务账号与 Google Cloud 已获授所需角色的服务账号相关联。在主机网络 (hostNetwork: true) 上运行的 Pod 不使用 Workload Identity Federation for GKE。对于这些情况,请参阅适用于 GKE 的工作负载身份联合的替代方案。
在 Cloud Logging 上启用 Observability Analytics
模型指标和效果指标时序图表使用针对项目的 _Default 日志存储桶的 Observability Analytics 查询来呈现其数据。如果未在该存储桶上启用 Observability Analytics,则这些图表会失败,并且微件会显示 Something went wrong in the backend 或 0 time
series 消息,即使指标数据存在于 Cloud Logging 中,并且配置文件和系统指标按预期呈现。
每个项目只需启用一次 Observability Analytics。此升级是非破坏性的,不会产生额外费用,也无法停用。您仍然可以查询现有日志:
gcloud logging buckets update _Default --location=global \
--enable-analytics --project=PROJECT_ID
此命令需要 logging.buckets.update 权限,该权限包含在 roles/logging.configWriter 等角色中。
价格
您需要为通过 Cloud Logging 存储指标以及通过 Cloud Storage 存储性能剖析文件付费。使用 ML 诊断平台时,无需为这些服务启用任何额外结算。ML Diagnostics 平台部署的代管式 XProf 资源不收取任何费用。