Maschinentypen oder Skalierungsstufen angeben

Vor dem Ausführen eines Trainingsjobs auf AI Platform geben Sie die Anzahl und den Typ der erforderlichen Maschinen an. Zur Vereinfachung können Sie aus einer Reihe von vordefinierten Clusterspezifikationen, den sogenannten Skalierungsstufen, auswählen. Alternativ können Sie eine benutzerdefinierte Stufe auswählen und die Maschinentypen selbst angeben.

Ihre Konfiguration angeben

Wie Sie Ihre Clusterkonfiguration angeben, hängt davon ab, wie Sie Ihren Trainingsjob ausführen wollen:

gcloud

Erstellen Sie eine YAML-Konfigurationsdatei für das Objekt TrainingInput. Legen Sie in der Konfigurationsdatei die Kennzeichnung der Skalierungsstufe sowie die Maschinentypen fest. Die Datei kann nach Wunsch benannt werden. Konventionsgemäß erhält die Datei aber den Namen config.yaml.

Im folgenden Beispiel wird der Inhalt der Konfigurationsdatei config.yaml für einen Job mit einem benutzerdefinierten Verarbeitungscluster gezeigt.

trainingInput:
  scaleTier: CUSTOM
  masterType: complex_model_m
  workerType: complex_model_m
  parameterServerType: large_model
  workerCount: 9
  parameterServerCount: 3

Geben Sie im Flag --config den Pfad der YAML-Datei an, wenn Sie den Befehl gcloud ai-platform jobs submit training ausführen:

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

Wenn Sie die Komponente gcloud beta installiert haben, können Sie alternativ die Clusterkonfigurationsdetails mit Befehlszeilen-Flags angeben, anstatt eine Konfigurationsdatei zu verwenden. Weitere Informationen zur Verwendung dieser Flags erhalten Sie hier. Wenn Sie die Komponente gcloud beta installieren oder aktualisieren möchten, führen Sie den Befehl gcloud components install beta aus.

Das folgende Beispiel zeigt, wie Sie einen Trainingsjob mit der gleichen Konfiguration wie im vorherigen Beispiel senden, ohne jedoch eine Konfigurationsdatei zu verwenden:

gcloud beta 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 complex_model_m \
        --worker-machine-type complex_model_m \
        --parameter-server-machine-type large_model \
        --worker-server-count 9 \
        --parameter-server-count 3 \
        -- \
        --user_first_arg=first_arg_value \
        --user_second_arg=second_arg_value

Weitere Informationen zum Ausführen eines Trainingsjobs.

Python

Geben Sie die Kennzeichnung der Skalierungsstufe sowie die Maschinentypen im Objekt TrainingInput in der Jobkonfiguration an.

Das folgende Beispiel zeigt, wie Sie eine Darstellung von "Job" für einen Job mit einem benutzerdefinierten Verarbeitungscluster erstellen.

training_inputs = {'scaleTier': 'CUSTOM',
    'masterType': 'complex_model_m',
    'workerType': 'complex_model_m',
    'parameterServerType': 'large_model',
    'workerCount': 9,
    'parameterServerCount': 3,
    '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': '1.13',
    'pythonVersion': '3.5'}

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

Beachten Sie, dass training_inputs und job_spec willkürliche Kennungen sind. Sie können diesen Wörterbüchern beliebige Namen geben. Allerdings müssen die Wörterbuchschlüssel genau wie gezeigt benannt werden, damit sie den Namen in den Ressourcen Job und TrainingInput entsprechen.

Skalierungsstufen

Google kann die Konfiguration der Skalierungsstufen für verschiedene Jobs auf Basis von Kundenfeedback und der Verfügbarkeit von Cloudressourcen im Laufe der Zeit optimieren. Die Definition der einzelnen Skalierungsstufen erfolgt gemäß ihrer Eignung für bestimmte Arten von Jobs. Im Allgemeinen gilt Folgendes: Je höher die Stufe, desto mehr Maschinen werden dem Cluster zugeordnet und desto leistungsstärker sind die Spezifikationen der einzelnen virtuellen Maschinen. Wenn Sie die Komplexität der Skalierungsstufe erhöhen, steigen auch die stündlichen Kosten der Trainingsjobs, die in Trainingseinheiten gemessen werden. Auf der Preisseite können Sie die Kosten für Ihren Job berechnen.

Im Folgenden sind die Kennungen der Skalierungsstufen aufgeführt:

AI Platform-Skalierungsstufe
BASIC

Eine einzelne Worker-Instanz. Diese Stufe eignet sich zum Kennenlernen der Funktionsweise von AI Platform und Experimentieren mit neuen Modellen unter Verwendung kleiner Datasets.

Compute Engine-Maschinenname: n1-standard-4

STANDARD_1

Eine Master-Instanz plus vier Worker und drei Parameterserver

Compute Engine-Maschinenname, Master: n1-highcpu-8, Worker: n1-highcpu-8, Parameterserver: n1-standard-4

PREMIUM_1

Eine Master-Instanz plus 19 Worker und 11 Parameterserver

Compute Engine-Maschinenname, Master: n1-highcpu-16, Worker: n1-highcpu-16, Parameterserver: n1-highmem-8

BASIC_GPU

Eine einzelne Worker-Instanz mit einer einzelnen NVIDIA Tesla K80-GPU. Weitere Informationen zu Grafikprozessoren (GPUs) finden Sie im Abschnitt zum Training mit GPUs.

Compute Engine-Maschinenname: n1-standard-8 mit einer k80-GPU

BASIC_TPU

Eine Master-VM und eine Cloud TPU. Informationen zum Verwenden von TPUs für Trainingsjobs finden Sie hier.

Compute Engine-Maschinenname, Master: n1-standard-4, Worker: Cloud TPU

CUSTOM

Die Skalierungsstufe CUSTOM ist keine vordefinierte Stufe, sondern ermöglicht Ihnen vielmehr, Ihre eigene Clusterspezifikation zu verwenden. Orientieren Sie sich bei Verwendung dieser Stufe an den folgenden Richtlinien, um Werte zur Konfiguration des Verarbeitungsclusters festzulegen:

  • Sie müssen TrainingInput.masterType festlegen, um den Maschinentyp anzugeben, der für den Master-Knoten zu verwenden ist. Dies ist die einzige erforderliche Einstellung. Siehe die nachfolgend beschriebenen Maschinentypen.
  • Sie können TrainingInput.workerCount festlegen, um die Anzahl der zu verwendenden Worker anzugeben. Bei Angabe von einem oder mehreren Workern müssen Sie auch TrainingInput.workerType festlegen, um den Maschinentyp anzugeben, der für die Worker-Knoten verwendet werden soll.
  • Sie können TrainingInput.parameterServerCount festlegen, um die Anzahl der zu verwendenden Parameterserver anzugeben. Bei Angabe von einem oder mehreren Parameterservern müssen Sie auch TrainingInput.parameterServerType festlegen, um den Maschinentyp anzugeben, der für die Parameterserver verwendet werden soll.

Maschinentypen für die Skalierungsstufe "Custom"

Verwenden Sie zur gezielteren Steuerung des für das Modelltraining genutzten Verarbeitungsclusters eine benutzerdefinierte Skalierungsstufe. Geben Sie die Konfiguration im Objekt TrainingInput in der Jobkonfiguration an. Wenn Sie den Trainingsjob mit dem Befehl gcloud ai-platform jobs submit training verwenden, können Sie dieselben Kennzeichnungen verwenden:

  • Setzen Sie die Skalierungsstufe (scaleTier) auf CUSTOM.
  • Legen Sie Werte für die erforderliche Anzahl der Parameterserver (parameterServerCount) und Worker (workerCount) fest.
  • Legen Sie den Maschinentyp für den Master-Worker (masterType), die Parameterserver (parameterServerType) und die Worker (workerType) fest. Sie können für masterType, parameterServerType und workerType unterschiedliche Maschinentypen angeben, allerdings nicht für einzelne Instanzen. Sie haben beispielsweise die Möglichkeit, für die Parameterserver den Maschinentyp large_model festzulegen. Nicht möglich ist jedoch, für einen Teil der Parameterserver large_model und für andere complex_model_m zu verwenden.
  • Wenn Sie nur einen Worker mit Standardeinstellung brauchen und keinen vollen Cluster, sollten Sie die Standardskalierungsstufe mit einem Maschinentypen nur für den Master angeben. Somit erhalten Sie nur einen Worker. Dies ist ein Beispiel für eine config.yaml-Datei:

    trainingInput:
      scaleTier: CUSTOM
      masterType: complex_model_m
    

Unten finden Sie die Kennungen der Maschinentypen:

AI Platform-Maschinenname
standard

Grundlegende Maschinenkonfiguration; eignet sich zum Trainieren einfacher Modelle mit kleinen bis mittleren Datasets.

Compute Engine-Maschinenname: n1-standard-4

large_model

Maschine mit viel Speicher, die sich besonders für Parameterserver in großen Modellen mit vielen verborgenen Ebenen oder Ebenen mit einer sehr großen Anzahl von Knoten eignet.

Compute Engine-Maschinenname: n1-highmem-8

complex_model_s

Maschine, die sich für den Master und die Worker des Clusters eignet, wenn das Modell mehr Rechenvorgänge erfordert, als die Standardmaschine zufriedenstellend verarbeiten kann.

Compute Engine-Maschinenname: n1-highcpu-8

complex_model_m

Maschine mit etwa doppelt so vielen Kernen und etwa doppelt so viel Speicher wie "complex_model_s".

Compute Engine-Maschinenname: n1-highcpu-16

complex_model_l

Maschine mit etwa doppelt so vielen Kernen und etwa doppelt so viel Speicher wie "complex_model_m".

Compute Engine-Maschinenname: n1-highcpu-32

standard_gpu

Maschine, die dem Standardtyp entspricht, aber zusätzlich eine einzelne NVIDIA Tesla K80-GPU enthält.

Compute Engine-Maschinenname: n1-standard-8 mit einer k80-GPU

complex_model_m_gpu

Maschine, die "complex_model_m" entspricht, aber zusätzlich vier NVIDIA Tesla K80-GPUs enthält.

Compute Engine-Maschinenname: n1-standard-16-k80x4

complex_model_l_gpu

Maschine, die "complex_model_l" entspricht, aber zusätzlich acht NVIDIA Tesla K80-GPUs enthält.

Compute Engine-Maschinenname: n1-standard-32-k80x8

standard_p100

Maschine, die dem Standardtyp entspricht, aber zusätzlich eine einzelne NVIDIA Tesla P100-GPU enthält.

Compute Engine-Maschinenname: n1-standard-8-p100x1

complex_model_m_p100

Maschine, die "complex_model_m" entspricht, aber zusätzlich vier NVIDIA Tesla P100-GPUs enthält.

Compute Engine-Maschinenname: n1-standard-16-p100x4

standard_v100

Maschine, die dem Standardtyp entspricht, aber zusätzlich eine einzelne NVIDIA Tesla V100-GPU enthält.

Compute Engine-Maschinenname: n1-standard-8-v100x1

large_model_v100

Maschine, die dem Standardtyp entspricht, aber zusätzlich eine einzelne NVIDIA Tesla V100-GPU enthält.

Compute Engine-Maschinenname: n1-highmem-8-v100x1

complex_model_m_v100

Maschine, die "complex_model_m" entspricht, aber zusätzlich vier NVIDIA Tesla V100-GPUs enthält.

Compute Engine-Maschinenname: n1-standard-16-v100x4

complex_model_l_v100

Maschine, die "complex_model_l" entspricht, aber zusätzlich acht NVIDIA Tesla V100-GPUs enthält.

Compute Engine-Maschinenname: n1-standard-32-v100x8

cloud_tpu

TPU-VM mit einer Cloud-TPU.

