머신 유형 또는 확장 등급 지정

AI Platform Training에서 학습 작업을 실행할 경우 필요한 머신의 수와 유형을 지정해야 합니다. 프로세스를 더 쉽게 수행하려면 확장 등급이라는 사전 정의된 클러스터 사양 집합에서 지정할 수 있습니다. 아니면 커스텀 등급을 선택하고 머신 유형을 지정해도 됩니다.

구성 지정

클러스터 구성을 지정하는 방법은 학습 작업 실행을 계획하는 방법에 따라 다릅니다.

gcloud

TrainingInput 객체를 나타내는 YAML 구성 파일을 만들고 구성 파일에 확장 등급 식별자와 머신 유형을 지정합니다. 파일 이름은 원하는 대로 지정할 수 있습니다. 일반적으로 이 이름은 config.yaml입니다.

다음은 커스텀 처리 클러스터가 있는 작업에 대한 구성 파일 config.yaml의 내용을 보여주는 예시입니다.

trainingInput:
  scaleTier: CUSTOM
  masterType: n1-highcpu-16
  workerType: n1-highcpu-16
  parameterServerType: n1-highmem-8
  evaluatorType: n1-highcpu-16
  workerCount: 9
  parameterServerCount: 3
  evaluatorCount: 1

gcloud ai-platform jobs submit training 명령어를 실행하면서 --config 플래그에 YAML 파일의 경로를 제공합니다.

gcloud ai-platform jobs submit training $JOB_NAME \
        --package-path $TRAINER_PACKAGE_PATH \
        --module-name $MAIN_TRAINER_MODULE \
        --job-dir $JOB_DIR \
        --region $REGION \
        --config config.yaml \ 
        -- \
        --user_first_arg=first_arg_value \
        --user_second_arg=second_arg_value

또는 구성 파일 대신 명령줄 플래그를 사용하여 클러스터 구성 세부정보를 지정할 수 있습니다. 이러한 플래그를 사용하는 방법에 대해 자세히 알아보세요.

다음은 구성 파일을 사용하지 않고 이전 예시와 유사한 구성으로 학습 작업을 제출하는 방법을 보여주는 예시입니다.

gcloud ai-platform jobs submit training $JOB_NAME \
        --package-path $TRAINER_PACKAGE_PATH \
        --module-name $MAIN_TRAINER_MODULE \
        --job-dir $JOB_DIR \
        --region $REGION \
        --scale-tier custom \
        --master-machine-type n1-highcpu-16 \
        --worker-machine-type n1-highcpu-16 \
        --parameter-server-machine-type n1-highmem-8 \
        --worker-count 9 \
        --parameter-server-count 3 \
        -- \
        --user_first_arg=first_arg_value \
        --user_second_arg=second_arg_value

학습 작업 실행에 대한 자세한 내용을 참조하세요.

Python

작업 구성의 TrainingInput 객체에 확장 등급 식별자와 머신 유형을 지정합니다.

다음 예시에서는 커스텀 처리 클러스터가 있는 작업에 대한 작업 표현을 빌드하는 방법을 보여줍니다.

training_inputs = {'scaleTier': 'CUSTOM',
    'masterType': 'n1-highcpu-16',
    'workerType': 'n1-highcpu-16',
    'parameterServerType': 'n1-highmem-8',
    'evaluatorType': 'n1-highcpu-16',
    'workerCount': 9,
    'parameterServerCount': 3,
    'evaluatorCount': 1,
    'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'],
    'pythonModule': 'trainer.task'
    'args': ['--arg1', 'value1', '--arg2', 'value2'],
    'region': 'us-central1',
    'jobDir': 'gs://my/training/job/directory',
    'runtimeVersion': '2.11',
    'pythonVersion': '3.7'}

job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

training_inputsjob_spec은 임의의 식별자입니다. 사전 이름은 원하는 대로 지정할 수 있습니다. 그러나 사전 키의 이름은 JobTrainingInput 리소스의 이름과 정확히 일치하도록 표시된 대로 지정해야 합니다.

확장 등급

