部署集群后,您可以使用以下代理平台 API 端点来更改或移除集群:
Update:修改现有集群配置。Delete:永久移除集群及其资源。
只能通过 Agent Platform API 更新集群。您可以通过 Agent Platform API 或 Cloud de Confiance 控制台删除集群。
如需了解如何列出所有集群或查看单个集群,请参阅查看集群。
身份验证
alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
更新集群
UPDATE_PAYLOAD 指定 JSON 文件的本地路径,该文件定义了您要更新到的完整 ModelDevelopmentCluster。
例如,如需更新仅限使用 CPU 的集群的节点池的节点数量,请使用以下 JSON 载荷:
{ "display_name": "DISPLAY_NAME", "network": { "network": "projects/PROJECT_ID/global/networks/NETWORK", "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" }, "node_pools": [ { "id": "cpu", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": UPDATED_MIN_NODE_COUNT, "max_node_count": UPDATED_MAX_NODE_COUNT }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } }, { "id": "login", "machine_spec": { "machine_type": "n2-standard-8" }, "scaling_spec": { "min_node_count": 1, "max_node_count": 1 }, "zone": "ZONE", "enable_public_ips": true, "boot_disk": { "boot_disk_type": "pd-standard", "boot_disk_size_gb": 120 } } ], "orchestrator_spec": { "slurm_spec": { "home_directory_storage": "projects/PROJECT_ID/locations/ZONE/instances/FILESTORE", "partitions": [ { "id": "cpu", "node_pool_ids": [ "cpu" ] } ], "login_node_pool_id": "login" } } }
gcurl -X PATCH -d @UPDATE_PAYLOAD https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
-
updateMask(字符串,可选):一个 FieldMask,用于指定要更新的模型开发集群资源的哪些字段。只有updateMask中列出的字段会发生更改。ModelDevelopmentCluster资源中的以下字段可在updateMask中指定:labelsnode_poolsorchestrator_spec.slurm_spec.partitionsorchestrator_spec.slurm_spec.default_partition_idorchestrator_spec.slurm_spec.login_node_pool_idorchestrator_spec.slurm_spec.prolog_bash_scriptsorchestrator_spec.slurm_spec.epilog_bash_scriptsorchestrator_spec.slurm_spec.configorchestrator_spec.slurm_spec.scheduling和orchestrator_spec.slurm_spec.accounting:已被config取代的旧版字段。集群使用其中一种。请参阅更新 Slurm 配置设置。orchestrator_spec.slurm_spec.node_sets
-
updateMode(枚举,可选):指定更新模式。可能的值包括:UPDATE_MODE_UNSPECIFIED:默认值,视为USER_AND_SERVICE。USER_ONLY:仅应用请求中用户指定的字段更改。服务不会刷新服务管理的字段,例如启动、序幕或尾声脚本。 除非您自行设置node_image,否则每个节点池也会保留当前运行的映像,因此省略node_image的USER_ONLY更新不会重新创建节点。USER_AND_SERVICE:应用用户指定的字段更改,并让服务刷新服务管理的字段。
USER_AND_SERVICE来确保集群是最新的。
以下命令会同时更新节点池配置和 Slurm 分区。
gcurl -X PATCH -d @update-payload.json \ 'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.partitions,node_pools&updateMode=USER_AND_SERVICE'
对于 node_pools、prolog_bash_scripts 和 epilog_bash_scripts 等重复字段,该 API 仅支持完全替换操作。用户必须在请求载荷中提供完整的预期商品列表,才能完全替换现有列表。
如需更改默认分区而不重新发送 partitions,请设置 default_partition_id,并在 updateMask 中仅指定 orchestrator_spec.slurm_spec.default_partition_id。如果更新会移除或重命名 default_partition_id 指定的分区,则会被拒绝。
您可以在正在运行的集群上更改 Slurm 配置。应用这些设置不会重启或清空任何节点:服务会重新生成 slurm.conf 并重新加载 Slurm 控制器,因此排队和正在运行的作业不受影响。
USER_ONLY 更新模式可最大限度地降低这种风险。
操作完成后,新设置可能需要一些时间才会显示在 scontrol show config 中。
集群级设置由 orchestrator_spec.slurm_spec.config 命名,节点池设置由 orchestrator_spec.slurm_spec.node_sets 命名,分区设置由 orchestrator_spec.slurm_spec.partitions 命名,其中包含每个分区的 config 及其成员资格。每个地图都会被完全替换,就像前面描述的重复字段一样。发送您需要的完整参数集;您遗漏的参数会被移除。如需清除映射,请在 updateMask 中指定其路径,并将其留空。
以下命令会为现有集群启用分区优先级抢占。
gcurl -X PATCH -d @update-payload.json \ 'https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID?updateMask=orchestrator_spec.slurm_spec.config&updateMode=USER_ONLY'
其中,update-payload.json 包含(部分):
{ ..., "orchestrator_spec": { "slurm_spec": { ..., "config": { "PriorityType": "priority/multifactor", "PriorityWeightAge": "1000", "PreemptType": "preempt/partition_prio", "PreemptMode": "REQUEUE", "PreemptExemptTime": "1:01", "SchedulerParameters": "bf_continue,bf_window=1440" } } } }
在 config 中设置集群级参数,而不是在 scheduling 和 accounting(已被取代)中设置。集群只能使用其中一种;如果请求同时设置了这两种,则会被拒绝。
如果您在不使用 updateMask 的情况下调用 PATCH,服务会将整个载荷与当前集群进行比较,因此省略这些设置的载荷会清除集群已有的任何内容。传递 updateMask,将更新范围限定为您要更改的字段。您命名但未包含在载荷中的字段会被清除。
如需将现有集群从 scheduling 和 accounting 移至 config,请使用 slurm.conf 名称(例如 AccountingStorageEnforce 或 PriorityWeightQOS)发送 config 中的每项设置,将 scheduling 和 accounting 留出载荷,并在 updateMask 中命名这三项设置,以便清除旧字段。之后,仅 orchestrator_spec.slurm_spec.config 的 updateMask 就足够了。
由于 node_pools 会被完全替换,因此如果更新载荷中的节点池省略了 node_image,则会解析为该机器类型的当前默认映像。该默认值会随时间推移而更新,因此省略 node_image 会将节点池移至最新的可用映像,这通常是您想要的:它会获取驱动程序、安全性和 bug 修复。
如需在更新期间将节点池保留在特定映像上,请将 node_image 设置为该映像。如果您从 Get 读取当前值以将其发送回去,请注意,从未更新过的集群会报告空的 node_image。
如果请求成功,则会返回长时间运行的操作 (LRO)。然后,您可以使用以下命令监控此操作的状态:
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
删除集群
gcurl -X DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/modelDevelopmentClusters/CLUSTER_ID
如果成功,此命令会返回一个长时间运行的操作,然后您可以使用 operations describe 命令监控该操作。
gcurl https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
后续步骤
通过管理 Gemini Enterprise Agent Platform 训练集群,您可以优化其使用情况、将其集成到自动化工作流中,并为部署做好经过训练的模型。
- 使用 Gemini Enterprise Agent Platform Pipelines 编排训练:使用以托管式集群为目标的流水线,自动执行训练作业的整个生命周期,从数据准备到模型注册。
- 监控和调试训练作业:跟踪进度和资源使用情况,并发现集群上运行的分布式训练作业存在的问题。
- 部署模型以进行推理:模型经过训练和注册后,将其部署到 Gemini Enterprise Agent Platform 端点,以便大规模处理在线推理请求。
- 优化费用:定期检查集群利用率,并在集群未处于活跃使用状态时将其删除,以最大限度地减少预留硬件的结算费用。