모델 배포

이 페이지에서는 AI Platform Prediction에 모델을 배포하여 예측을 수행하는 방법을 설명합니다.

AI Platform Prediction에 학습된 모델을 배포하려면 다음을 수행해야 합니다.

  • 저장한 모델을 Cloud Storage 버킷에 업로드합니다.
  • AI Platform Prediction 모델 리소스를 만듭니다.
  • 저장된 모델의 Cloud Storage 경로를 지정하여 AI Platform Prediction 버전 리소스를 만듭니다.

시작하기 전에

머신러닝 모델을 학습시키고 예측용 모델 내보내기 가이드에 따라 AI Platform 예측에 배포할 수 있는 모델 아티팩트를 만듭니다.

Cloud Storage에 모델 저장

일반적으로 AI Platform Prediction에 사용하는 것과 동일한 프로젝트에서 전용 Cloud Storage 버킷을 사용하는 것이 가장 쉽습니다.

다른 프로젝트에서 버킷을 사용 중인 경우 AI Platform Prediction 서비스 계정이 Cloud Storage에 있는 모델에 액세스할 수 있는지 확인해야 합니다. 적절한 권한이 없으면 AI Platform Prediction 모델 버전 생성 요청이 실패합니다. 스토리지 권한 부여에 대해 자세히 알아보세요.

Cloud Storage 버킷 설정

이 섹션에서는 새 버킷을 만드는 방법을 설명합니다. 기존 버킷을 사용할 수도 있지만 해당 버킷이 AI Platform 작업을 실행하려는 리전과 동일한 리전에 있어야 합니다. 또한 해당 버킷이 AI Platform Prediction을 실행하는 데 사용 중인 프로젝트에 속하지 않는 경우 명시적으로 AI Platform Prediction 서비스 계정에 액세스 권한을 부여해야 합니다.

  1. 새 버킷의 이름을 지정합니다. 이름은 Cloud Storage의 모든 버킷에서 중복되지 않아야 합니다.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    예를 들어 프로젝트 이름에 -aiplatform을 추가하여 사용합니다.

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. 만든 버킷 이름을 확인합니다.

    echo $BUCKET_NAME
  3. 버킷 리전을 선택하고 REGION 환경 변수를 설정합니다.

    AI Platform Prediction 작업을 실행할 리전과 동일한 리전을 사용합니다. AI Platform Prediction 서비스에 사용 가능한 리전을 참조하세요.

    예를 들어 다음 코드는 REGION을 생성하고 us-central1로 설정합니다.

    REGION=us-central1
  4. 새 버킷을 만듭니다.

    gsutil mb -l $REGION gs://$BUCKET_NAME

내보낸 모델을 Cloud Storage에 업로드

다음 예시에서는 다양한 유형의 모델 아티팩트를 Cloud Storage의 모델 디렉터리에 업로드하는 방법을 보여줍니다.

TensorFlow 저장된 모델

SAVED_MODEL_DIR=$(ls ./YOUR_EXPORT_DIR_BASE | tail -1)
gsutil cp -r $SAVED_MODEL_DIR gs://YOUR_BUCKET

tf.keras에서 또는 TensorFlow 에스티메이터에서 저장된 모델을 내보내면 선택한 기본 내보내기 디렉터리의 타임스탬프가 적용된 하위 디렉터리(예: YOUR_EXPORT_DIR_BASE/1487877383942)로 저장됩니다. 이 예시에서는 가장 최근의 타임스탬프가 적용된 디렉터리를 업로드하는 방법을 보여줍니다. 다른 방식으로 저장된 모델을 만들었으면 로컬 파일 시스템의 다른 위치에 저장될 수 있습니다.

scikit-learn 또는 XGBoost 모델 파일

학습된 모델을 내보낸 방식에 따라 model.joblib, model.pkl 또는 model.bst 파일을 업로드하세요.

다음은 sklearn.externals.joblib를 사용하여 내보낸 파일을 업로드하는 방법을 보여주는 예시입니다.

gsutil cp ./model.joblib gs://YOUR_BUCKET/model.joblib

다음은 Python의 pickle 모듈을 사용하여 내보낸 파일을 업로드하는 방법을 보여주는 예시입니다.

gsutil cp ./model.pkl gs://YOUR_BUCKET/model.pkl

다음은 xgboost.Boostersave_model 메서드를 사용하여 내보낸 파일을 업로드하는 방법을 보여주는 예시입니다.

gsutil cp ./model.bst gs://YOUR_BUCKET/model.bst

커스텀 예측 루틴(베타)을 배포하는 경우 모든 추가 모델 아티팩트를 모델 디렉터리에도 업로드합니다.

모델 디렉터리의 총 파일 크기는 기존(MLS1) 머신 유형을 사용하는 경우에는 500MB 이하여야 하고, Compute Engine(N1) 머신 유형을 사용하는 경우에는 10GB 이하여야 합니다. 온라인 예측용 머신 유형에 대해 자세히 알아보세요.

모델의 후속 버전을 만들 때는 각 버전을 Cloud Storage 버킷에 있는 별도의 자체 디렉터리에 배치하여 구성합니다.

커스텀 코드 업로드

커스텀 코드가 있는 scikit-learn 파이프라인 또는 커스텀 예측 루틴을 배포하는 경우 커스텀 코드가 있는 소스 배포 패키지도 업로드해야 합니다. 예를 들면 다음과 같습니다.

gsutil cp dist/my_custom_code-0.1.tar.gz gs://YOUR_BUCKET/my_custom_code-0.1.tar.gz

Cloud Storage에서 모델 파일과 동일한 디렉터리에 이 tarball을 업로드할 수 있지만 반드시 그럴 필요는 없습니다. 특히 다양한 버전의 모델과 코드를 배포하는 경우 분리하여 유지하면 더 효율적으로 정리할 수 있습니다.

로컬 예측을 사용하여 모델 테스트

AI Platform Prediction에 모델을 배포하기 전에 gcloud ai-platform local predict 명령어를 사용하여 모델이 예측을 수행하는 방식을 테스트할 수 있습니다. 이 명령어는 로컬 환경의 종속 항목을 사용하여 예측을 수행하고 gcloud ai-platform predict가 온라인 예측을 수행할 때 사용하는 것과 동일한 형식으로 결과를 반환합니다. 예측을 로컬에서 테스트하면 온라인 예측 요청에 대한 비용이 발생하기 전에 오류를 발견하는 데 도움이 됩니다.

--model-dir 인수에는 내보낸 머신러닝 모델을 포함하는 로컬 머신 또는 Cloud Storage의 디렉터리를 지정합니다. --framework 인수에는 tensorflow, scikit-learn 또는 xgboost를 지정합니다. 커스텀 예측 루틴에는 gcloud ai-platform local predict 명령어를 사용할 수 없습니다.

다음은 로컬 예측을 수행하는 방법을 보여주는 예시입니다.

gcloud ai-platform local predict --model-dir LOCAL_OR_CLOUD_STORAGE_PATH_TO_MODEL_DIRECTORY/ \
  --json-instances LOCAL_PATH_TO_PREDICTION_INPUT.JSON \
  --framework NAME_OF_FRAMEWORK

모델 및 버전 배포

AI Platform Prediction은 모델버전 리소스를 사용하여 학습된 모델을 구성합니다. AI Platform Prediction 모델은 머신러닝 모델 버전의 컨테이너입니다.

모델을 배포하려면 AI Platform Prediction에서 모델 리소스를 만들고 해당 모델의 한 버전을 만든 다음 모델 버전을 Cloud Storage에 저장된 모델 파일에 연결합니다.

모델 리소스 만들기

AI Platform Prediction은 모델 리소스를 사용하여 모델의 여러 버전을 구성합니다.

이때 이 모델에 속하는 모델 버전에 리전 엔드포인트와 전역 엔드포인트 중 무엇을 사용할지 결정해야 합니다. 대부분의 경우 리전 엔드포인트를 선택합니다. 기존(MLS1) 머신 유형에서만 사용할 수 있는 기능이 필요한 경우 전역 엔드포인트를 사용합니다.

또한 이 모델에 속한 모델 버전이 예측을 제공할 때 로그를 내보내도록 할지를 결정해야 합니다. 다음 예시에서는 로깅을 사용 설정하지 않습니다. 로깅을 사용 설정하는 방법을 알아보세요.

