Metriche di Valutazione per l'IA Generativa
Scorri per mostrare il menu
La valutazione dei modelli generativi si differenzia da quella dei modelli discriminativi, che si basano su metriche di accuratezza. Poiché i modelli generativi producono molteplici 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'utente.
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)
Quantifica sia la chiarezza che la 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 le 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 siano differenti le distribuzioni delle feature 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 somiglianza 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, specialmente 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 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.
Utilizzare 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 il significato, l'originalità e l'attrattiva. Questi metodi forniscono approfondimenti sfumati che spesso sfuggono alle metriche automatizzate.
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ù allineati all'intento e allo 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 nei dialoghi, 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 del modello e guidare le decisioni di distribuzione. 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 i casi d'uso reali e le aspettative umane.
1. Quale delle seguenti metriche di valutazione viene utilizzata principalmente per misurare la diversità delle immagini generate nei Generative Adversarial Networks (GAN)?
2. Qual è l'uso principale del Fréchet Inception Distance (FID) nella valutazione dei modelli generativi?
3. Quale metrica viene comunemente utilizzata per valutare la similarità 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