Evaluación de técnicas básicas de prompting

Quiz
10 min~4 min lectura

Quiz Interactivo

Pon a prueba tus conocimientos

Concepto clave

La evaluacion de tecnicas de prompting es el proceso sistematico de probar, medir y comparar diferentes enfoques para interactuar con APIs de lenguaje como GPT y Claude. No se trata solo de escribir prompts, sino de validar que funcionen de manera consistente y predecible en entornos de produccion.

Imagina que eres un chef probando recetas: no basta con que un plato sepa bien una vez, debes asegurarte de que cualquier cocinero pueda replicarlo con los mismos ingredientes y obtener resultados identicos. En el contexto de desarrollo, esto significa crear prompts que sean robustos ante variaciones en las entradas y que mantengan su efectividad a lo largo del tiempo.

Como funciona en la practica

El proceso de evaluacion sigue un ciclo de cuatro pasos:

  1. Definir metricas claras: ¿Que consideras exito? Puede ser precision, relevancia, formato de salida, o tiempo de respuesta.
  2. Crear conjunto de pruebas: Un set de casos representativos de tu aplicacion real.
  3. Ejecutar comparaciones: Probar diferentes versiones de prompts con las mismas entradas.
  4. Analizar resultados: Identificar patrones y puntos de falla para iterar.

Por ejemplo, si estas construyendo un sistema que extrae fechas de documentos, tu conjunto de pruebas deberia incluir diferentes formatos de fecha ("15/03/2024", "Marzo 15, 2024", "2024-03-15") y casos limite como fechas incompletas o ambiguas.

Codigo en accion

Antes: Evaluacion manual y subjetiva

# Ejemplo de evaluacion basica (no recomendado)
import openai

response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": "Extrae la fecha del texto"},
        {"role": "user", "content": "La reunion sera el proximo lunes"}
    ]
)
print(response.choices[0].message.content)
# Salida: "La fecha es el proximo lunes"
# ¿Es correcto? Depende de la interpretacion

Despues: Evaluacion sistematica con metricas

# Evaluacion estructurada con conjunto de pruebas
import openai
from datetime import datetime

test_cases = [
    {"input": "La reunion sera el 15/03/2024", "expected": "2024-03-15"},
    {"input": "Nos vemos el proximo lunes", "expected": "fecha_relativa"},
    {"input": "El evento es en Marzo 2024", "expected": "2024-03"}
]

def evaluate_prompt(prompt_template, test_cases):
    results = []
    for test in test_cases:
        response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[
                {"role": "system", "content": prompt_template},
                {"role": "user", "content": test["input"]}
            ],
            temperature=0  # Para consistencia
        )
        output = response.choices[0].message.content
        
        # Metrica simple: coincidencia exacta
        is_correct = (output == test["expected"])
        results.append({
            "input": test["input"],
            "expected": test["expected"],
            "actual": output,
            "correct": is_correct
        })
    
    accuracy = sum([r["correct"] for r in results]) / len(results)
    return {"accuracy": accuracy, "details": results}

# Probamos dos versiones de prompt
prompt_v1 = "Extrae la fecha del texto y devuelvela en formato YYYY-MM-DD"
prompt_v2 = "Analiza el texto. Si contiene una fecha especifica, convertila a formato ISO (YYYY-MM-DD). Si es una fecha relativa, responde 'fecha_relativa'. Si es un mes y ano, usa YYYY-MM."

print("Version 1:", evaluate_prompt(prompt_v1, test_cases)["accuracy"])
print("Version 2:", evaluate_prompt(prompt_v2, test_cases)["accuracy"])

Errores comunes

  • Evaluar con muy pocos casos: Tres o cuatro ejemplos no representan el comportamiento real. Solucion: Crear conjuntos de pruebas con al menos 20-30 casos variados.
  • Usar solo metricas binarias: "Correcto/Incorrecto" ignora matices. Solucion: Incluir metricas como precision, recall, o puntuaciones de calidad.
  • Olvidar el contexto de produccion: Lo que funciona en desarrollo puede fallar con datos reales. Solucion: Incluir ejemplos de produccion en las pruebas.
  • Ignorar la consistencia: Un prompt que funciona el 90% del tiempo puede ser inaceptable. Solucion: Ejecutar multiples iteraciones y medir varianza.
  • No documentar los resultados: Perder el aprendizaje entre iteraciones. Solucion: Mantener un registro de prompts, metricas y observaciones.

Checklist de dominio

  • Tengo definidas metricas claras y medibles para mis prompts
  • Mi conjunto de pruebas incluye casos normales, limite y de error
  • Comparo al menos dos versiones de cada prompt importante
  • Documento los resultados y las decisiones de diseno
  • He probado los prompts con temperatura=0 para consistencia
  • Incluyo ejemplos de produccion en mis evaluaciones
  • Reviso regularmente el rendimiento en entorno real

Evaluacion comparativa de prompts para extraccion de informacion

En este ejercicio practico, vas a crear y evaluar dos versiones diferentes de prompts para extraer informacion estructurada de textos. Sigue estos pasos:

  1. Prepara tu entorno: Asegurate de tener acceso a una API de GPT o Claude (puedes usar OpenAI Playground o Anthropic Console si no tienes credenciales).
  2. Define el caso de uso: Vas a extraer informacion de productos de un e-commerce. Los textos pueden ser: "iPhone 15 Pro 256GB Negro - $999", "Samsung Galaxy S24 Ultra 512GB Azul en oferta", "Auriculares Sony WH-1000XM5 - Entrega gratis".
  3. Crea dos prompts diferentes:
    • Version 1: Instrucciones simples para extraer nombre, capacidad, color y precio.
    • Version 2: Instrucciones detalladas con ejemplos y reglas para manejar casos incompletos.
  4. Construye un conjunto de pruebas: Crea 5-7 ejemplos variados que incluyan productos con informacion completa, parcial, y formatos diferentes.
  5. Implementa la evaluacion: Usa el patron de codigo de la leccion para comparar ambas versiones. Mide precision y consistencia.
  6. Analiza resultados: Identifica en que casos cada prompt funciona mejor y por que.
  7. Documenta tus hallazgos: Crea un breve informe con metricas, ejemplos de salidas, y recomendaciones.
Pistas
  • Comienza con casos simples y luego agrega complejidad gradualmente
  • Presta atencion a como cada prompt maneja informacion faltante o ambigua
  • Considera usar JSON como formato de salida para facilitar la validacion

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.