2. 环境与项目初始化
在 Google Cloud 上做机器学习,第一步不是写模型代码,而是把“地基”打好。所谓环境与项目初始化,本质上是回答五个问题:资源放在哪个组织边界内、用哪个项目承载、谁有权操作、能用多少配额、以及钱会花在哪里。这五件事如果一开始没理顺,后面训练任务失败、权限报错、账单失控几乎都是必然的。本节按“组织 → 项目 → IAM → 配额 → API → 预算”的顺序,把这条初始化链路讲清楚。
一、资源层级:组织、文件夹与项目
Google Cloud 的资源是树状层级:组织(Organization)→ 文件夹(Folder)→ 项目(Project)→ 具体资源。组织节点对应一个 Workspace 或 Cloud Identity 账号,是权限和策略的最高继承点;文件夹用于按部门、环境(如 dev/staging/prod)或业务线分组;项目是启用 API、计费、配额和 IAM 的最小管理单元。ML 场景中,建议至少拆成三类项目:数据与特征项目、训练与实验项目、在线推理项目,这样配额、权限和成本可以分别治理。
创建项目时,项目 ID 全局唯一且创建后不可更改,命名建议带环境与用途,例如 ml-prod-train-2401。项目名称可改,但 ID 不要依赖它做脚本引用。
二、IAM:最小权限与角色绑定
IAM 的核心是“谁(成员)在什么资源上拥有什么角色”。成员可以是 Google 账号、群组、服务账号或 Workspace 域。ML 平台建设中最关键的是服务账号:训练任务、Vertex AI Pipeline、推理服务都应以服务账号身份运行,而不是个人账号。常见角色包括:
roles/aiplatform.user:提交训练、部署模型;roles/storage.objectAdmin:读写 GCS 中的数据集与模型产物;roles/bigquery.dataViewer:读取特征表;roles/iam.serviceAccountUser:允许以某服务账号身份运行任务。
原则是“按需授予、优先群组、避免 Owner”。个人调试可用 gcloud auth application-default login,但生产任务必须绑定服务账号。
三、配额:先看上限,再谈规模
配额决定你能同时用多少资源。ML 相关配额主要有:GPU 配额(如 NVIDIA T4、A100 在各区域的 vCPU/GPU 数量)、Vertex AI 自定义训练并发任务数、在线预测节点数、CPU/内存等。配额是按区域计算的,例如 us-central1 的 A100 配额与 asia-east1 不通用。新建项目默认 GPU 配额通常为 0,需要提前在“IAM 与管理 → 配额”中提交调整申请,说明用途和预估用量,审批可能需要数小时到数天。
四、启用 API:按需开启,避免默认全开
项目创建后,绝大多数 API 默认关闭。ML 平台常用 API 包括:aiplatform.googleapis.com(Vertex AI)、compute.googleapis.com、storage.googleapis.com、bigquery.googleapis.com、artifactregistry.googleapis.com、cloudbuild.googleapis.com、logging.googleapis.com、monitoring.googleapis.com。启用方式:
gcloud services enable aiplatform.googleapis.com \
storage.googleapis.com \
compute.googleapis.com \
artifactregistry.googleapis.com \
--project=ml-prod-train-2401
API 启用是幂等的,重复执行不会报错。建议把启用清单写进初始化脚本,保证环境可复现。
五、成本预算:让花费可见、可控
预算(Budget)绑定在计费账号上,可按项目、服务、标签过滤。设置时需指定:预算金额、时间范围(月/季/年)、阈值规则(如 50%、90%、100%)和通知渠道(邮件、Pub/Sub)。ML 成本大头通常是 GPU 训练时长、在线预测节点和存储。建议给训练项目打上 env=prod、team=ml 等标签,预算按标签过滤,便于归因。
六、初始化链路总览
下面这张图把本节六个环节串成一条可执行的初始化链路,并标出每一步的关键产物与依赖关系:
七、可执行的初始化清单
把上述内容固化成一份可复用的初始化清单,能显著降低环境漂移。以下字段可直接作为团队内部模板使用:
| 环节 | 关键动作 | 示例值 / 判断依据 |
|---|---|---|
| 组织 | 确认组织节点与文件夹结构 | org: example.com;folder: ml-prod |
| 项目 | 创建项目并绑定计费账号 | ml-prod-train-2401 |
| IAM | 创建服务账号并绑定角色 | sa-train@…;aiplatform.user |
| 配额 | 申请 GPU / 并发配额 | us-central1 A100 × 4 |
| API | 批量启用所需 API | aiplatform、storage、compute |
| 预算 | 设置预算与阈值告警 | 月 5000 元,50/90/100% |