Console

  1. Cloud Console에서 AI Platform Prediction 모델 페이지를 엽니다.

    모델 페이지로 이동

  2. 모델 페이지 상단에 있는 새 모델 버튼을 클릭합니다. 그러면 모델 만들기 페이지로 이동합니다.

  3. 모델 이름 필드에 모델의 고유한 이름을 입력합니다.

  4. 리전 엔드포인트 사용 체크박스가 선택되어 있으면 AI Platform Prediction에서 리전 엔드포인트를 사용합니다. 전역 엔드포인트를 사용하려면 리전 엔드포인트 사용 체크박스를 선택 해제합니다.

  5. 리전 드롭다운 목록에서 예측 노드의 위치를 선택합니다. 사용 가능한 리전은 리전 엔드포인트 또는 전역 엔드포인트 중 어느 것을 사용하는지에 따라 다릅니다.

  6. 만들기를 클릭합니다.

  7. 모델 페이지로 돌아와 목록에 새 모델이 표시되는지 확인합니다.

gcloud

리전 엔드포인트

다음 명령어를 실행합니다.

gcloud ai-platform models create MODEL_NAME \
  --region=REGION

다음을 바꿉니다.

--region 플래그를 지정하지 않으면 gcloud 도구에서 리전 엔드포인트를 선택하거나 전역 엔드포인트에서 us-central를 사용하라는 메시지를 표시합니다.

또는 --region 플래그를 지정하지 않은 경우에도 gcloud 도구가 AI Platform Prediction에 대해 항상 해당하는 리전 엔드포인트를 사용하도록 ai_platform/region 속성을 특정 리전으로 설정할 수 있습니다. (이 구성은 gcloud ai-platform operations 명령어 그룹의 명령어에는 적용되지 않습니다.)

전역 엔드포인트

다음 명령어를 실행합니다.

gcloud ai-platform models create MODEL_NAME \
  --regions=REGION

다음을 바꿉니다.

--regions 플래그를 지정하지 않으면 gcloud 도구에서 리전 엔드포인트를 선택하거나 전역 엔드포인트에서 us-central1를 사용하라는 메시지를 표시합니다.

REST API

리전 엔드포인트

  1. 요청 본문에 모델 객체를 배치하여 요청의 형식을 지정합니다. 최소한 다음 샘플에서 MODEL_NAME을 바꿔 모델 이름을 지정합니다.

    {
      "name": "MODEL_NAME"
    }
    
  2. PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿔 다음 URL에서 REST API를 호출합니다.

    POST https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models/
    

    다음을 바꿉니다.

    예를 들어 curl 명령어를 사용하여 다음 요청을 수행할 수 있습니다. 이 명령어는 Cloud SDK 설치와 연결된 사용자 인증 정보를 사용하여 요청을 승인합니다.

    curl -X POST -H "Content-Type: application/json" \
      -d '{"name": "MODEL_NAME"}' \
      -H "Authorization: Bearer `gcloud auth print-access-token`" \
      "https://REGION-ml.googleapis.com/v1/projects/PROJECT_ID/models"
    

    API는 다음과 비슷한 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/models/MODEL_NAME",
      "regions": [
        "REGION"
      ]
    }
    

전역 엔드포인트

  1. 요청 본문에 모델 객체를 배치하여 요청의 형식을 지정합니다. 최소한 다음 샘플에서 MODEL_NAME을 바꿔 모델 이름을 지정하고 REGION기존(MLS1) 머신 유형을 지원하는 리전으로 바꿔 리전을 지정합니다.

    {
      "name": "MODEL_NAME",
      "regions": ["REGION"]
    }
    
  2. PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿔 다음 URL에서 REST API를 호출합니다.

    POST https://ml.googleapis.com/v1/projects/PROJECT_ID/models/
    

    예를 들어 curl 명령어를 사용하여 다음 요청을 수행할 수 있습니다. 이 명령어는 Cloud SDK 설치와 연결된 사용자 인증 정보를 사용하여 요청을 승인합니다.

    curl -X POST -H "Content-Type: application/json" \
      -d '{"name": "MODEL_NAME", "regions": ["REGION"]}' \
      -H "Authorization: Bearer `gcloud auth print-access-token`" \
      "https://ml.googleapis.com/v1/projects/PROJECT_ID/models"
    

    API는 다음과 비슷한 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/models/MODEL_NAME",
      "regions": [
        "REGION"
      ]
    }
    

자세한 내용은 AI Platform Prediction 모델 API를 참조하세요.

모델 버전 만들기

