Mesures d'évaluation pour l'IA générative
Glissez pour afficher le menu
L'évaluation des modèles génératifs diffère de celle des modèles discriminatifs, qui reposent sur des métriques de précision. Étant donné que les modèles génératifs produisent de nombreux résultats valides, ils doivent être évalués selon leur qualité, leur diversité et leur pertinence. Cette section présente les principales métriques utilisées en recherche et en industrie pour évaluer les modèles génératifs selon des dimensions perceptuelles, statistiques et centrées sur l'humain.
Évaluation des modèles basés sur l'image (GAN, VAE, Diffusion)
Les méthodes d'évaluation perceptuelle et statistique sont couramment appliquées aux modèles génératifs d'images. Elles permettent de mesurer à quel point les sorties générées sont réalistes, diversifiées et bien réparties par rapport aux images réelles.
Inception Score (IS)
Quantifie à la fois la clarté et la diversité des images générées en utilisant la confiance de classification d'un modèle Inception pré-entraîné.
IS=exp(Ex[DKL(p(y∣x)∣∣p(y))])où :
- p(y∣x) est la distribution conditionnelle des étiquettes pour l'image x
- p(y) est la distribution marginale des classes.
from torchmetrics.image.inception import InceptionScore
inception = InceptionScore()
inception.update(imgs)
inception.compute()
Fréchet Inception Distance (FID)
Mesure la similarité entre les distributions d'images réelles et générées à l'aide d'embeddings de caractéristiques.
FID=∣∣μr−μg∣∣2+Tr(Σr+Σg−2(ΣrΣg)1/2)où :
- μ et Σ sont la moyenne et la covariance des représentations de caractéristiques.
- Tr() désigne la trace d'une matrice — il s'agit de la somme des éléments diagonaux. La trace permet de quantifier la différence entre les distributions de caractéristiques en termes de dispersion ou de forme.
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
Compare la similarité visuelle entre des images en utilisant des caractéristiques extraites par des réseaux profonds.
import lpips
loss_fn = lpips.LPIPS(net='alex')
distance = loss_fn(img1, img2)
print("LPIPS Distance:", distance.item())
Évaluation des modèles basés sur le texte (Transformers, GPT, BERT)
Les modèles de génération de langage sont évalués selon la qualité, la cohérence et la pertinence à l'aide de métriques statistiques, sémantiques et subjectives.
BLEU / ROUGE / METEOR
Comparaison du recouvrement des n-grammes entre le texte généré et le texte de référence.
BLEU=BP⋅exp(n=1∑Nwnlogpn)où :
- pn désigne la précision pour les n-grammes
- BP désigne la pénalité de brièveté.
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
Mesure la similarité sémantique à l'aide d'embeddings contextuels. Utilise la similarité cosinus entre les embeddings contextuels, avec des agrégats de précision/rappel/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}")
Fidélité au prompt
Mesure le respect de la sortie par rapport aux prompts d'entrée, en particulier dans les modèles ajustés par instructions.
Comparer manuellement les prompts aux sorties ou utiliser des modèles de score de similarité tels que CLIP ou BERT.
Évaluation des modèles multimodaux (par exemple, DALL·E, Stable Diffusion)
Les modèles multimodaux doivent être évalués pour l'alignement entre les modalités, telles que l'image et le texte.
CLIPScore
Calcule la similarité entre les embeddings d'image et les embeddings du prompt textuel.
CLIPScores=cos(fimage, ftext)où f sont des embeddings spécifiques à chaque 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())
Fidélité du prompt à l'image
Mesure la correspondance entre les images générées et leurs prompts de conditionnement.
Utiliser CLIP ou l'annotation manuelle pour évaluer l'alignement visuel-textuel.
Évaluation humaine
Malgré les progrès des métriques automatisées, l'évaluation humaine reste essentielle pour les tâches subjectives ou créatives. De nombreux résultats génératifs, notamment en art, narration ou design, nécessitent un jugement humain pour évaluer leur pertinence, originalité et attrait. Ces méthodes fournissent des analyses nuancées que les métriques automatisées omettent souvent.
Tests A/B et configurations de type Turing
Demander aux utilisateurs de choisir les sorties préférées ou les plus réalistes parmi deux options.
- Exemple concret : dans le pipeline RLHF de GPT-3 d'OpenAI, des travailleurs ont été exposés à plusieurs complétions générées par le modèle et devaient classer ou sélectionner celle jugée la plus utile ou réaliste. Ces retours ont directement influencé la construction des modèles de récompense pour l'affinage ultérieur.
Fidélité de la sortie par rapport à l'invite
Évaluation subjective de la correspondance entre la sortie générée et l'invite fournie.
- Exemple concret : lors de l'entraînement RLHF pour InstructGPT, des annotateurs notaient les complétions pour une invite telle que « Write a polite email declining a job offer. » Les scores humains déterminaient quelles sorties correspondaient à l'intention et au style de l'utilisateur.
Échelles d'évaluation
Collecte d'évaluations sur des échelles (par exemple, de 1 à 5) pour le réalisme, la cohérence ou la créativité.
- Exemple concret : lors des évaluations de Claude par Anthropic, les chercheurs recueillaient des notes de 1 à 5 étoiles sur l'utilité, l'honnêteté et l'innocuité des générations en dialogue, contribuant ainsi aux objectifs d'alignement du modèle.
Évaluation participative
Utilisation de plateformes telles que MTurk pour recueillir des avis variés. Veiller à l'accord entre évaluateurs.
- Exemple concret : Google a utilisé une évaluation participative à grande échelle pour mesurer la qualité du chatbot LaMDA sur des critères tels que la cohérence et la spécificité, en agrégeant des milliers de jugements d'utilisateurs.
Utilisation d'une approche hybride combinant évaluations automatiques et humaines pour obtenir une compréhension plus complète des performances du modèle génératif. L'analyse humaine permet de valider la fiabilité des métriques et d'identifier des cas d'échec subtils non détectés par les chiffres. Pour les applications critiques, la combinaison de plusieurs évaluateurs humains et le calcul de la fiabilité inter-évaluateurs (par exemple, le kappa de Cohen) peuvent renforcer la robustesse.
Résumé
Ces stratégies d'évaluation sont indispensables pour itérer sur le développement du modèle et orienter les décisions de déploiement. La combinaison de métriques objectives et de retours humains aide les développeurs à équilibrer réalisme, créativité, diversité et adéquation avec l'intention de l'utilisateur ou les exigences de la tâche. Une évaluation efficace garantit que les modèles d'IA générative offrent non seulement de bonnes performances techniques, mais sont également adaptés aux cas d'utilisation réels et aux attentes humaines.
1. Laquelle des métriques d'évaluation suivantes est principalement utilisée pour mesurer la diversité des images générées dans les réseaux antagonistes génératifs (GAN) ?
2. Quelle est l'utilisation principale du Fréchet Inception Distance (FID) dans l'évaluation des modèles génératifs ?
3. Quelle métrique est couramment utilisée pour évaluer la similarité sémantique entre un texte généré et un texte de référence ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion