Feinabstimmung von Amazon Nova-Modellen mithilfe von SageMaker Trainingsjobs - 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.

Feinabstimmung von Amazon Nova-Modellen mithilfe von SageMaker Trainingsjobs

Die Feinabstimmung von Amazon Nova-Modellen mit SageMaker Schulungsjobs bietet eine leistungsstarke Möglichkeit, Basismodelle an Ihre spezifischen Anwendungsfälle anzupassen.

Voraussetzungen

Bevor Sie mit einem Schulungsjob beginnen, sollten Sie Folgendes beachten.

  • Amazon S3 S3-Buckets zum Speichern Ihrer Eingabedaten und der Ausgabe von Trainingsjobs. Sie können entweder einen Bucket für beide oder separate Buckets für jeden Datentyp verwenden. Stellen Sie sicher, dass sich Ihre Buckets in dem Bereich befinden AWS-Region , in dem Sie alle anderen Ressourcen für Schulungen erstellen. Weitere Informationen finden Sie unter Einen Allzweck-Bucket erstellen.

  • Eine IAM-Rolle mit Berechtigungen zum Ausführen eines Trainingsjobs. Stellen Sie sicher, dass Sie eine IAM-Richtlinie mit anhängen. AmazonSageMakerFullAccess Weitere Informationen finden Sie unter So verwenden Sie SageMaker Ausführungsrollen.

  • Grundlegende Amazon Nova-Rezepte finden Sie unterAmazon Nova-Rezepte abrufen.

Datenaufbereitung

Die Vorbereitung qualitativ hochwertiger, ordnungsgemäß formatierter Daten ist ein wichtiger erster Schritt bei der Feinabstimmung umfangreicher Sprachmodelle. Ganz gleich, ob Sie Supervised Fine-Tuning (SFT) oder Direct Preference Optimization (DPO) verwenden, entweder mit Full-Rank- oder Low-Rank-Adaptation (LoRa), Ihre Daten müssen bestimmte Formatanforderungen erfüllen, um ein erfolgreiches Modelltraining sicherzustellen. In diesem Abschnitt werden die erforderlichen Datenformate, Validierungsmethoden und Best Practices beschrieben, mit denen Sie Ihre Datensätze effektiv für die Feinabstimmung von Amazon Nova-Modellen vorbereiten können.

SFT

Anforderungen an das SFT-Datenformat — Sowohl für Full-Rank SFT als auch für LoRa SFT sollten die Daten dem Converse-Format entsprechen. Beispiele und Einschränkungen dieses Formats finden Sie unter Vorbereiten von Daten für die Feinabstimmung von Understanding models.

SFT-Datenvalidierung — Um Ihr Datensatzformat vor der Einreichung zu überprüfen, empfehlen wir die Verwendung des folgenden Validierungsskripts aus dem Amazon Bedrock Samples Repository. Mit diesem Validierungstool können Sie sicherstellen, dass Ihre jsonl Dateien den erforderlichen Formatspezifikationen entsprechen, und mögliche Probleme identifizieren, bevor Sie Ihren Feinabstimmungsauftrag einreichen.

DPO

Anforderungen an das DPO-Datenformat — Sowohl für DPO mit vollem Rang als auch für DPO mit LoRa sollten die Daten dem Converse-Format entsprechen. Der Datensatz muss außerdem ein ähnliches Format wie SFT haben, mit der Ausnahme, dass für den letzten Zug Präferenzpaare erforderlich sind.

Andere Einschränkungen des DPO-Datensatzes — Andere Einschränkungen für Datensätze sind für SFT dieselben. Weitere Informationen finden Sie unter Einschränkungen für Datensätze. Es wird eine einzige JSONL-Datei für das Training und eine einzige JSONL-Datei für die Validierung erwartet. Der Validierungssatz ist optional.

Empfehlungen für DPO-Datensätze — Mindestens 1.000 Präferenzpaare für ein effektives Training. Hochwertige Präferenzdaten werden zu effizienteren Ergebnissen führen.

Beispiel für ein DPO-Datenformat

// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }

Beispiel für ein DPO-Datenformat (Multi-Turn)

{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }

Beispiel für ein DPO-Datenformat (mit Bildern)

{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }

