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`입니다.

INPUTOUTPUT

HTTPS 엔드포인트가 있는 원격 모델을 만들 때 INPUTOUTPUT 절을 지정해야 합니다. INPUT 절에는 Vertex AI 엔드포인트 요청에 필요한 필드가 포함되어야 하며 OUTPUT 절에는 Vertex AI 엔드포인트 응답에 필요한 필드가 포함되어야 합니다.

지원되는 데이터 유형

INPUTOUTPUT 절에서 다음 BigQuery 데이터 유형을 사용할 수 있습니다.

필드 이름 형식

INPUTOUTPUT 필드 이름은 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 문과 함수에 대한 자세한 내용은 각 모델의 엔드 투 엔드 사용자 경험을 참조하세요.