我目前正在尝试使用 python 在大型查询表上运行顶点模型。 我正在测试我的代码,它将成为 Airflow 的自定义 vertex ai 批量执行操作符。
我可以在谷歌文档上看到 aiplatform lib 提供的许多功能,但我想使用模型名称作为参数。
例如,在模型注册表中,我有一个名为 My_Model 的模型,其 ID 为 12354795461。 我不想直接使用模型 id 执行批处理,而是想使用名称并获取此模型 id,代码如下:
aiplatform.init(project=self.project_id, location=self.location)
my_model = aiplatform.Model()
model_id = my_model.get_model_id(name='My_Model')
model_path = 'projects/'+project_id+'/locations/'+location+'/models/'+model_id
model = aiplatform.Model(model_path)
我正在使用函数 model.batch_predict 和 bigquery 表作为输入。
顺便说一句,我也找不到直接询问项目ID的方法。我需要提供文件夹 id(父 id),然后列出其中的所有内容,然后根据项目名称进行过滤。
是否有任何工作函数可以使用其名称作为参数返回项目/模型的 id?
第二个问题,有没有一种方法可以在大查询表上运行批量预测,并简单地消除批量预测中列的使用?这样我们就可以保留线路的 id 而不影响预测?
非常感谢您的回答, 问候 内森
我尝试在 BQ 表上添加列 id,但模型由于 id 列而返回错误,而当 id 列不存在时则不会返回错误。
此外,我在谷歌文档中找不到任何直接使用项目/模型名称给出模型/项目 ID 的函数。
我对此没有那么丰富的经验,但我有一个解决方案。 所以我不知道如何直接从名称获取项目/模型 id,但你可以使用 google cloud CLI 来获取 id。 我已经在自己的一些项目中使用了 Google Cloud CLI,并且我知道部署 AI 模型后,您可以使用一些 CLI 函数来获取模型 ID 本身。只要您搜索有关如何将 google 帐户/vertex AI 连接到 CLI 的教程,这很容易做到。登录后,CLI 应识别模型注册表(部署后),并且您应该能够获取所需的信息! 我知道这可能没有那么有帮助,但我认为它可能会有所帮助! 希望如此! 问候,索胡姆。
这将返回具有该名称的模型列表。
model = aiplatform.Model.list(filter=f'display_name="{model_display_name}"')
下面会给你一个ID
id = model[0].name
您可以使用它来实例化一个
Model
model = aiplatform.Model(model_name=id)