Compute Engine-Maschinentypen

Sie können statt der oben aufgeführten AI Platform-Maschinentypen auch die Namen bestimmter vordefinierter Compute Engine-Maschinentypen verwenden. Dies bietet mehr Flexibilität bei der Zuweisung von Rechenressourcen für Ihren Trainingsjob. Sie können damit auch individuell festlegen, wie Ihr Job GPUs verwendet .

Unten finden Sie die Kennzeichnungen für die Compute Engine-Maschinentypen, die Sie direkt verwenden können:

  • 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

Hier finden Sie weitere Informationen zu den von Compute Engine-Maschinentypen bereitgestellten Ressourcen.

Wenn Ihr Trainingsjobkonfiguration mehrere Computer verwendet, können Sie AI Platform-Maschinentypen nicht mit Compute Engine-Maschinentypen kombinieren. Der Master-Worker, die Parameterserver und die Worker müssen alle Maschinentypen jeweils aus der einen oder der anderen Gruppe verwenden.

Wenn Sie zum Beispiel den masterType als n1-highcpu-32 (Compute Engine-Maschinentyp) konfigurieren, können Sie workerType oder parameterServerType nicht als complex_model_m (AI Platform-Maschinentyp) festlegen, die Einstellung auf n1-highcpu-16 (anderer Compute Engine-Maschinentyp) hingegen ist möglich.

Training mit GPUs und TPUs

Einige Skalierungsstufen und AI Platform-Maschinentypen umfassen Grafikprozessoren (GPUs). Sie können auch mehrere GPUs Ihrer Wahl hinzufügen, wenn Sie einen Compute Engine-Maschinentyp verwenden. Weitere Informationen finden Sie unter Training mit GPUs.

Weitere Informationen zu Tensor Processing Units (TPUs) finden Sie im Abschnitt zur Verwendung von TPUs für Ihren Trainingsjob.

Maschinentypen im Vergleich

Mit den Informationen in den folgenden Tabellen können Sie die für das Training verfügbaren Maschinentypen von AI Platform und Compute Engine vergleichen, wenn Sie die Skalierungsstufe auf CUSTOM festlegen.

Die genauen Spezifikationen der Maschinentypen können sich jederzeit ändern.

AI Platform-Maschinentypen

Maschinentyp Beschleuniger Virtuelle CPUs Arbeitsspeicher (GB)
standard - 4 15
large_model - 8 52
complex_model_s - 8 7,2
complex_model_m - 16 14,4
complex_model_l - 32 28,8
standard_gpu 1 (K80 GPU) 8 30
complex_model_m_gpu 4 (K80 GPU) 16 60
complex_model_l_gpu 8 (K80 GPU) 32 120
standard_p100 1 (P100 GPU) 8 30
complex_model_m_p100 4 (P100 GPU) 16 60
standard_v100 1 (V100 GPU) 8 30
large_model_v100 1 (V100 GPU) 16 52
complex_model_m_v100 4 (V100 GPU) 16 60
complex_model_l_v100 8 (V100 GPU) 32 120
cloud_tpu 8 (TPU-Kerne)

Compute Engine-Maschinentypen

Compute Engine-Maschinentypen verwenden standardmäßig keine Beschleuniger. Sie können jedoch in Ihrer Trainingskonfiguration GPUs mit diesen virtuellen Maschinen verknüpfen.

Maschinentyp Virtuelle CPUs Arbeitsspeicher (GB)
n1-standard-4 4 15
n1-standard-8 8 30
n1-standard-16 16 60
n1-standard-32 32 120
n1-standard-64 64 240
n1-standard-96 96 360
n1-highmem-2 2 13
n1-highmem-4 4 26
n1-highmem-8 8 52
n1-highmem-16 16 104
n1-highmem-32 32 208
n1-highmem-64 64 416
n1-highmem-96 96 624
n1-highcpu-16 16 14,4
n1-highcpu-32 32 28,8
n1-highcpu-64 64 57,6
n1-highcpu-96 96 86,4

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

AI Platform für TensorFlow