Die Feinabstimmung von Nova 1.0 - 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.

Die Feinabstimmung von Nova 1.0

Voraussetzungen

Bevor Sie einen Trainingsjob beginnen, sollten Sie Folgendes beachten.

  • Amazon-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 Bereiche dort befindenAWS-Region, wo Sie auch alle anderen Ressourcen für Schulungen erstellen. Weitere Informationen finden Sie unter Erstellen eines Buckets für allgemeine Zwecke.

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

  • Grundlegende Amazon-Nova-Rezepte finden Sie unter Abrufen von Amazon-Nova-Rezepten.

Datenaufbereitung

Die Vorbereitung qualitativ hochwertiger, ordnungsgemäß formatierter Daten ist ein wichtiger erster Schritt bei der Feinabstimmung großer Sprachmodelle. Ganz gleich, ob Sie die überwachte Feinabstimmung oder direkte Präferenzoptimierung mit Full-Rank- oder Low-Rank-Adaptation verwenden, müssen Ihre Daten 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 SFT mit vollem Rang als auch für LoRa-SFT sollten die Daten dem unten angegebenen Format entsprechen. Beispiele und Einschränkungen dieses Formats finden Sie unter Vorbereiten von Daten für die Feinabstimmung von Modellen mit Verständnisfunktion.

SFT-Datenvalidierung – Um Ihr Datensatzformat vor der Einreichung zu überprüfen, empfehlen wir die Verwendung des folgenden Validierungsskripts aus dem Beispielrepository von Amazon Bedrock. Mit diesem Validierungstool können Sie sicherstellen, dass Ihre jsonl-Dateien den erforderlichen Formatspezifikationen entsprechen, und mögliche Probleme identifizieren, bevor Sie Ihren Feinabstimmungsjob 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 unten angegebenen 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.

Weitere Einschränkungen des DPO-Datensatzes – Es gelten dieselben weiteren Datensatzeinschränkungen wie bei SFT. Weitere Informationen finden Sie unter Datensatzeinschränkungen. Es wird eine einzige JSONL-Datei für das Training und eine einzige JSONL-Datei für die Validierung erwartet. Der Validierungsdatensatz ist optional.

Empfehlungen für DPO-Datensätze – Mindestens 1 000 Präferenzpaare für ein effektives Training. Hochwertige Präferenzdaten führen zu effizienteren Ergebnissen.

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 (mehrere Züge)

{ "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 Trainingsjobs gilt standardmäßig ein Zeitlimit von einem Tag, wobei die Schätzungen in den folgenden Tabellen zur Veranschaulichung von einer Trainingsdauer von 5 Tagen ausgehen. Als bewährte Methode empfehlen wir, das Zeitlimit für Trainings auf maximal 28 Tage zu erhöhen, um längeren Trainings-Workloads Rechnung zu tragen. Informationen dazu, wie Sie eine Erhöhung des Limits anfordern, finden Sie unter Beantragen einer Kontingenterhöhung.

Einschränkungen für SFT-Datensätze

Kontextlänge Modell Methode Datensätze Description

Jobs mit einer Kontextlänge von 32 000

Amazon Nova Micro Full-Rank und LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 100 000 Einträge haben.

Amazon Nova Lite

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 100 000 Einträge haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 50 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 100 000 Einträge haben.

Bild und Video Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 90 000 Einträge haben.

Amazon Nova Pro

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 40 000 Einträge haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 30 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 40 000 Einträge haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 35 000 Einträge haben.

Jobs mit einer Kontextlänge von 64 000

Amazon Nova Micro Full-Rank und LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 50 000 Einträge haben.

Amazon Nova Lite

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 50 000 Einträge haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 30 000 Einträge haben.

LoRA -

LoRA wird bei einer Kontextlänge von 64 000 für Nova Lite nicht unterstützt.

Amazon Nova Pro Full-Rank und LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 17 000 Einträge haben.

Bild und Video

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 15 000 Einträge haben.

Einschränkungen für DPO-Datensätze

Kontextlänge Modell Methode Datensätze Description

Jobs mit einer Kontextlänge von 16 000

Amazon Nova Micro Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 120 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 125 000 Einträge haben.

Amazon Nova Lite

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 130 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie 20 000 Beispiele in 2 Tagen ausführen.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 140 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie 20 000 Beispiele in 2 Tagen ausführen.

Amazon Nova Pro

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 45 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie 20 000 Beispiele in 4 Tagen ausführen.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 55 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 16 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie 20 000 Beispiele in 4 Tagen ausführen.

Jobs mit einer Kontextlänge von 32 000

Amazon Nova Micro Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 45 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie nur bis zu 50 000 Einträge haben.

Amazon Nova Lite

Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 55 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 35 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 60 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 35 000 Einträge haben.

Amazon Nova Pro Full-Rank Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 20 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 16 000 Einträge haben.

LoRA Nur Text

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 32 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 22 000 Einträge haben.

Image

Wenn Sie einen Datensatz verwenden, bei dem alle Einträge eine Kontextlänge von 64 000 haben, und diesen beispielsweise für 5 Epochen ausführen, können Sie bis zu 18 000 Einträge haben.

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

Konfigurationen für Full-Rank SFT und LoRA PEFT

Dieser Abschnitt enthält Anleitungen zu Rezeptkonfigurationen sowohl für Ansätze zur überwachten Full-Rank-Feinabstimmung (SFT, Supervised Fine-Tuning) als auch zur parametereffizienten Feinabstimmung mit Low-Rank Adaptation (LoRA PEFT). Diese Rezeptdateien dienen als Vorlage für Ihre Modellanpassungsjobs. 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 Anweisungen unter Auswählen von Hyperparametern.

Feinabstimmungskonfigurationen (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. Diese ist für Full-Rank auf „Null“ gesetzt und bei Verwendung der LoRA-PEFT-basierten Feinabstimmung auf die entsprechenden Werte. Beispielrezepte sind im Rezepte-Repository verfügbar. SageMaker HyperPod GitHub Die folgenden Tabellen enthalten detaillierte Konfigurationen, die eventuell hilfreich sein können.

Informationen zur „Lauf“-Konfiguration

Key (Schlüssel) Definition Micro Lite Pro
Ausführungskonfiguration 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“

model_name_or_path

Der Pfad zum Basismodell.

„nova-micro/prod“

„nova-lite/prod“

„nova-pro/prod“

Replikate

Die Anzahl der Computing-Instances, die beim verteilten Training verwendet werden sollen.

2, 4 oder 8

4, 8 oder 16

6, 12 oder 24

Informationen über die „training_config“-Konfiguration

Root-Schlüssel Untergeordnete Schlüssel Definition Min Max
max_length

Die maximale Sequenzlänge in Token. Dies bestimmt die Größe des Kontextfensters für das Training. Kann auf das nächste Vielfache von 1.024 eingestellt werden; Höchstwert: 65.536 (für Lite Lora: 32.768).

1024

65.536, außer Lite LoRA, das 32.768 unterstützt.
global_batch_size

Gesamtzahl der Stichproben pro Schritt; zulässige Werte sind 16, 32 und 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.
Trainer-Konfiguration Trainer max_epochs

Die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz Für die meisten Anpassungsaufgaben sind 1–5 Epochen in der Regel ausreichend. Es wird empfohlen, es bei höchstens 5 zu belassen.

1 -
Modellkonfiguration model hidden_dropout

Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. Erhöhen Sie diesen Wert (0,0–0,2), um eine Überanpassung bei kleineren Datensätzen zu vermeiden. Die Grenzwerte liegen zwischen 0 und 1.

0 1
model attention_dropout

Die Wahrscheinlichkeit, dass Aufmerksamkeitsgewichtungen verloren gehen. Kann bei der Generalisierung helfen. Die Grenzwerte liegen zwischen 0 und 1.

0 1
model ffn_dropout

Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Die Grenzwerte liegen zwischen 0 und 1.

0 1
Konfiguration des Optimierers model.optim lr

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

0 1
model.optim Name

Der Optimierer-Algorithmus. Derzeit wird nur distributed_fused_adam unterstützt.

- -
model.optim adam_w_mode

Aktivieren Sie den AdamW-Modus (wahr/falsch).

- -
model.optim eps

Epsilon für numerische Stabilität.

model.optim weight_decay

Die L2-Regularisierungsstärke; muss zwischen 0,0 und 1,0 liegen.

0 1
model.optim betas

Die Beta-Werte des Adam-Optimierers müssen zwischen 0,0 und 1,0 liegen.

0 1
model.optim sched_warmup_steps

Die Anzahl der Schritte zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zwischen 1 und 20.

1 20
model.optim sched_constant_steps

Schritte mit konstantem Lerntempo.

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

Die minimale Lernrate am Ende des Rückgangs. Die Grenzwerte liegen zwischen 0 und 1, wobei der Wert kleiner als die Lernrate sein muss.

0 1

LoRA-PEFT-Konfiguration

model.peft peft_scheme

Verwenden Sie „lora“ oder „null“. „lora“ verwendet die LoRA-PEFT-Methode zur parametereffizienten Feinabstimmung. „null“ leitet eine Full-Rank-Feinabstimmung ein.

- -
model.peft lora_tuning.loraplus_lr_ratio

Der Skalierungsfaktor für die Lernrate von LoRA+; muss zwischen 0,0 und 100,0 liegen.

0 100
model.peft lora_tuning.alpha

Der Skalierungsfaktor für LoRA-Gewichtungen. Zulässige Werte sind 32, 64, 96, 128, 160 und 192.

32 192
model.peft 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 Werten, die speziell für DPO zulässig sind. Beispielrezepte sind im Rezepte-Repository verfügbar. SageMaker HyperPod GitHub Die folgende Tabelle enthält detaillierte Konfigurationen, die eventuell hilfreich sein können.

Root-Schlüssel Untergeordnete Schlüssel Definition Min Max
max_length Die maximale Sequenzlänge in Token. Dies bestimmt die Größe des Kontextfensters für das Training. Kann auf das nächste Vielfache von 1.024 eingestellt werden; Höchstwert: 32.768.

1024

32768

global_batch_size

Globale Batch-Größe; zulässige Werte sind {16, 32, 64, 128, 256}.

16 256
Trainer-Konfiguration Trainer max_epochs

Die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz Für die meisten Anpassungsaufgaben sind 1–5 Epochen in der Regel ausreichend. Die maximale Anzahl von Epochen ist 5.

1 5
Modellkonfiguration model hidden_dropout

Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. Erhöhen Sie diesen Wert (0,0–0,2), um eine Überanpassung bei kleineren Datensätzen zu vermeiden. Die Grenzwerte liegen zwischen 0 und 1.

0 1
model attention_dropout

Die Wahrscheinlichkeit, dass Aufmerksamkeitsgewichtungen verloren gehen. Kann bei der Generalisierung helfen. Die Grenzwerte liegen zwischen 0 und 1.

0 1
model ffn_dropout

Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Die Grenzwerte liegen zwischen 0 und 1.

0 1
Konfiguration des Optimierers model.optim lr

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

0 1
model.optim Name

Der Optimierer-Algorithmus. Derzeit wird nur distributed_fused_adam unterstützt.

- -
model.optim adam_w_mode

Aktivieren Sie den AdamW-Modus (wahr/falsch).

- -
model.optim eps

Epsilon für numerische Stabilität.

1.00E-10 1.00E-06
model.optim weight_decay

Die L2-Regularisierungsstärke; muss zwischen 0,0 und 1,0 liegen.

0 1
model.optim betas

Die Beta-Werte des Adam-Optimierers müssen zwischen 0,0 und 1,0 liegen.

0 1
model.optim sched_warmup_steps

Die Anzahl der Schritte zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zwischen 1 und 20.

1 20
model.optim sched_constant_steps

Schritte mit konstantem Lerntempo.

model.optim sched.min_lr

Die minimale Lernrate am Ende des Rückgangs. Die Grenzwerte liegen zwischen 0 und 1, wobei der Wert kleiner als die Lernrate sein muss.

0 1

LoRA-PEFT-Konfiguration

model.peft peft_scheme

Verwenden Sie „lora“ oder „null“. „lora“ verwendet die LoRA-PEFT-Methode zur parametereffizienten Feinabstimmung. „null“ leitet eine Full-Rank-Feinabstimmung ein.

- -
model.peft lora_tuning.loraplus_lr_ratio

Der Skalierungsfaktor für die Lernrate von LoRA+; muss zwischen 0,0 und 100,0 liegen.

0 100
model.peft lora_tuning.alpha

Der Skalierungsfaktor für LoRA-Gewichtungen. Zulässige Werte sind 32, 64, 96, 128, 160 und 192.

32 192
model.peft lora_tuning.adapter_dropout

Die Regularisierung für LoRA-Parameter. Muss zwischen 0.0 und 1.0 liegen.

0 1
DPO-Konfiguration model-dpo_cfg Beta

Die Stärke der Durchsetzung von Präferenzen.

0.001 0.1

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

In diesem Abschnitt wird gezeigt, wie ein benutzerdefiniertes Nova-Modell für SageMaker Trainingsjobs in einer Jupyter-Notebook-Umgebung ausgeführt wird. 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.

Auswahl des Image-URI

Rezept Image-URI

Image-URI für SFT

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

Image-URI für DPO

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

Auswahl des Instance-Typs und der Anzahl von Instances

Modell Job type Instance-Typ Empfohlene Anzahl von Instances Erlaubte Anzahl von Instances
Amazon Nova Micro Feinabstimmung (SFT/DPO, LoRa) g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge 1 1
Amazon Nova Micro Feinabstimmung (SFT, FFT) g5.48xlarge, g6.48xlarge 1 1
Amazon Nova Lite Feinabstimmung (SFT, LoRA) g5.12xlarge, g6.12xlarge, g5.48xlarge, g6.48xlarge 1 1
Amazon Nova Lite Feinabstimmung (DPO, LoRa) g5.48xlarge, g6.48xlarge 1 1
Amazon Nova Micro Feinabstimmung (SFT) p5.48xlarge, p5en.48xlarge 2 1,2,4,8
Amazon Nova Lite Feinabstimmung (SFT) p5.48xlarge, p5en.48xlarge 4 2,4,8,16
Amazon Nova Pro Feinabstimmung (SFT) p5.48xlarge, p5en.48xlarge 6 3,6,12,24
Amazon Nova Micro Feinabstimmung (DPO) p5.48xlarge, p5en.48xlarge 2 2,4,8
Amazon Nova Lite Feinabstimmung (DPO) p5.48xlarge, p5en.48xlarge 4 4,8,16
Amazon Nova Pro Feinabstimmung (DPO) p5.48xlarge, p5en.48xlarge 6 6,12,24

Beispiel-Notebook

Das folgende Beispiel-Notebook 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.254.1 # 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})

Anleitung zur Hyperparameteroptimierung

Die effektive Feinabstimmung Ihres Nova-LLM-Modells erfordert eine sorgfältige Auswahl der Hyperparameter. Auch wenn in diesem Abschnitt die grundlegende Rezeptstruktur und die Komponenten erläutert werden, erfordert die Optimierung von Hyperparametern für Ihren spezifischen Anwendungsfall häufig zusätzliche Anleitungen. Umfassende Empfehlungen zur Auswahl von Hyperparametern, Best Practices und Optimierungsstrategien finden Sie unter Auswählen von Hyperparametern. Diese Ressource bietet detaillierte Anleitungen zur Auswahl geeigneter Lernraten, Batchgrößen, Trainingsepochen und anderer kritischer Parameter gemäß den Merkmalen und Trainingszielen Ihres Datensatzes. Wir empfehlen, bei der Feinabstimmung Ihrer Rezeptkonfiguration diesen Leitfaden zu Rate zu ziehen, um eine optimale Modellleistung zu erzielen.

Einzelheiten zu den Mindest-, Höchst- und Standardwerten für Epochen und zur Lerngeschwindigkeit sowie Aufwärmschritte für das Lernen finden Sie unter Hyperparameter für Modelle mit Verständnisfunktion.

Gängige Rezeptänderungen

Hier einige gängige Rezeptanpassungen für bestimmte Anwendungsfälle:

  • 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 Optimierung komplexer Befehle

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