您做出的选择取决于多种因素。
将 Cloud Storage 用作已装载的文件系统 (Cloud Storage FUSE)
考虑将 Cloud Storage 用作已装载的文件系统 (Cloud Storage FUSE),原因如下:
- 当训练数据是非结构化数据(例如图片、文本或视频)时:Cloud Storage 非常适合存储这类通常是单独文件的大型数据。
- 当训练数据采用 TFRecord 等格式进行结构化时:Cloud Storage 通常用于这些特定于机器学习的格式。
- 处理超大型文件时:Cloud Storage FUSE 会将数据流式传输到您的训练作业,而无需将整个文件下载到副本。这可以缩短大型数据集的数据加载时间和作业启动时间。
- 执行分布式训练时:Cloud Storage FUSE 可为大型文件顺序读取提供高吞吐量,这对需要多个工作器并行访问数据的分布式训练场景非常有用。
- 当您希望像访问本地文件系统一样方便地访问 Cloud Storage 数据,而无需在训练代码中进行显式 API 调用时。
- 当您的主要需求是可伸缩存储空间,并且您不太关心对大量小文件进行随机访问时的最低延迟时间时。
特定于 Ray on Vertex AI
- 您可以将数据存储在 Cloud Storage 存储分区中,Vertex AI 上的 Ray 可以访问这些存储分区。
- Ray 可以直接从 Cloud Storage 读取数据。例如,在在 Ray 上运行 Spark 时,您可以从 Cloud Storage 读取文件。
- Vertex AI 会使用 Cloud Storage FUSE 在在 Ray 上运行的训练作业中将 Cloud Storage 存储分区装载为本地文件系统。这样一来,您的 Ray 应用就可以使用标准文件 I/O 操作访问数据,就像数据在本地磁盘上一样。
- 为了实现最佳性能,建议您在运行 Ray 集群的区域中使用 Cloud Storage 存储分区。
了解详情
网络文件系统 (NFS) 共享
- 当您需要以极高的吞吐量和低延迟访问远程文件,就像它们存储在本地一样。对于训练期间的某些类型的数据或复杂的文件交互,这可能很重要。
- 当您需要让计算集群(例如 Ray on Vertex AI 集群)中的所有节点都能轻松访问远程文件时。
- 与 Cloud Storage FUSE 相比,您的应用可以从更标准的文件系统接口(可能更符合 POSIX 规范)中受益。
- 您在虚拟私有云中有一个要使用的现有 NFS 基础架构。
- 您需要在多个作业或集群之间共享文件或目录,并以一致且低延迟的方式进行访问,最好在文件系统级别管理权限。
特定于 Ray on Vertex AI
- 您可以将 NFS 共享装载到 Vertex AI 上的 Ray 集群,以便像访问本地文件一样访问远程文件。
- 这有助于以高吞吐量和低延迟的方式访问共享文件系统。
- 您可以在使用 Vertex AI SDK for Python 创建 Ray 集群时设置 NFS 挂载,指定服务器、路径和挂载点。装载后,您的 Ray 代码可以使用标准文件操作读取和写入这些 NFS 卷。
了解详情
托管式数据集
- 集中式数据管理和治理:代管式数据集提供了一个集中位置,供您在 Vertex AI 中整理和管理数据集。这有助于跟踪和管理不同项目和实验中的数据资产。
- 数据标注:您可以直接在托管式数据集中创建标注任务和管理注解集。
- 跟踪数据沿袭:托管式数据集会自动跟踪数据与基于其训练的模型之间的沿袭。这对于了解特定模型所用的数据源以及确保可重现性和治理至关重要。
- 比较自定义模型和 AutoML 模型:借助托管式数据集,您可以使用相同的数据训练自定义模型和 AutoML 模型。这样,您就可以直接比较它们在同一数据集上的表现,从而帮助您为问题选择最佳方法。
- 生成数据统计信息和可视化图表:Vertex AI 可以自动为托管式数据集中的数据生成统计信息和可视化图表。这有助于进行探索性数据分析,并帮助您了解数据的特性。
- 自动数据拆分:在训练流水线中使用托管式数据集时,Vertex AI 可以根据指定的分数、过滤条件、预定义拆分或时间戳,自动将数据拆分为训练集、验证集和测试集。这简化了数据准备流程。
- 利用数据集版本:您可以为受管理的数据集启用版本控制,以便跟踪数据随时间的变化,并在需要时还原到之前的版本。
特定于 Ray on Vertex AI
- 如果您在使用 Ray 进行分布式训练的 Vertex AI 训练流水线中使用托管式数据集,系统会将托管式数据集中的数据提供给训练容器,然后您的 Ray 应用便可以访问这些数据(如果数据集已关联到这些来源,则通过已装载的 Cloud Storage 或 BigQuery 访问)。环境变量
AIP_TRAINING_DATA_URI
、AIP_VALIDATION_DATA_URI
和AIP_TEST_DATA_URI
会指向这些数据。
了解详情
BigQuery
- 连接到 Vertex AI 组件中的数据时:许多 Vertex AI 工具和服务都直接与 BigQuery 集成。您可以从 JupyterLab 中查询 BigQuery 中的数据。这样,您就可以直接与 BigQuery 数据进行互动,进行探索、可视化和模型开发,而无需将其移至其他存储系统。
- 构建训练流水线时:在 Vertex AI 中构建训练流水线时,您可以直接使用 BigQuery 中的数据。例如,流水线可以从 BigQuery 提取数据、对其进行预处理,然后训练模型。
- 连续模型训练流水线:如需设置连续模型训练,您可以根据 BigQuery 表中收到的新数据触发流水线运行。这样便可实现模型自动重新训练。您可以配置 Eventarc 触发器,以便在有新作业插入特定 BigQuery 表时启动流水线。
- 模型监控:BigQuery 可用作监控已部署模型的特征偏差和偏移的来源。对于偏差检测,您可以指定训练数据集的 BigQuery URI。此外,BigQuery 还可以存储来自在线推理端点的日志,这些日志可用作持续监控的数据源。为此,BigQuery 表最好包含时间戳列。
- BigQuery ML 集成:在利用 BigQuery ML 使用 SQL 构建机器学习模型时,您可以使用 BigQuery 数据集。Vertex AI Workbench 支持对 BigQuery 数据进行交互式探索性分析,并支持在笔记本环境中使用 BigQuery ML。
- 数据探索和准备:在训练之前,您可以使用 BigQuery 探索和可视化数据。您还可以在将数据用于训练之前,直接在 BigQuery 中使用 SQL 查询执行数据转换。
- 访问公共数据集:BigQuery 托管了许多公共数据集,例如“芝加哥出租车行程”数据集,您可以轻松在 Vertex AI Workbench 中使用这些数据集进行实验和训练。
特定于 Ray on Vertex AI
- Ray on Vertex AI 能够直接从 BigQuery 读取数据。您可以在 Ray 任务中使用 Python 版 Vertex AI SDK 执行 BigQuery 查询并将结果具体化,以便在 Ray 应用中使用。
- 从 BigQuery 读取时,请注意查询响应大小上限为 10 GB。
- 您还可以使用 Vertex AI SDK for Python 将 Ray 应用中的数据写回 BigQuery。