Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie von SageMaker KI verwaltete warme Pools
Sie können SageMaker KI-verwaltete Warm-Pools über das SageMaker Python-SDK, die Amazon SageMaker AI-Konsole oder über die Low-Level-APIs verwenden. Administratoren können optional den sagemaker:KeepAlivePeriod Bedingungsschlüssel verwenden, um die KeepAlivePeriodInSeconds Grenzen für bestimmte Benutzer oder Gruppen weiter einzuschränken.
Themen
Verwenden des SageMaker AI Python SDK
Erstellen, aktualisieren oder beenden Sie Warm-Pools mithilfe des SageMaker Python-SDK.
Anmerkung
Diese Funktion ist im SageMaker AI Python SDK v2.110.0
Erstellen eines Warm Pool
Um einen warmen Pool zu erstellen, verwenden Sie das SageMaker Python-SDK, um einen Trainingsjob mit einem keep_alive_period_in_seconds Wert größer als 0 zu erstellen und mit dem Training zu beginnen. Wenn der Trainingsjob abgeschlossen ist, wird ein warmer Pool beibehalten. Falls Ihr Skript keinen warmen Pool erstellt, finden Sie mögliche Erklärungen unter Erstellung eines Warm-Pools.
Verwenden Sie das SageMaker Python-SDK, um einen ModelTrainer mit einem keep_alive_period_in_seconds Wert größer als 0 in der Compute Konfiguration und dem Aufruf zu erstellentrain(). Weitere Informationen zum Training mit dem SageMaker Python-SDK finden Sie unter Trainieren eines Modells mit dem SageMaker Python-SDK
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, SourceCode from sagemaker.core.helper.session_helper import Session, get_execution_role from sagemaker.core import image_uris from sagemaker.train.configs import InputData # Creates a SageMaker AI session and gets execution role session = Session() role = get_execution_role() # Retrieve the TensorFlow training image training_image = image_uris.retrieve( framework="tensorflow", region=session.boto_region_name, version="2.2", py_version="py37", instance_type="ml.g4dn.xlarge", image_scope="training" ) # Creates an example ModelTrainer with warm pool enabled model_trainer = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "1", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer.train(input_data_config=[train_data])
Erstellen Sie dann einen zweiten passenden Ausbildungsauftrag. In diesem Beispiel erstellen wir einen my-training-job-2, der alle erforderlichen Attribute für die Zuordnung enthält my-training-job-1, aber einen anderen Hyperparameter für Experimente hat. Der zweite Trainingsauftrag nutzt den warmen Pool wieder und startet schneller als der erste Trainingsauftrag. Das folgende Codebeispiel verwendet einen Tensorflow-Schätzer. Die Warm-Pool-Funktion kann mit jedem Trainingsalgorithmus verwendet werden, der auf Amazon SageMaker AI läuft. Weitere Informationen darüber, welche Attribute übereinstimmen müssen, finden Sie unter Passende Ausbildungsaufträge.
# Creates a second ModelTrainer that reuses the warm pool model_trainer_2 = ModelTrainer( training_image=training_image, source_code=SourceCode(source_dir='code', entry_script='my-training-script.py'), role=role, compute=Compute( instance_type='ml.g4dn.xlarge', instance_count=1, volume_size_in_gb=250, keep_alive_period_in_seconds=1800, ), hyperparameters={ "batch-size": "512", "epochs": "2", "learning-rate": "1e-3", "beta_1": "0.9", "beta_2": "0.999", }, ) # Starts a SageMaker training job and waits until completion train_data = InputData(channel_name="training", data_source='s3://my_bucket/my_training_data/') model_trainer_2.train(input_data_config=[train_data])
Prüfen Sie bei beiden Trainingsjobs den Status des warmen Pools, um sicherzustellen, dass der Warmpool Reused für my-training-job-1 und InUse für my-training-job-2 vorgesehen ist.
Anmerkung
Die Namen der Trainingsjobs haben date/time Suffixe. Das Beispiel für die Namen der Ausbildungsberufe my-training-job-1 und my-training-job-2 sollte durch die tatsächlichen Namen der Ausbildungsberufe ersetzt werden. Sie können den estimator.latest_training_job.job_name Befehl verwenden, um den tatsächlichen Namen der Trainingsaufgabe abzurufen.
session.describe_training_job('my-training-job-1') session.describe_training_job('my-training-job-2')
Das Ergebnis von describe_training_job enthält alle Details zu einem bestimmten Trainingsauftrag. Suchen Sie nach dem WarmPoolStatus Attribut, um Informationen über den warmen Pool eines Trainingsjobs zu überprüfen. Ihre Ausgabe sollte ähnlich wie das folgende Beispiel aussehen:
# Warm pool status for training-job-1 ... 'WarmPoolStatus': {'Status': 'Reused', 'ResourceRetainedBillableTimeInSeconds': 1000, 'ReusedByName': my-training-job-2} ... # Warm pool status for training-job-2 ... 'WarmPoolStatus': {'Status': 'InUse'} ...
Aktualisieren eines Warm Pools
Wenn der Trainingsjob abgeschlossen ist und der Status des warmen Pools lautet Available, können Sie den KeepAlivePeriodInSeconds Wert aktualisieren.
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":3600})
Löschen eines Warm Pools
Um einen warmen Pool manuell zu löschen, setzen Sie den KeepAlivePeriodInSeconds
Wert auf 0.
session.update_training_job(job_name, resource_config={"KeepAlivePeriodInSeconds":0})
Der warme Pool wird automatisch beendet, wenn er den festgelegten KeepAlivePeriodInSeconds Wert überschreitet oder wenn es ein Patch-Update für den Cluster gibt.
Verwenden der Amazon AI-Konsole SageMaker
Über die Konsole können Sie einen Warm-Pool erstellen, einen Warm-Pool freigeben oder den Warm-Pool-Status und die abrechenbare Zeit bestimmter Trainingsaufträge überprüfen. Sie können auch sehen, bei welchem passenden Trainingsjob ein Warmpool wiederverwendet wurde.
-
Öffnen Sie die Amazon SageMaker AI-Konsole
und wählen Sie im Navigationsbereich die Option Trainingsjobs aus. Falls zutreffend, ist der Warmpool-Status jedes Trainingsjobs in der Spalte Warmpool-Status und die verbleibende Zeit für einen aktiven Warmpool in der Spalte Restzeit sichtbar. -
Um von der Konsole aus einen Trainingsjob zu erstellen, für den ein Warmpool verwendet wird, wählen Sie Trainingsjob erstellen. Stellen Sie anschließend sicher, dass Sie bei der Konfiguration Ihrer Trainingsjob-Ressourcen einen Wert für das Feld Keep-Alive-Zeitraum angeben. Dieser Wert muss eine Ganzzahl zwischen 1 und 3600 sein, was die Dauer in Sekunden darstellt.
-
Um einen warmen Pool von der Konsole aus freizugeben, wählen Sie einen bestimmten Trainingsjob aus und wählen Sie im Dropdown-Menü Aktionen die Option Cluster freigeben aus.
-
Wählen Sie einen Trainingsauftrag aus, um weitere Informationen zu einem Warm Pool zu erhalten. Scrollen Sie auf der Seite mit den Jobdetails nach unten zum Abschnitt Status des Warmpools, die verbleibende Zeit, wenn der Status des Warmpools lautet
Available, die abrechnungsfähigen Sekunden für das Warmpool und den Namen des Trainingsjobs, bei dem der warme Pool wiederverwendet wurde, falls der Status des warmen PooldReusedlautet.
Verwenden der Low-Level-APIs SageMaker
Verwenden Sie SageMaker KI-verwaltete Warm-Pools entweder mit der SageMaker API oder der AWS CLI.
SageMaker KI-API
Richten Sie SageMaker KI-verwaltete Warm-Pools mithilfe der SageMaker API mit den folgenden Befehlen ein:
AWS CLI
Richten Sie SageMaker KI-verwaltete Warm-Pools mithilfe der AWS CLI mit den folgenden Befehlen ein:
IAM-Bedingungsschlüssel
Administratoren können optional den sagemaker:KeepAlivePeriod Bedingungsschlüssel verwenden, um die KeepAlivePeriodInSeconds Grenzwerte für bestimmte Benutzer oder Gruppen weiter einzuschränken. SageMaker Von KI verwaltete Warm-Pools sind auf einen KeepAlivePeriodInSeconds Wert von 3600 Sekunden (60 Minuten) begrenzt, aber Administratoren können diesen Grenzwert bei Bedarf senken.
Weitere Informationen finden Sie unter Bedingungsschlüssel für Amazon SageMaker AI in der Serviceautorisierungsreferenz.