我想将环境变量传递给Vertex Ai自定义作业。有人能告诉我该怎么写吗?
我想把环境变量传递给顶点Ai自定义作业。有人能告诉我该怎么写吗?
我仔细检查了一下,但我认为您不能向自定义培训作业声明自定义环境变量。
但是您可以将这些变量/信息作为参数传递。。。例如,看看这个笔记本,看看argparse是如何在";编写训练脚本";以及";启动自定义培训工作";章节。
如果您的自定义培训工作使用docker容器,您可以在Dockerfile
:中声明这些变量
示例:
FROM gcr.io/deeplearning-platform-release/tf-gpu.2-10
LABEL MAINTAINER = "NAME (EMAIL@EXAMPLE.COM)"
ENV MY_ENV_VARIABLE = "some value"
# ... more commands like RUN or COPY
CMD python main.py # (or whatever your equivalent file is named)
您可以在这里的Dockefiles和这里的官方文档中了解更多关于ENV
和ARG
的信息
或者,您可以在containerSpecs
:下的config.yaml
文件中设置环境变量
workerPoolSpecs:
machineSpec:
machineType: MACHINE_TYPE
acceleratorType: ACCELERATOR_TYPE
acceleratorCount: ACCELERATOR_COUNT
replicaCount: REPLICA_COUNT
containerSpec:
imageUri: CUSTOM_CONTAINER_IMAGE_URI
env:
- name: MY_ENV_VARIABLE
value: "some_value"
您添加到上述YAML
文件中的任何变量都将传递到您的容器(此处为文档(。关于创建这些Vertex AI配置文件的更多信息可以在这里找到。
还需要知道的是,Vertex AI设置了许多环境,用于决定将模型存储在哪里,其中包括:由Vertex AI 设置的变量
如果您能提供有关自定义工作的更多详细信息,我可能会提供更好/更有用的答案。:(
当然,AIP、KFP和TFX等3个sdk可以定义作业的环境变量:
job = aiplatform.CustomContainerTrainingJob(
display_name="custom-job",
container_uri=f"{GCR_DOCKER_PATH}",
)
env_vars = {
"BATCH_SIZE": "2048",
"EPOCHS": "5",
"PYTHONPATH": "/root_folder",
}
model = job.run(
environment_variables=env_vars,
)
- 假设容器映像托管在GCR Docker注册表上,并且具有用Python编写的培训作业的功能目的。提供的参数定义了用于绝对导入的Python路径(无需打包的简单方法(和用于更好地批量运行的超参数,以便微调AI模型。身份验证可能需要访问服务帐户
请记住,编写将sdk与自定义容器混合的管道可能会很耗时,因为这3个sdk可能不适合自定义培训工作