View a markdown version of this page

Fine-tune kuratierte Hub-Modelle - Amazon SageMaker KI

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.

Fine-tune kuratierte Hub-Modelle

In Ihrem privaten, kuratierten Modell-Hub können Sie anhand Ihrer Modellreferenzen Trainingsjobs zur Optimierung durchführen. Modellreferenzen verweisen auf ein öffentlich JumpStart verfügbares Modell im öffentlichen SageMaker KI-Hub, aber Sie können das Modell anhand Ihrer eigenen Daten für Ihren speziellen Anwendungsfall optimieren. Nach der Optimierung haben Sie Zugriff auf die Modellgewichtungen, die Sie dann auf einem Endpunkt verwenden oder bereitstellen können.

Mithilfe des Python-SDK können Sie kuratierte Hub-Modelle in nur wenigen Codezeilen SageMaker feinabstimmen. Weitere allgemeine Informationen zur Feinabstimmung öffentlich verfügbarer JumpStart Modelle finden Sie unter. Basismodelle und Hyperparameter für die Optimierung

Voraussetzungen

Gehen Sie wie folgt vor, um eine JumpStart Modellreferenz in Ihrem kuratierten Hub zu optimieren:

  1. Stellen Sie sicher, dass der IAM-Rolle Ihres Benutzers die SageMaker TrainHubModel AI-Berechtigung zugeordnet ist. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im AWS -IAM-Benutzerhandbuch.

    Sie sollten der IAM-Rolle Ihres Benutzers eine Richtlinie wie die im folgenden Beispiel gezeigte anfügen.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sagemaker:TrainHubModel", "Resource": "arn:aws:sagemaker:*:111122223333:hub/*" } ] }
    Anmerkung

    Wenn Ihr kuratierter Hub von mehreren Konten gemeinsam genutzt wird und der Hub-Inhalt einem anderen Konto gehört, stellen Sie sicher, dass Ihr HubContent (die Modellreferenzressource) über eine ressourcenbasierte IAM-Richtlinie verfügt, die auch dem anfragenden Konto die TrainHubModel-Erlaubnis erteilt, wie im folgenden Beispiel gezeigt.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountSageMakerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "sagemaker:TrainHubModel" ], "Resource": [ "arn:aws:sagemaker:*:111122223333:hub/*" ] } ] }
  2. Verfügen Sie über einen privaten, kuratierten Hub mit einer Modellreferenz zu einem JumpStart Modell, das Sie optimieren möchten. Weitere Informationen zum Erstellen eines privaten Hubs finden Sie unter Erstellen eines privaten Modell-Hubs. Informationen zum Hinzufügen öffentlich verfügbarer JumpStart Modelle zu Ihrem privaten Hub finden Sie unter. Hinzufügen von Modellen zu einem privaten Hub

    Anmerkung

    Das von Ihnen gewählte JumpStart Modell sollte feinabstimmbar sein. Sie können überprüfen, ob ein Modell feinabstimmbar ist, indem Sie die Tabelle „ Built-in Algorithmen mit Modellen“ überprüfen. Pre-trained

  3. Sie benötigen einen Trainingsdatensatz, den Sie für die Optimierung des Modells verwenden möchten. Der Datensatz sollte im passenden Trainingsformat für das Modell vorliegen, das Sie optimieren möchten.

Fine-tune eine kuratierte Hub-Modellreferenz

Das folgende Verfahren zeigt Ihnen, wie Sie mithilfe des SageMaker Python-SDK eine Modellreferenz in Ihrem privaten kuratierten Hub optimieren.

  1. Stellen Sie sicher, dass Sie (mindestens2.242.0) die neueste Version des SageMaker Python-SDK installiert haben. Weitere Informationen finden Sie unter Verwenden Sie Version 3.x des SageMaker Python-SDK.

    !pip install --upgrade sagemaker
  2. Importieren Sie die AWS SDK for Python (Boto3) und die Module, die Sie benötigen, aus dem SageMaker Python-SDK.

    import boto3 from sagemaker.train import ModelTrainer from sagemaker.core.jumpstart.configs import JumpStartConfig from sagemaker.core.helper.session_helper import Session
  3. Initialisieren Sie eine Boto3-Sitzung, einen SageMaker AI-Client und eine SageMaker Python SDK-Sitzung.

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. Erstellen Sie eine ModelTrainer Verwendung from_jumpstart_config und geben Sie die JumpStart Modell-ID, den Namen Ihres Hubs, der die Modellreferenz enthält, und Ihre SageMaker Python-SDK-Sitzung an. Eine Liste der Modell-IDs finden Sie in der Tabelle Built-in Algorithmen mit Pre-trained Modellen.

    Optional können Sie die instance_count Felder instance_type und angeben, wenn Sie die erstellen ModelTrainer. Wenn Sie dies nicht tun, verwendet der Trainingsjob den Standard-Instance-Typ und die Standardanzahl für das von Ihnen verwendete Modell.

    Sie können optional auch den output_path zum Amazon-S3-Speicherort angeben, an dem Sie die optimierten Modellgewichtungen speichern möchten. Wenn Sie das nicht angebenoutput_path, wird ein standardmäßiger SageMaker AI-Amazon S3-Bucket für die Region in Ihrem Konto verwendet, der im folgenden Format benannt ist:sagemaker-<region>-<account-id>.

    jumpstart_config = JumpStartConfig( model_id="meta-textgeneration-llama-3-2-1b", hub_name=<your-hub-name>, # Optional: specify your desired instance type and count for the training job # instance_type = "ml.g5.2xlarge" # instance_count = 1 ) model_trainer = ModelTrainer.from_jumpstart_config(jumpstart_config=jumpstart_config) # Optional: specify a custom S3 location to store the fine-tuned model artifacts # output_path: "s3://<output-path-for-model-artifacts>"
  5. Erstellen Sie ein Wörterbuch mit dem training-Schlüssel, in dem Sie den Speicherort Ihres Optimierungsdatensatzes angeben. Dieses Beispiel verweist auf einen Amazon-S3-URI. Wenn Sie zusätzliche Überlegungen haben, z. B. die Verwendung des lokalen Modus oder mehrerer Trainingsdatenkanäle, finden Sie weitere Informationen unter ModelTrainer.train () in der SageMaker Python-SDK-Dokumentation.

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. Rufen Sie die train() Methode des Modelltrainers auf und geben Sie Ihre Trainingsdaten und Ihre EULA-Zustimmung (falls zutreffend) ein.

    Anmerkung

    Im folgenden Beispiel ist accept_eula=False. Sie sollten den Wert manuell auf True ändern, um die EULA zu akzeptieren.

    model_trainer.train(input_data_config=[training_input], accept_eula=False)

Ihr Optimierungsjob sollte jetzt beginnen.

Sie können Ihren Feinabstimmungsjob überprüfen, indem Sie sich Ihre Trainingsjobs ansehen, entweder in der SageMaker KI-Konsole oder mithilfe der ListTrainingJobs API.

Sie können auf Ihre fein abgestimmten Modellartefakte in dem Amazon S3 zugreifenoutput_path, das im ModelTrainer Objekt angegeben wurde (entweder der standardmäßige SageMaker AI-Amazon S3-Bucket für die Region oder ein benutzerdefinierter Amazon S3-Pfad, den Sie angegeben haben, falls zutreffend).