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.
Fortsetzung der Vorschulung (CPT)
Continued Pretraining (CPT) ist der Prozess der Weiterbildung eines vorab trainierten Basismodells anhand neuer Daten unter Verwendung derselben unbeaufsichtigten Ziele (wie maskierte Sprachmodellierung oder kausale Sprachmodellierung). Es bewahrt die zuvor erlernten allgemeinen Sprachkenntnisse und passt sich gleichzeitig an neue Bereiche oder Verteilungsverschiebungen an.
CPT beinhaltet keine architektonischen Änderungen oder Feinabstimmungen für spezifische nachgelagerte Aufgaben. Stattdessen erweitert es die Sprachverständniskapazität des Modells auf domänenspezifische Weise.
Sie sollten CPT in den folgenden Szenarien verwenden:
-
Sie verfügen über umfangreiche, unbeschriftete Daten, die spezifisch für einen bestimmten Bereich sind (z. B. Medizin oder Finanzen).
-
Sie möchten, dass das Modell allgemeine Sprachkenntnisse beibehält und gleichzeitig domänenspezifische Inhalte verbessert.
-
Sie möchten die Zero-Shot- und Few-Shot-Performance in speziellen Bereichen verbessern, ohne umfangreiche, aufgabenspezifische Feinabstimmungen vornehmen zu müssen.
Anforderungen an das Datenformat
Wir empfehlen, bei der Durchführung von CPT die folgenden Datensatzmerkmale einzuhalten:
-
Diversität: Ihre Daten sollten ein breites Spektrum von Ausdrücken innerhalb der Zieldomäne abdecken, um eine Überanpassung zu vermeiden.
-
Repräsentation: Ihre Daten sollten die Verteilung widerspiegeln, der das Modell bei der Inferenz ausgesetzt sein wird.
-
Sauberkeit: Rauschen und Redundanz in Ihren Daten können die Leistung beeinträchtigen. Deduplizierung und Textnormalisierung verbessern das Modelltraining.
-
Skalierung: Größere Datensätze sind hilfreich, aber ab einem bestimmten Schwellenwert (z. B. die Ausführung mehrerer Epochen mit begrenzten Daten) steigt das Risiko einer übermäßigen Anpassung.
Bei den Trainings- und Validierungsdatensätzen muss es sich um JSONL-Dateien im Converse-Format handeln, wobei jede Zeile ein JSON-Objekt enthält, das eine Konversation mit den erforderlichen Feldern und der erforderlichen Struktur darstellt. Ein Beispiel:
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
Texteinträge sollten natürlich fließende, qualitativ hochwertige Inhalte enthalten, die Ihre Zieldomäne repräsentieren.
Validierung von Datensätzen
Um Ihren Datensatz zu validieren, bevor Sie Ihren CPT-Job einreichen, überprüfen Sie die folgenden Bedingungen:
-
Jede Zeile muss ein gültiges JSON-Objekt enthalten.
-
Jedes Objekt hat ein „Text“ -Feld, das Zeichenkettendaten enthält.
-
Es sind keine anderen Felder als „Text“ vorhanden.
-
Die Datei ist eine
.jsonlErweiterung.
Trainingszeiten
Wie viel Zeit für das Training aufgewendet wird, hängt stark von der Größe des Datensatzes, der Anzahl der verwendeten Instanzen und dem trainierten Modell ab. Es wird erwartet, dass die Trainingszeiten linear skalieren. Die folgende Tabelle enthält einige Beispiele für Trainingszeiten für verschiedene Modelle.
Typ des Modells |
GBS |
Anzahl der Proben im Datensatz |
Anzahl der P5-Instanzen |
|
Ungefähre Trainingszeit in Stunden |
|---|---|---|---|---|---|
Amazon Nova Micro |
256 |
100 000 |
8 |
8,192 |
4 |
Amazon Nova Lite |
256 |
100 000 |
16 |
8,192 |
4 |
Amazon Nova Pro |
256 |
100 000 |
24 |
8,192 |
10 |
Trainings- und Validierungsdatensätze müssen JSONL-Dateien sein, die dem Amazon Bedrock Converse-Operationsformat entsprechen, wobei jede Zeile ein JSON-Objekt enthält, das eine Konversation mit den erforderlichen Feldern und der erforderlichen Struktur darstellt.
Zu den Amazon Nova-Parametern, die für die Optimierung mit CPT verfügbar sind, gehören:
-
Konfiguration ausführen
-
name: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft dabei, Ihren Job in der AWS Management Console zu identifizieren. -
model_type: Die zu verwendende Amazon Nova-Modellvariante. Die verfügbaren Optionen sindamazon.nova-micro-v1:0:128k,amazon.nova-lite-v1:0:300k, oderamazon.nova-pro-v1:0:300k. -
model_name_or_path: Der Pfad zum Basismodell, das Sie für Ihr Training verwenden möchten. Die verfügbaren Optionen sindnova-micro/prod,nova-lite/prodnova-pro/prod, oder der S3-Pfad für den Checkpoint nach dem Training ()s3://customer-escrow-bucket-unique_id/training_run_name. -
replicas: Die Anzahl der Recheninstanzen, die für verteilte Schulungen verwendet werden sollen. Die verfügbaren Werte variieren je nach Modell, das Sie wählen. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate. -
data_s3_path: Der S3-Speicherort des Trainingsdatensatzes, bei dem es sich um eine JSONL-Datei handelt. Diese Datei muss sich in derselben Region wie der AWS-Konto Cluster befinden. Alle angegebenen S3-Standorte müssen sich im selben Konto und in derselben Region befinden. -
validation_data_s3_path: (Optional) Der S3-Speicherort des Validierungsdatensatzes, bei dem es sich um eine JSONL-Datei handelt. Diese Datei muss sich in demselben Konto und derselben Region wie der Cluster befinden. Alle angegebenen S3-Standorte müssen sich im selben Konto und in derselben Region befinden. -
output_s3_path: Der S3-Standort, an dem das Manifest und die TensorBoard Protokolle gespeichert sind. Alle angegebenen S3-Speicherorte müssen sich im selben AWS-Konto und befinden AWS-Region.
-
-
Konfiguration des Trainings
-
max_length: Die maximale Sequenzlänge in Tokens. Dies bestimmt die Größe des Kontextfensters für das Training. Der maximal unterstützte Wert beträgt 8192 Token für CPT.Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen Ihnen, den
max_lengthParameter an Ihre Datenverteilung anzupassen.
-
-
Trainer-Einstellungen
-
global_batch_size: Die Gesamtzahl der Trainingsproben, die zusammen in einem Vorwärts- oder Rückwärtsgang auf allen Geräten und Mitarbeitern verarbeitet wurden.Dieser Wert multipliziert die Batchgröße und die Anzahl der Geräte pro Gerät. Er wirkt sich auf die Stabilität des Trainings und den Durchsatz aus. Wir empfehlen Ihnen, mit einer Batchgröße zu beginnen, die bequem in Ihren Arbeitsspeicher passt, und von dort aus nach oben zu skalieren. Bei domänenspezifischen Daten können größere Batches Farbverläufe zu stark glätten.
-
max_epochs: Die Anzahl der vollständigen Durchläufe, die Ihren Trainingsdatensatz durchlaufen haben.Im Allgemeinen benötigen größere Datensätze weniger Epochen, um zu konvergieren, während kleinere Datensätze mehr Epochen benötigen, um zu konvergieren. Wir empfehlen, dass Sie die Anzahl der Epochen an die Größe Ihrer Daten anpassen, um eine Überanpassung zu vermeiden.
-
-
Modelleinstellungen
-
hidden_dropout: Die Wahrscheinlichkeit, dass ausgeblendete Ausgaben verloren gehen. Erhöhen Sie diesen Wert um etwa 0,0-0,2, um eine Überanpassung bei kleineren Datensätzen zu vermeiden. Gültige Werte liegen zwischen 0 und 1 (einschließlich). -
attention_dropout: Die Wahrscheinlichkeit, dass die Aufmerksamkeit nachlässt, wird gewichtet. Dieser Parameter kann bei der Generalisierung helfen. Gültige Werte liegen zwischen 0 und 1 (einschließlich). -
ffn_dropout: Die Wahrscheinlichkeit, dass Feed-Forward-Netzwerkausgänge ausfallen. Gültige Werte liegen zwischen 0 und 1 (einschließlich).
-
-
Konfiguration des Optimierers
-
lr: Die Lernrate, die die Schrittgröße während der Optimierung steuert. Für eine gute Leistung empfehlen wir Werte zwischen 1e-6-1e-4. Gültige Werte liegen zwischen 0 und 1 (einschließlich). -
name: Der Optimierer-Algorithmus. Derzeit wird nurdistributed_fused_adamunterstützt. -
weight_decay: Die Stärke der L2-Regularisierung. Höhere Werte (zwischen 0,01 und 0,1) erhöhen die Regularisierung. -
warmup_steps: Die Anzahl der Schritte zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Stabilität des Trainings. Gültige Werte liegen zwischen 1 und 20 (einschließlich). -
min_lr: Die minimale Lernrate am Ende des Zerfalls. Gültige Werte liegen zwischen 0 und 1 (einschließlich), müssen jedoch unter der Lernrate liegen.
-
CPT-Rezept
Das Folgende ist ein Rezept für CPT.
## Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path:[S3_PATH_TO_TRAIN_DATASET]validation_data_s3_path:(OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]output_s3_path:[S3_PATH_TO_STORE_MANIFEST]## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr
Einschränkungen
CPT hat die folgenden Einschränkungen:
-
Multimodale Datensätze werden nicht unterstützt.
-
Zwischenprüfpunkte werden nicht zur Auswertung gespeichert, und Sie können nicht von einem Zwischenprüfpunkt aus weitermachen. Nur der letzte Checkpoint wird gespeichert.
-
MLflow Die Protokollierung wird nicht unterstützt.