Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Métricas de Evaluación para IA Generativa | Construcción y Entrenamiento de Modelos Generativos
Modelos Generativos Profundos con Python

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 cuanto a 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 están 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(yx)p(y))])\text{IS}=\exp(\mathbb{E}_x[D_{KL}(p(y|x)||p(y))])

donde:

  • p(yx)p(y|x) es la distribución de etiquetas condicional para la imagen xx
  • p(y)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μg2+Tr(Σr+Σg2(ΣrΣg)1/2)\text{FID}=||\mu_r-\mu_g||^2+\text{Tr}(\Sigma_r + \Sigma_g - 2(\Sigma_r\Sigma_g)^{1/2})

donde:

  • μ\mu y Σ\Sigma son la media y la covarianza de las representaciones de características.
  • Tr()\text{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 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

Comparación de la coincidencia de n-gramas entre el texto generado y el de referencia.

BLEU=BPexp(n=1Nwnlogpn)\text{BLEU}=\text{BP} \cdot \exp\left(\sum^N_{n=1}w_n\log p_n\right)

donde:

  • pnp_n es la precisión para n-gramas
  • BP\text{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.

Note
Nota

Comparación manual de prompts y 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 las incrustaciones de imagen y las incrustaciones del prompt textual.

CLIPScores=cos(fimage, ftext)\text{CLIPScores}=cos(f_{image},\ f_{text})

donde ff son incrustaciones específicas 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 la imagen al prompt

Mide qué tan bien las imágenes generadas coinciden con sus prompts de condicionamiento.

Note
Nota

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 al 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 vieron múltiples completaciones del modelo y se les pidió clasificar o seleccionar la más útil o realista. Esta retroalimentación dio forma directa a los modelos de recompensa para un ajuste fino posterior.

Fidelidad de la salida respecto 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 completaciones para un prompt como "Escribe un correo educado rechazando una oferta de trabajo". Las puntuaciones humanas determinaron qué salidas se alineaban con la intención y el estilo del usuario.

Escalas de calificación

Recopilación de 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, ayudando a los objetivos de alineación del modelo.

Evaluación mediante crowdsourcing

Uso de plataformas como MTurk para recopilar opiniones diversas. Garantía de acuerdo entre evaluadores.

  • Ejemplo del mundo real: Google utilizó crowdsourcing a gran escala para evaluar la calidad del chatbot LaMDA en dimensiones como coherencia y especificidad, agregando miles de juicios de usuarios.
Note
Estudiar más

Uso combinado de evaluaciones automáticas y centradas en humanos para obtener una comprensión más completa del rendimiento de modelos generativos. La perspectiva humana ayuda a validar la fiabilidad de las métricas e identificar fallos sutiles que no se reflejan en los números. Para aplicaciones críticas, la combinación de múltiples evaluadores humanos y el cálculo de 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 efectiva garantiza que los modelos de IA generativa no solo tengan un buen desempeño técnico, sino que también se ajusten a casos de uso reales y a las 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 la Distancia de Incepción de Fréchet (FID) en la evaluación de modelos generativos?

3. ¿Qué métrica se utiliza comúnmente para evaluar la similitud semántica entre texto generado y texto de referencia?

question mark

¿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)?

Selecciona la respuesta correcta

question mark

¿Cuál es el uso principal de la Distancia de Incepción de Fréchet (FID) en la evaluación de modelos generativos?

Selecciona la respuesta correcta

question mark

¿Qué métrica se utiliza comúnmente para evaluar la similitud semántica entre texto generado y texto de referencia?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 3
some-alt