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à.
Esecuzione di valutazioni e interpretazione dei risultati
Esecuzione del lavoro di valutazione
Fase 1: Preparare i dati
-
Formattate i dati di valutazione in base ai requisiti relativi al formato dei dati
-
Carica il tuo file JSONL su S3:
s3://your-bucket/eval-data/eval_data.jsonl
Passaggio 2: configura la tua ricetta
Aggiorna la ricetta di esempio con la tua configurazione:
-
Imposta
model_name_or_pathla posizione del modello -
Imposta
lambda_arnsulla funzione di ricompensa ARN -
Imposta
output_s3_pathla posizione di uscita desiderata -
Regola
inferencei parametri secondo necessità
Salva la ricetta con nome rft_eval_recipe.yaml
Fase 3: Eseguire la valutazione
Esegui il processo di valutazione utilizzando il taccuino fornito: Quaderni di valutazione
Contenitore di valutazione
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-TJ-Eval-V2-latest
Fase 4: Monitora i progressi
Monitora il tuo lavoro di valutazione attraverso:
-
SageMaker Console: controlla lo stato del lavoro e i registri
-
CloudWatch Registri: visualizza i registri di esecuzione dettagliati
-
Lambda Logs: problemi relativi alla funzione di ricompensa di debug
Comprensione dei risultati della valutazione
Formato di output
Il processo di valutazione restituisce i risultati nella posizione S3 specificata in formato JSONL. Ogni riga contiene i risultati della valutazione per un campione:
{ "id": "sample-001", "aggregate_reward_score": 0.75, "metrics_list": [ { "name": "accuracy", "value": 0.85, "type": "Metric" }, { "name": "fluency", "value": 0.90, "type": "Reward" } ] }
Nota
L'RFT Evaluation Job Output è identico al formato Lambda Response. Il servizio di valutazione analizza la risposta della funzione Lambda senza modifiche, garantendo la coerenza tra i calcoli delle ricompense e i risultati finali.
Interpretazione dei risultati
Punteggio di ricompensa aggregato
-
Intervallo: in genere da 0,0 (peggiore) a 1,0 (migliore), ma dipende dall'implementazione
-
Scopo: un unico numero che riassume le prestazioni complessive
-
Utilizzo: confronta i modelli, monitora i miglioramenti durante l'allenamento
Metriche individuali
-
Tipo di metrica: metriche informative per l'analisi
-
Tipo di ricompensa: metriche utilizzate durante la formazione RFT
-
Interpretazione: valori più alti in genere indicano prestazioni migliori (a meno che non si progettino metriche inverse)
Benchmark delle prestazioni
Ciò che costituisce una «buona» prestazione dipende dal caso d'uso:
| Intervallo di punteggio | Interpretazione | Azione |
|---|---|---|
| 0,8 - 1,0 | Eccellente | Modello pronto per l'implementazione |
| 0,6 - 0,8 | Buona | Potrebbero essere utili piccoli miglioramenti |
| 0,4 - 0,6 | Giusto | È necessario un miglioramento significativo |
| 0,0 - 0,4 | Povero | Rivedi i dati di allenamento e la funzione di ricompensa |
Importante
Queste sono linee guida generali. Definite le vostre soglie in base a:
-
Requisiti aziendali
-
Prestazioni del modello di base
-
Vincoli specifici del dominio
-
Analisi costi-benefici della formazione continua
Analisi dei risultati
Calcola statistiche riassuntive
import json import numpy as np scores = [] with open('evaluation_results.jsonl', 'r') as f: for line in f: result = json.loads(line) scores.append(result['aggregate_reward_score']) print(f"Mean: {np.mean(scores):.3f}") print(f"Median: {np.median(scores):.3f}") print(f"Std Dev: {np.std(scores):.3f}") print(f"Min: {np.min(scores):.3f}") print(f"Max: {np.max(scores):.3f}")
-
Identifica i casi di fallimento: esamina i campioni con punteggi bassi per comprendere i punti deboli
-
Confronta le metriche: analizza la correlazione tra diverse metriche per identificare i compromessi
-
Track Over Time: confronta i risultati della valutazione tra le iterazioni di formazione
risoluzione dei problemi
Problemi comuni
| Problema | Causa | Soluzione |
|---|---|---|
| Timeout Lambda | Calcolo complesso delle ricompense | Aumentare il timeout Lambda o ottimizzare la funzione |
| Autorizzazione negata | Autorizzazioni IAM mancanti | Verifica che SageMaker il ruolo possa richiamare Lambda |
| Punteggi incoerenti | Funzione di ricompensa non deterministica | Usa seed fissi o logica deterministica |
| Risultati mancanti | Errori Lambda non rilevati | Aggiungi una gestione completa degli errori in Lambda |
Lista di controllo per il debug
-
Verifica che i dati di input seguano il formato corretto con array di contenuti annidati
-
Verifica che l'ARN Lambda sia corretto e che la funzione sia stata implementata
-
Controlla le autorizzazioni IAM per SageMaker → Invocazione Lambda
-
Esamina CloudWatch i registri per gli errori Lambda
-
Verifica che la risposta Lambda corrisponda al formato previsto
Best practice
-
Inizia in modo semplice: inizia con le funzioni di ricompensa di base e ripeti
-
Testa Lambda separatamente: utilizza gli eventi di test Lambda prima della valutazione completa
-
Convalida su set di dati di piccole dimensioni: esegui la valutazione sul sottoinsieme prima del set di dati completo
-
Controllo della versione: monitora le versioni della funzione di ricompensa insieme alle versioni del modello
-
Monitoraggio dei costi: le chiamate Lambda e il tempo di calcolo influiscono sui costi
-
Registra in modo esteso: utilizza le istruzioni di stampa in Lambda per il debug
-
Imposta i timeout in modo appropriato: equilibrio tra pazienza e costi
-
Metriche dei documenti: definisci chiaramente cosa misura ogni metrica
Fasi successive
Dopo aver completato la valutazione RFT:
-
Se i risultati sono soddisfacenti: distribuisci il modello alla produzione
-
Se è necessario un miglioramento:
-
Regola la funzione di ricompensa
-
Raccogli più dati di allenamento
-
Modifica gli iperparametri di allenamento
-
Esegui iterazioni di addestramento RFT aggiuntive
-
-
Monitoraggio continuo: rivalutazione periodica con nuovi dati
Funzioni di ricompensa preimpostate
Due funzioni di ricompensa preimpostate (prime_code, prime_math) dalla libreria open source verl sono
Panoramica di
Queste funzioni out-of-the-box preimpostate forniscono funzionalità di valutazione per:
-
prime_code — Generazione di codice e valutazione della correttezza
-
prime_math — Ragionamento matematico e valutazione della risoluzione dei problemi
Configurazione rapida
-
Pubblica il layer Lambda utilizzando: AWS CLI
aws lambda publish-layer-version \ --layer-name preset-function-layer \ --description "Preset reward function layer with dependencies" \ --zip-file fileb://universal_reward_layer.zip \ --compatible-runtimes python3.9 python3.10 python3.11 python3.12 \ --compatible-architectures x86_64 arm64 -
Aggiungi il layer alla tua funzione Lambda in Console di gestione AWS (Seleziona il livello preset-function-layer dal livello personalizzato e aggiungi anche AWSSDKPandas-Python 312 per le dipendenze numpy)
-
Importa e usa nel tuo codice Lambda:
from prime_code import compute_score # For code evaluation from prime_math import compute_score # For math evaluation
funzione prime_code
Scopo: valuta le attività di generazione del codice Python eseguendo codice in base a casi di test e misurando la correttezza.
Esempio di formato del set di dati di input tratto dalla valutazione
{"messages":[{"role":"user","content":"Write a function that returns the sum of two numbers."}],"reference_answer":{"inputs":["3\n5","10\n-2","0\n0"],"outputs":["8","8","0"]}} {"messages":[{"role":"user","content":"Write a function to check if a number is even."}],"reference_answer":{"inputs":["4","7","0","-2"],"outputs":["True","False","True","True"]}}
Caratteristiche principali
-
Estrazione automatica del codice dai blocchi di codice markdown
-
Rilevamento delle funzioni e test basati sulle chiamate
-
Esecuzione di test case con protezione dal timeout
-
Convalida della sintassi e controlli di compilazione
-
Segnalazione dettagliata degli errori con traceback
funzione prime_math
Scopo: valuta le capacità di ragionamento matematico e di risoluzione dei problemi con supporto matematico simbolico.
Formato di input
{"messages":[{"role":"user","content":"What is the derivative of x^2 + 3x?."}],"reference_answer":"2*x + 3"}
Caratteristiche principali
-
Valutazione matematica simbolica utilizzando SymPy
-
Formati di risposta multipli (LaTeX, testo semplice, simbolico)
-
Controllo matematico dell'equivalenza
-
Normalizzazione e semplificazione delle espressioni
Requisiti per il formato dei dati
Per la valutazione del codice
-
Input: matrice di argomenti delle funzioni (tipi propri: numeri interi, stringhe, ecc.)
-
Output: matrice di valori restituiti previsti (tipi appropriati: booleani, numeri, ecc.)
-
Codice: deve essere in Python con definizioni di funzioni chiare
Per la valutazione matematica
-
Risposta di riferimento: espressione matematica o valore numerico
-
Risposta: può essere LaTe X, testo semplice o notazione simbolica
-
Equivalenza: verifica simbolica, non solo corrispondenza tra stringhe
Best practice
-
Usa i tipi di dati appropriati nei casi di test (numeri interi contro stringhe, booleani contro «True»)
-
Fornisci firme funzionali chiare nei problemi di codice
-
Includi casi limite negli input di test (zero, numeri negativi, input vuoti)
-
Formatta le espressioni matematiche in modo coerente nelle risposte di riferimento
-
Testa la tua funzione di ricompensa con dati di esempio prima dell'implementazione
Gestione degli errori
Entrambe le funzioni includono una solida gestione degli errori per:
-
Errori di compilazione nel codice generato
-
Eccezioni di runtime durante l'esecuzione
-
Dati di input non validi
-
Scenari di timeout per loop infiniti
-
Espressioni matematiche non valide