View a markdown version of this page

Betreut Fine-Tuning - Amazon Nova

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.

Betreut Fine-Tuning

Einführung

Bei der überwachten Feinabstimmung werden Datensätze mit Input-Output-Paaren für die jeweilige Aufgabe verwendet. Mit anderen Worten, Sie geben Beispiele für Aufforderungen (Fragen, Anweisungen usw.) zusammen mit den richtigen oder gewünschten Antworten an und setzen das Training des Modells anhand dieser fort. Die Gewichtungen des Modells werden angepasst, um den überwachten Verlust zu minimieren. Dabei handelt es sich in der Regel um eine Kreuzentropie zwischen den Vorhersagen und den Ziel-Antwort-Token.

Wann sollte SFT verwendet werden?

SFT eignet sich am besten, wenn Sie eine klar definierte Aufgabe mit klaren gewünschten Ergebnissen haben. Wenn Sie explizit sagen können: „Bei gegebener X-Eingabe ist die correct/desired Ausgabe Y“ und Sie können Beispiele für solche X-Y Zuordnungen sammeln, dann ist eine überwachte Feinabstimmung eine gute Wahl. Zu den Szenarien, in denen sich SFT auszeichnet, gehören:

  • Strukturierte oder komplexe Klassifizierungsaufgaben: z. B. Klassifizierung interner Dokumente oder Verträge in viele benutzerdefinierte Kategorien. Mit SFT kann das Modell diese spezifischen Kategorien viel besser lernen als nur Aufforderungen.

  • Question-answering oder Transformationsaufgaben mit bekannten Antworten: z. B. die Feinabstimmung eines Modells, um Fragen aus der Wissensdatenbank eines Unternehmens zu beantworten, oder um Daten zwischen Formaten zu konvertieren, wobei jede Eingabe eine korrekte Antwort hat.

  • Formatierung und Stilkonsistenz: Wenn Sie möchten, dass das Modell immer in einem bestimmten Format oder Ton reagiert, können Sie anhand von Beispielen für die richtigen Antworten die Feinabstimmung vornehmen. format/tone Beispielsweise kann das Model durch ein Training mit Prompt-Response-Paaren, die eine bestimmte Markenstimme oder einen bestimmten Stil zum Ausdruck bringen, lernen, diesen Stil in seinen Ergebnissen zu berücksichtigen. Instruction-following Verhalten wird häufig zunächst mithilfe von SFT anhand kuratierter Beispiele für gutes Verhalten von Assistenten vermittelt.

SFT ist der direkteste Weg, einem LLM eine neue Fähigkeit oder ein neues Verhalten beizubringen, wenn Sie angeben können, wie das richtige Verhalten aussieht. Es nutzt das bestehende Sprachverständnis des Modells und konzentriert es auf Ihre Aufgabe. Verwenden Sie SFT nicht, wenn die Lücke eher im Wissen als im Verhalten besteht. Dadurch lernt das Modell nicht neue Fakten, Fachjargon oder aktuelle Ereignisse kennen. Ziehen Sie in diesen Fällen ein kontinuierliches Vortraining an großen internen Korpora vor oder ziehen Sie eine generierte Generierung durch Abruf vor, um externes Wissen abzuleiten. Wenn Sie die Qualität messen können, aber keine einzige richtige Antwort angeben können, ist eine verstärkte Feinabstimmung mit nachweisbaren Belohnungen oder einer möglicherweise der SFT vorzuziehen. LLM-as-judge

Je nach Aufgabenkomplexität und Leistung des Nova-Modells ohne Feinabstimmung sollten Sie Tausende bis Zehntausende von Demonstrationen pro Aufgabe einplanen, wobei Datenqualität, Konsistenz und Diversität wichtiger sind als das reine Volumen.

Wann sollte der Parameter Efficient und wann SFT mit vollem Rang verwendet werden?

Mit den Nova-Anpassungsrezepten können Sie parametereffiziente, insbesondere LoRa- oder Full-Rank-SFT, ausführen. Wenn Sie eine einfache, kosteneffiziente Modellaktualisierung wünschen oder nur über sehr wenige Daten verfügen, bevorzugen Sie parametereffiziente Methoden, sodass Sie kleine Adapter trainieren und dabei den Großteil des Backbones unangetastet lassen (SFT mit vollem Rang aktualisiert alle Modellparameter).

Datenmischung für SFT

Durch das Mischen von Daten können Sie Ihre benutzerdefinierten Trainingsdatensätze mit den firmeneigenen Trainingsdaten von Nova kombinieren. Diese Funktion ist sowohl für Nova 1.0- als auch für Nova 2.0-Modelle verfügbar.

Proprietärer Nova-Datentyp: Nova unterstützt sowohl Text- als auch multimodale SFT-Datentypen. Es ist in mehrere Datenkategorien unterteilt, die jeweils eine Mischung von Aufgaben enthalten, die für die entsprechende Kategorie relevant sind.

Proprietäre Datenkategorien von Nova: Textdatensätze umfassen mehrere Kategorien, darunter: autonome Entscheidungsfindung, Aufgabenerledigung, zielorientierte Datensätze (Agenten), sowohl logische als auch nichtlogische Datensätze zur präzisen Aufgabenausführung (Argumentation — Anweisungen befolgen, Anweisungen befolgen), Sequenzen, die strategisches Denken und schrittweise Aufschlüsselung von Aufgaben (Planung) demonstrieren, verantwortliche KI (rai), langer Kontext, Faktizität, Mathematik, Stamm und viele mehr. In ähnlicher Weise umfassen multimodale Datensätze Videos, Screenshots, Diagramme und vieles mehr.

Mit der Funktion zum Mischen von Daten können Sie Ihre eigenen Trainingsproben zur Feinabstimmung mit Stichproben aus den Nova-Datensätzen kombinieren, die zur Feinabstimmung des Nova verwendet wurden. Dies kann verhindern, dass Sie Ihr individuelles Training übertreiben und die Nova-Fähigkeiten „katastrophal vergessen“, oder Ihnen helfen, Fähigkeiten aufzubauen, wenn Sie von einem neuen, vortrainierten Checkpoint aus trainieren.

Um Nova-Daten zu mischen, müssen Sie lediglich einen data_mixing-Block zu Ihrer YAML-Rezeptdatei im Abschnitt training_config hinzufügen. Text- und multimodale Datenmischblöcke haben unterschiedliche Inhalte, und Datenmischblöcke unterscheiden sich für Nova 1.0 und Nova 2.0 etwas. Bitte beachten Sie die entsprechenden Rezepte.

Unterstützte Modelle

  • Nova 1.0 (Mikro, Lite, Pro)

  • Nova 2.0 Lite

Unterstützte Modalität

  • Text

  • Multimodal

Beispiele für YAML-Konfigurationen

Beispiel für einen Datenmischblock für Nova 1.0 Text Mixing

## Run config run: name: "my-lora-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: "" # Customer data path output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training jobs ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: max_length: 32768 # Maximum context window size (tokens). global_batch_size: 64 # Global batch size, allowed values are 16, 32, 64 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 peft: peft_scheme: "lora" # Enable LoRA for parameter-efficient fine-tuning lora_tuning: loraplus_lr_ratio: 8.0 # LoRA+ learning rate scaling factor, must be between 0.0 and 100.0 alpha: 32 # Scaling factor for LoRA weights. Allowed values are 32, 64, 96, 128, 160 and 192 adapter_dropout: 0.01 # Regularization for LoRA parameters. Must be between 0.0 and 1.0 data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # science, technology, engineering, and mathematics content planning: 2 # sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # logical problem-solving and analytical thinking demonstrations rag: 1 # retrieval-augmented generation examples translation: 9 # language translation tasks

