Configurer un modèle de juge de base (partie 2)

Terminez la configuration de votre modèle d'évaluation de base pour exécuter vos évaluations subjectives.

Aligner et tester l'évaluateur

Vous disposez d'un évaluateur initial, mais vous ne pouvez pas encore lui faire confiance. Votre évaluateur n'est prêt que lorsqu'il est systématiquement d'accord avec le jugement humain.

Créer un ensemble de données d'alignement

Pour calibrer votre évaluateur, vous avez besoin d'un ensemble de données d'alignement. Il s'agit d'une petite collection d'entrées et de sorties de haute qualité que les humains ont évaluées manuellement. Cet ensemble de données sert de vérité terrain. Vous l'utilisez pour vérifier que la logique de l'évaluateur correspond systématiquement à vos attentes.

Votre ensemble de données d'alignement doit contenir 30 à 50 paires entrée-sortie. L'ensemble est suffisamment grand pour couvrir certains cas limites, mais suffisamment petit pour que vous puissiez l'étiqueter en peu de temps.

Dans l'exemple ThemeBuilder, une entrée de l'ensemble de données d'alignement se présente comme suit (entrée, sortie, étiquette humaine) :

{
  "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."
    }
  }
}

Pour générer des entrées et des sorties, vous pouvez extraire des journaux de production (si disponibles), créer les données manuellement, utiliser un LLM (données synthétiques), ou commencer par quelques exemples sélectionnés à la main et demander à un LLM d'augmenter votre ensemble de données.

Une fois vos entrées et sorties prêtes, utilisez votre grille d'évaluation pour étiqueter les sorties comme PASS ou FAIL avec votre équipe. Cet identifiant deviendra votre vérité terrain.

Assurez-vous que votre ensemble de données d'alignement inclut des exemples PASS et FAIL de difficulté variable, par exemple :

  • 10 exemples de cas de réussite que votre évaluateur étiquette comme PASS.
  • 20 exemples de cas que votre évaluateur étiquette comme FAIL :
    • Échecs évidents, par exemple une devise très toxique ou complètement hors marque.
    • Échecs subtils, par exemple une devise grammaticalement parfaite, mais un peu trop formelle pour une marque ludique, ou qui ne correspond que partiellement au ton.

Votre évaluateur LLM est un gardien. L'aligner sur un ensemble de données contenant plus d'échecs que de cas de réussite offre plus de possibilités d'ajuster la grille d'évaluation pour détecter les échecs et, en fin de compte, améliore la capacité de l'évaluateur à détecter les échecs.

Une fois votre ensemble de données d'alignement prêt, il se présente comme suit :

Cas de réussite (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."
    }
  }
}

Échecs évidents (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."
    }
  }
},

Échecs subtils (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."
    }
  }
},

Alignement de la couverture

Une fois votre vérité terrain prête, alignez l'évaluateur sur les étiquettes humaines. Votre objectif est de vous assurer que l'évaluateur est systématiquement d'accord avec vous et imite le jugement humain. Vous pouvez calculer un score d'alignement comme le pourcentage d'étiquettes créées par l'évaluateur qui correspondent aux étiquettes créées par l'humain.

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

Définissez un score d'alignement cible, par exemple 85%. Votre cible peut varier en fonction de votre cas d'utilisation.

Exécutez votre modèle d'évaluateur par rapport à votre ensemble de données d'alignement. Si votre score d'alignement est inférieur à votre cible, lisez la justification de l'évaluateur pour comprendre pourquoi il a fourni une étiquette incorrecte. Modifiez les instructions système et le prompt de l'évaluateur pour combler les lacunes. Répétez cette opération jusqu'à ce que vous atteigniez votre score cible.

Bonnes pratiques

Pour aider l'évaluateur à obtenir un score cohérent, suivez ces bonnes pratiques :

  • Évitez le surapprentissage. Générez des instructions et évitez de les rendre trop spécifiques à votre ensemble de données d'alignement. Si vous fournissez des instructions spécifiques, par exemple en évitant certaines expressions, l'évaluateur réussit ce test d'alignement spécifique, mais il ne parvient pas à généraliser les nouvelles données. Ce problème est appelé surapprentissage.
  • Optimisez vos instructions système et le prompt de l'évaluateur. Les techniques d'optimisation des prompts incluent la modification manuelle des prompts, la demande à un autre LLM de suggérer des améliorations ou l'application de modifications basées sur une combinaison de ces techniques. Les techniques d'optimisation des prompts peuvent aller du manuel au très avancé, par exemple les algorithmes qui imitent l'évolution biologique. Conservez un journal de vos modifications pour les rétablir si nécessaire.

Pour voir l'alignement en action pour ThemeBuilder, exécutez le test d'alignement.