Für Schulungsaufträge gilt standardmäßig ein Zeitlimit von einem Tag, obwohl die Schätzungen in den folgenden Tabellen zur Veranschaulichung von einer Schulungsdauer von 5 Tagen ausgehen. Als bewährte Methode empfehlen wir, das Zeitlimit für Schulungen auf maximal 28 Tage zu erhöhen, um einem längeren Trainingsaufwand Rechnung zu tragen. Informationen zur Beantragung einer Erhöhung des Limits finden Sie unter Eine Erhöhung des Kontingents beantragen.

Grenzwerte für SFT-Datensätze

Länge des Kontextes Modell Methode Datensätze Beschreibung

Jobs mit 32.000 Kontextlänge

Amazon Nova Micro Voller Rang und LoRa Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie nur bis zu 100.000 Datensätze haben.

Amazon Nova Lite

Voller Rang Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 100.000 Datensätze haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 50.000 Datensätze haben.

LoRa Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 100.000 Datensätze haben.

Bild und Video Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 90.000 Datensätze haben.

Amazon Nova Pro

Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 40.000 Datensätze haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 30.000 Datensätze haben.

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 40.000 Datensätze haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 35.000 Datensätze haben.

Jobs mit einer Kontextlänge von 64 000

Amazon Nova Micro Voller Rang und LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie nur bis zu 50.000 Datensätze haben.

Amazon Nova Lite

Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 50.000 Datensätze haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 KB haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 30.000 Datensätze haben.

LoRa -

LoRa wird bei 64k für Nova Lite nicht unterstützt.

Amazon Nova Pro Voller Rang und LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 17 000 Datensätze haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 15.000 Datensätze haben.

Grenzwerte für DPO-Datensätze

Länge des Kontextes Modell Methode Datensätze Beschreibung

Jobs mit 16.000 Kontextlänge

Amazon Nova Micro Voller Rang Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 16.000 haben und beispielsweise über 5 Epochen laufen, können Sie nur bis zu 120.000 Datensätze haben.

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie nur bis zu 125.000 Datensätze haben.

Amazon Nova Lite

Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 130.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie 20.000 Stichproben innerhalb von 2 Tagen abschließen

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 140.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und der beispielsweise 5 Epochen umfasst, können Sie innerhalb von 2 Tagen 20.000 Stichproben erstellen.

Amazon Nova Pro

Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 45.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie 20.000 Stichproben innerhalb von 4 Tagen abschließen

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 55.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 16 000 haben und beispielsweise 5 Epochen lang laufen, können Sie 20.000 Stichproben innerhalb von 4 Tagen abschließen

Jobs mit einer Kontextlänge von 32 000

Amazon Nova Micro Voller Rang Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie nur bis zu 45 000 Datensätze haben.

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise 5 Epochen lang laufen, können Sie nur bis zu 50.000 Datensätze haben.

Amazon Nova Lite

Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 55.000 Datensätze haben.

Image

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 35.000 Datensätze haben.

LoRa Nur Text

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 60.000 Datensätze haben.

Image

Wenn Sie ein Dataset verwenden, bei dem alle Datensätze eine Kontextlänge von 32.000 haben und beispielsweise über 5 Epochen laufen, können Sie bis zu 35.000 Datensätze haben.

Amazon Nova Pro Voller Rang Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 20.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 16 000 Datensätze haben.

LoRa Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 32 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 22.000 Datensätze haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Datensätze eine Kontextlänge von 64 000 haben und beispielsweise 5 Epochen lang laufen, können Sie bis zu 18 000 Datensätze haben.

Indem Sie die Anzahl der Epochen oder die Kontextlänge Ihrer Datensätze reduzieren, könnten Sie mehr Datensätze bereitstellen.

SFT- und LoRa-PEFT-Konfigurationen mit vollem Rang

In diesem Abschnitt finden Sie Anleitungen zu Rezeptkonfigurationen sowohl für Ansätze zur überwachten Feinabstimmung (Full-Rank Supervised Fine-Tuning, SFT) als auch für die parametereffiziente Feinabstimmung mit niedriger Ranganpassung (LoRa PEFT). Diese Rezeptdateien dienen als Vorlage für Ihre Modellanpassungsaufgaben. Sie ermöglichen es Ihnen, Trainingsparameter, Hyperparameter und andere wichtige Einstellungen festzulegen, die bestimmen, wie Ihr Modell aus Ihren Daten lernt. Um die Hyperparameter anzupassen, folgen Sie den Richtlinien unter Hyperparameter auswählen.

Feinabstimmung von Konfigurationen (Full-Rank SFT und LoRa PEFT)

Der einzige Unterschied zwischen Full-Rank SFT und LoRa PEFT in Bezug auf das Rezept ist die LoRa-PEFT-Konfiguration, die für vollen Rang auf „Null“ und bei Verwendung der LoRa-PEFT-basierten Feinabstimmung auf entsprechende Werte gesetzt ist. SageMaker HyperPod Beispielrezepte GitHub sind im Rezepte-Repository verfügbar. Die folgenden Tabellen zeigen detaillierte Konfigurationen, die für Sie hilfreich sein könnten.

Informationen zur Konfiguration „Ausführen“.

Schlüssel Definition Mikro Leicht Profi
Konfiguration ausführen model_type

Gibt die zu verwendende Nova-Modellvariante an. Ändern Sie dieses Feld nicht.

„Amazon. nova-micro-v1:0:128 k“

„Amazonas. nova-lite-v1:0:300 k“

„Amazonas. nova-pro-v1:0:300 k“

Modellname_oder_Pfad

Der Pfad zum Basismodell.

„nova-micro/prod“

„Nova-Lite/Prod“

„nova-pro/prod“

Nachbildungen

Die Anzahl der Recheninstanzen, die für verteilte Schulungen verwendet werden sollen.

2, 4 oder 8

4, 8 oder 16

6, 12 oder 24

Über die Konfiguration von „training_config“.

Root-Schlüssel Schlüssel für Kinder Definition Min Max
max_length

Die maximale Sequenzlänge in Tokens. Dies bestimmt die Größe des Kontextfensters für das Training. Kann auf das nächste 1024-Vielfache eingestellt werden, Maximalwert: 65536 (für Lite Lora 32768).

1024

65536, außer Lite LoRa, das 32768 unterstützt.
global_batch_size

Gesamtzahl der Stichproben pro Schritt, zulässige Werte sind 16, 32, 64. Höchstwert: 32 für Nova Pro, 64 für Nova Lite und Micro.

16 32 für Nova Pro, 64 für Nova Lite und Micro.
Konfiguration des Trainers Trainer max_epochs

Die Anzahl der vollständigen Durchläufe, die Ihren Trainingsdatensatz durchlaufen haben. Für die meisten Anpassungsaufgaben sind 1—5 Epochen in der Regel ausreichend. Es wird empfohlen, bis zu 5 zu behalten.

1 -
Konfiguration des Modells model hidden_dropout

Wahrscheinlichkeit, dass versteckte Statusausgaben gelöscht werden. Erhöhen Sie den Wert (0,0-0,2), um eine Überanpassung bei kleineren Datensätzen zu reduzieren. Die Grenzen liegen zwischen 0 und 1.

0 1
model attention_dropout

Die Wahrscheinlichkeit, dass die Aufmerksamkeit nachlässt, ist gewichtet. Kann bei der Generalisierung helfen. Die Grenzen liegen zwischen 0 und 1.

0 1
model ffn_dropout

Wahrscheinlichkeit, dass Feed-Forward-Netzwerkausgänge ausfallen. Die Grenzen liegen zwischen 0 und 1.

0 1
Konfiguration des Optimierers model.optim lr

Lernrate, steuert die Schrittgröße während der Optimierung. Die Grenzwerte liegen zwischen 0 und 1. In der Regel zwischen 1e-6 und 1e-4 eingestellt, um eine gute Leistung zu erzielen.

0 1
model.optim Name

Optimizer-Algorithmus. Derzeit wird nur distributed_fused_adam unterstützt.

- -
model.optim adam_w_mode

Aktiviert den AdamW-Modus (true/false).

- -
model.optim eps

Epsilon für numerische Stabilität.

modell.optim Gewicht_Zerfall

Die Stärke der L2-Regularisierung muss zwischen 0,0 und 1,0 liegen.

0 1
model.optim Betas

Adam Optimizer Betas, müssen zwischen 0,0 und 1,0 liegen.

0 1
model.optim sched_warmup_steps

Anzahl der Schritte zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Stabilität des Trainings. Zwischen 1 und 20.

1 20
model.optim sched_constant_steps

Schritte mit konstanter Lernrate.

1.00E-10 1.00E-06
modell.optim sched.min_lr

Minimale Lernrate am Ende des Zerfalls. Die Grenzwerte liegen zwischen 0 und 1, müssen aber unter der Lernrate liegen.

0 1

LoRa PEFT-Konfiguration

model.peft peft_schema

Benutze „lora“ oder „null“. „lora“ verwendet die LoRa-PEFT-Methode zur parametereffizienten Feinabstimmung. „Null“ leitet eine Feinabstimmung mit vollem Rang ein.

- -
model.links lora_tuning.loraplus_lr_ratio

Der Skalierungsfaktor für die LoRa+-Lernrate muss zwischen 0,0 und 100,0 liegen.

0 100
model.left lora_tuning.alpha

Skalierungsfaktor für LoRa-Gewichte. Zulässige Werte sind 32, 64, 96, 128, 160 und 192.

32 192
model.left lora_tuning.adapter_dropout

Regularisierung für LoRa-Parameter. Muss zwischen 0,0 und 1,0 liegen.

0 1

Feinabstimmung bestimmter Konfigurationen (DPO)

Der einzige Unterschied zwischen Direct Preference Optimization (DPO) und LoRa PEFT und FullRank SFT besteht in der dpo_cfg-Konfiguration und den zulässigen Werten. In der Tabelle unter dem Beispiel finden Sie Informationen zu den zulässigen Daten, die speziell für DPO zulässig sind. Beispielrezepte sind im SageMaker HyperPod GitHub Rezepte-Repository verfügbar. Die folgende Tabelle enthält detaillierte Konfigurationen, die für Sie hilfreich sein könnten.

Stammschlüssel Schlüssel für Kinder Definition Min Max
max_length Die maximale Sequenzlänge in Tokens. Dies bestimmt die Größe des Kontextfensters für das Training. Kann auf das nächste 1024-Vielfache eingestellt werden, Maximalwert: 32.768.

1024

32768

globale_Batchgröße

Globale Batchgröße, zulässige Werte sind {16, 32, 64, 128, 256}.

16 256
Konfiguration des Trainers Trainer max_epochs

Die Anzahl der vollständigen Durchläufe, die Ihren Trainingsdatensatz durchlaufen haben. Für die meisten Anpassungsaufgaben sind 1—5 Epochen in der Regel ausreichend. Die maximale Anzahl von Epochen ist 5.

1 5
Konfiguration des Modells model hidden_dropout

Wahrscheinlichkeit, dass versteckte Statusausgaben gelöscht werden. Erhöhen Sie den Wert (0,0-0,2), um eine Überanpassung bei kleineren Datensätzen zu reduzieren. Die Grenzen liegen zwischen 0 und 1.

0 1
model attention_dropout

Die Wahrscheinlichkeit, dass die Aufmerksamkeit nachlässt, ist gewichtet. Kann bei der Generalisierung helfen. Die Grenzen liegen zwischen 0 und 1.

0 1
model ffn_dropout

Wahrscheinlichkeit, dass Feed-Forward-Netzwerkausgänge ausfallen. Die Grenzen liegen zwischen 0 und 1.

0 1
Konfiguration des Optimierers model.optim lr

Lernrate, steuert die Schrittgröße während der Optimierung. Die Grenzwerte liegen zwischen 0 und 1. In der Regel zwischen 1e-6 und 1e-4 eingestellt, um eine gute Leistung zu erzielen.

0 1
model.optim Name

Optimizer-Algorithmus. Derzeit wird nur distributed_fused_adam unterstützt.

- -
model.optim adam_w_mode

Aktiviert den AdamW-Modus (true/false).

- -
model.optim eps

Epsilon für numerische Stabilität.

1.00E-10 1.00E-06
modell.optim Gewicht_Zerfall

Die Stärke der L2-Regularisierung muss zwischen 0,0 und 1,0 liegen.

0 1
model.optim Betas

Adam Optimizer Betas, müssen zwischen 0,0 und 1,0 liegen.

0 1
model.optim sched_warmup_steps

Anzahl der Schritte zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Stabilität des Trainings. Zwischen 1 und 20.

1 20
model.optim sched_constant_steps

Schritte mit konstanter Lernrate.

model.optim sched.min_lr

Minimale Lernrate am Ende des Zerfalls. Die Grenzwerte liegen zwischen 0 und 1, müssen aber unter der Lernrate liegen.

0 1

LoRa PEFT-Konfiguration

model.peft peft_schema

Benutze „lora“ oder „null“. „lora“ verwendet die LoRa-PEFT-Methode zur parametereffizienten Feinabstimmung. „Null“ leitet eine Feinabstimmung mit vollem Rang ein.

- -
model.links lora_tuning.loraplus_lr_ratio