Beispiel für eine Nova 2.0-Konfiguration

run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl replicas: 4 output_s3_path: s3://my-bucket-name/outputs/ mlflow_tracking_uri: "" mlflow_experiment_name: "my-lora-sft-experiment" mlflow_run_name: "my-lora-sft-run" training_config: max_steps: 100 save_steps: 10 save_top_k: 5 max_length: 32768 global_batch_size: 32 reasoning_enabled: true lr_scheduler: warmup_steps: 15 min_lr: 1e-6 optim_config: lr: 1e-5 weight_decay: 0.0 adam_beta1: 0.9 adam_beta2: 0.95 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0

Mischen von Nova 2.0-Textdaten

data_mixing: dataset_catalog: sft_1p5_text_chat sources: customer_data: percent: 50 nova_data: agents: 1 baseline: 10 chat: 0.5 code: 10 factuality: 0.1 identity: 1 long-context: 1 math: 2 rai: 1 instruction-following: 13 stem: 0.5 planning: 10 reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 translation: 0.1

Nova 1.0 Multimodales Datenmischen

data_mixing: dataset_catalog: sft_mm sources: customer_data: percent: 50 nova_data: agents: 11 docs: 17 perception: 10 rag: 4 rai: 3 reasoning: 10 stem: 17 text: 10 video: 18

Nova 2.0 Multimodales Datenmischen

data_mixing: dataset_catalog: sft_1p5_mm_chat sources: customer_data: percent: 50 nova_data: charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

Modellieren Sie Checkpoints

Nova 1.0 Checkpoints

  • PRE-TRAINED[nova-<micro/lite/pro>/pretraining-text-partial]: Checkpoint nach der Phase des Nova-Vortrainings mit konstanter Lernrate, in der das Modell mit Billionen von Text-Tokens trainiert wird. [Ergebnis der ersten Phase]

  • MID-TRAINED[nova-<micro/lite/pro>/pretraining-text-full]: Text-only Checkpoint nach allen Phasen des Nova-Trainings vor und während des Trainings mit Billionen von Textmarken. Verwenden Sie diese Option, wenn Sie nicht möchten, dass das Modell multimodale Daten gesehen hat. [Ergebnis von Phase 3]

  • MID-TRAINED[nova-<lite/pro>/pretraining-mm-full]: Checkpoint nach allen Phasen des Nova-Trainings vor und während des Trainings, einschließlich multimodaler Daten, mit Billionen von Tokens. [Ergebnis der dritten Phase mit multimodalen Daten]

  • FINAL [nova-<micro/lite/pro>/prod]: Vollständig abgestimmter letzter Checkpoint, der alle Schritte vor und nach dem Training durchlaufen hat. [Ergebnis der 4. Stufe]

Nova 2.0-Kontrollpunkte

  • PRE-TRAINED[nova-lite-2/pretraining-text-RD]: Checkpoint nach konstanter Lernrate und Rampdown-Phasen, in denen das Modell auf Billionen von Tokens trainiert wird. [Ergebnis von Phase 2]

  • MID-TRAINED[nova-lite-2/pretraining-text-CE]: Ermöglicht Kunden mit einem mittleren Volumen unstrukturierter Daten, ihre Daten mit einer konservativeren Lernrate als vor der Schulung einzuführen. Dadurch wird domänenspezifisches Wissen aufgenommen und gleichzeitig ein katastrophales Vergessen vermieden. [Ergebnis von Phase 3]

  • FINAL [nova-lite-2/prod]: Vollständig abgestimmter letzter Checkpoint, der alle Schritte vor und nach dem Training durchlaufen hat. [Ergebnis der 4. Stufe]

Etappen der Ausbildung:

  • Stufe 1: PT Cppt, erstes Vortraining mit konstanter Lernrate

  • Stufe 2: PT Ckpt, Senkung der Lernrate

  • Stufe 3: PT Ckpt, Schulung zur Kontexterweiterung

  • Stufe 4: Schulung in den Bereichen Ausrichtung und Sicherheit anhand der Anweisungen

Trainingsansätze

Leitfaden zur Auswahl des Schulungsansatzes
Datentyp Datenvolumen Durchführen Mit Checkpoint
Large-scale unstrukturierte Domain-Rohdaten (Dokumente, Protokolle, Artikel, Code usw.) 1T+ Token Fortsetzung Pre-Training Ende der konstanten Lernrate (CLR)
Large-scale unstrukturierte Domänen-Rohdaten Über 100 Milliarden Tokens Mid-Training Ende von CLR
Kleinere Mengen unstrukturierter Rohdaten; strukturierte Argumentationsspuren//CoT-Daten Über 1 B Tokens Mid-Training Nova-Basismodell
Strukturierte Demonstrationen (hochwertige Input-Output-Paare, kuratierte Aufgabenanweisungen, Dialoge mit mehreren Schritten) Über 1.000 Beispiele Betreut ( Fine-Tuning SFT) Nova-Basismodell

Pre-Requisites bevor du anfängst

  • Wir gehen davon aus, dass Sie bereits einen SMHP-Cluster mit einer eingeschränkten Instanzgruppe (RIG) eingerichtet haben, die über aktive Kapazität verfügt. Wenn nicht, lesen Sie bitte hier nach, um Ihr SMHP-Cluster- und RIG-Setup abzuschließen [Docs-Link, Workshop-Link]

  • Sie benötigen p5.48xlarge EC2-Instances, um dieses Rezept auszuführen. Die Mindestanzahl an Instanzen, die für die effiziente Ausführung dieses Rezepts erforderlich sind, ist wie folgt:

    • Nova Lite 2.0 - 4 Stück, 5,48 x groß

    • Nova Lite 1.0 — 4 p5,48 x groß

    • Nova Micro 1.0 — 4 p5,48 x groß

    • Nova Pro 1.0 — 6 p5,48 x groß

  • Installieren Sie die Forge-spezifische SageMaker HyperPod CLI mithilfe der hier bereitgestellten Anweisungen https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US

  • Bestätigen Sie, dass Sie eine Verbindung zu Ihrem Cluster herstellen können, indem Sie hyperpod get-clusters

    • Beachten Sie, dass dieser Befehl alle SMHP-Cluster in Ihrem Konto auflistet

  • Vergewissern Sie sich, dass Ihr Training und optional die Validierungsdaten in einem S3-Bucket verfügbar sind, auf den die Ausführungsrolle Ihres SMHP-Clusters zugreifen kann. Informationen zur Datenvorbereitung finden Sie im nächsten Abschnitt.

  • Lassen Sie die AWS CLI Einrichtung abgeschlossen sein. Wenn Sie die Einrichtung noch nicht abgeschlossen haben, folgen Sie bitte der folgenden Anleitung.

  • Überprüfung: Bestätigen Sie nach Abschluss des Setups, dass Sie die folgenden Befehle erfolgreich ausführen können

    aws sagemaker describe-cluster --cluster-name <cluster-name> --region <region> hyperpod connect-cluster --cluster-name cluster-name

Ein systematischer Ansatz für eine erfolgreiche SFT

  • Datenvorbereitung: Folgen Sie den etablierten Richtlinien, um Datensätze zu erstellen, zu bereinigen oder in der erforderlichen Struktur neu zu formatieren. Stellen Sie sicher, dass Eingaben, Ausgaben und Hilfsinformationen (wie Argumentationsspuren oder Metadaten) richtig aufeinander abgestimmt und formatiert sind.

  • Trainingskonfiguration: Definieren Sie, wie das Modell trainiert wird. Wenn Sie Amazon verwenden SageMaker HyperPod, wird diese Konfiguration in eine YAML-Rezeptdatei geschrieben, die Folgendes beinhaltet:

    • Datenquellenpfade (Trainings- und Validierungsdatensätze)

    • Wichtige Hyperparameter (Anzahl der Trainingsschritte, Lernrate, Chargengröße)

    • Optionale Komponenten (verteilte Trainingsparameter usw.)

    • Einstellung zum Mischen von Daten (definiert die Proportionen der Kunden- und Nova-Datenkategorien)

  • Optimieren Sie die SFT-Hyperparameter: Die von uns empfohlenen SFT-Rezepturparameterwerte sind ein guter Ausgangspunkt und eine solide Wahl. Wenn Sie sie für Ihren Anwendungsfall weiter optimieren möchten, führen Sie mehrere SFT-Läufe mit unterschiedlichen Parameterkombinationen durch und wählen Sie die beste aus. Sie können Parameterkombinationen nach der Hyper-Parameter Optimierungsmethode Ihrer Wahl auswählen. Ein einfacher Ansatz besteht darin, den Wert eines Parameters (Standard*0,5, Standard, Standard*2) zu variieren und gleichzeitig den anderen Standardwert für andere Parameter beizubehalten, dies für jeden Parameter zu wiederholen, den Sie optimieren möchten, und bei Bedarf zu iterieren. Die relevantesten Parameter für LoRa sind Lernrate, Alpha (Skalierungsparameter), Anzahl der zu trainierenden Epochen und Aufwärmschritte; bei Full-Rank sind es hauptsächlich die Lernrate, die Anzahl der Epochen und die Aufwärmschritte.

Experimentelle Sequenzierung und Datenmischung

  • Wenn Sie nur SFT-Daten (train/dev/test) für eine Reihe von Aufgaben haben und Sie sich nur um die Testleistung bei diesen Aufgaben kümmern

    • Führen Sie SFT ohne Mischen am [FINAL] Nova-Checkpoint durch. Verwenden Sie die Standard-SFT-Hyperparameter und optimieren Sie sie optional für Ihren Anwendungsfall. Überwachen Sie die Validierungsmetriken und and/or werten Sie Zwischenprüfpunkte für größere Datensätze aus.

  • Wenn Sie nur über SFT-Daten (train/dev/test) für eine Reihe von Aufgaben verfügen und Sie Wert auf die Testleistung bei diesen Aufgaben sowie auf allgemeine Benchmarks in dem gewünschten Bereich legen

    • Beginnen Sie mit dem Mischen von SFT- und Nova-Daten an einem Checkpoint vor dem Training (PRE-TRAINED oder MID-TRAINED Checkpoint, nicht FINAL). Durch die Verwendung eines Zwischenprüfpunkts kann das Modell Ihre benutzerdefinierten Daten besser in die firmeneigenen Daten von Nova integrieren und gleichzeitig die starken allgemeinen Funktionen beibehalten.

    • Führen Sie kürzere SFT-Trainingsläufe mit einer unterschiedlichen Menge an Nova-Daten in der Mischung durch (z. B. 10%, 25%, 50%, 75%) und wählen Sie Nova-Datenkategorien aus, die Ihren Anwendungsfall ergänzen (z. B. wählen Sie die Anweisung nach der Kategorie, wenn Sie Wert darauf legen, allgemeine Anweisungen zu befolgen). Überwachen Sie die Validierungskennzahlen und beurteilen Sie, ob das Mischen die Leistung bei allgemeinen Benchmarks verbessert. Wählen Sie den Trainingsmix und den Checkpoint aus, der zu der besten Kombination aus Leistung bei Ihrer Aufgabe und allgemeiner Leistung führt. Je nach Anwendungsfall können sowohl die Aufgaben- als auch die allgemeine Leistung mithilfe von Reinforcement Fine Tuning (RFT) weiter verbessert werden.

Bereiten Sie den Datensatz für SFT vor

Nova 1.0: Die Datenvorbereitung ist beschrieben unter https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tune.html

Nova 2.0: Verwenden Sie das Converse-API-Format wie bei Nova 1.0. https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html Das Nova 2.0-Datenformat kann zusätzliche Argumentationsfelder enthalten: https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html

Der Inhalt der Argumentation erfasst die Zwischenschritte des Modells zum Denken, bevor eine endgültige Antwort generiert wird. Verwenden assistant Sie das reasoningContent Feld wiederum, um Argumentationsspuren einzubeziehen. Verwenden Sie Klartext für den Inhalt der Argumentation, vermeiden Sie Markup-Tags wie <thinking> und, </thinking> sofern dies nicht ausdrücklich für Ihre Aufgabe erforderlich ist, und stellen Sie sicher, dass die Argumentationsinhalte klar und für den Problemlösungsprozess relevant sind.

Verantwortungsbewusstes KI-Toolkit und Inhaltsmoderation

Einstellungen für die Inhaltsmoderation: Nova Forge-Kunden haben Zugriff auf anpassbare Inhaltsmoderationseinstellungen (CCMS) für die Modelle Nova Lite 1.0 und Pro 1.0. Mit CCMS können Sie die Steuerung der Inhaltsmoderation an Ihre spezifischen Geschäftsanforderungen anpassen und gleichzeitig wichtige, verantwortungsvolle KI-Schutzmaßnahmen einhalten. Um festzustellen, ob Ihr geschäftlicher Anwendungsfall für CCMS in Frage kommt, wenden Sie sich an Ihren Amazon Web Services-Kundenbetreuer.

Nova Forge bietet ein Toolkit für verantwortungsvolle KI, das Trainingsdaten, Bewertungsbenchmarks und Laufzeitkontrollen enthält, um Ihnen zu helfen, Ihre Modelle an den Richtlinien von Nova für verantwortungsvolle KI auszurichten.

Trainingsdaten: Die Kategorie „RAI“ im Bereich Datenmischung umfasst Fälle und Szenarien, in denen verantwortungsvolle KI-Prinzipien, Sicherheitsüberlegungen und verantwortungsvoller Technologieeinsatz im Vordergrund stehen. Verwenden Sie diese, um Ihre Modelle während des weiteren Vortrainings verantwortungsbewusst aufeinander abzustimmen.

Evaluationen: Es stehen Benchmark-Aufgaben zur Verfügung, um die Fähigkeit Ihres Modells zu testen, unangemessene, schädliche oder falsche Inhalte zu erkennen und abzulehnen. Verwenden Sie diese Bewertungen, um den Unterschied zwischen der Leistung des Basismodells und der Leistung Ihres benutzerdefinierten Modells zu messen.

Laufzeitsteuerungen: Standardmäßig moderiert die Laufzeitsteuerung von Nova die Modellreaktionen während der Inferenz. Um diese Steuerelemente für Ihren speziellen Geschäftsfall zu ändern, fordern Sie anpassbare Einstellungen für die Inhaltsmoderation (CCMS) an, indem Sie sich an Ihren Amazon Web Services-Kundenbetreuer wenden.

Geteilte Verantwortung für Sicherheit

Sicherheit ist eine gemeinsame Verantwortung von Amazon Web Services und unseren Kunden. Eine Änderung des Basismodells oder kontinuierliche Vorschulungen zur Verbesserung der Leistung in einem bestimmten Anwendungsfall können sich auf die Sicherheit, Fairness und andere Eigenschaften des neuen Modells auswirken.

Wir verwenden eine robuste Anpassungsmethode, um Änderungen an den in unseren Basismodellen integrierten Sicherheits-, Fairness- und anderen Schutzmaßnahmen zu minimieren und gleichzeitig die Auswirkungen auf die Modellleistung bei Aufgaben zu minimieren, für die das Modell nicht maßgeschneidert wurde.

Sie sind verantwortlich für:

  • End-to-end Testen ihrer Anwendungen an Datensätzen, die für ihre Anwendungsfälle repräsentativ sind

  • Entscheidung, ob die Testergebnisse ihren spezifischen Erwartungen in Bezug auf Sicherheit, Fairness und andere Eigenschaften sowie die allgemeine Wirksamkeit entsprechen

Weitere Informationen finden Sie im Amazon Web Services-Leitfaden zur verantwortungsvollen Verwendung von KI, in der Amazon Web Services-Richtlinie für verantwortungsvolle KI, in der Richtlinie zur AWS akzeptablen Nutzung und in den AWS Servicebedingungen für die Dienste, die Sie nutzen möchten.

Anpassbare Einstellungen für die Inhaltsmoderation (CCMS)

Mit CCMS können Sie die für Ihre Geschäftsanforderungen relevanten Kontrollen anpassen und gleichzeitig wichtige, nicht konfigurierbare Kontrollen beibehalten, die einen verantwortungsvollen Umgang mit KI gewährleisten.

Diese Einstellungen ermöglichen die Generierung von Inhalten über drei verfügbare Konfigurationen:

  • Nur Sicherheit

  • Sicherheit, vertrauliche Inhalte und Fairness kombiniert

  • Alle Kategorien zusammen

Die vier Kategorien für die Inhaltsmoderation sind:

  1. Sicherheit — Umfasst gefährliche Aktivitäten, Waffen und kontrollierte Substanzen

  2. Sensible Inhalte — Dazu gehören Obszönitäten, Nacktheit und Mobbing

  3. Fairness — Geht auf Vorurteile und kulturelle Überlegungen ein

  4. Sicherheit — Beinhaltet Cyberkriminalität, Malware und bösartige Inhalte

Unabhängig von Ihrer CCMS-Konfiguration setzt Amazon Nova grundlegende, nicht konfigurierbare Kontrollen durch, um einen verantwortungsvollen Umgang mit KI zu gewährleisten, z. B. Kontrollen zur Vermeidung von Schäden für Kinder und zum Schutz der Privatsphäre.

Empfehlungen für die Verwendung von CCMS

Bei der Verwendung von CCMS empfehlen wir, Continuous Pre Training (CPT) zu verwenden und an einem Checkpoint (, oder PRE-TRAINING-Final) zu beginnen, der vor der RAI-Anpassung durchgeführt wurde PRE-TRAINING-Early PRE-TRAINING-Mid, und nicht am Checkpoint. GA/FINAL Diese Checkpoints wurden weder einer Sicherheitsschulung unterzogen noch wurden sie auf bestimmte RAI-Verhaltensweisen hin gelenkt, sodass Sie sie effizienter an Ihre Anforderungen an die Inhaltsmoderation anpassen können.

Tipp: Wenn Sie CCMS zusammen mit der Datenmischung verwenden, sollten Sie erwägen, den Prozentsatz der Kategorie „rai“ in Ihrer nova_data-Konfiguration an Ihre spezifischen Anforderungen an die Inhaltsmoderation anzupassen.

Verfügbarkeit

CCMS ist derzeit für zugelassene Kunden verfügbar, die Folgendes verwenden:

  • Modelle Nova Lite 1.0 und Pro 1.0

  • Amazon Bedrock-Inferenz On-Demand

  • Die Region US-East-1 (Nord-Virginia)

Um CCMS für Ihre Forge-Modelle zu aktivieren, wenden Sie sich an Ihren Amazon Web Services-Kundenbetreuer.

Methoden der Evaluierung

Voraussetzungen

  • Checkpoint S3-URI aus der manifest.json Datei Ihres Trainingsjobs (für trainierte Modelle)

  • Der Bewertungsdatensatz wurde im richtigen Format auf S3 hochgeladen

  • Geben Sie den S3-Pfad für Bewertungsergebnisse aus

Sofort einsatzbereite Benchmarks: Verwenden Sie sofort einsatzbereite Benchmarks, um die Leistung bei allgemeinen Aufgaben zu überprüfen. Weitere Informationen finden Sie hier: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-evaluate.html

Bringen Sie Ihre eigenen Daten mit

Sie können Ihre benutzerdefinierten Daten auch angeben, indem Sie sie im folgenden Format formatieren und dann die unten genannten Container verwenden, um bei Bedarf Inferenzergebnisse sowie Log-Wahrscheinlichkeiten für Kalibrierungen zu erhalten.

Erstellen Sie jsonl pro Aufgabe mit der folgenden Struktur:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

Die während der Inferenzphase des Bewertungsauftrags generierten Ausgaben werden die folgende Struktur haben:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

Beschreibungen der Felder:

  • prompt: Formatierte Eingabe, die an das Modell gesendet wurde

  • inference: Die generierte Antwort des Modells

  • gold: Erwartete richtige Antwort aus dem Eingabedatensatz, Antwortfeld aus der Eingabe

  • metadata: Optionale Metadaten, die aus der Eingabe weitergegeben wurden

Bereiten Sie die Evaluierungskonfiguration vor

Befehl zum Starten des Evaluierungsauftrags. Wird verwendet"--override-parameters", um einen beliebigen Eintrag aus dem Rezept zu ändern.

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

Bewährte Methoden

  • Priorisieren Sie die Datenqualität vor dem Volumen: High-quality Vielfältige und repräsentative Trainingsdaten sind wertvoller als große Mengen an Daten von geringer Qualität.

  • Schließen Sie die Kategorie „Argumentation — Anweisungen befolgen“ ein: Wenn Sie Daten mischen, schließen Sie die Kategorie „Argumentation — Instruktionen befolgen“ ein, um eine hohe allgemeine Leistung bei allen Aufgaben aufrechtzuerhalten.

  • Standardlernraten verwenden: Beginnen Sie mit den Standard-Lernraten (1e-5 für LoRa, 5e-6 für SFT mit vollem Rang) und passen Sie sie nur an, wenn dies auf der Grundlage von Validierungsmetriken erforderlich ist.

  • Nova-Datenmischung ausgleichen: Mischen Sie bis zu 50% Nova-Daten, um ein optimales Gleichgewicht zwischen Latenz und Leistung zu erzielen. Höhere Prozentsätze können die allgemeinen Fähigkeiten verbessern, können jedoch die Trainingszeit verlängern.

  • Überwachen Sie die Validierungskennzahlen: Evaluieren Sie während des Trainings regelmäßig Zwischenkontrollen, um Überanpassung oder Leistungseinbußen frühzeitig zu erkennen.

  • Testen Sie anhand repräsentativer Datensätze: Stellen Sie sicher, dass Ihre Bewertungsdatensätze Ihre Anwendungsfälle in der Produktion genau wiedergeben, um eine aussagekräftige Leistungsbewertung zu ermöglichen.

Training & Job Config vorbereiten

Hyperparameter

Vollständiger Satz von Hyperparametern außer Datenmischung:

## Run config run: name: my-lora-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-lora-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-lora-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: 10 # This parameter suggests after how many training steps the checkpoints will be saved. Should be less than or equal to max_steps(please override this value with a numerical value equal or less than max_steps value; min: 4) save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Golbal batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)

Die relevantesten Parameter für LoRa sind Lernrate, Alpha (Skalierungsparameter), Anzahl der zu trainierenden Epochen und Aufwärmschritte; bei Full-Rank sind es hauptsächlich die Lernrate, die Anzahl der Epochen und die Aufwärmschritte. Die Rezepte sind mit den empfohlenen Standardwerten vorbelegt.

Richten Sie den Datenmischblock ein

Fügen Sie Ihrem Rezept den Abschnitt data_mixing mit der entsprechenden prozentualen Verteilung auf die Datensatzkategorien hinzu.

Im Folgenden beschreiben wir jede verfügbare Nova-Datenkategorie.

Nova 1.0-Konfiguration mit Datenmischung

data_mixing: dataset_catalog: sft_text # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems chat: 51 # Conversational exchanges demonstrating natural dialogue flow code: 8 # Programming examples and solutions spanning multiple languages rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 6 # Technical content covering science, technology, engineering, and mathematics planning: 2 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning: 8 # Logical deduction, critical thinking, and analytical problem-solving scenarios rag: 1 # combining retrieved external knowledge with generated responses translation: 9 # Multi-language content pairs showing accurate translation

Was bedeuten diese Kategorien?

Nova 1.0 Textdaten-Kategorien
Name der Kategorie Detail der Informationen
agents Die Trainingsdaten konzentrierten sich auf die autonome Entscheidungsfindung, die Erledigung von Aufgaben und zielorientiertes Verhalten in KI-Systemen
chat Konversationsaustausch, der den natürlichen Dialogfluss, die Aufrechterhaltung des Kontextes und angemessene soziale Interaktionen demonstriert
Code Programmierbeispiele und Lösungen für mehrere Sprachen, Debugging-Szenarien und bewährte Methoden für die Softwareentwicklung
rai Fälle und Szenarien, in denen ethische KI-Prinzipien, Sicherheitsüberlegungen und verantwortungsvoller Technologieeinsatz im Vordergrund stehen
Anweisungen befolgen Beispiele für die präzise Ausführung von Aufgaben auf der Grundlage unterschiedlicher Ebenen von Benutzeraufforderungen und Anweisungen
Stamm Technische Inhalte aus den Bereichen Wissenschaft, Technologie, Ingenieurwesen und Mathematik, einschließlich Problemlösung und theoretischer Konzepte
Planung Sequenzen, die strategisches Denken, eine schrittweise Aufschlüsselung der Aufgaben und eine effiziente Ressourcenallokation demonstrieren
Argumentation Logische Deduktion, kritisches Denken und analytische Problemlösungsszenarien mit klaren Argumentationsketten
Lappen Beispiele für die effektive Kombination von abgerufenem externem Wissen mit generierten Antworten, um genaue, kontextbezogene Informationen bereitzustellen
Übersetzung Multi-language Inhaltspaare, die eine genaue Übersetzung aufweisen und gleichzeitig Kontext, Tonalität und kulturelle Nuancen beibehalten

Multimodales Mischen von Daten (Nova 1.0)

data_mixing: dataset_catalog: sft_mm # Nova multi-modal dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 11 # Combining visual and textual inputs docs: 17 # Document-centric data combining text, images, layouts, and formatting perception: 10 # Visual-linguistic pairs t rag: 4 # Combining retrieved external knowledge with generated responses rai: 3 # Ethical AI principles, safety considerations, and responsible technology deployment reasoning: 10 # Logical analysis, problem-solving, and drawing conclusions stem: 17 # Technical content pairing visual elements (diagrams, charts, equations) with text text: 10 # A balanced pool of contextual text data create from the text-only SFT datasets video: 18 # Video datasets

Was bedeuten diese Kategorien?

Nova 1.0 Multimodale Datenkategorien
Name der Kategorie Detail der Informationen
agents Trainingspaare, die visuelle und textuelle Eingaben kombinieren und demonstrieren, wie KI-Systeme multisensorische Umweltinformationen interpretieren, darauf reagieren und mit ihnen interagieren sollten
Dokumente Document-centric Daten, die Text, Bilder, Layouts und Formatierungen kombinieren, um Modelle darin zu schulen, verschiedene Dokumenttypen und -strukturen zu verstehen und zu verarbeiten, um Konzepte wie die Erkennung von PDF-Inhalten zu unterstützen
Wahrnehmung Visual-linguistic kombiniert Unterrichtsmodelle, um Bilder, Videos und andere visuelle Eingaben in natürlicher Sprache präzise zu beschreiben, zu interpretieren und zu begründen
Lappen Beispiele für multimodale Abfragen, die zeigen, wie visuelles und textuelles externes Wissen effektiv kombiniert und referenziert werden kann, um genaue, kontextuelle Antworten zu generieren
Argumentation Fälle, in denen visuelle und textuelle Elemente kombiniert werden und die logische Analyse, Problemlösung und das Ziehen von Schlussfolgerungen über mehrere Modalitäten hinweg demonstrieren
Stamm Technischer Inhalt, bei dem visuelle Elemente (Diagramme, Diagramme, Gleichungen) mit Text kombiniert werden, um wissenschaftliche, mathematische und technische Konzepte und Problemlösungen zu vermitteln
text Ein ausgewogener Pool an kontextuellen Textdaten, der aus den reinen Textdatensatzkategorien von SFT Nova erstellt wird, um generalistische Fähigkeiten zu vermitteln
video Motion-based visuelle Inhalte, die sich auf das zeitliche Verständnis und das sequentielle visuell-narrative Verständnis konzentrieren

Nova 2.0-Konfiguration mit Datenmischung

data_mixing: dataset_catalog: sft_1p5_text_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 agents: 1 # autonomous decision-making, task completion, goal-oriented behavior in AI systems baseline: 10 # [New in Nova 1.5] chat: 0.5 # Conversational exchanges demonstrating natural dialogue flow code: 10 # Programming examples and solutions spanning multiple languages factuality: 0.1 # [New in Nova 1.5] identity: 1 # [New in Nova 1.5] long-context: 1 # [New in Nova 1.5] math: 2 # [New in Nova 1.5] rai: 1 # ethical AI principles, safety considerations, and responsible technology deployment instruction-following: 13 # precise task execution based on varying levels of user prompts and directives stem: 0.5 # Technical content covering science, technology, engineering, and mathematics planning: 10 # Sequences demonstrating strategic thinking and step-by-step task breakdown reasoning-chat: 0.5 reasoning-code: 0.5 reasoning-factuality: 0.5 reasoning-instruction-following: 45 reasoning-math: 0.5 reasoning-planning: 0.5 reasoning-rag: 0.4 reasoning-rai: 0.5 reasoning-stem: 0.4 rag: 1 # combining retrieved external knowledge with generated responses translation: 0.1

Was bedeuten diese Kategorien?

Nova 2.0 Textdaten-Kategorien
Name der Kategorie Detail der Informationen
agents Die Trainingsdaten konzentrierten sich auf die autonome Entscheidungsfindung, die Erledigung von Aufgaben und zielorientiertes Verhalten in KI-Systemen
Baseline Grundlegende Sprachdaten konzentrierten sich auf das allgemeine Verständnis, die grundlegende Kommunikation und die sprachlichen Kernkompetenzen
chat Konversationsaustausch, der den natürlichen Dialogfluss, die Aufrechterhaltung des Kontextes und angemessene soziale Interaktionen demonstriert
Code Programmierungsquellcode, Dokumentation und technische Diskussionen aus verschiedenen Programmiersprachen und Plattformen.
Faktizität Referenzmaterialien und verifizierte Informationen, die sich auf Genauigkeit, Quellenvalidierung und Wahrheitsbeurteilung konzentrierten
Identität Persönlichkeitsrahmen und Verhaltensmuster konzentrierten sich auf konsistente Charaktereigenschaften, Werte und Interaktionsstile
langer Kontext Erweiterte Texte und komplexe Erzählungen konzentrierten sich auf die Wahrung von Kohärenz und Relevanz über einen langen Austausch hinweg
math Mathematische Inhalte wie Lehrbücher, Probleme, Lösungen und mathematische Diskussionen.
rai Fälle und Szenarien, in denen ethische KI-Prinzipien, Sicherheitsüberlegungen und verantwortungsvoller Technologieeinsatz im Vordergrund stehen
Anweisungen befolgen Beispiele für die präzise Ausführung von Aufgaben auf der Grundlage unterschiedlicher Ebenen von Benutzeraufforderungen und Anweisungen
Stamm Technische Inhalte aus den Bereichen Wissenschaft, Technologie, Ingenieurwesen und Mathematik, einschließlich Problemlösung und theoretischer Konzepte
Planung Sequenzen, die strategisches Denken, eine schrittweise Aufschlüsselung der Aufgaben und eine effiziente Ressourcenallokation demonstrieren
Gespräch zum Nachdenken Analytische Dialogszenarien konzentrierten sich auf logische Diskussionen und strukturierte Gesprächsabläufe
Argumentationscode Programmierprobleme und algorithmische Probleme konzentrierten sich auf die systematische Lösungsentwicklung
Argumentation—Faktizität Szenarien zur Informationsbewertung konzentrierten sich auf kritische Bewertungs- und Überprüfungsverfahren
Argumentation — Instruktion — Befolgung Die komplexe Aufgabenanalyse konzentrierte sich auf die systematische Interpretation und methodische Ausführung
Argumentation und Mathematik Mathematische Problemlösungsszenarien, die sich auf logische Progression und Lösungsstrategien konzentrieren
Argumentationsplanung Strategische Entscheidungsszenarien konzentrierten sich auf einen systematischen Ansatz zur Zielerreichung
Argumentationslappen Szenarien zum Abrufen und zur Synthese von Informationen konzentrierten sich auf das kontextuelle Verständnis und die entsprechende Anwendung
Argumentations-Rai Ethische Entscheidungsszenarien konzentrierten sich auf die systematische Bewertung der KI-Sicherheit und Fairness
Argumentationsstamm Wissenschaftliche Problemlösungsszenarien konzentrierten sich auf methodische Analyse und Lösungsentwicklung
Lappen Beispiele für die effektive Kombination von abgerufenem externem Wissen mit generierten Antworten, um genaue, kontextbezogene Informationen bereitzustellen
Übersetzung Multi-language Inhaltspaare, die eine genaue Übersetzung aufweisen und gleichzeitig Kontext, Tonalität und kulturelle Nuancen beibehalten

Multimodales Mischen von Daten (Nova 2.0)

data_mixing: dataset_catalog: sft_1p5_mm_chat # Nova text dataset catalog sources: customer_data: percent: 50 # Percent of overall mix to draw from customer data nova_data: # The remainder will be drawn from Nova data. The categories below must add to 100 charts: 1 chat: 38 code: 20 docs: 3 general: 2 grounding: 1 rag: 4 screenshot: 4 text: 8 translation: 4 video: 15

Hinweis: Nova 2.0 bietet Unterstützung für Videodatenkategorien, die in Nova 1.0 nicht verfügbar ist.

Was bedeuten diese Kategorien?

Nova 2.0 Multimodale Datenkategorien
Name der Kategorie Detail der Informationen
Diagramme Visuelle Darstellungen und Beschreibungen von Grafiken, Kreisdiagrammen, Balkendiagrammen, Liniendiagrammen und anderen statistischen Visualisierungen, damit das Modell quantitative Informationen besser verstehen und kommunizieren kann
chat Konversationsdaten gepaart mit visuellen Elementen, die sich auf das Verständnis kontextueller Dialoge und bildgestützte Interaktionen konzentrieren
Code Programmierschnittstellen und Entwicklungsumgebungen konzentrierten sich auf visuelle Code-Interpretation, IDE-Screenshots und technische Diagramme
Dokumente Document-centric Daten, die Text, Bilder, Layouts und Formatierungen kombinieren, um Modelle darin zu schulen, verschiedene Dokumenttypen und -strukturen zu verstehen und zu verarbeiten, um Konzepte wie die Erkennung von PDF-Inhalten zu unterstützen
general Vielfältige visuelle und textuelle Inhalte konzentrierten sich auf ein breites Verständnis von Bildern, Grafiken und begleitendem beschreibendem Text
Grounding Visuelles Referenzmaterial und beschriftete Bilder konzentrierten sich auf die Verbindung von Sprachkonzepten mit visuellen Repräsentationen in der realen Welt
Lappen Beispiele für multimodale Abfragen, die zeigen, wie visuelles und textuelles externes Wissen effektiv kombiniert und referenziert werden kann, um genaue, kontextuelle Antworten zu generieren
Bildschirmfoto Erfassung der Anwendungsoberfläche und digitale Anzeige von Bildern, die sich auf das Verständnis von Softwareschnittstellen und digitalen Interaktionen konzentrieren
text Ein ausgewogener Pool an kontextuellen Textdaten, der aus den reinen Textdatensatzkategorien von SFT Nova erstellt wird, um generalistische Fähigkeiten bereitzustellen
Übersetzung Cross-language visuelle Inhalte, die sich auf die mehrsprachige Interpretation von Text in Bildern und kulturellen visuellen Elementen konzentrieren
video Motion-based visueller Inhalt, der sich auf das zeitliche Verständnis und das sequentielle visuell-narrative Verständnis konzentriert

Wie starte ich einen Job

Sie können auch in der README-Datei nachlesen, wenn Sie nur die wichtigsten Informationen benötigen, um den ersten SFT-Lauf zu starten.

Informationen zum Container:

Container-Informationen und Startbefehle
Modell Technik Unterkategorie Image-URI Hyperpod Launcher-Befehl
Nova 1.0 Fine-tuning WEICH//LINKS 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Feinabstimmungs-Repo: SM-HP-SFT-latest Hyperpod start-job\ -n kubeflow\ --recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/novaSM-HP-SFT-latest-fine-tune-repo: "} '
Nova 1.0 Fine-tuning SFT mit Datenmischung 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Feinabstimmungs-Repo: HP-SFT-DATAMIX Hyperpod Startjob\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_gpu_sft_text_with_datamix\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Fine-Tune-Repo: HP-SFT-DATAMIX "} '
Nova 2.0 Fine-tuning SFT Text (mit oder ohne Datenmischung) 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Feinabstimmungs-Repo: SM-HP-SFT-V2-latest Hyperpod Startjob\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Fine-Tune-Repo: SM-HP-SFT-V2-latest "} '
Nova 2.0 Fine-tuning SFT MM (mit oder ohne Datenmischung) 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Feinabstimmungs-Repo: SM-HP-SFT-V2-latest Hyperpod Startjob\ -n kubeflow\ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_mm_with_datamix\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-Fine-Tune-Repo: SM-HP-SFT-V2-latest "} '

Sobald Sie alles eingerichtet haben, beginnen Sie im Stammverzeichnis des Sagemaker-Hyperpod-CLI-Repositorys, und navigieren Sie zum Standardordner für Nova SFT-Rezepte

  • src/hyperpod_clisagemaker_hyperpod_recipes/recipes_collectionrecipes/finecdtuning/nova//- /forge/

  • Hier können Sie je nach Wahl des Basismodells wählen, ob Sie Nova 1- oder Nova 2-Rezepte ausführen möchten.

Für Nova 1.0 sft:

  • Wenn Sie einen normalen SFT-Job verwenden möchten, sollten Sie in diesem Ordner ein Rezept sehen können

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_1_0/nova_lite/SFT und dann solltest du in diesem Ordner ein Rezept namens nova_lite_1_0_p5x8_gpu_sft.yaml sehen können

  • Wenn Sie Datamixing sft Job verwenden möchten, können Sie zum Ordner sft Forge-Rezepte navigieren

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collection tuning/novaforge/nova_1_0/nova_lite/SFT und Sie sollten in diesem Ordner ein Rezept mit dem Namen nova_lite_1_0_p5x8_gpu_sft_with_datamix.yaml sehen können

  • Bearbeiten Sie die Abschnitte im Rezept, die für den Job erforderlich sind, wie name, data_s3_path, validation_s3_path, output_s3_path und max_steps.Da wir sft ausführen, gilt der Begriff der Epochen hier nicht.