이제 이전에 Cloud Storage에 업로드한 학습된 모델로 모델 버전을 만들 준비가 되었습니다. 버전을 만들 때 매개변수의 수를 지정할 수 있습니다. 다음 목록에서는 일반적인 매개변수에 대해 설명합니다. 이중 일부만 필요합니다.

  • name: AI Platform Prediction 모델 내에서 고유해야 합니다.
  • deploymentUri: Cloud Storage에서 모델 디렉터리의 경로입니다.

    • TensorFlow 모델을 배포하는 경우 이는 저장된 모델 디렉터리입니다.
    • scikit-learn 또는 XGBoost 모델을 배포하는 경우 이는 model.joblib, model.pkl 또는 model.bst 파일이 포함된 디렉터리입니다.
    • 커스텀 예측 루틴을 배포하는 경우 이는 모든 모델 아티팩트가 포함된 모델 디렉터리입니다. 이 디렉터리의 전체 크기는 500MB 이하여야 합니다.
  • framework: TENSORFLOW, SCIKIT_LEARN 또는 XGBOOST입니다. 커스텀 예측 루틴을 배포하는 경우에는 이 매개변수를 생략합니다.

  • runtimeVersion: 모델에 필요한 종속 항목에 기반을 둔 런타임 버전입니다. scikit-learn 모델, XGBoost 모델 또는 커스텀 예측 루틴을 배포하는 경우 이는 1.4 이상이어야 합니다. 일괄 예측에 모델 버전을 사용하려면 런타임 버전 2.1 이하를 사용해야 합니다.

  • packageUris(선택사항): Cloud Storage에서 커스텀 코드 배포 패키지(.tar.gz 파일)의 경로 목록입니다. 커스텀 코드가 있는 scikit-learn 파이프라인(베타) 또는 커스텀 예측 루틴(베타)을 배포하는 경우에만 이 매개변수를 제공합니다.

  • predictionClass(선택사항): module_name.class_name 형식의 예측자 클래스 이름입니다. 커스텀 예측 루틴(베타)을 배포하는 경우에만 이 매개변수를 제공합니다.

  • serviceAccount(선택사항): 예측을 수행하는 동안 Google Cloud 리소스에 액세스하는 경우에 사용할 모델 버전의 서비스 계정을 지정할 수 있습니다. 서비스 계정 지정에 대해 자세히 알아보세요. 커스텀 컨테이너 또는 커스텀 예측 루틴을 사용하는 경우에만 이 매개변수를 제공합니다.

  • pythonVersion: Python 3을 사용하여 내보낸 모델 파일과 호환되도록 '3.5'(런타임 버전 1.4~1.14의 경우) 또는 '3.7'(런타임 버전 1.15 이상의 경우)로 설정해야 합니다. 또한 런타임 버전 1.15 이하에서 사용하는 경우 '2.7'로 설정할 수도 있습니다.

  • machineType(선택사항): AI Platform 예측이 예측을 제공하는 노드에 사용하는 가상 머신의 유형입니다. 머신 유형에 대해 자세히 알아보세요. 설정하지 않으면 리전 엔드포인트의 기본값은 n1-standard-2이고 전역 엔드포인트의 기본값은 mls1-c1-m2입니다.

덜 일반적인 매개변수와 함께 각 매개변수에 대한 자세한 내용은 버전 리소스의 API 참조에서 확인하세요.

또한 리전 엔드포인트에서 모델을 만든 경우 같은 리전 엔드포인트에서 버전을 만들어야 합니다.

