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.
Themen
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.