Für Nova 2.0 sft:

  • Wenn Sie einen normalen SFT-Job verwenden möchten, sollten Sie in diesem Ordner ein Rezept sehen können

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collectiontuning/nova_2_0/nova_lite/SFT und dann solltest du ein Rezept in diesem Ordner namens nova_lite_2_0_p5x8_gpu_sft.yaml sehen können

  • Wenn Sie Datamixing sft Job verwenden möchten, können Sie zum Ordner sft Forge recipes navigieren

    • cd///recipes/fine- src/hyperpod_cli sagemaker_hyperpod_recipes/recipes_collection tuning/novaforge/nova_2_0/nova_lite/SFT und Sie sollten in diesem Ordner ein Rezept mit dem Namen nova_lite_2_0_p5x8_gpu_sft_with_datamix.yaml sehen können

  • Bearbeiten Sie die Abschnitte im Rezept, die für den Job erforderlich sind, z. B. name, data_s3_path, validation_s3_path, output_s3_path und max_steps. Da wir sft ausführen, trifft der Begriff der Epochen hier nicht zu.

Die Konfiguration zum Mischen von Daten wird genauso aussehen, aber mit einem zusätzlichen Abschnitt zum Mischen von Daten am unteren Rand, der dem folgenden ähnelt

data_mixing: dataset_catalog: sft_text_lite sources: nova_data: # percent inputs for Nova data must sum to 100%; use 0% if you want to exclude a data grouping agents: 20 business-and-finance: 20 scientific: 20 code: 20 factual-and-news: 20 longform-text: 0 health-and-medicine: 0 humanities-and-education: 0 legal: 0 math: 0 additional-languages: 0 social-and-personal-interest: 0 entertainment: 0 reasoning: 0 other: 0 tables: 0 customer_data: # percent input of customer data. 100 = use only customer data, 0 = use only the nova_data mix above percent: 25

Hier gibt es zwei Datenkategorien auf oberster Ebene:

  • nova_data: Dies ist die eigentliche Datenmischung und ist in noch mehr Kategorien unterteilt. Es ist unbedingt erforderlich, dass sie zusammen 100% ergeben

    • Eine vollständige Aufschlüsselung dieser Kategorien einschließlich der Anzahl der Tokens finden Sie unten

  • customer_data: Dies sind Ihre Trainingsdaten, auf die im Schlüssel data_s3_path oben in Ihrer Yaml-Datei verwiesen wird. Der hier angegebene Prozentsatz bestimmt, wie hoch der resultierende Prozentsatz für nova_data sein wird. Bei der obigen Prozentauswahl verwenden wir beispielsweise während der Schulung 25% der Kundendaten und 75% der Nova-Daten, wobei 15% Agenten, 15% aus Wirtschaft und Finanzen, 15% aus Wissenschaft, 15% aus Code und 15% aus Fakten und Nachrichten bestehen

Tipp: Führen Sie pip install -e. noch einmal aus und schon können Sie Ihren Job einreichen!

Wir werden hier einige Parameter überschreiben, um die Datenmischung zu verwenden:

hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/" }'

Ihre Ausgabe sollte einen Jobnamen wie folgt enthalten:

⚡ MY Desktop ⚡ % hyperpod start-job \ -n kubeflow \ --recipe fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix \ --override-parameters '{ "instance_type": "ml.p5.48xlarge", "recipes.run.name": "nova-sft-datamixing", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest", "recipes.run.data_s3_path": "s3://sft-data/sft_train_data.jsonl", "recipes.run.validation_data_s3_path": "s3://sft-data/sft_val_data.jsonl", "recipes.run.output_s3_path": "s3://sft-data/output/" }'

Die Ausgabe würde so aussehen:

Final command: python3 /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/forge/nova_2_0/nova_lite/SFT/nova_lite_2_0_p5_gpu_sft_text_with_datamix cluster_type=k8s cluster=k8s base_results_dir=/local/home/my/Downloads/sagemaker-hyperpod-cli/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" instance_type="ml.p5.48xlarge" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-V2-latest" Prepared output directory at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/k8s_templates Found credentials in shared credentials file: ~/.aws/credentials Helm script created at /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh Running Helm script: /local/home/my/Downloads/sagemaker-hyperpod-cli/results/my-sft-run-wzdyn/my-sft-run-wzdyn_launch.sh NAME: my-sft-run-wzdyn LAST DEPLOYED: Tue Aug 26 16:21:06 2025 NAMESPACE: kubeflow STATUS: deployed REVISION: 1 TEST SUITE: None Launcher successfully generated: /local/home/my/Downloads/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT { "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/hyperpod-eks-ga-0703" }

Sie können den Status Ihres Jobs mit Hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn anzeigen

hyperpod list-pods -n kubeflow --job-name my-sft-run-wzdyn { "pods": [ { "PodName": "my-sft-run-wzdyn-master-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" }, { "PodName": "my-sft-run-wzdyn-worker-0", "Namespace": "kubeflow", "Status": "Pending", "CreationTime": "2025-08-26 16:21:06+00:00" } ] }

oder verwenden Sie direkt den Befehl kubectl, um sie zu finden.

Zum Beispiel

kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-sft-run) NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-sft-run-5suc8-master-0 0/1 Completed 0 3h23m 172.31.32.132 hyperpod-i-00b3d8a1bf25714e4 <none> <none> my-sft-run-5suc8-worker-0 0/1 Completed 0 3h23m 172.31.44.196 hyperpod-i-0aa7ccfc2bd26b2a0 <none> <none> my-sft-run-5suc8-worker-1 0/1 Completed 0 3h23m 172.31.46.84 hyperpod-i-026df6406a7b7e55c <none> <none> my-sft-run-5suc8-worker-2 0/1 Completed 0 3h23m 172.31.28.68 hyperpod-i-0802e850f903f28f1 <none> <none>

Profi-Tipp: Stellen Sie sicher, dass Sie immer das Flag -o wide verwenden, da der EKS-Knoten, auf dem der Job ausgeführt wird, Ihnen hilft, Ihre Logs in der Benutzeroberfläche noch schneller zu finden AWS

Wie überwacht man den Job

Sie können Ihre Logs auf drei Arten einsehen:

a) Verwenden CloudWatch

Ihre Protokolle sind in Ihrem Amazon Web Services-Konto verfügbar, unter CloudWatch dem sich der Hyperpod-Cluster befindet. Um sie in Ihrem Browser anzuzeigen, navigieren Sie zur CloudWatch Startseite in Ihrem Konto und suchen Sie nach Ihrem Cluster-Namen. Wenn Ihr Cluster beispielsweise my-hyperpod-rig heißen würde, hätte die Protokollgruppe das Präfix:

  • Protokollgruppe:/aws/sagemaker/{UUID} Clusters/my-hyperpod-rig

  • Sobald Sie in der Protokollgruppe sind, können Sie Ihr spezifisches Protokoll anhand der Knoteninstanz-ID finden, z. B. - hyperpod-i-00b3d8a1bf25714e4.

    • i-00b3d8a1bf25714e4 steht hier für den Hyperpod-freundlichen Computernamen, auf dem Ihr Trainingsjob ausgeführt wird. Erinnern Sie sich daran, dass wir im vorherigen Befehl kubectl get pods -o wide -w -n kubeflow | (head -n1; grep my-cpt-run) output eine Spalte mit dem Namen NODE erfasst haben.

    • Der „Master“ -Knotenlauf lief in diesem Fall auf hyperpod-i-00b3d8a1bf25714e4 und daher verwenden wir diese Zeichenfolge, um die anzuzeigende Protokollgruppe auszuwählen. Wählen SagemakerHyperPodTrainingJob/rig-group Sie den aus, auf dem/[NODE] steht

