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.
Amazon-Nova-Destillation
Diese Schnellstartanleitung hilft Ihnen bei den ersten Schritten mit der Amazon Nova-Modelldestillation mithilfe von überwachter Feinabstimmung (SFT) auf SageMaker KI.
Die Modelldestillation ist eine Methode, mit der Wissen von großen, fortschrittlichen Modellen auf kleinere, effiziente Modelle übertragen wird. Bei Amazon-Nova-Modellen gibt ein größeres „Lehrermodell“ (wie Amazon Nova Pro oder Amazon Nova Premier) seine Funktionen an ein kleineres „Schülermodell“ (wie Amazon Nova Lite oder Amazon Nova Micro) weiter. Dadurch entsteht ein maßgeschneidertes Modell, das eine hohe Leistung beibehält und gleichzeitig weniger Ressourcen verbraucht.
Zentrale Komponenten
Der Destillationsprozess umfasst hauptsächlich zwei Arten von Modellen:
Lehrermodelle dienen als Wissensquelle und umfassen:
-
Amazon Nova Pro (Amazonas). nova-pro-v1:0)
-
Amazon Nova Premier (Amazon). nova-premier-v1:0)
Schülermodelle erhalten das Wissen und setzen es um:
-
Amazon Nova Lite (Amazonas). nova-lite-v1:0:300 k)
-
Amazon Nova Micro (Amazonas). nova-micro-v1:0:128 k)
-
Amazon Nova Pro (Amazonas). nova-pro-v1:0:300 k) — Nur verfügbar, wenn Sie Amazon Nova Premier als Lehrer verwenden
Anwendungsfälle
Die Modelldestillation ist besonders in den folgenden Szenarien von Vorteil:
-
Für Ihre Anwendung gelten strenge Latenz-, Kosten- und Genauigkeitsanforderungen.
-
Sie benötigen ein benutzerdefiniertes Modell für bestimmte Aufgaben, verfügen jedoch nicht über ausreichend hochwertige, beschriftete Trainingsdaten.
-
Sie möchten die Leistung moderner Modelle erreichen und gleichzeitig die Effizienz kleinerer Modelle beibehalten.
Voraussetzungen
-
AWS-Kontomit Zugriff auf Amazon Nova-Modelle und entsprechenden Servicekontingenten (min. 6 P5- und 1 R5-Instances).
-
IAM-Rolle mit Berechtigungen für SageMaker Schulungsjobs.
-
Amazon-S3-Bucket, um Trainingsdaten und -ergebnisse zu speichern
Einrichten der Datenerweiterung
In der Phase der Datenerweiterung werden SageMaker Trainingsjobs verwendet, um mithilfe des Lehrermodells hochwertige Schulungsdaten zu generieren. In diesem Abschnitt werden der Einrichtungsprozess und die Anforderungen beschrieben.
IAM role (IAM-Rolle)
Informationen zum Erstellen von IAM-Rollen und Anhängen von Richtlinien finden Sie unter Erstellen von Rollen und Anhängen von Richtlinien (Konsole). Wenn Sie das verwendenAWS CLI, folgen Sie den Anweisungen unter Create-Role und. attach-role-policy Weitere Informationen finden Sie im SageMaker AI Developer Guide unter So verwenden Sie SageMaker KI-Ausführungsrollen.
Nachfolgend sind Beispielbefehle zu Ihrer Information aufgeführt.
Erstellen Sie eine SageMaker KI-Ausführungsrolle
Die Rolle wird mit einer Vertrauensbeziehung geschaffen, die es SageMaker KI, Amazon Bedrock, ermöglicht, diese Rolle zu übernehmen. Dadurch können diese Dienste bei der Ausführung von Batch-Inferenzjobs in Ihrem Namen handeln.
aws iam create-role \ --role-name NovaCustomizationRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["sagemaker.amazonaws.com", "bedrock.amazonaws.com"] }, "Action": "sts:AssumeRole" } ] }'
Hinzufügen der erforderlichen Richtlinien
# Attach AmazonSageMakerFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess # Attach AmazonBedrockFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess # Attach S3 access policy aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess # Attach AmazonEC2FullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess # Attach AmazonEC2ContainerRegistryFullAccess aws iam attach-role-policy \ --role-name NovaCustomizationRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess
Fügen Sie der für den Destillations-Container erforderlichen Kundenausführungsrolle die folgende Inline-Richtlinie an.
-
AWS KMSBerechtigungen: Ermöglicht der Rolle die Interaktion mit dem AWS Key Management Service, der für den Zugriff auf verschlüsselte Ressourcen oder die Verwaltung von Verschlüsselungsschlüsseln erforderlich ist.
-
IAM:PassRole: Diese Berechtigung ist häufig erforderlich, wenn ein Dienst diese Rolle an einen anderen Dienst übergeben muss. Dies ist ein übliches Muster bei AWS Dienstintegrationen.
aws iam put-role-policy \ --role-name NovaCustomizationRole \ --policy-name Distillation-Additional-Permissions\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*" } ] }
Amazon-VPC-Konfiguration
Um die Amazon VPC-Konfiguration für SageMaker KI-Schulungsjobs mithilfe von zu erstellenAWS-Managementkonsole, folgen Sie den Anweisungen unter Konfigurieren Sie Ihre private VPC für SageMaker Schulungen (Konsole).
Erstellen einer neuen Amazon VPC
Name: Distillation-VPC IPv4 CIDR: 10.0.0.0/16 (or your preferred range) Availability Zones: 2 Public Subnets: 2 Private Subnets: 2 NAT Gateways: 1 (in one AZ)
Erstellen Sie eine Sicherheitsgruppe
Name: Distillation-SG Description: Security group for data distillation jobs Inbound Rules: Allow all traffic from self Outbound Rules: Allow all traffic (0.0.0.0/0)
Erstellen von VPC-Endpunkten für die folgenden Services
com.amazonaws.[region].s3 com.amazonaws.[region].sagemaker.api com.amazonaws.[region].sagemaker.runtime com.amazonaws.[region].bedrock.api com.amazonaws.[region].bedrock.runtime com.amazonaws.[region].sts com.amazonaws.[region].logs com.amazonaws.[region].ecr.api com.amazonaws.[region].ecr.dkr
Für jeden Endpunkt:
-
Wählen Sie Ihre Destillations-VPC.
-
Auswahl der privaten Subnetze
-
Wählen Sie die Sicherheitsgruppe Distillation-SG.
AWS KMS-Schlüssel
Bei der Arbeit mit Amazon Bedrock Batch Inference ist ein AWS KMS Schlüssel für Datensicherheit und Compliance erforderlich. Amazon Bedrock Batch-Inferenzaufträge erfordern, dass die Eingabe- und Ausgabe-Buckets von Amazon S3 mit AWS KMS Schlüsseln verschlüsselt werden, um den Datenschutz im Ruhezustand zu gewährleisten.
Erstellen Sie einen KMS-Schlüssel AWS CLI mit diesem Befehl:
# Create KMS key aws kms create-key \ --description "KMS key for Amazon Bedrock batch inference Amazon S3 bucket" \ --regionus-east-1
Der Befehl gibt die wichtigsten Informationen einschließlich des ARN aus. Beispielausgabe:
{ "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
Anmerkung
Speichern Sie den ARN des KMS-Schlüssels aus der Ausgabe, da Sie ihn für die Erstellung des Amazon-S3-Buckets im nächsten Abschnitt benötigen.
Amazon-S3-Bucket
Sie benötigen zwei Arten von Amazon-S3-Speicher. Der kundenverwaltete Amazon-S3-Bucket speichert Ihre Eingabedaten und manifest.json-Ausgabedateien. Sie erstellen und verwalten diesen Bucket und können für die Ein- und Ausgabe einen einzigen Bucket verwenden. Dieser Bucket muss mit KMS-Verschlüsselung konfiguriert sein, da er sensible Ausgabedaten speichert und von Batch-Inferenzjobs in Amazon Bedrock verwendet wird. Amazon Bedrock benötigt KMS-verschlüsselte Buckets für die Verarbeitung von Batch-Inferenzaufgaben.
Der serviceverwaltete Amazon-S3-Bucket speichert Modellgewichtungen. Während Ihres ersten Trainingsjobs wird ein serviceverwalteter Amazon-S3-Bucket automatisch erstellt. Er verfügt über Zugriffskontrollen mit bestimmten Pfaden, auf die nur über Manifestdateien zugegriffen werden kann.
Verwenden Sie den CLI-Befehl create-bucketAWS-Region, um einen Bucket in einem bestimmten Bucket zu erstellen.
Beispielbefehl zum Erstellen eines Amazon S3 S3-Buckets mit AWS KMS Verschlüsselung. {kms_key_arn}Ersetzen Sie es durch Ihren AWS KMS Schlüssel-ARN. Sie müssen zuerst einen AWS KMS Schlüssel erstellen, falls Sie dies noch nicht getan haben.
aws s3api create-bucket \ --bucket {my_bucket_name} \ --region {aws_region} \ --create-bucket-configuration LocationConstraint={aws_region} \ --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{kms_key_arn}" }, "BucketKeyEnabled": true } ] }'
Einen SageMaker Ausbildungsjob beginnen
Bevor Sie mit einem Trainingsjob beginnen, bereiten Sie Ihre Daten vor.
Anforderung an das Datenformat – Ihr Eingabedatensatz muss im JSONL-Format vorliegen, wobei jede Zeile eine Stichprobe im Converse-Format enthält. Weitere Informationen finden Sie unter Vorbereiten von Daten für das Destillieren von Modellen mit Verständnisfunktion.
Einschränkungen für Datensätze
-
Mindestanzahl von Prompts: 100
-
Maximale Dateigröße: 2 GB
-
Maximale Zeilenlänge: 180 KB
-
Dateiformat: nur JSONL
Führen Sie den folgenden Befehl aus, um Eingabedaten hochzuladen.
aws s3 cp /path/to/input-data/ s3://customer-input-data-bucket/ —recursive
Rezept für Datenerweiterung
Sie können das Destillationsrezept aus dem SageMaker HyperPod Rezepte-Repositoryrecipes-collection/recipes/fine-tuning/nova. Der Datenerweiterungsprozess wird durch eine YAML-Konfigurationsdatei gesteuert. Im Folgenden finden Sie eine detaillierte Erklärung der einzelnen Parameter. Alle Felder sind Pflichtfelder.
| Parameter | Description |
|---|---|
| name |
Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft bei der Identifizierung Ihres Jobs in derAWS-Managementkonsole. |
| distillation_data |
Aktiviert den Datendestillationsjob. Ändern Sie dieses Feld nicht. |
| maxNumberOfAufforderungen |
Die maximale Anzahl von Prompts im Datensatz. |
| maxResponseLength |
Die maximale Antwortlänge pro Prompt (Token). |
| maxInputFileSizeInGB |
Die maximale Größe der Eingabedatei (in GB). |
| maxLineLengthIn KB |
Die maximale Größe einer einzelnen Zeile in der Eingabedatei (in KB). |
| maxStudentModelFineTuningContextLengthInTokens |
Die maximale Größe des Kontextfensters (Token) für das Schülermodell. Dieser Wert darf die Kapazität des Schülermodells nicht überschreiten. Sie können diesen Wert je nach Kapazität des Schülermodells auf 32 000 oder 64 000 festlegen. |
| teacherModelId |
Legen Sie als Lehrermodell-ID eine der folgenden Optionen fest:
|
| temperature |
Steuert die Zufälligkeit der Antworten (0,7 wird für ein ausgewogenes Verhältnis empfohlen). |
| top_p |
Kumulativer Wahrscheinlichkeitsschwellenwert für Tokenstichproben (0,9 wird empfohlen). |
| customer_bucket |
Amazon S3 S3-Bucket für input/output Daten. |
| kms_key |
AWS KMSSchlüssel zum Verschlüsseln der Ausgabe in S3. Dies wird von Bedrock Batch Inference benötigt, um die vom Inferenzjob zurückgegebene Ausgabe zu speichern. |
Einschränkung
Für das Lehrermodell als Nova Premier – Wird nur in der IAD-Region (us-east-1) unterstützt, da die Batch-Inferenz mit Amazon Bedrock in der ARN-Region (eu-north-1) nicht verfügbar ist.
Bewährte Methoden
Datenaufbereitung
-
Fügen Sie 100 hochwertige, gekennzeichnete Beispiele als Leitfaden für das Lehrermodell bei.
-
Entfernen Sie vor der Einreichung Kennzeichnungen von schlechter Qualität.
-
Befolgen Sie die bewährten Methoden zu Textverständnis-Prompts.
-
Testen Sie die Prompts mit dem Lehrermodell, bevor Sie mit der Destillation beginnen.
Auswahl des Modells
-
Verwenden Sie Nova Pro als Lehrermodell für allgemeine Anwendungsfälle.
-
Ziehen Sie Nova Premier für spezialisiertes Fachwissen in Betracht.
-
Wählen Sie das Schülermodell auf der Grundlage der Latenz- und Kostenanforderungen aus.
Leistungsoptimierung
-
Beginnen Sie mit der empfohlenen Temperatur (0,7) und dem empfohlenen Wert für top_p (0,9).
-
Überprüfen Sie vor der Feinabstimmung die Qualität der erweiterten Daten.
-
Folgen Sie den Anweisungen unter Auswählen von Hyperparametern, um die Hyperparameter anzupassen.
Starten eines Jobs mit PySDK
Das folgende Beispiel-Notizbuch zeigt, wie ein SageMaker Trainingsjob für die Destillation ausgeführt wird. Weitere Informationen finden Sie unter Verwenden eines SageMaker KI-Schätzers zur Ausführung eines Trainingsjobs.
import os import sagemaker,boto3 from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput sagemaker_session = sagemaker.Session() role = sagemaker.get_execution_role() # SETUP job_name = <Your_job_name> # Must be unique for every run input_s3_uri = <S3 URI to your input dataset> # Must end in .jsonl file output_s3_uri = <S3 URI to your output bucket> + job_name image_uri = "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-distillation-repo:SM-TJ-DISTILL-LATEST" # Do not change instance_type = "ml.r5.4xlarge" # Recommedation is to use cpu instances instance_count = 1 # Must be 1, do not change role_arn = <IAM role to execute the job with> recipe_path = <Local path to your recipe> # Execution estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, subnets= ['subnet-xxxxxxxxxxxxxxxxx','subnet-xxxxxxxxxxxxxxxxx'], # Add subnet groups created in previous steps security_group_ids= ['sg-xxxxxxxxxxxxxxxxx'], # Add security group created in previous steps disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) # The keys must be "train". estimator.fit(inputs={"train": trainingInput})
CloudWatch Logs
Protokolle sind in Amazon CloudWatch unter der /aws/sagemaker/TrainingJobs Protokollgruppe in Ihrem verfügbarAWS-Konto. Es wird eine Protokolldatei pro Host angezeigt, der für Ihren Trainingsjob verwendet wird.
Erfolgreiches Training
Bei einem erfolgreichen Trainingsjob wird am Ende des Protokolls die Protokollmeldung „Training ist abgeschlossen“ angezeigt.
Der Ausgabe-Bucket enthält die folgenden Dateien:
-
distillation_data/manifest.json: Enthält den Speicherort erweiterter Daten. Sie können diesen Datensatz verwenden, um einen Amazon-Nova-Feinabstimmungsjob zu starten. Mit diesem Datensatz wird nur das SFT-Training unterstützt.{ "distillation_data": "s3://customer_escrow_bucket/job_id/distillation_data/" } -
distillation_data/sample_training_data.jsonl: Diese JSONL-Datei enthält 50 Beispiele erweiterter Daten als Vorschau, um Ihnen bei der Bestimmung der Datenqualität zu helfen. -
distillation_data/training_config.json: Diese Datei enthält empfohlene Hyperparameter für Amazon Nova-Feinabstimmungsjobs. Im Folgenden sehen Sie ein Beispiel für eine -Datei:{ "epochCount": 5, "learningRate": 1e-05, "batchSize": 1, "learningRateWarmupSteps": 1 }
Überprüfen der Qualität erweiterter Daten
Vor der Feinabstimmung ist es wichtig, die Qualität der erweiterten Daten zu überprüfen:
-
Überprüfen Sie die
sample_training_data.jsonl-Datei in Ihrem Ausgabe-Bucket. Diese Datei enthält 50 zufällige Stichproben aus dem erweiterten Datensatz. -
Untersuchen Sie diese Stichproben manuell auf Relevanz, Kohärenz und Übereinstimmung mit Ihrem Anwendungsfall.
-
Wenn die Qualität nicht Ihren Erwartungen entspricht, müssen Sie möglicherweise Ihre Eingabedaten oder die Destillationsparameter anpassen und den Datenerweiterungsprozess erneut ausführen.
Nach Abschluss der Datenerweiterung umfasst die zweite Phase die Feinabstimmung des Studentenmodells mithilfe von Amazon. SageMaker HyperPod Weitere Informationen finden Sie unter Überwachte Optimierung (SFT).
Im SFT-Trainingsrezept können Sie den vom vorherigen Job zurückgegebenen Datensatzpfad übergeben.
data_s3_path: "s3://[escrow-bucket]/[job-name]/distillation_data/training_data.jsonl"
Überschreiben Sie auch die empfohlene Trainingskonfiguration, die im vorherigen Schritt generiert wurde.
Einschränkungen
-
Unterstützt nur die SFT-Nova-Feinabstimmungsmethode für diese erweiterten Daten.
-
Unterstützt nur die Feinabstimmungstechnik von SFT Nova bei Amazon. SageMaker HyperPod
-
Unterstützt nicht die multimodale Destillation.
-
Unterstützt nicht benutzerdefinierte Lehrermodelle.