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à.
Rinforzo Fine-Tuning (RFT) con modelli Amazon Nova
Panoramica di
Che cos'è RFT?
Il Reinforcement Fine-Tuning (RFT) migliora le prestazioni del modello addestrandosi sui segnali di feedback (punteggi misurabili o premi che indicano le prestazioni del modello) anziché sulle risposte esatte e corrette. A differenza della regolazione fine supervisionata (SFT), che apprende dalle coppie input-output, RFT utilizza funzioni di ricompensa per valutare le risposte del modello e ottimizza iterativamente il modello per massimizzare tali ricompense. Questo approccio eccelle quando è difficile definire l'output esatto e corretto, ma è possibile misurare in modo affidabile la qualità della risposta.
Quando usare RFT
Utilizza RFT quando puoi definire criteri di successo chiari e misurabili, ma è difficile fornire risultati esatti e corretti per la formazione. RFT è ideale per:
-
Attività in cui la qualità è soggettiva o multiforme (scrittura creativa, ottimizzazione del codice, ragionamento complesso)
-
Scenari con più soluzioni valide in cui alcune sono chiaramente migliori di altre
-
Applicazioni che richiedono miglioramento iterativo, personalizzazione o rispetto di regole aziendali complesse
-
Casi in cui la raccolta di esempi etichettati di alta qualità è costosa o poco pratica
I migliori casi d'uso
RFT eccelle nei settori in cui la qualità dell'output può essere misurata oggettivamente, ma le risposte ottimali sono difficili da definire in anticipo:
-
Risoluzione di problemi matematici e generazione di codice
-
Ragionamento scientifico e analisi strutturata dei dati
-
Attività che richiedono un ragionamento passo dopo passo o la risoluzione di problemi in più fasi
-
Applicazioni che bilanciano più obiettivi (precisione, efficienza, stile)
-
Scenari in cui il successo può essere verificato a livello di codice attraverso i risultati di esecuzione o le metriche delle prestazioni
Modelli supportati
Nova Lite 2.0
Panoramica del formato dei dati
I dati di addestramento RFT devono seguire il formato OpenAI Fine-Tuning Reinforcement.
-
Un
messagesarray con turni di conversazione, utilizzo e ruolisystemuser -
Un
reference_answercampo contenente l'output previsto o i criteri di valutazione per il calcolo della ricompensa
Limitazioni attuali
-
Solo testo
Esempi di formati di dati
Ogni esempio deve essere su una sola riga del file JSONL, con un oggetto JSON per riga.
Il reference_answer campo contiene l'output previsto o i criteri di valutazione utilizzati dalla funzione di ricompensa per assegnare un punteggio alla risposta del modello. Non si limita agli output strutturati, ma può contenere qualsiasi formato che aiuti la funzione di ricompensa a valutare la qualità.
Consigli sulle dimensioni dei set di dati
Punto di partenza
-
Minimo 100 esempi di formazione
-
Minimo 100 esempi di valutazione
Evaluation-first approccio
Prima di investire nella formazione RFT su larga scala, valuta le prestazioni di base del tuo modello:
-
Prestazioni elevate (ricompensa superiore al 95%): la tecnologia RFT potrebbe non essere necessaria: il modello offre già buone prestazioni
-
Prestazioni molto scarse (ricompensa dello 0%): passate innanzitutto a SFT per stabilire le funzionalità di base
-
Prestazioni moderate: la tecnologia RFT è probabilmente appropriata
Iniziare con un set di dati di piccole dimensioni consente di:
-
Verifica che la tua funzione di ricompensa sia priva di bug
-
Conferma che RFT è l'approccio giusto per il tuo caso d'uso
-
Identifica e risolvi tempestivamente i problemi
-
Testa il flusso di lavoro prima di ampliarlo
Una volta convalidato, puoi espanderlo a set di dati più grandi per migliorare ulteriormente le prestazioni.
Caratteristiche dei dati di allenamento efficaci
Chiarezza e coerenza
I buoni esempi RFT richiedono dati di input chiari e inequivocabili che consentano un calcolo accurato della ricompensa tra i diversi output del modello. Evita il rumore nei tuoi dati, tra cui:
-
Formattazione non coerente
-
Etichette o istruzioni contraddittorie
-
Istruzioni ambigue
-
Risposte di riferimento contrastanti
Qualsiasi ambiguità indurrà in errore il processo di formazione e indurrà il modello ad apprendere comportamenti non intenzionali.
Diversità
Il tuo set di dati dovrebbe catturare l'intera diversità dei casi d'uso di produzione per garantire solide prestazioni nel mondo reale. Include:
-
Diversi formati di input e custodie periferiche
-
Mappa i modelli effettivi di utilizzo della produzione sulla base dei log e delle analisi degli utenti
-
Esamina diversi tipi di utenti, aree geografiche e variazioni stagionali
-
Includi livelli di difficoltà da problemi semplici a problemi complessi
Considerazioni sulla funzione di ricompensa
Progetta la tua funzione di ricompensa per un allenamento efficiente:
-
Esegui in pochi secondi (non in minuti)
-
Parallelizza efficacemente con Lambda
-
Restituisci punteggi coerenti e affidabili
-
Gestisci con eleganza diversi tipi di output del modello
Le funzioni di ricompensa veloci e scalabili consentono un'iterazione rapida e una sperimentazione conveniente.
Proprietà aggiuntive
Il formato di dati RFT supporta campi personalizzati oltre ai requisiti di base dello schema (e). messages reference_answer Questa flessibilità consente di aggiungere tutti i dati aggiuntivi necessari alla funzione di ricompensa per una corretta valutazione.
Nota
Non è necessario configurarlo nella ricetta: il formato dei dati supporta intrinsecamente campi aggiuntivi. Basta includerli nei dati di allenamento JSON e verranno passati alla funzione di ricompensa sul campo. metadata
Proprietà aggiuntive comuni
Campi di metadati di esempio:
-
task_id— Identificatore univoco per il tracciamento -
difficulty_level— Indicatore di complessità del problema -
domain— Area o categoria tematica -
expected_reasoning_steps— Numero di passaggi della soluzione
Esempio con proprietà aggiuntive
{ "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 }
Questi campi aggiuntivi vengono passati alla funzione di ricompensa durante la valutazione, abilitando una sofisticata logica di punteggio personalizzata in base al caso d'uso specifico.
Configurazione di addestramento
Ricetta di esempio
# Note: # This recipe can run on p5.48xlarge, p5e.48xlarge, and p5en.48xlarge instance types. run: name: "my-rft-run" # Unique run name (appears in logs and 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 format. replicas: 4 # Number of total training instances. generation_replicas: 2 # Number of total instances dedicated to response generation. reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> ## MLFlow configs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-rft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-rft-run" # Optional for MLFlow. Note: leave this field non-empty ## SMTJ RFT training configs training_config: max_length: 8192 # Context window (tokens) for inputs and prompt. global_batch_size: 32 # Total samples per optimizer step across all replicas (16/32/64/128/256). reasoning_effort: high # Reasoning mode: high, low, or null for non-reasoning. data: shuffle: true # Shuffle training data each epoch. rollout: # Controls how responses are generated for advantage calculation. rollout_strategy: type: off_policy_async # Asynchronous rollout for higher throughput. age_tolerance: 2 # Maximum policy age before regeneration. advantage_strategy: number_generation: 4 # Samples per prompt to estimate advantages (higher = lower variance but higher 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 for sampling. rewards: preset_reward_function: null # Preset reward functions: exact_match or null for custom. api_endpoint: lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> lambda_concurrency_limit: 12 # Max concurrent Lambda invocations (throughput vs. throttling). lambda_batch_size: 128 # Number of samples per Lambda invocation. trainer: max_steps: 2 # Steps to train for. One step = global_batch_size samples. save_steps: 5 # Save a checkpoint every N steps. test_steps: 1 # Run validation every N reference model updates. refit_freq: 4 # Frequency of reference model updates. clip_ratio_high: 0.2 # PPO clip ratio for policy updates. loss_scale: 1.0 # Scaling factor for the policy loss. # RL parameters ent_coeff: 0.0 # Entropy bonus added to the policy loss (higher = more exploration). kl_loss_coef: 0.0 # Weight on the KL penalty between the current and reference policy. optim_config: # Optimizer settings. lr: 1e-6 # Learning rate. weight_decay: 0.0 # L2 regularization strength (0.0 to 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: 64 # LoRA scaling factor. lora_plus_lr_ratio: 64.0 # LoRA+ learning rate scaling factor (0.0 to 100.0).
Formazione RFT utilizzando LLM come giudice
Panoramica di
I modelli linguistici di grandi dimensioni (LLM) vengono sempre più utilizzati come giudici nei flussi di lavoro di reinforcement fine-tuning (RFT), 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 valutare la correttezza, la qualità, l'aderenza allo stile o l'equivalenza semantica, e assegna premi che guidano il processo di reinforcement learning.
Ciò è particolarmente utile per le attività in cui le funzioni di ricompensa tradizionali 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, puoi scalare RFT su domini complessi senza richiedere ampie annotazioni umane, consentendo una rapida iterazione e il miglioramento continuo dei tuoi modelli in diversi casi d'uso oltre ai tradizionali problemi di allineamento.
Selezione della modalità di ragionamento
Modalità disponibili
-
none — Nessun ragionamento (ometti il campo reasoning_effort)
-
low — Sovraccarico minimo di ragionamento
-
high — Capacità massima di ragionamento (impostazione predefinita quando è specificato reasoning_effort)
Nota
Non esiste un'opzione media per RFT. Se il campo reasoning_effort non è presente nella configurazione, il ragionamento è disabilitato. Quando il ragionamento è abilitato, è necessario max_new_tokens impostarlo su 32768 per accogliere output di ragionamento estesi.
Quando usare ciascuna modalità
Usa un ragionamento elevato per:
-
Compiti analitici complessi
-
Risoluzione di problemi matematici
-
Multi-step deduzione logica
-
Attività in cui il pensiero graduale aggiunge valore
Usa none (ometti reasoning_effort) o low reasoning per:
-
Semplici domande fattuali
-
Classificazioni dirette
-
Ottimizzazione della velocità e dei costi
-
Risposta semplice alle domande
Compromessi in termini di costi e prestazioni
Aumentano le modalità di ragionamento più elevate:
-
Tempi e costi della formazione
-
Latenza e costi dell'inferenza
-
Capacità di modellazione per attività di ragionamento complesse
Convalida del tuo giudice LLM
Prima di implementarne uno LLM-as-a-judge in produzione, verifica che le valutazioni del modello arbitrale siano in linea con il giudizio umano. Questa operazione prevede:
-
Misurazione dei tassi di concordanza tra il giudice del 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 del giudice
-
Acquisire la fiducia 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 soddisfino i criteri di qualità della produzione.
Configurazione Lambda per LLM judge
L'utilizzo di un LLM come giudice è un'estensione dell'utilizzo 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 |
|---|---|---|
| Produttività di Amazon Bedrock | Quota sufficiente | Assicurati che la tua quota di throughput per il modello Amazon Bedrock utilizzato sia sufficiente per il tuo 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, il che non è sufficiente 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 velocità effettiva disponibile |
| Configurazione della ricetta | Abbina le impostazioni Lambda | Il limite di concorrenza deve essere configurato nella ricetta |
Creazione ed esecuzione di lavori
Avvio di un lavoro di formazione
Usa il modello di taccuino per i lavori di SageMaker formazione: https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook
Requisiti dell'ist
Il contenitore supporta sia Full-Rank la formazione LoRa che:
-
Formazione LoRa — istanze 2/4/6/8 × p5.48xlarge o p5en.48xlarge
-
Full-Rank formazione 2/4 — istanze6/8 /× p5.48xlarge (obbligatorio)
Monitoraggio della formazione
I registri di formazione includono metriche complete per ogni fase. Categorie metriche chiave:
Metriche sulle ricompense
-
critic/rewards/mean,critic/rewards/max,critic/rewards/min— Distribuzione dei premi -
val-score/rewards/mean@1— Premi di convalida
Comportamento del modello
-
actor/entropy— Variazione delle politiche (maggiore = più esplorativa)
Formazione e salute
-
actor/pg_loss— Perdita del gradiente politico -
actor/pg_clipfrac— Frequenza degli aggiornamenti interrotti -
actor/grad_norm— Magnitudine del gradiente
Caratteristiche di risposta
-
prompt_length/mean,prompt_length/max,prompt_length/min— Statistiche sui token di input -
response_length/mean,response_length/max,response_length/min— Statistiche sui token di output -
response/aborted_ratio— Frequenza di generazione incompleta (0 = tutto completato)
Prestazioni
-
perf/throughput— Produttività della formazione -
perf/time_per_step— Tempo per fase di allenamento -
timing_per_token_ms/*— tempi Per-token di elaborazione
utilizzo delle risorse
-
perf/max_memory_allocated_gb,perf/max_memory_reserved_gb— Memoria GPU -
perf/cpu_memory_used_gb— memoria CPU
Utilizzo di modelli ottimizzati
Al termine dell'addestramento, il checkpoint finale del modello viene salvato nella posizione di output specificata. Il percorso del checkpoint è disponibile in:
-
Registri di allenamento
-
manifest.jsonfile nella posizione di output di Amazon S3 (definitaoutput_s3_urinel notebook)
Limitazioni e best practice
Limitazioni
-
Timeout Lambda: le funzioni Reward devono essere completate entro 15 minuti (previene processi inutili e gestisce i costi)
-
Single-turn solo: le Multi-turn conversazioni non sono supportate
-
Requisiti in materia di dati: richiede una diversità sufficiente; ha difficoltà con ricompense scarse (esempi positivi inferiori al 5%)
-
Costo computazionale: più costoso della messa a punto supervisionata
-
Nessun dato multimodale: è supportato solo il tipo di dati di testo
Best practice
Inizia in piccolo
-
Inizia con 100-200 esempi
-
Convalida la correttezza della funzione di ricompensa
-
Scala gradualmente in base ai risultati
Pre-training valutazione
-
Verifica le prestazioni del modello di base prima di RFT
-
Se i premi sono costantemente pari allo 0%, utilizza prima SFT per stabilire le funzionalità di base
-
Se i premi sono superiori al 95%, la RFT potrebbe non essere necessaria
Monitora la formazione
-
Tieni traccia dei punteggi e della distribuzione medi dei premi
-
Fai attenzione all'overfitting (i premi di formazione aumentano mentre i premi di convalida diminuiscono)
-
Cerca i modelli riguardanti:
-
I premi si stabilizzano al di sotto di 0,15
-
Aumento della varianza delle ricompense nel tempo
-
Diminuzione delle prestazioni di convalida
-
Ottimizza le funzioni di ricompensa
-
Esegui in pochi secondi (non in minuti)
-
Riduci al minimo le chiamate API esterne
-
Utilizza algoritmi efficienti
-
Implementa una corretta gestione degli errori
-
Sfrutta la scalabilità parallela di Lambda
Strategia di iterazione
Se le ricompense non migliorano:
-
Modifica il design della funzione di ricompensa
-
Aumenta la diversità dei set di dati
-
Aggiungi altri esempi rappresentativi
-
Verifica che i segnali di ricompensa siano chiari e coerenti
Apprendimento adattivo del curriculum
L'apprendimento adattivo del curriculum è una funzionalità opzionale che seleziona dinamicamente quali istruzioni di formazione presentare al modello durante la RFT. Invece di allenarsi in modo uniforme su tutte le istruzioni, il formatore utilizza il modello stesso per prevedere la difficoltà immediata e seleziona i suggerimenti nell'intervallo di difficoltà produttivo, in cui il modello a volte ha successo e talvolta fallisce. Ciò massimizza la varianza dei risultati all'interno di ciascun gruppo di implementazione GRPO, producendo un segnale di vantaggio più elevato, una convergenza più rapida e una migliore stabilità dell'allenamento RL riducendo i rumorosi aggiornamenti del gradiente da richieste troppo facili o troppo difficili.
Come funziona il curriculum adattivo
Quando il curriculum adattivo è abilitato, il ciclo di formazione aggiunge una fase di previsione e selezione prima di ogni fase di implementazione:
-
Previsione: il modello prevede la percentuale di successo (o il differenziale di ricompensa) per ogni richiesta di candidatura utilizzando un formato di previsione a pochi scatti. Tre esempi della fase di allenamento precedente (uno facile, uno medio, uno difficile) forniscono un contesto di calibrazione.
-
Selezione: i prompt vengono classificati in base al grado di prossimità della difficoltà prevista all'obiettivo di selezione (impostazione predefinita: percentuale di superamento del 50%). I prompt migliori vengono approvati per l'implementazione; gli altri vengono scartati senza consumare le risorse necessarie per l'implementazione.
-
Formazione: la formazione GRPO standard procede in base alle istruzioni selezionate.
-
Feedback: le percentuali di superamento effettive del lancio vengono confrontate con le previsioni. L'obiettivo di selezione viene calibrato automaticamente per correggere distorsioni di previsione sistematiche. Un gradiente REINFORCE allena il predittore per migliorare le previsioni future.
Quando usare un curriculum adattivo
Il curriculum adattivo è più efficace nei seguenti scenari:
-
Desiderate migliorare la stabilità dell'allenamento RL assicurandovi che ogni batch di formazione contenga istruzioni con una variazione significativa delle ricompense, riducendo i rumorosi aggiornamenti del gradiente che possono destabilizzare l'apprendimento.
-
Hai confermato che la tecnologia RFT di base migliora la metrica target.
-
Vuoi accelerare la convergenza concentrando l'addestramento dell'elaborazione sulle richieste più produttive.
-
Il set di dati è di grandi dimensioni (oltre 5.000 richieste) e contiene molti prompt che non rientrano nell'intervallo di difficoltà produttiva che altrimenti sprecherebbero le risorse di calcolo.
Configurazione del curriculum adattivo
Aggiungi il adaptive_curriculum blocco sotto trainer alla tua ricetta per abilitare l'apprendimento adattivo del curriculum:
training_config: trainer: adaptive_curriculum: enable: true # Enable adaptive curriculum prompt selection. selection_pool_multiplier: 8 # Score 8 x global_batch_size candidates, keep best global_batch_size. prediction_mode: pass_rate # "pass_rate" for discrete rewards; "spread" for continuous rewards. exemplar_history_steps: 1 # Previous training steps kept in the rolling exemplar history buffer. reinforce_coef: 0.01 # Scale factor for the REINFORCE loss that trains the predictor (0 disables). predictor_prompt_column: predictor_prompt # Dataset field with clean problem text used by the predictor. selection_lookahead_steps: 4 # Future training batches pre-approved per curriculum screening pass.
La tabella seguente descrive ogni parametro adattivo del curriculum:
| Parametro | Tipo | Predefinita | Description |
|---|---|---|---|
enable |
Booleano | false |
Se abilitare la selezione rapida del curriculum adattivo. |
selection_pool_multiplier |
Numero intero (1—32) | 8 |
Controlla il numero di istruzioni dei candidati a cui viene assegnato un punteggio rispetto alla dimensione del batch di formazione. Un valore pari a 8 indica che viene assegnato un punteggio pari a 8 × le global_batch_size istruzioni e vengono selezionate le migliori. global_batch_size Valori più alti offrono una migliore qualità di selezione ma costano di più in termini di calcolo inferenziale. |
prediction_mode |
Stringa | pass_rate |
Modalità di previsione per una rapida stima della difficoltà. Utilizzabile pass_rate per attività di ricompensa discrete (ad esempio, controllo della correttezza) in cui il predittore stima la probabilità di una risposta corretta. Utilizzalo spread per attività di ricompensa continue in cui il predittore stima la ricompensa massima minima distribuita tra le implementazioni. |
exemplar_history_steps |
Numero intero (≥1) | 1 |
Numero di fasi di addestramento precedenti da conservare nel buffer Rolling History per la selezione dei campioni. Il predittore utilizza esempi tratti da questa cronologia per calibrare le sue previsioni in pochi istanti. |
reinforce_coef |
Numero (≥0) | 0.01 |
Fattore di scala per la perdita REINFORCE che addestra il predittore del pass-rate. Ciò consente un apprendimento a ciclo chiuso in cui il predittore migliora la sua precisione nel corso dell'allenamento. Imposta su 0 per disabilitare l'addestramento dei predittori. |
predictor_prompt_column |
Stringa | predictor_prompt |
Nome del campo nel set di dati contenente il testo corretto del problema utilizzato come prompt del predittore. Questa dovrebbe essere una versione concisa del problema senza istruzioni di sistema o formattazione, in modo che il predittore possa valutare rapidamente la difficoltà. |
selection_lookahead_steps |
Numero intero (1—16) | 4 |
Numero di future sessioni di formazione da approvare preventivamente in un unico pass di screening del curriculum per fase. Ogni passaggio assegna un punteggio selection_pool_multiplier × global_batch_size ai candidati per fase; valori di selection_lookahead_steps ripetizione più elevati vengono ripetuti più volte per creare una coda di prompt approvati, il che riduce il sovraccarico di predittori per fase su set di dati con richieste brevi. Per i set di dati a lungo contesto in cui il predittore stesso è costoso (consulta la sezione dei consigli), impostalo in modo che il predittore venga eseguito solo una volta per passaggio. 1 |
Consigli per set di dati a lungo contesto
Il curriculum adattivo funziona eseguendo un leggero predittore del tasso di successo su un pool di richieste dei candidati e selezionando il batch più produttivo da implementare. Quando max_prompt_length è breve (qualche migliaio di token o meno), il predittore viene eseguito in pochi secondi per ogni passaggio di screening e le spese generali relative al curriculum sono trascurabili. Quando la lunghezza del prompt aumenta, il tempo di inferenza del predittore aumenta all'incirca in modo quadratico (l'attenzione è O (n²) nella lunghezza della sequenza), quindi lo screening può dominare la fase temporale sui set di dati in cui i prompt superano circa 8.000 token.
Nota
Il curriculum adattivo è supportato per un massimo di 32.768 token (32.000). max_prompt_length L'attivazione su set di dati che superano questa lunghezza non è supportata; disabilita il curriculum adattivo o abbrevia i prompt prima dell'allenamento.
Le impostazioni seguenti mantengono il curriculum adattivo utilizzabile ed economico su set di dati a lungo termine. Applicatele insieme; riguardano diverse componenti dei costi di screening.
Tipico max_prompt_length |
Impostazioni adattive consigliate per il curriculum |
|---|---|
| Fino a 8.000 token | Usa i valori predefiniti:,. selection_pool_multiplier: 8 selection_lookahead_steps: 4 Il sovraccarico di screening è ridotto e non necessita di regolazione. |
| Oltre 8K e fino a 16.000 token | Imposta selection_lookahead_steps: 2. In questo modo si dimezza il numero di passaggi dei predittori per fase, mantenendo in coda un numero sufficiente di istruzioni preapprovate per evitare che il lancio venga interrotto. |
| Oltre 16.000 e fino a 24.000 token | Conserva selection_lookahead_steps: 2 e abbassa a. selection_pool_multiplier 4 Il pool più piccolo dimezza la dimensione del batch di predittori, con un certo impatto sulla qualità della selezione; insieme questi elementi mantengono limitato il tempo di screening per fase. |
| Oltre 24.000 e fino a 32.000 token | Utilizzo di selection_pool_multiplier: 4 con selection_lookahead_steps: 1. Il predittore viene eseguito una volta per fase di allenamento su un pool di dimensioni minime. Questa è l'impostazione supportata più aggressiva; non è supportato superare i 32K. |
Esempio di configurazione ottimizzata per un set di dati a contesto lungo (circa 24-32K token prompt):
training_config: max_length: 32768 global_batch_size: 32 trainer: adaptive_curriculum: enable: true selection_pool_multiplier: 4 # Smaller pool keeps predictor prefill bounded. selection_lookahead_steps: 1 # Predictor runs once per training step. prediction_mode: pass_rate exemplar_history_steps: 1 reinforce_coef: 0.01 predictor_prompt_column: predictor_prompt
Preparazione dei dati per un curriculum adattivo
Quando si utilizza un curriculum adattivo, i dati di allenamento devono includere un predictor_prompt campo (o il nome del campo specificato inpredictor_prompt_column) contenente una versione concisa del testo del problema. Questo campo viene utilizzato dal pass-rate predittore per valutare rapidamente la difficoltà immediata senza elaborare l'intero contesto della conversazione.
Esempio di immissione JSONL con prompt predittivo:
{ "messages": [ { "role": "system", "content": "You are a math tutor. Show your work step by step." }, { "role": "user", "content": "A train travels 120 miles in 2 hours. If it then increases speed by 50%, how far will it travel in the next 3 hours?" } ], "reference_answer": "270 miles", "predictor_prompt": "A train travels 120 miles in 2 hours. Speed increases 50%. Distance in next 3 hours?" }
Se il predictor_prompt campo non è presente, il sistema torna a utilizzare il prompt completo del campo. messages
Esempio completo di ricetta con curriculum adattivo
L'esempio seguente mostra una ricetta LoRa RFT completa con curriculum adattivo abilitato:
run: name: "my-rft-adaptive-curriculum" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://<bucket>/<data-file> replicas: 4 generation_replicas: 2 reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name> training_config: max_length: 8192 global_batch_size: 32 reasoning_effort: null # Non-reasoning mode. data: shuffle: true rollout: rollout_strategy: type: off_policy_async age_tolerance: 2 advantage_strategy: number_generation: 16 # Higher n for better advantage estimates. generator: max_new_tokens: 6000 temperature: 1.0 rewards: preset_reward_function: exact_match # Or null for custom Lambda reward. api_endpoint: lambda_arn: ${oc.select:run.reward_lambda_arn} # Reuse the top-level run.reward_lambda_arn so the two stay in sync. lambda_concurrency_limit: 12 lambda_batch_size: 128 trainer: max_steps: 500 save_steps: 50 test_steps: 25 refit_freq: 4 clip_ratio_high: 0.2 ent_coeff: 0.0 kl_loss_coef: 0.0 optim_config: lr: 1e-6 weight_decay: 0.0 peft: peft_scheme: "lora" lora_tuning: alpha: 64 lora_plus_lr_ratio: 64.0 adaptive_curriculum: enable: true selection_pool_multiplier: 8 prediction_mode: pass_rate exemplar_history_steps: 1 reinforce_coef: 0.01 predictor_prompt_column: predictor_prompt
Monitoraggio del curriculum adattivo
Quando il curriculum adattivo è abilitato, vengono registrate metriche aggiuntive in ogni fase della formazione:
-
Frequenza di superamento prevista rispetto a quella effettiva: la frequenza di superamento media prevista per le richieste selezionate rispetto alla frequenza di superamento effettiva osservata dopo l'implementazione. Un ampio divario indica che il predittore necessita di più tempo di calibrazione.
-
Obiettivo di selezione: l'attuale obiettivo di selezione calibrato automaticamente. Inizia da 0,5 e si regola in base alla precisione della previsione.
-
Numero di filtri Mastery: numero di prompt esclusi perché il modello li ha gestiti in modo coerente.
Nota
Le prime 1-2 fasi di addestramento vengono eseguite senza selezione adattiva (il predittore richiede almeno un passaggio della cronologia per creare i campioni). La selezione adattiva completa inizia dalla fase 3.
Funzionalità avanzate: Nova Forge
Per gli utenti che richiedono funzionalità avanzate oltre ai limiti RFT standard, Nova Forge è disponibile come servizio di abbonamento a pagamento che offre:
-
Multi-turn supporto alla conversazione
-
Funzioni di ricompensa con un tempo di esecuzione superiore a 15 minuti
-
Algoritmi e opzioni di ottimizzazione aggiuntivi
-
Modifiche personalizzate alla ricetta di allenamento
-
State-of-the-art Tecniche di intelligenza artificiale
Nova Forge funziona SageMaker HyperPod ed è progettata per supportare i clienti aziendali nella creazione dei propri modelli di frontiera.
Comandi e suggerimenti utili
È disponibile una raccolta di script di osservabilità
Gli script disponibili sono:
-
Attivazione delle notifiche e-mail per gli aggiornamenti sullo stato dei lavori di formazione
-
Ottenere stime dei tempi di formazione in base alle configurazioni dei lavori
-
Ottenere approssimazioni sulla durata prevista della formazione per i lavori in corso
Installazione
Nota
Assicurati di aggiornare AWS le tue credenziali prima di utilizzare uno dei seguenti script.
pip install boto3 git clone https://github.com/aws-samples/amazon-nova-samples.git cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/
Utilizzo di base
# 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
Per ulteriori dettagli ed esempi, consulta questa