View a markdown version of this page

Preparazione dei dati per RFT su Amazon Nova 2 - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Preparazione dei dati per RFT su Amazon Nova 2

RFT su Amazon Nova 2 attualmente supporta dati di formazione basati su testo. Questa pagina descrive il formato dei dati, le funzionalità supportate, i vincoli e le best practice per la preparazione dei dati di addestramento RFT per i modelli Amazon Nova 2 Understanding.

Suggerimento

Per convalidare il formato del set di dati prima di iniziare un processo di formazione, consulta. Strumenti di convalida

Formato dei dati

I dati di formazione RFT seguono il formato OpenAI Reinforcement. Fine-Tuning https://developers.openai.com/api/docs/guides/reinforcement-fine-tuning#prepare-your-dataset Ogni riga del file di training JSONL è un oggetto JSON con i seguenti campi di primo livello. Espandi una sezione per saperne di più:

Obbligatorio. Una serie di turni di conversazione che utilizzano ruoli esystem, user assistant opzionalmente, ruoli.

  • ruolo: obbligatorio. Valori comuni: system (istruzioni per il modello) e user (l'attività o l'input).

  • contenuto: obbligatorio. Il contenuto testuale del messaggio. Per i turni di sistema si tratta di istruzioni; per i turni utente si tratta dell'operazione o dell'input.

"messages": [ { "role": "system", "content": "instructions" }, { "role": "user", "content": "prompt" } ]

Obbligatorio. L'output previsto o i criteri di valutazione utilizzati dalla funzione di ricompensa per assegnare un punteggio alla risposta del modello. Questo campo non si limita ai risultati strutturati: può contenere qualsiasi formato che aiuti la funzione di ricompensa a valutare la qualità.

"reference_answer": { "field": "value" }

Opzionale. Una serie di specifiche degli utensili disponibili per il modello durante questo esempio. Ogni elemento definisce l'interfaccia e i metadati di uno strumento. Per un esempio completo, vedere. Chiamata tramite strumento

"tools": [ { "type": "function", "function": { "name": "tool-name", "description": "tool-description", "parameters": { ... } } } ]

Il formato dati RFT supporta campi personalizzati oltre messages a. reference_answer Includi tutti i dati aggiuntivi necessari alla tua funzione di ricompensa per una corretta valutazione. Non è necessario configurarli nella ricetta: vengono trasmessi alla funzione di ricompensa sul metadata campo in fase di esecuzione.

Esempi comuni comprendono:

Metadati

  • id— Identificatore univoco per il tracciamento

  • task_id— identificatore Task-level

  • difficulty_level— Indicatore di complessità del problema

  • domain— Area o categoria tematica

  • expected_reasoning_steps— Numero di passaggi nella soluzione

Criteri di valutazione

  • evaluation_criteria— Rubriche di classificazione specifiche

  • custom_scoring_weights— Importanza relativa dei diversi aspetti

  • context_data— Informazioni di base sul problema

  • external_references— Collegamenti alla documentazione o alle risorse pertinenti

Convalida dei dati

Prima di inviare il lavoro di formazione, convalida il set di dati per individuare tempestivamente i problemi di formattazione. Per gli strumenti di convalida disponibili, vedere. Strumenti di convalida

Input di esempio

Di seguito sono riportati esempi completi di oggetti JSON che mostrano come combinare i campi per diversi casi d'uso di RFT.

Chemistry problem
{ "id": "chem-01", "messages": [ { "role": "system", "content": "You are a helpful chemistry assistant" }, { "role": "user", "content": "Calculate the molecular weight of caffeine (C8H10N4O2)" } ], "reference_answer": { "molecular_weight": 194.19, "unit": "g/mol", "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19" } }
Math problem
{ "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"] } }
Code problem
{ "id": "code-002", "messages": [ { "role": "system", "content": "You are a helpful programming assistant" }, { "role": "user", "content": "Write a Python function that reverses a string without using built-in reverse methods" } ], "reference_answer": { "code": "def reverse_string(s):\n result = ''\n for i in range(len(s) - 1, -1, -1):\n result += s[i]\n return result", "test_cases": [ { "input": "hello", "expected_output": "olleh" }, { "input": "", "expected_output": "" }, { "input": "a", "expected_output": "a" }, { "input": "Python123", "expected_output": "321nohtyP" } ], "all_tests_pass": true } }
Tool usage
{ "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" } }
With additional properties

L'esempio seguente include campi di metadati personalizzati che vengono passati alla funzione di ricompensa durante la valutazione, consentendo una sofisticata logica di punteggio adattata al caso d'uso specifico.

