Configura un modelo de juez básico (parte 2)

Termina de configurar tu modelo básico de juez para ejecutar tus evaluaciones subjetivas.

Alinea y prueba el juez

Tienes un juez inicial, pero aún no puedes confiar en él. Tu juez solo estará listo cuando coincida de forma constante con el juicio humano.

Crea un conjunto de datos de alineación

Para calibrar tu juez, necesitas un conjunto de datos de alineación. Se trata de una pequeña colección de entradas y salidas de alta calidad que se calificó de forma manual. Este conjunto de datos actúa como tu verdad fundamental. La usarás para verificar que la lógica del juez se alinee de forma coherente con tus expectativas.

Tu conjunto de datos de alineación debe contener entre 30 y 50 pares de entrada y salida. El conjunto es lo suficientemente grande como para abarcar algunos casos extremos, pero lo suficientemente pequeño como para que puedas etiquetarlo en un período corto.

En el ejemplo de ThemeBuilder, una entrada del conjunto de datos de alineación se ve de la siguiente manera (entrada, salida, etiqueta humana):

{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "audience": "kids 5-10",
    "tone": ["prehistoric", "loud", "fun"]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era."
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While on-theme, this motto is too formal for kids.
        It fails to capture the required 'loud' and 'fun' energy."
    }
  }
}

Para generar entradas y salidas, puedes extraer datos de los registros de producción si están disponibles, crear los datos de forma manual, usar un LLM (datos sintéticos) o comenzar con algunas muestras seleccionadas manualmente y pedirle a un LLM que aumente tu conjunto de datos.

Una vez que tus entradas y salidas estén listas, usa tu rúbrica para etiquetar las salidas como PASS o FAIL con tu equipo. Esta se convierte en tu verdad fundamental.

Asegúrate de que tu conjunto de datos de alineación incluya ejemplos de PASS y de FAIL de diferentes niveles de dificultad, por ejemplo:

  • 10 ejemplos de casos de camino feliz que tu juez debería etiquetar como PASS.
  • 20 casos de ejemplo que tu juez debería etiquetar como FAIL:
    • Fallos evidentes, por ejemplo, un lema muy tóxico o completamente ajeno a la marca
    • Errores sutiles, por ejemplo, un lema que es gramaticalmente perfecto, pero un poco demasiado formal para una marca lúdica, o que solo se ajusta parcialmente al tono.

Tu juez de LLM es un filtro. Alinearlo en un conjunto de datos que contiene más casos de errores que de aprobaciones te brinda más oportunidades para ajustar la rúbrica y detectar errores, y, en última instancia, hacer que el juez sea mejor para detectar errores.

Una vez que tu conjunto de datos de alineación esté listo, debería verse de la siguiente manera:

Casos de camino ideal (PASS)

// Easy, clean input + Good output
{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    "description": "Carbon-fiber plated performance footwear engineered for
    elite marathon runners.",
    "audience": "competitive triathletes and professional runners",
    "tone": [
      "aggressive",
      "high-performance",
      "technical"
    ]
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    "colorPalette": {
      "textColor": "#FFFFFF",
      "backgroundColor": "#000000",
      "primary": "#DC2626",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
      engineering with the ambitious goals of its elite athletic audience.
      Relevance: Uses 'kinetic' to expertly link the brand to physical
      energy. Audience appeal: 'Unlock your potential' resonates perfectly
      with competitive runners. Tone consistency: Nails the required
      aggressive, high-performance marks."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "Perfectly clean and motivational. No offensive or
      exclusionary language."
    },
    "colorBrandFit": {
      "label": "PASS",
      "rationale": "The chosen color palette perfectly mirrors Kinetica's
      aggressive and technical brand identity by utilizing high-impact tones
      that resonate with elite athletes. Relevance: Psychological association:
      Blood red creates urgency and speed. Harmony: Stark contrast against
      black/white feels highly technical.
      Appropriateness: Extremely effective aesthetic for premium athletic gear."
    }
  }
}

Fallas evidentes (FAIL)

// Off-brand color palette
{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "description": "Dinosaur themed playground and party venue.",
    "audience": "kids 5-10",
    "tone": [
      "prehistoric",
      "loud",
      "fun"
    ]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era.",
    "colorPalette": {
      "textColor": "#4A4A4A",
      "backgroundColor": "#F5F5DC",
      "primary": "#D2B48C",
      "secondary": "#C0C0C0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While the motto relates to the dinosaur theme, its overly
      academic and formal tone fails to capture the loud and fun energy
      essential for a children's playground brand. Relevance: Effectively fits
      the dinosaur theme. Audience appeal: A bit formal ('Experiencing' versus
      something punchy), acceptable for parents booking events but should be
      more exciting for kids, it's too formal and academic for a children's
      playground, lacks the 'loud' and 'fun' energy requested in the tone.
      Tone consistency: It touches on the 'prehistoric' element adequately."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A completely family-friendly, educational-sounding statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "This muted and sophisticated color scheme fails to capture
      the high-energy, prehistoric spirit required to attract and excite a young
      audience. Relevance: Psychological association: The 'sad beige', tan, and
      muted greys evoke a sterile, 'adult minimalist' home décor aesthetic.
      Harmony: The colors are muddy and lifeless. Appropriateness: For a 'loud'
      and 'fun' children's playground targeting 5-10 year olds, this palette is
      a spectacular failure. It desperately needs vibrant, exciting primary
      colors to attract kids."
    }
  }
},

Fallas sutiles (FAIL)

// Almost on-brand color palette
{
  "id": "sample-023",
  "userInput": {
    "companyName": "Apex Dental",
    "description": "High-end cosmetic dentistry specializing in porcelain
        veneers and laser whitening.",
    "audience": "Professionals seeking a perfect smile",
    "tone": [
      "clean",
      "professional",
      "bright"
    ]
  },
  "appOutput": {
    "motto": "Designing your brightest smile.",
    "colorPalette": {
      "textColor": "#1A202C",
      "backgroundColor": "#FFFFFF",
      "primary": "#FFC107",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "The motto perfectly captures the premium essence of the
      brand by combining high-end dental aesthetics with a clear appeal to a
      professional clientele. Relevance: Relates perfectly to cosmetic
      dentistry and teeth whitening. Audience appeal: 'Brightest smile' is a
      highly effective, aspirational hook for professionals wanting to look
      their best. Tone consistency: Clean, upbeat, and exceedingly professional."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A very positive, medical-grade, and safe statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "The choice of bright yellow is a fundamental branding
      failure for a cosmetic dental practice as it creates a direct and
      repellent visual link to tooth discoloration, undermining the clinic's
      high-end whitening positioning. Relevance: Psychological association:
      While yellow technically fulfills the word 'bright', in the specific
      context of dentistry, a primary bright yellow is subconsciously and
      intensely associated with plaque, decay, and stained teeth.
      Harmony: It stands out strongly but sends the wrong message.
      Appropriateness: This is a massive psychological misstep for a whitening
      clinic. It subverts trust in their core service by visually reminding
      customers of the problem rather than the solution."
    }
  }
},

Alineación del alcance

Con la verdad fundamental lista, es hora de alinear el juez con las etiquetas humanas. Tu objetivo es asegurarte de que el juez esté de acuerdo contigo de forma constante y que imite el juicio humano. Puedes calcular una puntuación de alineación como el porcentaje de etiquetas creadas por el juez que coinciden con las etiquetas creadas por humanos.

// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;

Establece una puntuación de alineación objetivo, por ejemplo, el 85%. Tu objetivo puede variar según tu caso de uso.

Ejecuta tu modelo de juez en tu conjunto de datos de alineación. Si tu puntuación de alineación es inferior a la objetivo, lee la explicación del juez para comprender por qué se confundió. Modifica las instrucciones del sistema y la instrucción del juez para subsanar las brechas. Repite este proceso hasta que alcances la puntuación objetivo.

Prácticas recomendadas

Para ayudar al juez a calificar de manera coherente, sigue estas prácticas recomendadas:

  • Evita el sobreajuste. Las instrucciones deben ser generales y no demasiado específicas para tu conjunto de datos de alineación. Si proporcionas instrucciones específicas, como evitar ciertas frases, el evaluador será excelente para aprobar esta prueba de alineación específica, pero no logrará generalizar los datos nuevos. Este problema se conoce como sobreajuste.
  • Optimiza las instrucciones del sistema y la instrucción de evaluación. Las técnicas para optimizar las instrucciones incluyen modificarlas manualmente, pedirle a otro LLM que sugiera mejoras o aplicar cambios basados en una combinación de estas técnicas. Las técnicas de optimización de instrucciones pueden ir desde manuales hasta muy avanzadas, por ejemplo, algoritmos que imitan la evolución biológica. Mantén un registro de los cambios para revertirlos si es necesario.

Para ver la alineación en acción en ThemeBuilder, ejecuta la prueba de alineación por tu cuenta.

