Metriche di Valutazione per l'IA Generativa
Scorri per mostrare il menu
La valutazione dei modelli generativi differisce da quella dei modelli discriminativi, che si basano su metriche di accuratezza. Poiché i modelli generativi producono molti output validi, devono essere valutati in termini di qualità, diversità e rilevanza. Questa sezione introduce le principali metriche utilizzate sia nella ricerca che nell'industria per valutare i modelli generativi secondo dimensioni percettive, statistiche e centrate sull'uomo.
Valutazione per modelli basati su immagini (GAN, VAE, Diffusion)
I metodi di valutazione percettiva e statistica sono comunemente applicati ai modelli generativi basati su immagini. Questi aiutano a misurare quanto siano realistici, diversificati e ben distribuiti gli output generati rispetto alle immagini reali.
Inception Score (IS)
Quantificazione della chiarezza e della diversità delle immagini generate utilizzando la confidenza di classificazione di un modello Inception pre-addestrato.
IS=exp(Ex[DKL(p(y∣x)∣∣p(y))])dove:
- p(y∣x) è la distribuzione condizionale delle etichette per l'immagine x
- p(y) è la distribuzione marginale delle classi.
from torchmetrics.image.inception import InceptionScore
inception = InceptionScore()
inception.update(imgs)
inception.compute()
Fréchet Inception Distance (FID)
Misura la similarità tra le distribuzioni di immagini reali e generate utilizzando gli embedding delle feature.
FID=∣∣μr−μg∣∣2+Tr(Σr+Σg−2(ΣrΣg)1/2)dove:
- μ e Σ sono la media e la covarianza delle rappresentazioni delle feature.
- Tr() indica la traccia di una matrice — è la somma degli elementi diagonali. La traccia aiuta a quantificare quanto le distribuzioni delle feature differiscono in termini di ampiezza o forma.
from pytorch_fid import fid_score
fid = fid_score.calculate_fid_given_paths(["real_images", "generated_images"], batch_size=50, device="cuda", dims=2048)
print("FID:", fid)
LPIPS
Confronta la somiglianza visiva tra immagini utilizzando le caratteristiche di una rete neurale profonda.
import lpips
loss_fn = lpips.LPIPS(net='alex')
distance = loss_fn(img1, img2)
print("LPIPS Distance:", distance.item())
Valutazione per modelli basati su testo (Transformers, GPT, BERT)
I modelli di generazione del linguaggio vengono valutati per qualità, coerenza e rilevanza tramite metriche statistiche, semantiche e soggettive.
BLEU / ROUGE / METEOR
Confronto della sovrapposizione di n-gram tra testo generato e testo di riferimento.
BLEU=BP⋅exp(n=1∑Nwnlogpn)dove:
- pn è la precisione per gli n-gram
- BP è la penalità di brevità.
from nltk.translate.bleu_score import sentence_bleu
reference = [['the', 'cat', 'is', 'on', 'the', 'mat']]
candidate = ['the', 'cat', 'sat', 'on', 'the', 'mat']
score = sentence_bleu(reference, candidate)
print("BLEU Score:", score)
BERTScore
Misura la similarità semantica utilizzando embedding contestuali. Utilizza la similarità coseno tra embedding contestuali, con aggregazioni di precisione/recall/F1.
from bert_score import score
cands = ["A cat sits on the mat."]
refs = ["The cat is on the mat."]
P, R, F1 = score(cands, refs, lang='en')
print(f"BERTScore F1: {F1.mean().item():.4f}")
Fedeltà al Prompt
Misura l'aderenza dell'output ai prompt di input, in particolare nei modelli ottimizzati per le istruzioni.
Confronto manuale tra prompt e output oppure utilizzo di modelli di valutazione della similarità come CLIP o BERT.
Valutazione per Modelli Multimodali (ad es. DALL·E, Stable Diffusion)
I modelli multimodali devono essere valutati per l'allineamento tra le modalità, come immagine e testo.
CLIPScore
Calcola la similarità tra gli embedding delle immagini e quelli dei prompt testuali.
CLIPScores=cos(fimage, ftext)dove f sono embedding specifici per ciascuna modalità.
import torch
import clip
from PIL import Image
model, preprocess = clip.load("ViT-B/32")
image = preprocess(Image.open("generated.jpg")).unsqueeze(0)
text = clip.tokenize(["A dog playing in the snow"])
with torch.no_grad():
image_features = model.encode_image(image)
text_features = model.encode_text(text)
similarity = torch.cosine_similarity(image_features, text_features)
print("CLIPScore:", similarity.item())
Fedeltà Prompt-immagine
Misura quanto bene le immagini generate corrispondono ai prompt di condizionamento.
Utilizzo di CLIP o annotazione manuale per valutare l'allineamento visivo-testuale.
Valutazione Umana
Nonostante i progressi nelle metriche automatizzate, la valutazione umana rimane essenziale per compiti soggettivi o creativi. Molti output generativi, specialmente in arte, narrazione o design, richiedono il giudizio umano per valutarne significato, originalità e attrattiva. Questi metodi forniscono approfondimenti sfumati che spesso sfuggono alle metriche automatiche.
Test A/B e Configurazioni in Stile Turing
Richiesta agli utenti di scegliere tra due opzioni l'output preferito o quello che appare più realistico.
- Esempio reale: nella pipeline RLHF di GPT-3 di OpenAI, ai crowdworker venivano mostrate diverse completamenti del modello e veniva chiesto di classificare o selezionare quello più utile o realistico. Questo feedback ha influenzato direttamente i modelli di ricompensa per ulteriori fasi di fine-tuning.
Fedeltà Prompt-Output
Valutazione soggettiva di quanto l'output rifletta il prompt fornito.
- Esempio reale: durante l'addestramento RLHF per InstructGPT, gli annotatori valutavano i completamenti per un prompt come "Scrivi una email cortese per rifiutare un'offerta di lavoro." I punteggi umani determinavano quali output erano più in linea con l'intento e lo stile dell'utente.
Scale di Valutazione
Raccolta di valutazioni su scale (ad esempio, da 1 a 5) per realismo, coerenza o creatività.
- Esempio reale: nelle valutazioni di Claude di Anthropic, i ricercatori raccoglievano valutazioni da 1 a 5 stelle su utilità, onestà e innocuità delle generazioni in dialogo, supportando gli obiettivi di allineamento del modello.
Valutazione tramite Crowdsourcing
Utilizzo di piattaforme come MTurk per raccogliere opinioni diversificate. Garantire l'accordo tra i valutatori.
- Esempio reale: Google ha utilizzato il crowdsourcing su larga scala per valutare la qualità del chatbot LaMDA su dimensioni come la sensatezza e la specificità, aggregando migliaia di giudizi degli utenti.
Utilizzo di una combinazione di valutazioni automatiche e umane per ottenere una comprensione più completa delle prestazioni dei modelli generativi. L'intuizione umana aiuta a validare l'affidabilità delle metriche e a identificare casi di errore sottili non rilevati dai numeri. Per applicazioni critiche, la combinazione di più valutatori umani e il calcolo dell'affidabilità inter-valutatore (ad esempio, kappa di Cohen) può migliorare la robustezza.
Riepilogo
Queste strategie di valutazione sono indispensabili per iterare nello sviluppo dei modelli e guidare le decisioni di deployment. Combinare metriche oggettive con feedback umano aiuta gli sviluppatori a bilanciare realismo, creatività, diversità e allineamento con l'intento dell'utente o i requisiti del compito. Una valutazione efficace garantisce che i modelli di intelligenza artificiale generativa non solo funzionino tecnicamente bene, ma siano anche allineati con casi d'uso reali e aspettative umane.
1. Quale delle seguenti metriche di valutazione viene utilizzata principalmente per misurare la diversità delle immagini generate nei Generative Adversarial Networks (GANs)?
2. Qual è l'uso principale della Fréchet Inception Distance (FID) nella valutazione dei modelli generativi?
3. Quale metrica viene comunemente utilizzata per valutare la somiglianza semantica tra testo generato e testo di riferimento?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione