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 (GANs, VAEs, Diffusion)
Les méthodes d'évaluation perceptuelles et statistiques 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 labels 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 de réseaux profonds.
import lpips
loss_fn = lpips.LPIPS(net='alex')
distance = loss_fn(img1, img2)
print("LPIPS Distance:", distance.item())
Évaluation pour les 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 est la précision pour les n-grammes
- BP est 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é comme 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 représente les 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 dans quelle mesure les images générées correspondent à leurs prompts de conditionnement.
Utiliser CLIP ou une 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 offrent des perspectives nuancées que les métriques automatisées manquent souvent.
Tests A/B et configurations de type Turing
Demande aux utilisateurs de choisir les sorties préférées ou les plus réalistes parmi deux options.
- Exemple réel : dans le pipeline RLHF de GPT-3 d'OpenAI, des travailleurs ont été exposés à plusieurs complétions de modèles et invités à classer ou sélectionner celle jugée la plus utile ou réaliste. Ces retours ont directement influencé les modèles de récompense pour un affinement ultérieur.
Fidélité de la sortie par rapport à l'invite
Évaluation subjective de la correspondance entre la sortie et l'invite donnée.
- Exemple réel : lors de l'entraînement RLHF pour InstructGPT, les annotateurs ont évalué les complétions pour une invite telle que « Rédigez un e-mail poli pour refuser une offre d'emploi. » Les scores humains ont déterminé quelles sorties correspondaient à l'intention et au style de l'utilisateur.
Échelles de notation
Collecte de notes sur des échelles (par exemple, 1 à 5) pour le réalisme, la cohérence ou la créativité.
- Exemple réel : lors des évaluations de Claude par Anthropic, les chercheurs ont recueilli 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. Assurer 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 pertinence et la spécificité, en agrégeant des milliers de jugements d'utilisateurs.
Utilisation d'une combinaison d'évaluations automatiques et centrées sur l'humain 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 des modèles 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 répondent également 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