Vertex AI 中自定义训练选项概览

比较 Vertex AI 自定义训练和 Ray on Vertex AI

Vertex AI 提供了两种自定义训练选项:Vertex AI 自定义训练和 Vertex AI 上的 Ray。本页提供了相关背景信息,可帮助您在这两个选项之间做出选择。

Vertex AI Training Ray on Vertex AI
焦点 通用自定义模型训练。 扩缩 AI 和 Python 应用,包括模型训练、分布式应用和模型服务。
底层框架 支持各种机器学习框架,例如 TensorFlow、PyTorch、scikit-learn。 利用开源 Ray 框架。支持各种框架:TensorFlow、PyTorch、scikit-learn 和 RayDP 上的 Spark(使用 RayDP)。
灵活性 在代码和环境方面具有高度灵活性。 在构建分布式应用方面具有高度灵活性;只需极少的更改即可使用现有的 Ray 代码。
可伸缩性 支持在多台机器上进行分布式训练。提供可扩缩的计算资源(CPU、GPU、TPU)。 利用 Ray 的分布式计算功能(最多 2,000 个节点)实现高可伸缩性。支持手动扩缩和自动扩缩。
集成 与其他 Vertex AI 服务(数据集、Vertex AI Experiments 等)集成。 与其他 Google Cloud 服务(例如 Vertex AI Inference 和 BigQuery)集成。
易用性 更易于用于标准分布式训练范式。 需要熟悉 Ray 框架概念。
环境 用于使用预构建容器或自定义容器运行自定义训练代码的托管式环境。 用于使用 Ray 框架运行分布式应用的受管环境;可简化对 Vertex AI 上 Ray 集群的管理。
超参数调节 包含超参数调节功能。 通过高效的优化和实验管理工具简化超参数调节。
训练流水线 支持包含多个步骤的复杂机器学习工作流。 不适用。

Vertex AI 自定义训练与 Vertex AI 上的 Ray 之间的主要区别

Vertex AI 自定义训练是一项更广泛的服务,可管理各种训练方法,而 Vertex AI 上的 Ray 则专门使用 Ray 分布式计算框架。

Vertex AI Training Ray on Vertex AI
焦点 主要侧重于模型开发和训练。管理各种训练方法。 专为通用分布式 Python 应用而设计,包括数据处理、模型服务和扩展训练。
底层框架 与特定机器学习框架(例如 TensorFlow、PyTorch)的分布式功能相关联。 使用 Ray 作为中央分布式计算框架。处理任务分配,无论 Ray 任务中使用的是哪种底层机器学习框架。
资源配置 为各个训练作业配置资源。 管理 Vertex AI 集群上的 Ray 集群;Ray 会处理集群内任务的分配。
分发配置 为特定训练作业配置副本数量和类型。 配置 Ray on Vertex AI 集群的大小和组成;Ray 的调度程序会在可用节点之间动态分配任务和 actor。
分发范围 通常专注于单个可能长时间运行的训练作业。 提供更持久且通用的分布式计算环境,您可以在 Ray 集群的整个生命周期内运行多个分布式任务和应用。

摘要

如果您需要在 Google Cloud 环境中使用 Ray 框架的分布式计算功能,则应使用 Ray on Vertex AI 服务。Ray on Vertex AI 可视为大型 Vertex AI 生态系统中的一种特定工具,尤其适用于高度可扩缩的分布式工作负载。

如果您需要一个更通用的托管平台来支持各种模型训练方法,包括自动化选项、自定义代码执行和超参数调节,那么更广泛的 Vertex AI 自定义训练服务会很有用。