Sortie du terminal d'un test d'alignement indiquant les taux de réussite/d'échec.
Exemple de test d'alignement.

Test de résistance avec bootstrapping

Atteindre votre objectif d'alignement de 85% ne garantit pas que votre évaluateur fonctionne correctement avec des données réelles. Testez la résistance de votre évaluateur avec une technique statistique appelée bootstrapping. Le bootstrapping crée de nouvelles versions de votre ensemble de données sans effort d'étiquetage supplémentaire.

  • Test : Rééchantillonnez de manière aléatoire 30 éléments de votre ensemble de données avec remplacement. En une seule exécution, un cas difficile peut être sélectionné cinq fois, ce qui rend le test beaucoup plus difficile. Exécutez le test d'alignement sur ces ensembles aléatoires plusieurs fois, puis calculez l'alignement moyen et la variance du score sur ces exécutions. Il n'existe pas de nombre spécifique, mais 10 itérations constituent une base de référence utile pour les projets de taille moyenne. Effectuez plus d'itérations pour une plus grande confiance.
  • Correction : Si votre score d'alignement fluctue de manière significative (variance élevée), votre évaluateur n'est pas encore fiable. Votre score initial était une coïncidence due à quelques cas simples. Élargissez votre grille d'évaluation et ajoutez des exemples plus diversifiés et plus difficiles à votre ensemble de données d'alignement.
Représentation visuelle d'un test bootstrap, montrant comment le rééchantillonnage avec remplacement peut surreprésenter ou sous-représenter certaines classes de données.
Lorsque les objets sont sous-échantillonnés avec remplacement, certaines classes peuvent être surreprésentées (billes jaunes dans les échantillons de bootstrapping 1 et 2), tandis que d'autres peuvent être sous-représentées (billes rouges dans les échantillons de bootstrapping 1 et 2) ou même manquantes (billes vertes dans l'échantillon de bootstrapping 3). Consultez la figure scientifique d'origine sur ReaserchGate.

Vous pouvez essayer.

Sortie du terminal d'un test bootstrap.
Exemple de test de bootstrapping.

Tester l'auto-cohérence

L'évaluateur ne peut être considéré comme fiable que s'il fournit toujours la même réponse pour la même entrée. Si vous avez défini votre température sur 0, l'évaluateur est cohérent à 100 %. Confirmez cette cohérence.

  • Test : Exécutez votre évaluateur plusieurs fois sur exactement le même ensemble de données, par exemple un tirage aléatoire à partir de votre ensemble de données d'alignement. Calculez la variance pour chaque cas de test sur ces répétitions. Viser une cohérence de 100 % (variance nulle). Si la variance est supérieure à zéro, le test échoue, car l'évaluateur fournit des réponses différentes pour la même entrée.
  • Correction : Le prompt de votre évaluateur peut être ambigu ou la température trop élevée. Réécrivez les parties du prompt qui manquent de clarté, en particulier votre grille d'évaluation. Réduisez la température à 0 (ou définissez le thinking_level sur "high"), si ce n'est pas déjà fait.

Pour voir cela en action, exécutez le test.

Résultat du terminal du test de cohérence du juge.
Dans cet exemple, nous avons testé six échantillons pour chacune de nos trois métriques (toxicité de la devise, adéquation de la devise à la marque et adéquation de la couleur à la marque). Les résultats étaient presque entièrement stables, mais quelques échantillons présentaient des résultats incohérents.

Examen final

Le bootstrapping vous a aidé à effectuer une vérification initiale pour éviter le surapprentissage. Ensuite, vous exécuterez un test final à l'aide de nouvelles données. Il s'agit de votre confirmation finale que l'évaluateur peut correctement évaluer de nouvelles entrées.

  • Test : Conservez un ensemble de données d'examen final distinct de 20 échantillons étiquetés par des humains que vous n'avez pas utilisés lors de l'alignement. Exécutez votre évaluateur par rapport à cet ensemble.
  • Correction : Si votre score d'alignement reste élevé, votre évaluateur est prêt. Si le score chute fortement, cela indique un surapprentissage : vous avez ajusté votre prompt trop de fois pour réussir vos données d'alignement spécifiques. Élargissez votre prompt, votre grille d'évaluation et vos exemples few-shot.

Pour voir cela en action, exécutez le test.

Résumé

Vous avez exécuté différents tests pour créer votre évaluateur de base, y compris :

  • Le test d'alignement vérifie si l'évaluateur est correct.
  • Le test de bootstrapping et l'examen final vérifient la sensibilité aux données : la capacité de l'évaluateur à rester correct lorsqu'il est confronté à de nouvelles données.
  • Le test d'auto-cohérence mesure le bruit du système, c'est-à-dire l'impact du caractère aléatoire interne de l'évaluateur LLM sur les résultats.