모델 관리

이 페이지에서는 모델 복사 및 모델 이름 바꾸기를 포함하여 BigQuery ML 모델을 관리하는 방법을 설명합니다.

모델 이름 바꾸기

현재는 기존 모델의 이름을 변경할 수 없습니다. 모델 이름을 변경해야 할 경우 다음 단계에 따라 모델을 복사합니다. 복사 작업에서 대상을 지정할 때는 새 모델 이름을 사용해야 합니다.

모델 복사

다음 방법을 사용하면 소스 데이터 세트에서 대상 데이터 세트로 하나 이상의 모델을 복사할 수 있습니다.

  • Google Cloud 콘솔 사용
  • bq 명령줄 도구의 bq cp 명령어 사용
  • jobs.insert API 메서드를 직접 호출하여 복사 작업 구성 또는 클라이언트 라이브러리 사용

모델 복사 제한사항

모델 복사 작업에는 다음과 같은 제한사항이 적용됩니다.

  • 모델을 복사할 때 대상 모델의 이름은 모델을 만들 때와 동일한 이름 지정 규칙을 따라야 합니다.
  • 모델 복사본에는 복사 작업에 대한 BigQuery 한도가 적용됩니다.
  • 현재 Google Cloud 콘솔에서는 모델 복사를 지원하지 않습니다.
  • 모델을 복사할 때 대상 데이터 세트는 복사할 모델이 포함되는 데이터 세트와 같은 위치에 있어야 합니다. 예를 들어 EU 기반 데이터 세트의 모델을 복사해 US 기반 데이터 세트에 쓸 수는 없습니다.
  • 단일 명령어로 여러 소스 모델을 복사하는 작업은 지원되지 않습니다.
  • 현재 CLI를 사용하여 모델을 복사할 경우 --destination_kms_key 플래그는 지원되지 않습니다.

모델 복사

다음 방법을 사용하여 모델을 복사할 수 있습니다.

  • 명령줄 도구의 bq cp 명령어 사용
  • jobs.insert API 메서드를 호출하여 복사 작업 구성 또는 클라이언트 라이브러리 사용

모델을 복사하려면 다음 안내를 따르세요.

콘솔

현재 Google Cloud 콘솔에서는 모델 복사를 지원하지 않습니다.

bq

bq cp 명령어를 실행합니다. 선택적 플래그는 다음과 같습니다.

  • -f 또는 --force는 대상 데이터세트의 기존 모델을 덮어쓰고 확인 메시지를 표시하지 않습니다.
  • -n 또는 --no_clobber는 모델이 대상 데이터세트에 있으면 '[PROJECT_ID]:[DATASET].[MODEL]' already exists, skipping 오류 메시지를 반환합니다.

    -n을 지정하지 않은 경우 대상 모델을 바꿀 것인지 여부를 선택하라는 메시지가 기본적으로 표시됩니다.

소스 데이터 세트 또는 대상 데이터 세트가 기본 프로젝트가 아닌 다른 프로젝트에 있으면 프로젝트 ID를 [PROJECT_ID]:[DATASET] 형식으로 데이터 세트 이름에 추가합니다.

--location 플래그를 지정하고 값을 사용자 위치로 설정합니다.

bq --location=[LOCATION] cp -f -n [PROJECT_ID]:[DATASET].[SOURCE_MODEL] [PROJECT_ID]:[DATASET].[DESTINATION_MODEL]

각 항목의 의미는 다음과 같습니다.

  • [LOCATION]은 사용자 위치의 이름입니다. --location 플래그는 선택사항입니다. 예를 들어 도쿄 리전에서 BigQuery를 사용한다면 플래그 값을 asia-northeast1로 설정할 수 있습니다. .bigqueryrc 파일을 사용하여 위치 기본값을 설정할 수 있습니다.
  • [PROJECT_ID]는 프로젝트 ID입니다.
  • [DATASET]는 소스 데이터세트 또는 대상 데이터세트의 이름입니다.
  • [SOURCE_MODEL]은 복사할 모델입니다.
  • [DESTINATION_MODEL]은 대상 데이터세트에 있는 모델의 이름입니다.

예:

mydataset.mymodelmydataset2로 복사하려면 다음 명령어를 입력합니다. 두 데이터세트 모두 기본 프로젝트에 있고 US 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp mydataset.mymodel mydataset2.mymodel

mydataset.mymodel을 복사하고 이름이 같은 대상 모델을 덮어쓰려면 다음 명령어를 입력합니다. 소스 데이터세트는 기본 프로젝트에 있고, 대상 데이터세트는 myotherproject에 있습니다. -f 단축키를 사용하면 확인 메시지 없이 대상 모델을 덮어쓸 수 있습니다. mydatasetmyotherdatasetUS 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp -f mydataset.mymodel myotherproject:myotherdataset.mymodel

mydataset.mymodel을 복사하고 대상 데이터세트에 이름이 같은 모델이 있는 경우에 오류를 반환하려면 다음 명령어를 입력합니다. 소스 데이터세트는 기본 프로젝트에 있고, 대상 데이터세트는 myotherproject에 있습니다. -n 단축키를 사용하면 이름이 같은 모델을 덮어쓰지 않습니다. 두 데이터세트 모두 US 멀티 리전 위치에서 생성되었습니다.

bq --location=US cp -n mydataset.mymodel myotherproject:myotherdataset.mymodel

mydataset.mymodelmydataset2에 복사하고 모델 이름을 mymodel2로 바꾸려면 다음 명령어를 입력합니다. 두 데이터세트 모두 기본 프로젝트에 있고, asia-northeast1 리전에서 생성되었습니다.

bq --location=asia-northeast1 cp mydataset.mymodel mydataset2.mymodel2

API

API를 사용하여 모델을 복사하려면 bigquery.jobs.insert 메서드를 호출하고 copy 작업을 구성합니다. 작업 리소스jobReference 섹션에 있는 location 속성에 사용자 위치를 지정합니다.

작업 구성에 다음 값을 지정해야 합니다.

"copy": {
      "sourceTable": {       // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "destinationTable": {  // Required
        "projectId": string, // Required
        "datasetId": string, // Required
        "tableId": string    // Required
      },
      "createDisposition": string,  // Optional
      "writeDisposition": string,   // Optional
    },

각 항목의 의미는 다음과 같습니다.

  • sourceTable은 복사할 모델에 대한 정보를 제공합니다.
  • destinationTable은 새 모델에 대한 정보를 제공합니다.
  • createDisposition은 모델이 존재하지 않으면 모델을 만들지 여부를 지정합니다.
  • writeDisposition은 기존 모델을 덮어쓸지 여부를 지정합니다.

모델 암호화

고객 관리 암호화 키(CMEK)를 사용하여 모델을 암호화하는 방법에 대한 자세한 내용은 CMEK를 사용하여 BigQuery ML 모델 보호를 참조하세요.

다음 단계