Google은 고객 의견 및 클라우드 리소스 가용성을 기반으로 시간 경과에 따라 서로 다른 작업의 확장 등급 구성을 최적화할 수 있습니다. 각 확장 등급은 특정 작업 유형에 대한 적합성에 따라 정의됩니다. 일반적으로 등급이 높아지면 더 많은 머신이 클러스터에 할당되고 각 가상 머신의 사양이 더욱 강력해집니다. 확장 등급의 복잡성이 커지면 학습 단위로 측정되는 학습 작업의 시간당 비용도 늘어납니다. 작업 비용을 계산하려면 가격 책정 페이지를 참조하세요.

AI Platform Training은 scikit-learn 또는 XGBoost에 분산 학습 또는 가속기를 사용한 학습을 지원하지 않습니다. 학습 작업이 scikit-learn 또는 XGBoost 코드를 실행하는 경우 확장 등급을 BASIC 또는 CUSTOM으로 설정해야 합니다.

다음은 확장 등급 식별자입니다.

AI Platform Training 확장 등급
BASIC

단일 작업자 인스턴스입니다. 이 등급은 AI Platform Training 사용 방법을 학습하고 소규모 데이터세트를 사용하여 새 모델을 실험하는 데 적합합니다.

Compute Engine 머신 이름: n1-standard-4

STANDARD_1

마스터 인스턴스 1개, 작업자 4개, 매개변수 서버 3개. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 확장 등급을 사용하세요.

Compute Engine 머신 이름, 마스터: n1-highcpu-8, 작업자: n1-highcpu-8, 매개변수 서버: n1-standard-4

PREMIUM_1

마스터 인스턴스 1개, 작업자 19개, 매개변수 서버 11개. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 확장 등급을 사용하세요.

Compute Engine 머신 이름, 마스터: n1-highcpu-16, 작업자: n1-highcpu-16, 매개변수 서버: n1-highmem-8

BASIC_GPU

단일 NVIDIA Tesla K80 GPU를 사용하는 단일 작업자 인스턴스. 그래픽 처리 장치(GPU)에 대해 자세히 알아보려면 GPU를 이용한 학습 섹션을 참조하세요. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 확장 등급을 사용하세요.

Compute Engine 머신 이름: n1-standard-8, 하나의 k80 GPU

BASIC_TPU

마스터 VM 및 TPU v2 코어 8개를 사용하는 Cloud TPU. 학습 작업에 TPU를 사용하는 방법을 참조하세요. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 확장 등급을 사용하세요.

Compute Engine 머신 이름, 마스터: n1-standard-4, 작업자: Cloud TPU(TPU v2 코어 8개)

CUSTOM

CUSTOM 등급은 설정된 등급이 아니며 사용자가 자신의 클러스터 사양을 사용할 수 있습니다. 이 등급을 사용할 경우 다음 지침에 따라 값을 설정해 처리 클러스터를 구성하세요.

  • TrainingInput.masterType을 설정하여 마스터 노드에 사용할 머신 유형을 지정해야 합니다. 이는 유일한 필수 설정입니다. 머신 유형에 대한 자세한 내용은 아래에 설명되어 있습니다.
  • 사용할 작업자의 수를 지정하기 위해 TrainingInput.workerCount를 설정할 수 있습니다. 하나 이상의 작업자를 지정하는 경우 작업자 노드에 사용할 머신 유형을 지정하기 위해 TrainingInput.workerType도 설정해야 합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 작업자를 지정하세요.
  • 사용할 매개변수 서버의 수를 지정하기 위해 TrainingInput.parameterServerCount를 설정할 수 있습니다. 하나 이상의 매개변수 서버를 지정하는 경우 TrainingInput.parameterServerType을 설정해 매개변수 서버에 사용할 머신 유형을 지정해야 합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 매개변수 서버를 지정하세요.
  • 사용할 평가자의 수를 지정하기 위해 TrainingInput.evaluatorCount를 설정할 수 있습니다. 평가자를 하나 이상 지정하는 경우 평가자에 사용할 머신 유형을 지정하려면 TrainingInput.evaluatorType도 설정해야 합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 평가자를 지정하세요.

커스텀 확장 등급의 머신 유형

모델을 학습시키는 데 사용하는 처리 클러스터를 더 세밀하게 제어하려면 커스텀 확장 등급을 사용합니다. 작업 구성의 TrainingInput 객체에 구성을 지정합니다. gcloud ai-platform jobs submit training 명령어를 사용하여 학습 작업을 제출하는 경우 동일한 식별자를 사용할 수 있습니다.

  • 확장 등급(scaleTier)을 CUSTOM으로 설정합니다.

  • 필요한 작업자 수(workerCount), 매개변수 서버(parameterServerCount), 평가자(evaluatorCount)의 값을 지정합니다.

    AI Platform Training은 TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 분산 학습을 지원합니다. 학습 작업이 scikit-learn 또는 XGBoost 코드를 실행하는 경우 작업자, 매개변수 서버, 평가자를 지정하지 마세요.

  • 마스터 작업자의 머신 유형(masterType)을 설정합니다. 작업자, 매개변수 서버, 평가자를 사용하도록 선택한 경우 각각 workerType, parameterServerType, evaluatorType 필드에서 머신 유형을 설정합니다.

    masterType, workerType, parameterServerType, evaluatorType에 다른 머신 유형을 지정할 수 있습니다. 하지만 개별 인스턴스에 다른 머신 유형을 사용할 수 없습니다. 예를 들어 매개변수 서버에 n1-highmem-8 머신 유형을 사용할 수 있지만 일부 매개변수 서버는 n1-highmem-8을 사용하고, 일부는 n1-highcpu-16을 사용하도록 설정할 수는 없습니다.

  • 커스텀 구성의 작업자 하나만 필요한 경우(전체 클러스터 아님) 마스터 전용 머신 유형으로 커스텀 확장 등급을 지정해야 합니다. 이는 단일 작업자만 제공합니다. 다음은 config.yaml 파일의 예시입니다.

    trainingInput:
      scaleTier: CUSTOM
      masterType: n1-highcpu-16
    

Compute Engine 머신 유형

작업의 masterType, workerType, parameterServerType, evaluatorType에 특정 Compute Engine의 사전 정의된 머신 유형 이름을 사용할 수 있습니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우 이러한 머신 유형에 필요에 따라 다양한 유형의 GPU를 사용할 수 있습니다.

다음 목록에는 학습 작업에 사용할 수 있는 Compute Engine 머신 유형 식별자가 포함되어 있습니다.

  • e2-standard-4
  • e2-standard-8
  • e2-standard-16
  • e2-standard-32
  • e2-highmem-2
  • e2-highmem-4
  • e2-highmem-8
  • e2-highmem-16
  • e2-highcpu-16
  • e2-highcpu-32
  • n2-standard-4
  • n2-standard-8
  • n2-standard-16
  • n2-standard-32
  • n2-standard-48
  • n2-standard-64
  • n2-standard-80
  • n2-highmem-2
  • n2-highmem-4
  • n2-highmem-8
  • n2-highmem-16
  • n2-highmem-32
  • n2-highmem-48
  • n2-highmem-64
  • n2-highmem-80
  • n2-highcpu-16
  • n2-highcpu-32
  • n2-highcpu-48
  • n2-highcpu-64
  • n2-highcpu-80
  • n1-standard-4
  • n1-standard-8
  • n1-standard-16
  • n1-standard-32
  • n1-standard-64
  • n1-standard-96
  • n1-highmem-2
  • n1-highmem-4
  • n1-highmem-8
  • n1-highmem-16
  • n1-highmem-32
  • n1-highmem-64
  • n1-highmem-96
  • n1-highcpu-16
  • n1-highcpu-32
  • n1-highcpu-64
  • n1-highcpu-96
  • c2-standard-4
  • c2-standard-8
  • c2-standard-16
  • c2-standard-30
  • c2-standard-60
  • m1-ultramem-40
  • m1-ultramem-80
  • m1-ultramem-160
  • m1-megamem-96
  • a2-highgpu-1g*(미리보기)
  • a2-highgpu-2g*(미리보기)
  • a2-highgpu-4g*(미리보기)
  • a2-highgpu-8g*(미리보기)
  • a2-megagpu-16g*(미리보기)

각 머신 유형의 기술 사양을 자세히 알아보려면 머신 유형에 대한 Compute Engine 문서를 참조하세요.

기존 머신 유형

