分布式机器学习让数据科学家与机器学习工程师能够突破单台机器的内存与算力限制,扩缩机器学习 (ML) 模型训练规模。通过在工作器节点集群中分发数据分区以及并行处理工作负载,您可以明显加快在海量数据集上训练复杂模型的速度。
Apache Spark 是分布式数据处理的业界标准。其原生机器学习库 MLlib 提供了用于分类、回归、聚类和协同过滤的分布式算法,让您能够在单一统一的环境中完成从数据注入到模型部署的全流程。
Spark ML 流水线是一种高级 API,旨在帮助您将多个机器学习工作流整合为一个紧密结合的流水线。它允许您在结构化的声明式工作流中,将各种数据转换(如特征提取和缩放)与机器学习算法(如模型训练)紧密串联起来。
借助流水线,您可以确保在模型训练与预测阶段一致地应用相同的数据预处理步骤,这对于防止数据泄露以及确保结果的可复现性至关重要。Spark ML 流水线的核心组件是 Transformer 与 Estimator。
在扩缩机器学习工作负载以应用硬件加速时,通常会面临管理复杂 Spark GPU 依赖项的挑战。预配虚拟机实例,安装正确的 NVIDIA 驱动程序,并确保 CUDA 和 cuDNN 版本与您的 PyTorch 或 TensorFlow 库相匹配,这些工作可能会使开发人员的工作停滞数天。
Google Cloud 依托 Managed Service for Apache Spark 解决了这一问题,该服务提供预封装的机器学习运行时。这些运行时基于稳定的 Ubuntu 操作系统映像(2.3 及更高版本),预装并预配置了您的工作负载所需的对应 GPU 驱动程序(CUDA、cuDNN、NCCL)和行业标准机器学习框架(PyTorch、XGBoost、tokenizers 和 transformers)。这种开箱即用的环境让您的团队可以专注于编写代码,而不是配置基础设施。
在 Spark MLlib 中,Transformer 是一种可将一个 DataFrame 转换为另一个 DataFrame 的算法(例如将文本转换为数值向量)。Estimator 是一种可在 DataFrame 上拟合训练以生成 Transformer 的算法(例如在训练数据上拟合逻辑回归算法以生成训练好的模型)。
依托 Spark ML 流水线,您可以确保数据准备逻辑与模型实现严格绑定。这可确保测试数据或推理数据的处理逻辑与训练数据完全保持一致。
借助 Managed Service for Apache Spark 上的 Google Cloud ML 运行时,依赖项管理负担得以减轻,无需您自行维护。Google 会持续更新这些基于 Ubuntu 的自定义映像,其中已预装原生兼容的适用版本 NVIDIA 驱动程序、CUDA 工具包和分布式机器学习框架。
了解 Spark MLlib 与 Google Cloud 数据工具的基础构成,对于大规模运行分布式机器学习至关重要。
组件 | 说明 | 主要用途 | 价格注意事项 |
Spark MLlib | Apache Spark 的可扩展机器学习库,包含通用学习算法、特征工程工具和流水线实用工具。 | 在分布式集群中执行大规模机器学习模型训练,而不依赖于单节点库。 | 运行 Apache Spark 所使用的底层 Google Cloud 服务会产生相应费用,主要来自 Managed Service for Apache Spark。具体价格取决于所预配的 Compute Engine 资源(vCPU、内存、GPU、磁盘)以及作业运行时长。 |
VectorAssembler | Spark MLlib 中的核心特征 Transformer,可将多个特征列(连续数值、独热编码类别等)合并为单个向量列。 | 将原始表格数据处理转换成 Spark MLlib 机器学习算法所需的特定稠密或稀疏向量格式。 | 作为 Spark MLlib 内置的一个组件,其运行所产生的开销会计入在 Managed Service for Apache Spark 上运行 Spark 工作负载的总体计算成本中。 |
Spark ML 流水线 | 基于 DataFrame 构建的高级 API,可帮助用户将多个特征工程步骤和模型串联在一起。 | 将 Transformer 和 Estimator 整合到统一的流水线中,确保模型在训练与推理阶段执行完全一致的数据处理逻辑。 | 与其他 Spark MLlib 组件类似,相关费用均已包含在 Managed Service for Apache Spark 的执行费用中。 |
BigQuery ML | 这项服务让您能够直接使用标准 SQL 查询在 BigQuery 中构建并运行机器学习模型。 | 在将高度复杂的迭代式分布式作业迁移到 Spark 之前,直接在数据驻留处训练模型。 | BigQuery ML 拥有独立的价格模式。具体计费项包括:
|
Google Cloud 的 Managed Service for Apache Spark 屏蔽了底层基础设施的复杂性,让您可以利用无服务器环境或可自定义的托管集群来运行 Spark 机器学习流水线,开展大规模模型训练。
为了消除复杂的 Spark GPU 依赖项问题,该服务采用预封装的机器学习运行时,其完整配备了原生兼容的 NVIDIA 驱动程序、CUDA 工具包和分布式框架,让您无需任何额外设置即可直接部署硬件加速工作负载。
了解如何使用转换器提取和扩缩数据,以及如何使用估算器训练算法。
启动 GPU 加速的 Spark 集群,无需管理底层基础设施。Google Cloud 的机器学习运行时已预先配置,因此您可以绕过复杂的 Spark GPU 依赖项。