Console

  1. Cloud Console에서 AI Platform Prediction 모델 페이지를 엽니다.

    모델 페이지로 이동

  2. 모델 페이지에서 버전을 만드는 데 사용할 모델 리소스 이름을 선택합니다. 그러면 모델 세부정보 페이지로 이동합니다.

  3. 모델 세부정보 페이지 상단의 새 버전 버튼을 클릭합니다. 그러면 버전 만들기 페이지로 이동합니다.

  4. 이름 필드에 버전 이름을 입력합니다. 필요에 따라 설명 필드에 버전에 대한 설명을 입력합니다.

  5. 드롭다운 상자에 모델을 학습시킨 방법에 대한 다음 정보를 입력합니다.

    • 모델 학습에 사용된 Python 버전을 선택합니다.
    • 프레임워크프레임워크 버전을 선택합니다. 커스텀 예측 루틴(베타)을 배포하는 경우 프레임워크에 '커스텀 예측 루틴(베타)'을 선택합니다.
    • ML 런타임 버전을 선택합니다. AI Platform Prediction 런타임 버전에 대해 자세히 알아보세요.
  6. 온라인 예측을 실행할 머신 유형을 선택합니다.

  7. 모델 URI 필드에 모델 파일을 업로드한 Cloud Storage 버킷 위치를 입력합니다. 찾아보기 버튼을 사용하여 올바른 경로를 찾을 수도 있습니다.

    모델 파일 자체의 경로가 아니라 파일이 들어 있는 디렉터리의 경로를 지정해야 합니다. 예를 들어 gs://your_bucket_name/model-dir/saved_model.pb 또는 gs://your_bucket_name/model-dir/model.pkl 대신 gs://your_bucket_name/model-dir/을 사용합니다.

  8. 커스텀 코드가 있는 scikit-learn 파이프라인(베타) 또는 커스텀 예측 루틴(베타)을 배포하는 경우 커스텀 코드 및 종속 항목에 모든 커스텀 코드 패키지(.tar.gz)의 Cloud Storage 경로를 지정합니다. 커스텀 예측 루틴을 배포하는 경우 예측 클래스 필드에 예측자 클래스의 이름을 입력합니다.

  9. 온라인 예측 배포의 확장 옵션을 선택합니다.

    • '자동 확장'을 선택하면 선택사항인 최소 노드 수 필드가 표시됩니다. 서비스가 축소되었을 때도 항상 실행되도록 할 최소 노드 수를 입력하면 됩니다. 이 필드의 기본값은 0입니다.

    • '수동 확장'을 선택한 경우 항상 실행 상태로 유지하려는 노드 수를 입력해야 합니다.

      예측 비용 가격 책정에 대해 자세히 알아보세요.

  10. 모델 버전 만들기를 완료하려면 저장을 클릭합니다.

gcloud

  1. 환경 변수를 설정하여 모델 바이너리가 있는 Cloud Storage 디렉터리 경로, 모델 이름, 버전 이름, 선택한 프레임워크를 저장합니다.

    gcloud 도구를 사용하여 버전을 만드는 경우 밑줄과 대문자로 이루어진 프레임워크 이름(예: SCIKIT_LEARN) 또는 하이픈과 소문자로 이루어진 프레임워크 이름(예: scikit-learn)을 지정할 수 있습니다. 두 옵션 모두 동일한 동작으로 이어집니다.

    [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

    MODEL_DIR="gs://your_bucket_name/"
    VERSION_NAME="[YOUR-VERSION-NAME]"
    MODEL_NAME="[YOUR-MODEL-NAME]"
    FRAMEWORK="[YOUR-FRAMEWORK_NAME]"
    

    커스텀 코드가 있는 scikit-learn 파이프라인(베타)의 경우 커스텀 코드 tarball의 경로가 포함된 추가 변수를 설정합니다.

    MODEL_DIR="gs://your_bucket_name/"
    VERSION_NAME="[YOUR-VERSION-NAME]"
    MODEL_NAME="[YOUR-MODEL-NAME]"
    FRAMEWORK="scikit-learn"
    CUSTOM_CODE_PATH="gs://your_bucket_name/my_custom_code-0.1.tar.gz"
    

    커스텀 예측 루틴(베타)의 경우 FRAMEWORK 변수를 생략하고, 커스텀 코드 tarball의 경로와 예측자 클래스 이름이 포함된 변수를 추가로 설정합니다.

    MODEL_DIR="gs://your_bucket_name/"
    VERSION_NAME="[YOUR-VERSION-NAME]"
    MODEL_NAME="[YOUR-MODEL-NAME]"
    CUSTOM_CODE_PATH="gs://your_bucket_name/my_custom_code-0.1.tar.gz"
    PREDICTOR_CLASS="[MODULE_NAME].[CLASS_NAME]"
    
  2. 버전을 만듭니다.

    gcloud ai-platform versions create $VERSION_NAME \
      --model=$MODEL_NAME \
      --origin=$MODEL_DIR \
      --runtime-version=2.5 \
      --framework=$FRAMEWORK \
      --python-version=3.7 \
      --region=REGION \
      --machine-type=MACHINE_TYPE
    

    다음을 바꿉니다.

    • REGION: 모델을 만든 리전 엔드포인트의 리전입니다. 전역 엔드포인트에서 모델을 만든 경우 --region 플래그를 생략합니다.

    • MACHINE_TYPE: 예측 노드에서 사용할 수 있는 컴퓨팅 리소스를 결정하는 머신 유형입니다.

    커스텀 코드가 있는 scikit-learn 파이프라인(베타)의 경우 gcloud beta 구성요소를 사용하여 --package-uris 플래그를 설정해야 합니다. 커스텀 코드를 배포하려면 모델에서 전역 엔드포인트를 사용해야 합니다.

    gcloud components install beta
    
    gcloud beta ai-platform versions create $VERSION_NAME \
      --model=$MODEL_NAME \
      --origin=$MODEL_DIR \
      --runtime-version=2.5 \
      --framework=$FRAMEWORK \
      --python-version=3.7 \
      --machine-type=mls1-c1-m2 \
      --package-uris=$CUSTOM_CODE_PATH
    

    커스텀 예측 루틴(베타)의 경우 gcloud beta 구성요소를 사용하고, --framework 플래그를 생략하고, --package-uris--prediction-class 플래그를 설정합니다. 커스텀 코드를 배포하려면 모델에서 전역 엔드포인트를 사용해야 합니다.

    gcloud components install beta
    
    gcloud beta ai-platform versions create $VERSION_NAME \
      --model=$MODEL_NAME \
      --origin=$MODEL_DIR \
      --runtime-version=2.5 \
      --python-version=3.7 \
      --machine-type=mls1-c1-m2 \
      --package-uris=$CUSTOM_CODE_PATH \
      --prediction-class=$PREDICTOR_CLASS
    

    버전을 만드는 데 몇 분 정도 걸립니다. 준비되면 다음 출력이 표시됩니다.

    Creating version (this might take a few minutes)......done.
  3. 새 버전에 대한 정보를 가져옵니다.

    gcloud ai-platform versions describe $VERSION_NAME \
      --model=$MODEL_NAME
    

    다음과 비슷한 출력이 표시됩니다.

    createTime: '2018-02-28T16:30:45Z'
    deploymentUri: gs://your_bucket_name
    framework: [YOUR-FRAMEWORK-NAME]
    machineType: mls1-c1-m2
    name: projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]
    pythonVersion: '3.7'
    runtimeVersion: '2.5'
    state: READY