작업에 Compute Engine 머신 유형을 사용하는 대신 기존 머신 유형 이름을 지정할 수 있습니다. 이러한 머신 유형은 동급 Compute Engine 머신 유형과 동일한 vCPU 및 메모리 리소스를 제공하지만 추가 구성 제한사항이 있습니다.

  • acceleratorConfig를 사용하여 GPU 사용량을 맞춤설정할 수 없습니다. 하지만 일부 기존 머신 유형에는 GPU가 포함됩니다. 다음 표를 참조하세요.

  • 학습 작업 구성에 여러 머신이 사용되는 경우 Compute Engine 머신 유형을 기존 머신 유형과 혼합할 수 없습니다. 마스터 작업자, 작업자, 매개변수 서버, 평가자는 모두 어느 한 그룹의 머신 유형만 사용해야 합니다.

    예를 들어 masterTypen1-highcpu-32(Compute Engine 머신 유형)로 구성할 경우 workerTypecomplex_model_m(기존 머신 유형)으로 설정할 수 없습니다. 하지만 또 다른 Compute Engine 머신 유형인 n1-highcpu-16으로 설정하는 것은 가능합니다.

다음 표에서는 기존 머신 유형을 설명합니다.

기존 머신 유형
standard

중소 규모의 데이터세트로 간단한 모델을 학습시키는 데 적합한 기본 머신 구성입니다.

Compute Engine 머신 이름: n1-standard-4

large_model

히든 레이어가 많거나 노드 수가 많은 레이어가 있어서 모델이 큰 경우 특히 매개변수 서버에 적합한 메모리를 많이 사용하는 머신입니다.

Compute Engine 머신 이름: n1-highmem-8

complex_model_s

모델이 표준 머신보다 더 많은 계산을 해야 할 때 만족스럽게 처리할 수 있는 클러스터의 마스터 및 작업자에 적합한 머신입니다.

Compute Engine 머신 이름: n1-highcpu-8

complex_model_m

코어 수가 약 2배이고 complex_model_s의 메모리가 약 2배인 머신입니다.

Compute Engine 머신 이름: n1-highcpu-16

complex_model_l

코어 수가 약 2배이고 complex_model_m의 메모리가 약 2배인 머신입니다.

Compute Engine 머신 이름: n1-highcpu-32

standard_gpu

표준과 동등한 머신으로 단일 NVIDIA Tesla K80 GPU도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-8, 하나의 k80 GPU

complex_model_m_gpu

complex_model_m과 동등한 머신으로 NVIDIA Tesla K80 GPU 4개도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-16-k80x4

complex_model_l_gpu

complex_model_l과 동등한 머신으로 NVIDIA Tesla K80 GPU 8개도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-32-k80x8

standard_p100

표준과 동등한 머신으로 단일 NVIDIA Tesla P100 GPU도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-8-p100x1

complex_model_m_p100

complex_model_l과 동등한 머신으로 NVIDIA Tesla P100 GPU 4개도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-16-p100x4

standard_v100

표준과 동등한 머신으로 단일 NVIDIA Tesla V100 GPU도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-8-v100x1

large_model_v100

large_model과 동등한 머신으로 단일 NVIDIA Tesla V100 GPU도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-highmem-8-v100x1

complex_model_m_v100

complex_model_m과 동등한 머신으로 NVIDIA Tesla V100 GPU 4개도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-16-v100x4

complex_model_l_v100

complex_model_l과 동등한 머신으로 NVIDIA Tesla V100 GPU 8개도 포함합니다. TensorFlow로 학습시키거나 커스텀 컨테이너를 사용하는 경우에만 이 머신 유형을 사용하세요.

Compute Engine 머신 이름: n1-standard-32-v100x8

GPU와 TPU를 사용한 학습

일부 확장 등급 및 기존 머신 유형에는 그래픽 처리 장치(GPU)가 포함되어 있습니다. Compute Engine 머신 유형을 사용하는 경우 몇 가지 GPU를 선택하여 연결할 수도 있습니다. 자세한 내용은 GPU를 사용한 학습을 참조하세요.

Tensor Processing Unit(TPU)로 학습을 수행하려면 BASIC_TPU 확장 등급 또는 cloud_tpu 머신 유형을 사용해야 합니다. cloud_tpu 머신 유형은 Compute Engine 머신 유형 또는 기존 머신 유형과 함께 사용할 수 있고 TPU v2 코어 8개 또는 TPU v3 코어 8개를 사용하도록 구성할 수 있는 특별한 구성 옵션이 지원됩니다. 학습 작업에 TPU를 사용하는 방법에 대해 알아보세요.

다음 단계