Métricas de Evaluación para IA Generativa
Desliza para mostrar el menú
La evaluación de modelos generativos difiere de la evaluación de modelos discriminativos, que dependen de métricas de precisión. Dado que los modelos generativos producen múltiples salidas válidas, deben evaluarse en términos de calidad, diversidad y relevancia. Esta sección presenta métricas clave utilizadas tanto en investigación como en la industria para evaluar modelos generativos en dimensiones perceptuales, estadísticas y centradas en el usuario.
Evaluación para modelos basados en imágenes (GANs, VAEs, Difusión)
Los métodos de evaluación perceptual y estadística se aplican comúnmente a modelos generativos basados en imágenes. Estos ayudan a medir cuán realistas, diversos y bien distribuidos son los resultados generados en comparación con imágenes reales.
Inception Score (IS)
Cuantifica tanto la claridad como la diversidad de las imágenes generadas utilizando la confianza de clasificación de un modelo Inception preentrenado.
IS=exp(Ex[DKL(p(y∣x)∣∣p(y))])donde:
- p(y∣x) es la distribución condicional de etiquetas para la imagen x
- p(y) es la distribución marginal de clases.
from torchmetrics.image.inception import InceptionScore
inception = InceptionScore()
inception.update(imgs)
inception.compute()
Fréchet Inception Distance (FID)
Mide la similitud entre las distribuciones de imágenes reales y generadas utilizando incrustaciones de características.
FID=∣∣μr−μg∣∣2+Tr(Σr+Σg−2(ΣrΣg)1/2)donde:
- μ y Σ son la media y la covarianza de las representaciones de características.
- Tr() representa la traza de una matriz — es la suma de los elementos diagonales. La traza ayuda a cuantificar cuán diferentes son las distribuciones de características en términos de su dispersión 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
Compara la similitud visual entre imágenes utilizando características de redes neuronales profundas.
import lpips
loss_fn = lpips.LPIPS(net='alex')
distance = loss_fn(img1, img2)
print("LPIPS Distance:", distance.item())
Evaluación para modelos basados en texto (Transformers, GPT, BERT)
Los modelos de generación de lenguaje se evalúan en cuanto a calidad, coherencia y relevancia mediante métricas estadísticas, semánticas y subjetivas.
BLEU / ROUGE / METEOR
Comparan la coincidencia de n-gramas entre el texto generado y el de referencia.
BLEU=BP⋅exp(n=1∑Nwnlogpn)donde:
- pn es la precisión para n-gramas
- BP es la penalización por brevedad.
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
Mide la similitud semántica utilizando incrustaciones contextuales. Utiliza la similitud coseno entre incrustaciones contextuales, con agregados de precisión/recuperación/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}")
Fidelidad al Prompt
Mide la adherencia de la salida a los prompts de entrada, especialmente en modelos ajustados por instrucciones.
Comparación manual de prompts con salidas o uso de modelos de puntuación de similitud como CLIP o BERT.
Evaluación para Modelos Multimodales (por ejemplo, DALL·E, Stable Diffusion)
Los modelos multimodales deben evaluarse en cuanto a la alineación entre modalidades, como imagen y texto.
CLIPScore
Calcula la similitud entre los embeddings de imagen y los embeddings del prompt textual.
CLIPScores=cos(fimage, ftext)donde f son embeddings específicos de cada modalidad.
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())
Fidelidad de Prompt a Imagen
Mide qué tan bien las imágenes generadas coinciden con sus prompts de condicionamiento.
Utilizar CLIP o anotación manual para evaluar la alineación visual-textual.
Evaluación Humana
A pesar de los avances en métricas automatizadas, la evaluación humana sigue siendo esencial para tareas subjetivas o creativas. Muchos resultados generativos, especialmente en arte, narración o diseño, requieren juicio humano para valorar su significado, originalidad y atractivo. Estos métodos proporcionan perspectivas matizadas que las métricas automatizadas suelen pasar por alto.
Pruebas A/B y Configuraciones Estilo Turing
Solicitar a los usuarios que elijan las salidas preferidas o más realistas entre dos opciones.
- Ejemplo del mundo real: en el proceso RLHF de GPT-3 de OpenAI, los trabajadores de la multitud observaron múltiples finalizaciones del modelo y debían clasificar o seleccionar la más útil o realista. Esta retroalimentación influyó directamente en los modelos de recompensa para un ajuste fino posterior.
Fidelidad de la Salida al Prompt
Evaluación subjetiva de cuán bien la salida refleja el prompt dado.
- Ejemplo del mundo real: durante el entrenamiento RLHF para InstructGPT, los anotadores calificaron las finalizaciones para un prompt como "Write a polite email declining a job offer." Las puntuaciones humanas determinaron qué salidas se alineaban con la intención y el estilo del usuario.
Escalas de Calificación
Recopilar calificaciones en escalas (por ejemplo, 1–5) para realismo, coherencia o creatividad.
- Ejemplo del mundo real: en las evaluaciones de Claude de Anthropic, los investigadores recopilaron calificaciones de 1 a 5 estrellas sobre utilidad, honestidad e inocuidad para las generaciones en diálogo, apoyando los objetivos de alineación del modelo.
Evaluación mediante Multitudes
Utilizar plataformas como MTurk para recopilar opiniones diversas. Garantizar el acuerdo entre evaluadores.
- Ejemplo del mundo real: Google empleó la evaluación a gran escala mediante multitudes para valorar la calidad del chatbot LaMDA en dimensiones como coherencia y especificidad, agregando miles de juicios de usuarios.
Utilizar una combinación de evaluaciones automáticas y centradas en humanos para obtener una comprensión más completa del rendimiento de los modelos generativos. La perspectiva humana ayuda a validar la fiabilidad de las métricas e identificar casos sutiles de fallo que no se reflejan en los números. Para aplicaciones críticas, combinar múltiples evaluadores humanos y calcular la fiabilidad entre evaluadores (por ejemplo, kappa de Cohen) puede mejorar la robustez.
Resumen
Estas estrategias de evaluación son indispensables para iterar en el desarrollo de modelos y guiar las decisiones de despliegue. La combinación de métricas objetivas con retroalimentación humana ayuda a los desarrolladores a equilibrar realismo, creatividad, diversidad y alineación con la intención del usuario o los requisitos de la tarea. Una evaluación eficaz garantiza que los modelos de IA generativa no solo funcionen bien técnicamente, sino que también se alineen con casos de uso reales y expectativas humanas.
1. ¿Cuál de las siguientes métricas de evaluación se utiliza principalmente para medir la diversidad de imágenes generadas en Redes Generativas Antagónicas (GANs)?
2. ¿Cuál es el uso principal de Fréchet Inception Distance (FID) en la evaluación de modelos generativos?
3. ¿Qué métrica se utiliza comúnmente para evaluar la similitud semántica entre el texto generado y el texto de referencia?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla