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.
Reinforcement Fine-Tuning (RFT) mit Amazon Nova-Modellen
-Übersicht
Was ist RFT?
Reinforcement Fine-Tuning (RFT) verbessert die Modellleistung, indem das Training anhand von Feedbacksignalen — messbaren Ergebnissen oder Belohnungen, die anzeigen, wie gut das Modell abgeschnitten hat — und nicht anhand exakter richtiger Antworten trainiert wird. Im Gegensatz zur überwachten Feinabstimmung, die aus Input-Output-Paaren lernt, verwendet RFT Belohnungsfunktionen, um die Modellantworten zu bewerten, und optimiert das Modell iterativ, um diese Belohnungen zu maximieren. Dieser Ansatz zeichnet sich besonders dann aus, wenn es schwierig ist, den exakt richtigen Output zu definieren, aber Sie können die Antwortqualität zuverlässig messen.
Wann sollte RFT verwendet werden
Verwenden Sie RFT, wenn Sie klare, messbare Erfolgskriterien definieren können, aber Schwierigkeiten haben, exakt korrekte Ergebnisse für das Training zu liefern. Es ist ideal für:
-
Aufgaben, bei denen die Qualität subjektiv oder vielfältig ist (kreatives Schreiben, Codeoptimierung, komplexes Denken)
-
Szenarien mit mehreren gültigen Lösungen, bei denen einige eindeutig besser sind als andere
-
Anwendungen, die iterative Verbesserungen, Personalisierung oder die Einhaltung komplexer Geschäftsregeln erfordern
-
Fälle, in denen das Sammeln hochwertiger, beschrifteter Beispiele teuer oder unpraktisch ist
Beste Anwendungsfälle
RFT zeichnet sich besonders in Bereichen aus, in denen die Ausgabequalität objektiv gemessen werden kann, es jedoch schwierig ist, optimale Antworten im Voraus zu definieren:
-
Mathematische Problemlösung und Codegenerierung
-
Wissenschaftliches Denken und strukturierte Datenanalyse
-
Aufgaben, die step-by-step Argumentation oder mehrstufige Problemlösung erfordern
-
Anwendungen, die mehrere Ziele (Genauigkeit, Effizienz, Stil) unter einen Hut bringen
-
Szenarien, in denen der Erfolg programmatisch anhand von Ausführungsergebnissen oder Leistungskennzahlen verifiziert werden kann
Unterstützte Modelle
Nova Lite 2.0
Überblick über das Datenformat
RFT-Trainingsdaten müssen dem OpenAI Reinforcement Fine-Tuning-Format entsprechen.
-
Ein
messagesArray mit abwechselnden Konversationensystemund Rollenuser -
Ein
reference_answerFeld, das die erwarteten Ergebnis- oder Bewertungskriterien für die Berechnung der Belohnung enthält
Derzeitige Einschränkungen
-
Nur Text
Beispiele für Datenformate
Jedes Beispiel sollte sich in einer einzigen Zeile in Ihrer JSONL-Datei befinden, mit einem JSON-Objekt pro Zeile.
Das reference_answer Feld enthält die erwarteten Ausgabe- oder Bewertungskriterien, anhand derer Ihre Belohnungsfunktion die Antwort des Modells bewertet. Es ist nicht auf strukturierte Ausgaben beschränkt — es kann jedes Format enthalten, das Ihrer Belohnungsfunktion bei der Bewertung der Qualität hilft.
Empfehlungen zur Größe von Datensätzen
Ausgangspunkt
-
Mindestens 100 Trainingsbeispiele
-
Mindestens 100 Bewertungsbeispiele
Der Ansatz steht bei der Bewertung an erster Stelle
Bevor Sie in groß angelegte RFT-Schulungen investieren, sollten Sie die Ausgangsleistung Ihres Modells bewerten:
-
Hohe Leistung (> 95% Belohnung) — RFT ist möglicherweise unnötig — Ihr Modell schneidet bereits gut ab
-
Sehr schlechte Leistung (Prämie von 0%) — Wechseln Sie zuerst zu SFT, um die grundlegenden Funktionen zu verbessern
-
Mäßige Leistung — RFT ist wahrscheinlich angemessen
Wenn Sie mit einem kleinen Datensatz beginnen, können Sie:
-
Bestätigen Sie, dass Ihre Belohnungsfunktion fehlerfrei ist
-
Bestätigen Sie, dass RFT der richtige Ansatz für Ihren Anwendungsfall ist
-
Identifizieren und beheben Sie Probleme frühzeitig
-
Testen Sie den Workflow, bevor Sie ihn skalieren
Nach der Validierung können Sie auf größere Datensätze expandieren, um die Leistung weiter zu verbessern.
Merkmale effektiver Trainingsdaten
Klarheit und Kohärenz
Gute RFT-Beispiele erfordern klare, eindeutige Eingabedaten, die eine genaue Berechnung der Belohnung für verschiedene Modellergebnisse ermöglichen. Vermeiden Sie Rauschen in Ihren Daten, einschließlich:
-
Inkonsistente Formatierung
-
Widersprüchliche Bezeichnungen oder Anweisungen
-
Mehrdeutige Aufforderungen
-
Widersprüchliche Referenzantworten
Jede Unklarheit führt den Trainingsprozess in die Irre und führt dazu, dass das Modell unbeabsichtigte Verhaltensweisen erlernt.
Diversität
Ihr Datensatz sollte die gesamte Vielfalt der Anwendungsfälle in der Produktion erfassen, um eine robuste Leistung unter realen Bedingungen zu gewährleisten. Enthalten sind:
-
Verschiedene Eingabeformate und Sonderfälle
-
Bilden Sie die tatsächlichen Nutzungsmuster in der Produktion anhand von Protokollen und Benutzeranalysen ab
-
Sehen Sie sich verschiedene Benutzertypen, geografische Regionen und saisonale Schwankungen an
-
Schließe Schwierigkeitsgrade von einfachen bis hin zu komplexen Problemen ein
Überlegungen zur Belohnungsfunktion
Gestalten Sie Ihre Belohnungsfunktion für effizientes Training:
-
Innerhalb von Sekunden (nicht Minuten) ausführen
-
Effektive Parallelisierung mit Lambda
-
Geben Sie konsistente, zuverlässige Ergebnisse zurück
-
Gehen Sie elegant mit verschiedenen Arten von Modellausgaben um
Schnelle, skalierbare Belohnungsfunktionen ermöglichen schnelle Iterationen und kostengünstiges Experimentieren.
Zusätzliche Eigenschaften
Das RFT-Datenformat unterstützt benutzerdefinierte Felder, die über die grundlegenden Schemaanforderungen (messagesund) hinausgehen. reference_answer Dank dieser Flexibilität können Sie alle zusätzlichen Daten hinzufügen, die Ihre Prämienfunktion für eine korrekte Auswertung benötigt.
Anmerkung
Sie müssen dies nicht in Ihrem Rezept konfigurieren — das Datenformat unterstützt grundsätzlich zusätzliche Felder. Füge sie einfach in deine Trainingsdaten-JSON ein und sie werden an deine Belohnungsfunktion im Feld weitergegeben. metadata
Allgemeine zusätzliche Eigenschaften
Beispiele für Metadatenfelder:
-
task_id— Eindeutige Kennung für die Nachverfolgung -
difficulty_level— Indikator für die Komplexität des Problems -
domain— Fachgebiet oder Kategorie -
expected_reasoning_steps— Anzahl der Lösungsschritte
Beispiel mit zusätzlichen Eigenschaften
{ "messages": [ { "role": "system", "content": "You are a math tutor" }, { "role": "user", "content": "Solve: 2x + 5 = 13" } ], "reference_answer": { "solution": "x = 4", "steps": ["2x = 13 - 5", "2x = 8", "x = 4"] }, "task_id": "algebra_001", "difficulty_level": "easy", "domain": "algebra", "expected_reasoning_steps": 3 }
Diese zusätzlichen Felder werden während der Auswertung an Ihre Belohnungsfunktion übergeben und ermöglichen so eine ausgeklügelte Bewertungslogik, die auf Ihren speziellen Anwendungsfall zugeschnitten ist.
Konfiguration des Trainings
Beispielrezept
# Note: # This recipe can run on p5.48xlarge and p5en.48xlarge instance types. run: name: "my-rft-run" # Unique run name (appears in logs/artifacts). model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data file> # Training dataset in JSONL; replicas: 4 reward_lambda_arn: "" ## SMTJ GRPO Training specific configs training_config: max_length: 8192 # Context window (tokens) for inputs+prompt; global_batch_size: 16 # Total samples per optimizer step across all replicas (16/32/64/128/256). reasoning_effort: high # Enables reasoning mode high / low / or null for non-reasoning rollout: # How responses are generated for GRPO/advantage calc. advantage_strategy: number_generation: 2 # N samples per prompt to estimate advantages (variance vs cost). generator: max_new_tokens: 6000 # Cap on tokens generated per sample set_random_seed: true # Seed generation for reproducibility across runs. temperature: 1 # Softmax temperature; top_k: 1 # Sample only from top-K logits rewards: preset_reward_function: null # Usage of reward functions built into Verl [exact_match, code_executions, math_answers] api_endpoint: lambda_arn: "" lambda_concurrency_limit: 12 # Max concurrent Lambda invocations (throughput vs. throttling). trainer: max_steps: 2 # Steps to train for. One Step = global_batch_size save_steps: 5 test_steps: 1 save_top_k: 5 # RL parameters ent_coeff: 0.0 # A bonus added to the policy loss that rewards higher-output entropy. kl_loss_coef: 0.001 # Weight on the KL penalty between the actor (trainable policy) and a frozen reference model optim_config: # Optimizer settings lr: 7e-7 # Learning rate weight_decay: 0.0 # L2 regularization strength (0.0–1.0) adam_beta1: 0.9 adam_beta2: 0.95 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 32 lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0–100.0)
RFT-Training mit LLM als Richter
-Übersicht
Große Sprachmodelle (LLMs) werden zunehmend als Richter in Workflows zur Reinforcement-Feinabstimmung (RFT) eingesetzt, da sie automatisierte Belohnungssignale liefern, die als Richtschnur für die Modelloptimierung dienen. Bei diesem Ansatz bewertet ein LLM die Modellergebnisse anhand festgelegter Kriterien — sei es bei der Bewertung von Korrektheit, Qualität, Stiltreue oder semantischer Gleichwertigkeit — und vergibt Belohnungen, die den Reinforcement-Learning-Prozess vorantreiben.
Dies ist besonders nützlich für Aufgaben, bei denen traditionelle Belohnungsfunktionen programmatisch schwer zu definieren sind, z. B. um festzustellen, ob verschiedene Repräsentationen (wie „1/3“, „0,333“ und „ein Drittel“) semantisch gleichwertig sind, oder um nuancierte Eigenschaften wie Kohärenz und Relevanz zu bewerten. Durch die Verwendung von LLM-basierten Juroren als Belohnungsfunktionen können Sie RFT auf komplexe Bereiche skalieren, ohne dass umfangreiche menschliche Anmerkungen erforderlich sind. Dies ermöglicht eine schnelle Iteration und kontinuierliche Verbesserung Ihrer Modelle für verschiedene Anwendungsfälle, die über herkömmliche Ausrichtungsprobleme hinausgehen.
Auswahl des Argumentationsmodus
Verfügbare Modi
-
none — Keine Begründung (lassen Sie das Feld reasoning_effort weg)
-
niedrig — Minimaler Argumentationsaufwand
-
hoch — Maximales Argumentationsvermögen (Standard, wenn reasoning_effort angegeben ist)
Anmerkung
Es gibt keine mittlere Option für RFT. Wenn das Feld reasoning_effort in Ihrer Konfiguration nicht vorhanden ist, ist Reasoning deaktiviert. Wenn Argumentation aktiviert ist, sollten Sie den Wert auf 32768 setzen, um die Ausgabe erweiterter Argumentation max_new_tokens zu berücksichtigen.
Wann sollten die einzelnen Modi verwendet werden
Verwenden Sie gute Argumentation für:
-
Komplexe analytische Aufgaben
-
Mathematische Problemlösung
-
Mehrstufige logische Deduktion
-
Aufgaben, bei denen step-by-step Denken einen Mehrwert bietet
Verwende keine Argumentation (weglasse reasoning_effort) oder niedrige Argumentation für:
-
Einfache sachliche Fragen
-
Direkte Klassifizierungen
-
Geschwindigkeits- und Kostenoptimierung
-
Unkomplizierte Beantwortung von Fragen
Kompromisse bei Kosten und Leistung
Höhere Denkweisen nehmen zu:
-
Dauer und Kosten der Schulung
-
Latenz und Kosten von Inferenzen
-
Modellfähigkeit für komplexe Denkaufgaben
Validierung Ihres LLM-Richters
Bevor Sie einen LLM-as-a-judge in der Produktion einsetzen, überprüfen Sie, ob die Bewertungen des Richtermodells dem menschlichen Urteilsvermögen entsprechen. Dies beinhaltet:
-
Messen Sie die Übereinstimmungsraten zwischen dem LLM-Richter und menschlichen Gutachtern anhand repräsentativer Stichproben Ihrer Aufgabe
-
Sicherstellung, dass die Übereinstimmung zwischen dem LLM und den Menschen die zwischen den Menschen erzielten Übereinstimmungsraten erreicht oder sogar übertrifft
-
Identifizierung potenzieller Vorurteile im Richtermodell
-
Schaffen Sie die Gewissheit, dass das Belohnungssignal Ihr Modell in die beabsichtigte Richtung lenkt
Dieser Validierungsschritt trägt dazu bei, dass im Rahmen des automatisierten Bewertungsprozesses Modelle erstellt werden, die Ihren Qualitätskriterien für die Produktion entsprechen.
Lambda-Konfiguration für LLM Judge
Die Verwendung eines LLM als Richter ist eine Erweiterung der Verwendung von Lambda-Funktionen für Reinforcement Learning with Verifiable Rewards (RLVR). In der Lambda-Funktion rufen Sie eines der in Amazon Bedrock gehosteten Modelle auf.
Wichtige Konfigurationsanforderungen:
| Konfiguration | Anforderung | Details |
|---|---|---|
| Amazon Bedrock-Durchsatz | Ausreichende Quote | Stellen Sie sicher, dass Ihr Durchsatzkontingent für das verwendete Amazon Bedrock-Modell für Ihren Trainingsaufwand ausreicht |
| Lambda-Zeitüberschreitung | Verlängertes Timeout | Konfigurieren Sie Ihr Lambda-Funktions-Timeout auf maximal 15 Minuten. Die Standardeinstellung ist 3 Sekunden, was für Amazon Bedrock-Modellantworten nicht ausreichend ist |
| Lambda-Gleichzeitigkeit | Höhere Parallelität | Das Lambda wird während des Trainings parallel aufgerufen. Erhöhen Sie die Parallelität, um den verfügbaren Durchsatz zu maximieren |
| Konfiguration des Rezepts | Lambda-Einstellungen anpassen | Das Parallelitätslimit muss in Ihrem Rezept konfiguriert sein |
Jobs erstellen und ausführen
Einen Ausbildungsjob beginnen
Verwenden Sie die Notizbuchvorlage SageMaker AI Training Job: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook
Anforderungen an die Instanz
Der Container unterstützt sowohl Full-Rank- als auch LoRa-Schulungen:
-
LoRa-Schulung — 2/4/6/8 × p5.48xlarge- oder p5en.48xlarge-Instances
-
Schulung mit vollem Rang — 2/4/6/8 × p5.48xlarge-Instances (erforderlich)
Überwachung der Schulung
Die Trainingsprotokolle enthalten bei jedem Schritt umfassende Kennzahlen. Kategorien der wichtigsten Kennzahlen:
Kennzahlen belohnen
-
critic/rewards/mean,critic/rewards/max,critic/rewards/min— Verteilung der Prämien -
val-score/rewards/mean@1— Prämien für die Validierung
Verhalten modellieren
-
actor/entropy— Politische Variation (höher = eher explorativ)
Gesundheit trainieren
-
actor/pg_loss— Politischer Gradientenverlust -
actor/pg_clipfrac— Häufigkeit abgeschnittener Aktualisierungen -
actor/grad_norm— Größe des Gradienten
Eigenschaften der Reaktion
-
prompt_length/mean,prompt_length/max,prompt_length/min— Token-Statistiken eingeben -
response_length/mean,response_length/max,response_length/min— Token-Statistiken ausgeben -
response/aborted_ratio— Unvollständige Generierungsrate (0 = alles abgeschlossen)
Leistung
-
perf/throughput— Durchsatz des Trainings -
perf/time_per_step— Zeit pro Trainingsschritt -
timing_per_token_ms/*— Verarbeitungszeiten pro Token
Nutzung von Ressourcen
-
perf/max_memory_allocated_gb,perf/max_memory_reserved_gb— GPU-Speicher -
perf/cpu_memory_used_gb— CPU-Speicher
Verwendung fein abgestimmter Modelle
Nach Abschluss des Trainings wird der endgültige Modellprüfpunkt an Ihrem angegebenen Ausgabeort gespeichert. Der Checkpoint-Pfad ist verfügbar in:
-
Trainingsprotokolle
-
manifest.jsonDatei im Amazon S3 S3-Ausgabespeicherort (definiert durchoutput_s3_uriin Ihrem Notizbuch)
Einschränkungen und bewährte Methoden
Einschränkungen
-
Lambda-Timeout — Belohnungsfunktionen müssen innerhalb von 15 Minuten abgeschlossen sein (verhindert außer Kontrolle geratene Prozesse und verwaltet die Kosten)
-
Nur Single-Turn-Konversationen — Konversationen mit mehreren Turns werden nicht unterstützt
-
Datenanforderungen — Benötigt ausreichend Vielfalt; hat Probleme mit spärlichen Belohnungen (< 5% positive Beispiele)
-
Rechenkosten — Teurer als überwachte Feinabstimmung
-
Keine multimodalen Daten — Es wird nur der Textdatentyp unterstützt
Best Practices
Fangen Sie klein an
-
Beginnen Sie mit 100-200 Beispielen
-
Überprüfen Sie die Richtigkeit der Belohnungsfunktion
-
Skalieren Sie schrittweise auf der Grundlage der Ergebnisse
Bewertung vor dem Training
-
Testen Sie die Leistung des Basismodells vor der RFT
-
Liegen die Prämien durchweg bei 0%, verwenden Sie zunächst SFT, um die grundlegenden Funktionen festzulegen
-
Liegen die Prämien bei > 95%, ist RFT möglicherweise unnötig
Überwachen Sie das Training
-
Verfolge die durchschnittlichen Punktzahlen und die Verteilung der Prämien
-
Achten Sie auf Überanpassung (die Trainingsbelohnungen steigen, während die Validierungsprämien sinken)
-
Achten Sie auf besorgniserregende Muster:
-
Die Belohnungen bewegen sich auf einem Plateau unter 0,15
-
Zunehmende Varianz der Belohnungen im Laufe der Zeit
-
Sinkende Validierungsleistung
-
Optimieren Sie die Belohnungsfunktionen
-
Innerhalb von Sekunden (nicht Minuten) ausführen
-
Minimiere externe API-Aufrufe
-
Verwenden Sie effiziente Algorithmen
-
Implementieren Sie die richtige Fehlerbehandlung
-
Nutzen Sie die parallel Skalierung von Lambda
Iterationsstrategie
Wenn sich die Belohnungen nicht verbessern:
-
Passen Sie das Design der Belohnungsfunktion an
-
Erhöhen Sie die Vielfalt der Datensätze
-
Fügen Sie weitere repräsentative Beispiele hinzu
-
Stellen Sie sicher, dass die Belohnungssignale klar und konsistent sind
Erweiterte Funktionen: Nova Forge
Für Benutzer, die erweiterte Funktionen benötigen, die über die standardmäßigen RFT-Beschränkungen hinausgehen, ist Nova Forge als kostenpflichtiger Abonnementdienst erhältlich und bietet:
-
Unterstützung für Multi-Turn-Konversationen
-
Belohnen Sie Funktionen mit einer Ausführungszeit von > 15 Minuten
-
Zusätzliche Algorithmen und Optimierungsoptionen
-
Änderungen an benutzerdefinierten Trainingsrezepten
-
State-of-the-art KI-Techniken
Nova Forge basiert auf SageMaker KI HyperPod und wurde entwickelt, um Unternehmenskunden dabei zu unterstützen, ihre eigenen Grenzmodelle zu entwickeln.
Nützliche Befehle und Tipps
Es steht eine Sammlung von Observability-Skripten
Verfügbare Skripte sind:
-
Aktivierung von E-Mail-Benachrichtigungen für Statusaktualisierungen von Schulungsaufträgen
-
Abrufen von Schätzungen der Schulungszeit auf der Grundlage von Jobkonfigurationen
-
Einholung von Näherungswerten darüber, wie lange die Schulung für laufende Tätigkeiten voraussichtlich dauern wird
Installation
Anmerkung
Stellen Sie sicher, dass Sie Ihre AWS Anmeldeinformationen aktualisieren, bevor Sie eines der folgenden Skripts verwenden.
pip install boto3 git clone https://github.com/aws-samples/amazon-nova-samples.git cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/
Grundlegende Verwendung
# Enabling email notifications for training job status updates python enable_sagemaker_job_notifs.py --email test@amazon.com test2@gmail.com --region us-east-1 --platform SMTJ Creating resources........ Please check your email for a subscription confirmation email, and click 'Confirm subscription' to start receiving job status email notifications! You'll receive the confirmation email within a few minutes.
# Obtaining training time estimates based on job configurations python get_training_time_estimate.py
# Obtaining approximations for how long training is expected to take for in-progress jobs python get-training-job-progress.py --region us-east-1 --job-name my-training-job --num-dataset-samples 1000
Weitere Details und Beispiele finden Sie hier