{ "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 }

Funzionalità supportate

La tabella seguente riassume il supporto delle funzionalità per RFT su Amazon Nova 2.

Supporto delle funzionalità RFT
Funzionalità RFT su Amazon Nova 2
Comprensione del testo Supportato su Nova 2.0 Lite. Consulta General/Text comprensione.
Comprensione delle immagini Non supportata
Comprensione dei video Non supportata
Comprensione dei documenti Non supportata
Chiamata tramite strumenti Supportato su Nova 2.0 Lite. Consulta Chiamata tramite strumento.
Ragionamento Supportato su Nova 2.0 Lite. Consulta Ragionamento.

General/Text comprensione

Questa sezione riassume i vincoli generali e le migliori pratiche per la preparazione dei dati di addestramento RFT su Amazon Nova 2.

Vincoli

Vincoli generali dei set di dati
Vincolo Informazioni
Formato del set di dati JSONL (un oggetto JSON per riga).
Esempi di formazione minimi 100
Esempi di valutazione minimi 100
Modalità supportate Solo testo

Best practice

  • Ti consigliamo di iniziare con le dimensioni minime dei set di dati (100 esempi di formazione e 100 esempi di valutazione) e di aumentarli dopo aver convalidato la funzione di ricompensa e confermato che l'RFT è appropriato per il tuo caso d'uso.

  • Consigliamo un approccio basato sulla valutazione. Prima di investire nella formazione RFT su larga scala, valutate le prestazioni di base del vostro modello:

    • Alte prestazioni (rendimento superiore al 95%): la RFT potrebbe non essere necessaria perché il modello funziona già bene.

    • Prestazioni molto scarse (ricompensa dello 0%): passa prima a SFT per stabilire le funzionalità di base.

    • Prestazioni moderate: l'RFT è probabilmente appropriato.

  • Partire da un piccolo set di dati ti aiuta a verificare che la tua funzione di ricompensa sia priva di bug, a confermare che RFT è l'approccio giusto, a identificare e risolvere i problemi in anticipo e a testare il flusso di lavoro prima di ampliarlo.

  • Dai priorità ai dati di input di alta qualità e a una funzione di ricompensa affidabile che venga eseguita in modo coerente sulle risposte del modello.

Esempio di input

{ "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"] } }

Chiamata tramite strumento

RFT supporta i modelli di addestramento sui modelli di chiamata degli strumenti, consentendo al modello di apprendere quando e come richiamare strumenti o funzioni esterni.

Vincoli

Vincoli di chiamata agli strumenti
Vincolo Informazioni
Posizione di definizione dello strumento Gli strumenti sono dichiarati nell'toolsarray di primo livello dell'esempio di addestramento.
Formato di definizione degli strumenti Ogni strumento deve includeretype, function.namefunction.description, e uno schema JSON valido infunction.parameters.
Risposta di riferimento Usala reference_answer per specificare l'invocazione prevista dello strumento (ad esempio,tool_called,tool_parameters) in modo che la funzione di ricompensa possa valutarne la correttezza.

Best practice

  • Assicurati che le definizioni degli strumenti siano coerenti in tutti gli esempi di formazione.

  • Il modello apprende i modelli di richiamo degli strumenti dalle dimostrazioni fornite.

  • Includi diversi esempi di quando usare ogni strumento e quando non usarlo.

Esempio di input

{ "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" } }

Ragionamento

RFT su Amazon Nova 2 supporta la modalità di ragionamento, in cui il modello genera segnali di pensiero espliciti prima di produrre una risposta definitiva. Puoi controllare il comportamento di ragionamento durante l'allenamento con il campo di configurazione dell'allenamento. reasoning_effort

Vincoli

Vincoli di ragionamento
Vincolo Informazioni
Modalità disponibili none(ometti il reasoning_effort campo)low, ehigh. Non è medium disponibile alcuna opzione per RFT.
Comportamento predefinito Se il reasoning_effort campo è assente dalla configurazione, il ragionamento è disabilitato.
Limite di token Quando il ragionamento è abilitato, imposta su 32768 max_new_tokens per consentire output di ragionamento estesi.

Quando usare ciascuna modalità

Usa il high ragionamento per:

  • Compiti analitici complessi

  • Risoluzione di problemi matematici

  • Multi-step deduzione logica

  • Compiti in cui il pensiero passo dopo passo aggiunge valore

Usa none (ometti) il nostro reasoning_effort ragionamento per: low

  • Semplici domande fattuali

  • Classificazioni dirette

  • Ottimizzazione della velocità e dei costi

  • Risposta semplice alle domande

Compromessi in termini di costi e prestazioni

Le modalità di ragionamento più elevate aumentano:

  • Tempi e costi della formazione

  • Latenza e costo dell'inferenza

  • Capacità del modello per attività di ragionamento complesse

Caratteristiche dei dati di addestramento efficaci

Chiarezza e coerenza

I buoni esempi di RFT richiedono dati di input chiari e inequivocabili che consentano un calcolo accurato delle ricompense tra i diversi output del modello. Evita il rumore nei tuoi dati, tra cui:

  • Formattazione incoerente

  • Etichette o istruzioni contraddittorie

  • Istruzioni ambigue

  • Risposte di riferimento contrastanti

Qualsiasi ambiguità indurrà in errore il processo di formazione e farà sì che il modello apprenda comportamenti non intenzionali.

Diversità

Il tuo set di dati dovrebbe cogliere l'intera diversità dei casi d'uso in produzione per garantire solide prestazioni nel mondo reale. Includi:

  • Diversi formati di input e casi limite

  • Mappa i modelli effettivi di utilizzo della produzione a partire da registri e analisi degli utenti

  • Esamina i tipi di utenti, le aree geografiche e le variazioni stagionali

  • Includi livelli di difficoltà, dai problemi semplici a quelli complessi

Considerazioni sulla funzione di ricompensa

Progetta la tua funzione di ricompensa per un allenamento efficiente:

  • Esegui in pochi secondi (non minuti)

  • Parallelizza in modo efficace con Lambda

  • Restituisci punteggi coerenti e affidabili

  • Gestisci con garbo diversi tipi di output del modello

Le funzioni di ricompensa veloci e scalabili consentono un'iterazione rapida e una sperimentazione conveniente.

Formazione RFT utilizzando LLM come giudice

Panoramica di

I Large Language Models (LLM) vengono sempre più utilizzati come giudici nei flussi di lavoro RFT (Reinforcement Fine Tuning), che forniscono segnali di ricompensa automatici che guidano l'ottimizzazione dei modelli. In questo approccio, un LLM valuta i risultati del modello in base a criteri specifici, che si tratti di correttezza, qualità, aderenza stilistica o equivalenza semantica, e assegna ricompense che guidano il processo di reinforcement learning.

Ciò è particolarmente utile per le attività in cui le tradizionali funzioni di ricompensa sono difficili da definire programmaticamente, come determinare se rappresentazioni diverse (come "1/3«, «0,333" e «un terzo») sono semanticamente equivalenti o valutare qualità sfumate come coerenza e pertinenza. Utilizzando LLM-based i giudici come funzioni di ricompensa, è possibile adattare RFT a domini complessi senza richiedere un'ampia annotazione umana, consentendo una rapida iterazione e un miglioramento continuo dei modelli in diversi casi d'uso oltre ai tradizionali problemi di allineamento.

Convalida del tuo giudice LLM

Prima di implementarne uno LLM-as-a-judge in produzione, verificate che le valutazioni del modello di giudice siano in linea con il giudizio umano. Questa operazione prevede:

  • Misurazione dei tassi di concordanza tra il giudice LLM e i valutatori umani su campioni rappresentativi del vostro compito

  • Garantire che l'accordo del LLM con gli esseri umani soddisfi o superi i tassi di accordo interumani

  • Identificazione di potenziali pregiudizi nel modello di giudice

  • Acquisire la certezza che il segnale di ricompensa guidi il modello nella direzione prevista

Questa fase di convalida aiuta a garantire che il processo di valutazione automatizzato produca modelli che soddisfano i criteri di qualità della produzione.

Configurazione Lambda per il giudice LLM

L'utilizzo di un LLM come giudice è un'estensione dell'uso delle funzioni Lambda per il Reinforcement Learning with Verifiable Rewards (RLVR). All'interno della funzione Lambda, effettui una chiamata a uno dei modelli ospitati in Amazon Bedrock.

Requisiti di configurazione importanti:

Configurazione Requisito Informazioni
Throughput di Amazon Bedrock Quota sufficiente Assicurati che la tua quota di throughput per il modello Amazon Bedrock utilizzato sia sufficiente per il carico di lavoro di formazione
Timeout Lambda Timeout prolungato Configura il timeout della funzione Lambda fino a un massimo di 15 minuti. L'impostazione predefinita è di 3 secondi, insufficiente per le risposte del modello Amazon Bedrock
Simultaneità Lambda Maggiore concorrenza La Lambda viene richiamata in parallelo durante l'allenamento. Aumenta la concorrenza per massimizzare la produttività disponibile
Configurazione delle ricette Abbina le impostazioni Lambda Il limite di concorrenza deve essere configurato nella tua ricetta