REST API

  1. 버전 객체를 포함하도록 요청 본문 형식을 지정합니다. 이 예시에서는 버전 name, deploymentUri, runtimeVersion, framework, machineType을 지정합니다. [VALUES_IN_BRACKETS]를 적절한 값으로 바꿉니다.

    {
      "name": "[YOUR-VERSION-NAME]",
      "deploymentUri": "gs://your_bucket_name/",
      "runtimeVersion": "2.5",
      "framework": "[YOUR_FRAMEWORK_NAME]",
      "pythonVersion": "3.7",
      "machineType": "[YOUR_MACHINE_TYPE]"
    }
    
  2. 다음 경로에서 [VALUES_IN_BRACKETS]를 적절한 값으로 바꾸고 REST API를 호출합니다.

    POST https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions
    

    REGION모델을 만든 리전 엔드포인트의 리전으로 바꿉니다. 전역 엔드포인트에서 모델을 만든 경우 ml.googleapis.com을 사용합니다.

    예를 들어 curl 명령어를 사용하여 다음 요청을 수행할 수 있습니다.

    curl -X POST -H "Content-Type: application/json" \
      -d '{"name": "[YOUR-VERSION-NAME]", "deploymentUri": "gs://your_bucket_name/", "runtimeVersion": "2.5", "framework": "[YOUR_FRAMEWORK_NAME]", "pythonVersion": "3.7", "machineType": "[YOUR_MACHINE_TYPE]"}' \
      -H "Authorization: Bearer `gcloud auth print-access-token`" \
      "https://REGION-ml.googleapis.com/v1/projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions"
    

    버전을 만드는 데 몇 분 정도 걸립니다. 준비가 되면 다음과 비슷한 출력이 표시됩니다.

    {
      "name": "projects/[YOUR-PROJECT-ID]/operations/create_[YOUR-MODEL-NAME]_[YOUR-VERSION-NAME]-[TIMESTAMP]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.ml.v1.OperationMetadata",
        "createTime": "2018-07-07T02:51:50Z",
        "operationType": "CREATE_VERSION",
        "modelName": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]",
        "version": {
          "name": "projects/[YOUR-PROJECT-ID]/models/[YOUR-MODEL-NAME]/versions/[YOUR-VERSION-NAME]",
          "deploymentUri": "gs://your_bucket_name",
          "createTime": "2018-07-07T02:51:49Z",
          "runtimeVersion": "2.5",
          "framework": "[YOUR_FRAMEWORK_NAME]",
          "machineType": "[YOUR_MACHINE_TYPE]",
          "pythonVersion": "3.7"
        }
      }
    }