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.
Themen
Konzepte
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 „Lehrer“ -Modell (wie Amazon Nova Pro oder Amazon Nova Premier) seine Funktionen an ein kleineres „Schüler“ -Modell (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)
Studentische Modelle 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
Modusdestillation ist besonders vorteilhaft, wenn:
-
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-Konto mit 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 S3-Bucket zum Speichern von Trainingsdaten und -ausgaben.
Einrichtung der Datenerweiterung
In der Phase der Datenerweiterung werden SageMaker Trainingsjobs verwendet, um mithilfe des Lehrermodells hochwertige Trainingsdaten zu generieren. In diesem Abschnitt werden der Einrichtungsprozess und die Anforderungen beschrieben.
IAM-Rolle
Informationen zum Erstellen von IAM-Rollen und zum Anhängen von Richtlinien finden Sie unter Rollen erstellen und Richtlinien anhängen (Konsole). Wenn Sie dies verwenden AWS 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.
Im Folgenden finden Sie Beispielbefehle als Referenz.
Erstellen Sie eine SageMaker AI-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" } ] }'
Fügen Sie die erforderlichen Richtlinien hinzu
# 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
Hängen Sie die folgende Inline-Richtlinie an die Ausführungsrolle des Kunden an, die für Distillation Container erforderlich ist.
-
AWS KMS Berechtigungen: 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 erstellen AWS Management Console, folgen Sie den Anweisungen unter Konfigurieren Sie Ihre private VPC für SageMaker Schulungen (Konsole).
Erstellen Sie eine neue 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 Sie VPC-Endpoints für die folgenden Dienste
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 Ihr Destillations-VPC
-
Wählen Sie die 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" \ --region
us-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 KMS-Schlüssel ARN aus der Ausgabe, da Sie ihn für die Amazon S3 S3-Bucket-Erstellung im nächsten Abschnitt benötigen.
Amazon-S3-Bucket
Sie benötigen zwei Arten von Amazon S3 S3-Speicher. Der vom Kunden verwaltete Amazon S3 S3-Bucket speichert Ihre Eingabedaten und manifest.json
Ausgabedateien. Sie erstellen und verwalten diesen Bucket und können einen einzigen Bucket sowohl für die Eingabe als auch für die Ausgabe verwenden. Dieser Bucket muss mit KMS-Verschlüsselung konfiguriert sein, da er sensible Ausgabedaten speichert und von Amazon Bedrock-Batchinferenzjobs verwendet wird. Amazon Bedrock benötigt KMS-verschlüsselte Buckets für die Verarbeitung von Batch-Inferenzaufgaben.
Der vom Service verwaltete Amazon S3 S3-Bucket speichert Modellgewichte. Ein vom Service verwalteter Amazon S3 S3-Bucket wird automatisch während Ihres ersten Schulungsauftrags erstellt. Es gibt eingeschränkte Zugriffskontrollen mit bestimmten Pfaden, auf die nur über Manifestdateien zugegriffen werden kann.
Verwenden Sie den CLI-Befehl create-bucket AWS-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 } ] }'
Starte einen SageMaker Ausbildungsjob
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 ein Beispiel im umgekehrten Format enthalten muss. Weitere Informationen finden Sie unter Daten vorbereiten für das Destillieren von Modellen.
Einschränkungen bei Datensätzen
-
Mindestanzahl der Eingabeaufforderungen: 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 Rezept-Repositoryrecipes-collection/recipes/fine-tuning/nova
. Der Datenerweiterungsprozess wird durch eine YAML-Konfigurationsdatei gesteuert. Im Folgenden finden Sie eine detaillierte Erläuterung der einzelnen Parameter. Alle Felder sind Pflichtfelder.
Parameter | Beschreibung |
---|---|
name |
Ein aussagekräftiger Name für Ihren Ausbildungsjob. Dies hilft bei der Identifizierung Ihres Jobs in der AWS Management Console. |
Destillationsdaten |
Aktiviert den Job zur Datendestillation. Ändern Sie dieses Feld nicht. |
maxNumberOfFordert auf |
Die maximale Anzahl von Eingabeaufforderungen im Datensatz. |
maxResponseLength |
Die maximale Antwortlänge pro Eingabeaufforderung (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 (Tokens) für das Studentenmodell. Der Wert is darf die Kapazität des Studentenmodells nicht überschreiten. Sie können diesen Wert je nach Kapazität des Studentenmodells auf 32.000 oder 64.000 festlegen. |
teacherModelId |
Wenn Sie die Modell-ID für Lehrer festlegen, können Sie zwischen zwei Optionen wählen:
|
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 KMS Schlüssel zum Verschlüsseln der Ausgabe in S3. Dies wird von der Bedrock-Batchinferenz 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 Amazon Bedrock Batch Inference in der Region ARN (eu-north-1
) nicht verfügbar ist.
Bewährte Methoden
Datenaufbereitung
-
Fügen Sie 100 hochwertige, beschriftete Beispiele als Leitfaden für das Lehrermodell hinzu
-
Entfernen Sie vor der Einreichung Etiketten von schlechter Qualität
-
Halten Sie sich an die bewährten Methoden zum Verstehen von Texten
-
Testen Sie die Anweisungen mit dem Lehrermodell, bevor Sie mit der Destillation beginnen
Auswahl des Modells
-
Verwenden Sie Nova Pro als Lehrer für allgemeine Anwendungsfälle
-
Ziehen Sie Nova Premier für spezialisiertes Fachwissen in Betracht
-
Wählen Sie das Studentenmodell auf der Grundlage der Latenz- und Kostenanforderungen
Leistungsoptimierung
-
Beginnen Sie mit der empfohlenen Temperatur (0.7) und top_p (0.9)
-
Überprüfen Sie vor der Feinabstimmung die verbesserte Datenqualität
-
Folgen Sie den Richtlinien unter Hyperparameter auswählen, um die Hyperparameter anzupassen
Einen Job mit pySDK starten
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})
Validierung der erweiterten Datenqualität
Bevor mit der Feinabstimmung begonnen wird, ist es wichtig, die Qualität der erweiterten Daten zu validieren:
-
Überprüfen Sie die
sample_training_data.jsonl
Datei in Ihrem Ausgabe-Bucket. Diese Datei enthält 50 Zufallsstichproben 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 Destillationsparameter anpassen und den Datenergänzungsprozess 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 Vollständig überwachte Feinabstimmung (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 aus dem vorherigen Schritt generiert wurde.
Einschränkungen
-
Unterstützt nur die SFT Nova-Feinabstimmungstechnik für diese erweiterten Daten.
-
Unterstützt nur die Feinabstimmungstechnik von SFT Nova bei Amazon. SageMaker HyperPod
-
Keine Unterstützung für multimodale Destillation.
-
Keine Unterstützung für benutzerdefinierte Lehrermodelle.