RFT auf Nova 2.0 - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

RFT auf Nova 2.0

RFT-Trainingsdaten folgen dem OpenAI-Konversationsformat. Jedes Trainingsbeispiel ist ein JSON-Objekt, das Nachrichten, Referenzantworten und optionale Tooldefinitionen enthält. Dieser Abschnitt enthält Anleitungen zur Vorbereitung effektiver Trainingsdaten für RFT auf Nova 2.0.

Datenformat und Struktur

Jedes Trainingsbeispiel ist ein JSON-Objekt, das Folgendes enthält:

  • Nachrichten: Eine Reihe von Konversationsrunden mit System-, Benutzer- und optional Assistentenrollen

  • reference_answer: Erwartete Ausgabe- oder Bewertungskriterien für die Berechnung der Belohnung

  • tools (optional): Eine Reihe von Funktionsdefinitionen, die dem Modell zur Verfügung stehen

  • id (optional): Eindeutiger Bezeichner für Tracking und Deduplizierung

Jedes Beispiel sollte sich in einer einzigen Zeile in Ihrer JSONL-Datei befinden, mit einem JSON-Objekt pro Zeile.

Das folgende Beispiel zeigt ein chemisches Problem mit einer Referenzantwort, die Ground-Truth-Werte enthält:

{ "id": "chem-001", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C" } ], "reference_answer": { "donor_bond_counts": 2, "acceptor_bond_counts": 4, "explanation": "Calculated using Lipinski's rule of five: N-H groups (2 donors), N and O atoms with lone pairs (4 acceptors)" } }
Anmerkung

Die Datei reference_answer enthält Ground-Truth-Werte, die anhand domänenspezifischer Regeln berechnet wurden. Ihre Belohnungsfunktion vergleicht die vom Modell vorhergesagten Werte mit diesen Referenzwerten, um einen Belohnungsscore zu berechnen.

Das folgende Beispiel zeigt eine mathematische Aufgabe mit Lösungsschritten:

{ "id": "math-001", "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"] } }

Das folgende Beispiel zeigt die Verwendung von Tools mit erwartetem Verhalten:

{ "id": "tool-001", "messages": [ { "role": "system", "content": "You are a helpful game master assistant" }, { "role": "user", "content": "Generate a strength stat for a warrior character. Apply a +2 racial bonus modifier." } ], "tools": [ { "type": "function", "function": { "name": "StatRollAPI", "description": "Generates character stats by rolling 4d6, dropping the lowest die result, and applying a modifier.", "parameters": { "type": "object", "properties": { "modifier": { "description": "An integer representing the modifier to apply to the total of the stat roll.", "type": "integer" } }, "required": ["modifier"] } } } ], "reference_answer": { "tool_called": "StatRollAPI", "tool_parameters": { "modifier": 2 }, "expected_behavior": "Call StatRollAPI with modifier=2 and return the calculated stat value" } }

Beschreibungen der Felder

Feld

Description

Weitere Hinweise

Erforderlich

id

Eindeutiger Bezeichner für dieses RFT-Beispiel

Zeichenfolge (zum Beispiel „sample-001"). Nützlich für Tracking und Deduplizierung.

Nein

messages

Eine geordnete Liste von Chat-Nachrichten, die die Aufforderung und den Kontext definieren

Array von -Objekten. Das Model sieht sie in der richtigen Reihenfolge. Beginnt in der Regel mit einer Systemnachricht und dann mit einem Benutzer.

Ja

nachrichten [] .role

Wer spricht in der Nachricht

Allgemeine Werte: „System“, „Benutzer“ (manchmal „Assistent“ in anderen Kontexten)

Nein

nachrichten [] .content

Der Textinhalt der Nachricht

Einfache Zeichenfolge. Für das System sind es Anweisungen, für den Benutzer ist es die Aufgabe oder Eingabe.

Nein

Tools

In diesem Beispiel stehen dem Modell die Werkzeugspezifikationen zur Verfügung

Reihe. Jedes Element definiert die Oberfläche und die Metadaten eines Tools. Zu den Typen können „Funktion“ oder „intern“ gehören.

Ja

reference_answer

Die erwartete Modellausgabe für dieses Beispiel

Zeichenfolge oder Objekt, abhängig von der Aufgabe. Wird als Ziel für die Bewertung oder Schulung verwendet.

Nein

Anmerkung

Alle zusätzlichen benutzerdefinierten Felder (z. B. task_id, difficty_level, context_data) werden nicht validiert und als Metadaten an Ihre Belohnungsfunktion übergeben.

Zusätzliche Eigenschaften

Die Einstellung „additionalProperties“: true ermöglicht es Ihnen, benutzerdefinierte Felder einzubeziehen, die über die grundlegenden Schemaanforderungen hinausgehen, sodass Sie flexibel alle Daten hinzufügen können, die Ihre Belohnungsfunktion für eine korrekte Auswertung benötigt.

Allgemeine zusätzliche Felder

Sie können die folgenden Arten von zusätzlichen Feldern einbeziehen:

Metadaten:

  • task_id: Eindeutige Kennung für das Tracking

  • difficty_level: Indikator für die Komplexität des Problems

  • Domäne: Fachgebiet oder Kategorie

  • expected_reasoning_steps: Anzahl der Lösungsschritte

Bewertungskriterien:

  • Bewertungskriterien: Spezifische Bewertungsrubriken

  • custom_scoring_weights: Relative Bedeutung verschiedener Aspekte

  • context_data: Hintergrundinformationen zum Problem

  • external_references: Links zu relevanter Dokumentation oder Ressourcen

Beispiel mit zusätzlichen Eigenschaften

Das folgende Beispiel beinhaltet benutzerdefinierte Metadatenfelder:

{ "id": "algebra_001", "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 }

Empfehlungen zur Größe von Datensätzen

Ausgangspunkt

Beginnen Sie mit den folgenden Mindestgrößen für Datensätze:

  • Mindestens 100 Trainingsbeispiele

  • Mindestens 100 Bewertungsbeispiele

Priorisieren Sie hochwertige Eingabedaten und eine zuverlässige Belohnungsfunktion, die bei Modellantworten konsistent ausgeführt wird.

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 (mehr als 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

Dieser Ansatz, bei dem die Bewertung an erster Stelle steht, stellt sicher, dass Ihre Belohnungsfunktion fehlerfrei ist, und bestimmt, ob RFT die richtige Methode für Ihren Anwendungsfall ist. Wenn Sie klein anfangen, können Sie sich mit dem RFT-Workflow vertraut machen, Probleme frühzeitig erkennen und beheben, Ihren Ansatz validieren, bevor Sie ihn skalieren, und die Zuverlässigkeit der Belohnungsfunktion testen. 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.

Vielfalt

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 Problemtypen und Schwierigkeitsgrade

  • Verschiedene Eingabeformate und Sonderfälle

  • Repräsentative Stichproben aus allen erwarteten Szenarien

Diese Vielfalt trägt dazu bei, eine Überanpassung zu verhindern, und stellt sicher, dass das Modell auch unbekannte Eingaben problemlos verarbeitet.

Ü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 kosteneffizientes Experimentieren in großem Maßstab.