Der Skalierungsfaktor für die LoRa+-Lernrate muss zwischen 0,0 und 100,0 liegen.

0 100
model.left lora_tuning.alpha

Skalierungsfaktor für LoRa-Gewichte. Zulässige Werte sind 32, 64, 96, 128, 160 und 192.

32 192
model.left lora_tuning.adapter_dropout

Regularisierung für LoRa-Parameter. Muss zwischen 0,0 und 1,0 liegen.

0 1
DPO-Konfiguration model-dpo_cfg Beta

Stärke der Durchsetzung von Präferenzen.

0.001 0.1

Einsatz eines maßgeschneiderten Nova-Modells bei SageMaker Trainingsaufträgen

In diesem Abschnitt wird gezeigt, wie Sie ein benutzerdefiniertes Nova-Modell für SageMaker Trainingsjobs in einer Jupyter-Notebook-Umgebung ausführen. Sie finden ein vollständiges Beispiel, in dem der Prozess der Konfiguration und des Starts eines Trainingsjobs beschrieben wird, sowie Referenztabellen zur Auswahl der entsprechenden Container-Image URIs - und Instanzkonfigurationen. Mit diesem Ansatz haben Sie die programmatische Kontrolle über Ihre Feinabstimmungsabläufe und können gleichzeitig die verwaltete Infrastruktur für SageMaker die Modellanpassung nutzen. Weitere Informationen finden Sie unter Verwenden eines SageMaker KI-Schätzers zur Durchführung eines Schulungsjobs.

Referenztabellen

Bevor Sie das Beispiel-Notebook ausführen, finden Sie in den folgenden Tabellen Informationen zur Auswahl der entsprechenden Container-Image URIs - und Instanzkonfigurationen.

Image-URI auswählen

Rezept Image-URI

SFT-Bild-URI

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest

DPO-Bild-URI

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest

Auswahl des Instanztyps und der Anzahl

Modell Job type Instance-Typ Anzahl der empfohlenen Instanzen Anzahl der erlaubten Instanzen
Amazon Nova Micro Feinabstimmung (SFT/DPO)

p5.48xlarge

2 2,4,8
Amazon Nova Lite Feinabstimmung (SFT/DPO)

p5.48xlarge

4 4,8,16
Amazon Nova Pro Feinabstimmung (SFT/DPO)

p5.48xlarge

6 6,12,24

Beispiel für ein Notizbuch

Das folgende Beispielnotizbuch zeigt, wie ein Trainingsjob ausgeführt wird. Weitere Notizbücher für die ersten Schritte zur Anpassung von Nova-Modellen mithilfe von SageMaker KI-Schulungsjobs finden Sie unter Verwenden eines SageMaker KI-Schätzers zur Ausführung eines Trainingsjobs.

# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) 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, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")

Anleitungen zur Optimierung von Hyperparametern

Die effektive Feinabstimmung Ihres Nova LLM-Modells erfordert eine sorgfältige Auswahl der Hyperparameter. In diesem Abschnitt werden zwar die grundlegende Rezeptstruktur und die Komponenten erläutert, die Optimierung von Hyperparametern für Ihren spezifischen Anwendungsfall erfordert jedoch häufig zusätzliche Anleitungen. Umfassende Empfehlungen zur Auswahl von Hyperparametern, bewährten Methoden und Optimierungsstrategien finden Sie unter Hyperparameter auswählen. Diese Ressource bietet detaillierte Anleitungen zur Auswahl geeigneter Lernraten, Chargengrößen, Trainingsepochen und anderer kritischer Parameter auf der Grundlage der Merkmale und Trainingsziele Ihres Datensatzes. Wir empfehlen, bei der Feinabstimmung Ihrer Rezepturkonfiguration, um eine optimale Modellleistung zu erzielen, diesen Leitfaden zu Rate zu ziehen.

Einzelheiten zu Minimal-, Maximal- und Standardwerten für Epochen, Lerngeschwindigkeit und Lernaufwärmschritte finden Sie unter Hyperparameter für das Verständnis von Modellen.

Häufig vorkommende Rezeptänderungen

Hier sind einige gängige Rezeptanpassungen, die auf bestimmten Anwendungsfällen basieren:

  • Für kleinere Datensätze (< 1.000 Beispiele)

    training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
  • Für Effizienz bei begrenzter Rechenleistung

    peft: peft_scheme: "lora" lora_tuning:
  • Für die Feinabstimmung komplexer Befehle

    optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability