Vertex AI 호스팅 모델을 통한 원격 모델의 CREATE MODEL 문
이 문서에서는 Vertex AI에 배포된 모델을 통해 BigQuery에서 원격 모델을 만드는 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 테이블과 같은 이름 지정 규칙을 따라야 합니다. 다음과 같은 모델 이름을 사용할 수 있습니다.
- 최대 1,024자 포함
- 문자(대소문자), 숫자, 밑줄 포함
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는 클라우드 리소스 연결을 사용하여 Vertex AI 엔드포인트와 상호작용합니다.
연결 요소는 다음과 같습니다.
PROJECT_ID
: 연결이 포함된 프로젝트의 프로젝트 ID입니다.LOCATION
: 연결에서 사용하는 위치입니다. 연결은 모델이 포함된 데이터 세트와 같은 위치에 있어야 합니다.CONNECTION_ID
: 연결 ID(예:myconnection
)연결 ID를 찾으려면 Google Cloud 콘솔에서 연결 세부정보를 확인하세요. 연결 ID는 연결 ID에 표시되는 정규화된 연결 ID의 마지막 섹션에 있는 값입니다(예:
projects/myproject/locations/connection_location/connections/myconnection
).
모델을 만들 프로젝트에서 연결의 서비스 계정에 Vertex AI 사용자 역할을 부여해야 합니다.
예시
`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 문과 함수에 대한 자세한 내용은 각 모델의 엔드 투 엔드 사용자 경험을 참조하세요.