Ejemplo de prueba de alineación.

Prueba de esfuerzo con bootstrapping

Alcanzar el objetivo de alineación del 85% no garantiza que tu juez tenga un buen rendimiento con datos del mundo real. Somete a tu juez a una prueba de esfuerzo con un truco estadístico llamado bootstrapping. El bootstrapping crea versiones nuevas de tu conjunto de datos sin esfuerzo de etiquetado adicional.

** Prueba: Vuelve a muestrear de forma aleatoria 30 elementos de tu conjunto de datos con reemplazo. En una ejecución, es posible que se elija un caso complejo cinco veces, lo que dificulta mucho la prueba. Ejecuta la prueba de alineación en estos conjuntos aleatorios varias veces y calcula la varianza promedio de la alineación y la puntuación en estas ejecuciones. No hay un número mágico, pero 10 iteraciones son un buen punto de partida para proyectos medianos. Realiza más iteraciones para obtener una mayor confianza. ** Solución: Si tu puntuación de alineación varía significativamente (varianza alta), tu evaluador aún no es confiable. Tu puntuación inicial fue una casualidad impulsada por algunos casos fáciles. Amplía tu rúbrica y agrega ejemplos más diversos y complejos a tu conjunto de datos de alineación.

Representación visual de una prueba de bootstrap. A medida que los objetos se submuestrean con reemplazo, algunas clases pueden estar sobrerrepresentadas (canicas amarillas en las muestras de bootstrap 1 y 2), mientras que otras pueden estar subrepresentadas (canicas rojas en las muestras de bootstrap 1 y 2) o incluso faltar (canicas verdes en la muestra de bootstrap 3). Consulta la figura científica original de ResearchGate.

Puedes probarlo.

Ejemplo de prueba de arranque.

Prueba la autocoherencia

Solo se puede confiar en el juez si siempre da la misma respuesta para la misma entrada. Si estableciste la temperatura en 0, el juez debería ser 100% coherente. Realiza una prueba para confirmar.

  • Prueba: Ejecuta tu evaluador varias veces en el mismo conjunto de datos, por ejemplo, una extracción aleatoria de tu conjunto de datos de alineación. Calcula la varianza de cada caso de prueba en esas repeticiones. Intenta lograr una coherencia del 100% (varianza cero). Si la varianza es mayor que cero, la prueba falla porque significa que tu juez proporciona respuestas diferentes para la misma entrada.
  • Solución: Es posible que tu instrucción de juez sea ambigua o que la temperatura sea demasiado alta. Reescribe las partes de la instrucción que se vean poco claras, en particular tu rúbrica de puntuación. Si aún no lo hiciste, baja la temperatura a 0 (o establece el atributo thinking_level en un valor alto).

Para ver esto en acción, ejecuta la prueba tú mismo.

Es el resultado de la terminal de la prueba de coherencia del juez.
En este ejemplo, probamos 6 muestras para cada una de nuestras tres métricas (toxicidad del lema, adecuación de la marca al lema y adecuación de la marca al color). Los resultados fueron casi completamente estables, pero algunas muestras tuvieron resultados incoherentes.

Examen final

El bootstrapping te ayudó a ejecutar una verificación inicial para evitar el sobreajuste. Ahora, ejecutarás una prueba final con datos nuevos. Esta es la confirmación final de que el juez puede calificar correctamente las nuevas entradas.

  • Prueba: Conserva un conjunto de datos de examen final independiente de 20 muestras etiquetadas por humanos que no hayas usado durante la alineación. Ejecuta tu juez en este conjunto.
  • Solución: Si tu puntuación de alineación se mantiene alta, tu juez está listo. Si la puntuación falla, es probable que se haya producido un sobreajuste: modificaste demasiado tu instrucción para que se ajustara a tus datos de alineación específicos. Amplía tus ejemplos de instrucciones, rúbricas y aprendizaje con pocos ejemplos.

Para ver esto en acción, ejecuta la prueba tú mismo.

Resumen

Ejecutaste diferentes pruebas para crear tu juez básico, incluidas las siguientes:

  • La prueba de alineación verifica si el juez es correcto.
  • La prueba de arranque y el examen final verifican la sensibilidad de los datos. ¿El juez sigue siendo correcto con la frecuencia suficiente cuando se enfrenta a datos nuevos?
  • La prueba de autoconsistencia mide el ruido del sistema, que es el grado en que la aleatoriedad interna del juez del LLM afecta los resultados.