用于创建基于 Vertex AI 托管模型的远程模型的 CREATE MODEL 语句
本文档介绍了用于在 BigQuery 中创建基于部署到 Vertex AI 的模型的远程模型的 CREATE MODEL
语句。
CREATE MODEL
语法
{CREATE MODEL | CREATE MODEL IF NOT EXISTS | CREATE OR REPLACE MODEL} `project_id.dataset.model_name` INPUT (field_name field_type) OUTPUT (field_name field_type) REMOTE WITH CONNECTION `project_id.region.connection_id` OPTIONS(ENDPOINT = vertex_ai_https_endpoint);
CREATE MODEL
在指定的数据集中创建和训练新模型。如果模型名称存在,则 CREATE MODEL
会返回错误。
CREATE MODEL IF NOT EXISTS
仅当指定的数据集中不存在指定的新模型时才会创建和训练此模型。
CREATE OR REPLACE MODEL
在指定的数据集中创建和训练模型,并替换具有相同名称的现有模型。
model_name
所创建或替换的模型的名称。模型名称在数据集中必须具备唯一性:其他模型或表不得使用同一名称。模型名称必须遵循与 BigQuery 表格相同的命名规则。模型名称的要求如下:
- 最多可以包含 1024 个字符
- 包含字母(大写或小写)、数字和下划线
model_name
不区分大小写。
如果您未配置默认项目,则必须按以下格式(包括反引号)将项目 ID 附加到模型名称前面:
`[PROJECT_ID].[DATASET].[MODEL]`
例如 `myproject.mydataset.mymodel`。
INPUT
和 OUTPUT
子句
使用 HTTPS 端点创建远程模型时,必须指定 INPUT
和 OUTPUT
子句。INPUT
子句必须包含 Vertex AI 端点请求所需的字段,而 OUTPUT
子句必须包含 Vertex AI 端点响应所需的字段。
支持的数据类型
您可以在 INPUT
和 OUTPUT
子句中使用以下 BigQuery 数据类型:
字段名称格式
INPUT
和 OUTPUT
字段名称必须与 Vertex AI 端点请求和响应的字段名称相同。对于具有单个 OUTPUT
的 Vertex AI 端点,响应中没有字段名称,因此您可以在 OUTPUT
语句中指定任何字段名称。
示例
如果 Vertex AI 请求如以下示例所示:
{
"instances": [
{ "f1": 10, "f2": 12.3, "f3": "abc", "f4": [1, 2, 3, 4] },
{ "f1": 40, "f2": 32.5, "f3": "def", "f4": [11, 12, 13, 14] },
]
}
INPUT
语句必须是:
INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY<INT64>)
如果 Vertex AI 响应如以下示例所示:
{
"predictions": [
{
"out1": 300,
"out2": 40
},
{
"out1": 200,
"out2": 30
}
]
}
OUTPUT
语句必须是:
OUTPUT(out1 INT64, out2 INT64)
REMOTE WITH CONNECTION
语法
`[PROJECT_ID].[LOCATION].[CONNECTION_ID]`
BigQuery 使用 Cloud 资源连接与 Vertex AI 端点进行交互。
连接元素如下:
PROJECT_ID
:包含连接的项目的 IDLOCATION
:连接使用的位置。连接必须与包含模型的数据集位于同一位置。CONNECTION_ID
:连接 ID,例如myconnection
。如需查找您的连接 ID,请在 Google Cloud 控制台中查看连接详细信息。连接 ID 是连接 ID 中显示的完全限定连接 ID 的最后一部分的值,例如
projects/myproject/locations/connection_location/connections/myconnection
。
您需要将 Vertex AI User 角色授予创建模型的项目中的连接服务账号。
示例
`myproject.us.my_connection`
ENDPOINT
语法
ENDPOINT = vertex_ai_https_endpoint
说明
对于 vertex_ai_https_endpoint
,请指定代表部署到 Vertex AI 的模型的 HTTPS 端点。
创建基于部署到 Vertex AI 的模型的远程模型后,您可以将该模型与 ML.PREDICT
搭配使用来执行推理。
以下示例展示了如何创建使用 HTTPS 端点的远程模型:
ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234'
示例
以下示例会创建基于部署到 Vertex AI 端点的模型的 BigQuery ML 远程模型:
CREATE MODEL `project_id.mydataset.mymodel` INPUT(f1 INT64, f2 FLOAT64, f3 STRING, f4 ARRAY) OUTPUT(out1 INT64, out2 INT64) REMOTE WITH CONNECTION `myproject.us.test_connection` OPTIONS(ENDPOINT = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234')
后续步骤
如需详细了解使用 HTTPS 端点的远程模型支持的 SQL 语句和函数,请参阅每个模型的端到端用户体验历程。