Ihre Logs sollten ungefähr so aussehen:

b) CloudWatch Insights verwenden

Wenn Sie Ihren Jobnamen griffbereit haben und nicht alle oben genannten Schritte ausführen möchten, können Sie einfach alle Protokolle unter/aws/sagemakerClusters/my-hyperpod-rig/{UUID} abfragen, um das einzelne Protokoll zu finden.

CPT

fields @timestamp, @message, @logStream, @log | filter @message like /(?i)Starting CPT Job/ | sort @timestamp desc | limit 100

Ersetzen Sie Starting SFT Job durch SFT Job abgeschlossen durch SFT Job abgeschlossen

Dann können Sie sich durch die Ergebnisse klicken und den Knoten mit der Aufschrift „Epoche 0" auswählen, da dies Ihr Master-Knoten sein wird.

C) Mit dem AWS CLI

Sie können wählen, ob Sie Ihre Protokolle mit dem verfolgen möchten AWS CLI. Bevor Sie dies tun, überprüfen Sie bitte Ihre AWS CLI Version mitaws --version. Es wird auch empfohlen, dieses Utility-Skript zu verwenden, das beim Live-Log-Tracking in Ihrem Terminal hilft

für V1:

aws logs get-log-events \ --log-group-name /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --start-from-head | jq -r '.events[].message'

für V2:

aws logs tail /aws/sagemaker/YourLogGroupName \ --log-stream-name YourLogStream \ --since 10m \ --follow

D) ML Flow einrichten:

Sie können Metriken über MLflow verfolgen.

Erstellen Sie eine MLFlow-App

Verwenden der Studio-Benutzeroberfläche: Wenn Sie einen Trainingsjob über die Studio-Benutzeroberfläche erstellen, wird automatisch eine Standard-MLflow-App erstellt und standardmäßig unter Erweiterte Optionen ausgewählt.

CLI verwenden: Wenn Sie die CLI verwenden, müssen Sie eine MLflow-App erstellen und sie als Eingabe an die API-Anfrage für den Schulungsjob übergeben.

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

Greifen Sie auf die MLflow-App zu

Mit CLI: Erstellen Sie eine vorsignierte URL, um auf die Benutzeroberfläche der MLflow-App zuzugreifen:

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

Sobald ML Flow eingerichtet ist, können Sie den URI in Ihrem Rezept übergeben oder Override verwenden, wenn Sie den Job starten. Ein Beispiel dafür finden Sie in README.

Wie evaluieren Sie Ihr Modell nach SFT?

Voraussetzungen

  • Checkpoint S3-URI aus der manifest.json-Datei Ihres Trainingsjobs (für trainierte Modelle)

  • Der Bewertungsdatensatz wurde im richtigen Format auf S3 hochgeladen

  • Geben Sie den S3-Pfad für Bewertungsergebnisse aus

Sofort einsatzbereite Benchmarks: Verwenden Sie sofort einsatzbereite Benchmarks, um die Leistung bei allgemeinen Aufgaben zu überprüfen. Weitere Informationen finden Sie hier.

Bringen Sie Ihre eigenen Daten mit:

Sie können Ihre benutzerdefinierten Daten auch angeben, indem Sie sie im folgenden Format formatieren und dann die unten genannten Container verwenden, um bei Bedarf Inferenzergebnisse sowie Log-Wahrscheinlichkeiten für Kalibrierungen zu erhalten.

Erstellen Sie jsonl pro Aufgabe mit der folgenden Struktur:

{ "metadata": "{key:4, category:'apple'}", "system": "arithmetic-patterns, please answer the following with no other words: ", "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?", "response": "32" }

Die während der Inferenzphase des Evaluierungsauftrags generierten Ausgaben werden die folgende Struktur haben:

{ "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]", "inference": "['32']", "gold": "32", "metadata": "{key:4, category:'apple'}" }

Beschreibungen der Felder:

  • Eingabeaufforderung: Formatierte Eingabe, die an das Modell gesendet wurde

  • Inferenz: Die generierte Antwort des Modells

  • gold: Erwartete richtige Antwort aus dem Eingabedatensatz, Antwortfeld aus der Eingabe

  • Metadaten: Optionale Metadaten, die von der Eingabe übernommen wurden

Bereiten Sie die Evaluierungskonfiguration vor

Befehl zum Starten des Evaluierungsauftrags. Verwenden Sie „--override-parameters“, um einen beliebigen Eintrag aus dem Rezept zu ändern.

hyperpod start-job -n kubeflow \ --recipe evaluation/nova/nova_micro_p5_48xl_bring_your_own_dataset_eval \ --override-parameters '{ "instance_type": "p5.48xlarge", "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest", "recipes.run.name": "<your-eval-job-name>", "recipes.run.model_name_or_path": "<checkpoint-s3-uri>", "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/", "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl" }'

Starten Sie Ihren Evaluierungsauftrag

Befehle zum Starten von Aufträgen für verschiedene Rezepte mit entsprechenden Bildern.

Evaluierung: Befehle zum Starten von Aufträgen
Modell Technik Unterkategorie Image-URI Befehl
Nova 1.0 Bewertung Eval 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluation-repo: SM-HP-Eval-latest Hyperpod-Startjob\ -n kubeflow\ --recipe evaluation/nova/nova_1_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/novaSM-HP-Eval-latest-evaluation-repo: "} '
Nova 2.0 Bewertung Eval 708977205387.dkr.ecr.us-east-1.amazonaws. com/nova-evaluation-repo: SM-HP-Eval-latest Hyperpod start-job -n kubeflow\ --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_ft_eval\ --override-parameters '{„instance_type“: „ml.p5.48xlarge“, „container“: „708977205387.dkr.ecr.us-east-1.amazonaws. com/novaSM-HP-Eval-latest-evaluation-repo: "} '

Gelernte Lektionen und Tipps

  • Die Qualität des SFT-Datensatzes ist entscheidend. Sie sollten alle Anstrengungen unternehmen, um Daten von geringer Qualität herauszufiltern. Wenn Sie über eine kleine Teilmenge von Daten mit außergewöhnlich hoher Qualität verfügen — sowohl in Bezug auf Komplexität als auch Genauigkeit —, können Sie erwägen, diese gegen Ende des Trainings zu platzieren, damit das Modell besser konvergiert.

  • Wir nutzen sowohl Text- als auch multimodale (MM) Datensätze für die Datenmischung. Unsere Experimente mit Textdatensätzen zeigen, dass das Hinzufügen der von Nova entwickelten Kategorie „Argumenting-Instruktion-Follow-Following“ die Leistung bei generischen Benchmarks erheblich verbessert. Wir empfehlen, diese Kategorie in Ihre Strategie zur Datenmischung aufzunehmen, wenn Sie sich für generische Benchmarks interessieren, die nach der Durchführung von SFT mit Ihren Datensätzen regressiert werden.

  • Bei MM-Datensätzen deuten unsere Experimente darauf hin, dass die Einbeziehung von über 20% der Videokategorien in den Mix für die Aufrechterhaltung der generischen Benchmark-Leistung von Vorteil ist.

  • Darüber hinaus reagiert SFT mit Datenmischung sehr empfindlich auf die Lernrate, weshalb unsere Ergebnisse darauf hindeuten, dass die Feinabstimmung mit der Standard-Lernrate, d. h. 1e-5 für LoRa und 5e-6 für FR, vorgenommen werden sollte.

  • Schließlich gibt es einen Kompromiss zwischen Latenz und Leistung, wenn Sie Nova-eigene Datensätze mischen. Daher legen unsere Ergebnisse nahe, als gute Balance eine Mischung von maximal 50% zu verwenden.