Créer un juge expert

Préparez votre juge pour la production.

Le juge de base que vous avez créé dans Configurer un modèle de juge de base, partie 1 et partie 2, était basé sur des données auto-étiquetées. C'est un excellent moyen d'établir une base de référence pour les tests. Toutefois, pour obtenir une qualité de niveau production, vous avez besoin d'un juge qui pense comme un spécialiste du domaine et de métriques statistiques robustes pour lui faire confiance à grande échelle. C'est ce que nous allons aborder ici.

Créer un ensemble de données d'alignement avec des experts

L'utilisation d'experts humains pour étiqueter votre ensemble de données d'alignement est essentielle pour créer un juge LLM fiable. Privilégiez la qualité à la quantité. Trente étiquettes de haute qualité provenant d'un expert du domaine sont infiniment meilleures que 300 étiquettes provenant de non-experts.

Trouver des étiqueteurs

Utilisez des concepteurs internes et des experts de la marque pour l'alignement de la marque. Pour la toxicité, vous pouvez faire appel à ces mêmes étiqueteurs ou collecter à l'aide du crowdsourcing des étiquettes auprès de votre équipe en vous basant sur une grille d'évaluation centrale afin de vous assurer que les étiqueteurs partagent les mêmes critères de notation.

Combien d'étiqueteurs experts ?

  • Un expert : c'est rapide et c'est un bon point de départ, mais votre juge héritera des biais de la personne.
  • Deux experts : cela peut être un excellent compromis budgétaire. Vous ne pouvez pas départager les égalités, mais vous pouvez repérer les désaccords.
  • Trois experts ou plus : il s'agit de la référence. L'utilisation d'un nombre impair vous permet de départager automatiquement les évaluations binaires PASS et FAIL comme dans notre exemple, car vous pouvez utiliser la note majoritaire.

Pour ThemeBuilder, supposons que vous ayez la chance d'avoir trois concepteurs de marque internes qui acceptent d'être nos étiqueteurs experts.

Les experts formulent une grille d'évaluation

Avant l'étiquetage, demandez aux experts de définir une stricte grille d'évaluation des critères spécifiques pour un PASS. Cela permet à vos experts d'être cohérents dans leur jugement, à la fois individuellement et collectivement.

Exemple :

Criteria:
• Psychological association: Do the colors evoke the emotions associated with the desired tone?
• Harmony: Do the colors work together to create the right atmosphere?
• Appropriateness: Is the palette suitable for the company's industry?

Les experts étiquettent les données

Demandez à vos experts d'examiner 30 à 50 échantillons, d'attribuer une étiquette PASS ou FAIL en fonction de la grille d'évaluation et de rédiger une rationale expliquant leur jugement. La justification est essentielle, car vous l'utiliserez pour résoudre les problèmes et corriger les désalignements entre notre juge et nos experts.

Interface de feuille de calcul pour aider vos experts à évaluer les thèmes.
Application Web pour les étiqueteurs experts. Cette interface utilisateur s'inspire d'AlignEvalsAlignEvals.

Conseils pour un étiquetage efficace

L'étiquetage manuel est coûteux. Essayez ces techniques pour optimiser l'efficacité de vos experts :

  • Vérifier uniquement : utilisez un LLM pour générer des étiquettes et des justifications initiales, puis demandez aux experts de les vérifier et de les corriger. Il est plus rapide de vérifier que de créer un jugement à partir de zéro.
  • Étiquetage sélectif : demandez à un deuxième expert de vérifier un petit sous-ensemble du travail du premier expert. En cas de désaccord, arrêtez-vous et corrigez la grille d'évaluation avant d'ajouter d'autres libellés.
  • LLM comme deuxième avis : demandez à un expert et à un juge LLM d'étiqueter les mêmes éléments. Si l'accord est faible, le LLM comprend la rubrique différemment. Itérez sur la grille d'évaluation jusqu'à ce qu'ils s'alignent.
  • Vérification intra-évaluateur : si vous n'avez qu'un seul expert, demandez-lui de réétiqueter 10% des données au hasard, à l'aveugle, une semaine plus tard. S'il n'est pas d'accord avec lui-même, votre grille d'évaluation n'est pas stable.

Voici un extrait JSON d'une entrée d'ensemble de données étiquetée par un expert, y compris l'étiquette PASS et FAIL de l'expert, ainsi que sa justification détaillée :

{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    // Company description, audience and tone
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    // ... Color palette
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
        engineering with the ambitious goals of its elite athletic audience.
        Relevance: Leverages '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."
    },
    // ... Human evals for colorBrandFit and mottoToxicity:
  }
}

Atteindre et mesurer l'accord des experts

Votre grille d'évaluation sert d'instructions au modèle. Il est donc important de prendre le temps de l'affiner. Si un concepteur définit "ludique" comme "langage créatif" tandis que un autre l'interprète comme "couleurs vives", votre LLM sera également en conflit. Vous devez renforcer votre grille d'évaluation pour éliminer ces ambiguïtés avant de l'envoyer à votre juge. Également appelé fiabilité inter-étiqueteurs ou accord inter-évaluateurs, un accord élevé garantit que votre modèle de juge fournit des étiquettes fiables et de haute qualité.

Les désaccords humains sont des signaux utiles qui vous indiquent où votre grille d'évaluation doit être améliorée. Itérez dessus jusqu'à ce que vos experts s'accordent sur les cas PASS et FAIL.

Votre juge ne peut pas être plus aligné que les humains qui l'ont créé.

Accord de base

Une façon de mesurer l'accord entre humains, que nous avons également utilisée pour notre score d'accord entre juges humains dans notre juge de base, est un pourcentage de la fréquence à laquelle nos experts sont d'accord.

// total = all test cases
// aligned = test cases where human1Eval.label === human2Eval.label
// (for example PASS and PASS)
const alignment = (aligned / total) * 100;

Accord au-delà de la chance : Kappa

L'accord de pourcentage de base est simple, mais il peut être trompeur. Imaginez un ensemble de données composé à moitié de PASS et à moitié de FAIL. Si deux experts lancent des pièces de monnaie, ils seront toujours d'accord 50% du temps par pure chance. C'est ce qu'on appelle le seuil de chance.

Pour calculer l'accord avec précision, utilisez plutôt des métriques statistiques qui mesurent la fiabilité au-delà du pur hasard :

  • Kappa de Cohen pour deux étiqueteurs.
  • Kappa de Fleiss pour trois étiqueteurs ou plus.

  • Test : visez un score Kappa d'au moins 0.61, qui est la norme pour un accord important. Un score de 0 signifie qu'il n'est pas meilleur qu'une devinette aléatoire, et 1.0 correspond à un accord parfait.

  • Correction : si votre score Kappa est inférieur à 0.61, votre grille d'évaluation est trop vague. Regroupez les échantillons sur lesquels vos experts ne sont pas d'accord, examinez leurs justifications, mettez à jour la grille d'évaluation pour couvrir ces cas limites spécifiques, puis répétez l'opération jusqu'à atteindre 0.61. Ne passez à l'étape suivante que lorsque vos experts sont alignés.

Score Kappa Action
Moins de 0.60 : médiocre Itérez et découvrez pourquoi les experts voient les choses différemment. Votre grille d'évaluation est peut-être trop vague. Affinez-la.
0.610.80 : bon Votre base de référence est fiable. Poursuivez avec cette rubrique.
0.81-1.00 : presque parfait Presque trop beau pour être vrai. Vérifiez si la tâche est trop facile ou si les experts simplifient trop.

Réduire vos étiquettes d'expert

Si vous avez utilisé trois experts humains ou plus pour étiqueter vos données, regroupez leurs votes en une seule note majoritaire pour chaque échantillon. Cette liste devient votre vérité terrain.

Configurer le juge

Comme pour le juge de base, vous devez configurer les paramètres de votre modèle et rédiger votre requête. Définissez vos instructions système sur une persona d'expert stricte et maintenez la température à 0 pour une cohérence maximale. Dans votre prompt, fournissez la grille d'évaluation exacte que vos experts humains ont utilisée pour noter les données. Ajoutez quelques-uns de vos exemples étiquetés par des experts comme exemples few-shot pour montrer au juge exactement comment raisonner.

Aligner et tester le juge

Une fois que vos experts humains sont d'accord, il est temps de voir si le juge LLM est d'accord avec eux.

Dans notre configuration de base, nous avons examiné l'alignement brut (justesse). Mais ce chiffre seul peut être trompeur. Imaginez que 90% de vos données de test soient un PASS. Un juge paresseux pourrait générer PASS à chaque fois et obtenir un score de justesse de 90% sans détecter un seul slogan toxique.

Définir une classe positive

Définissez votre classe positive. Votre classe positive, également appelée condition cible ou événement d'intérêt, est le résultat spécifique que vous essayez de détecter, de mesurer ou de signaler. Votre pipeline d'évaluation agit comme un gardien : son objectif principal est de détecter et de bloquer les mauvaises sorties.

En supposant que ThemeBuilder est généralement efficace pour générer des slogans et des palettes conformes à la marque, et que les slogans toxiques sont également rares, votre classe positive pour tous vos critères d'évaluation est un FAIL.

Dans cette optique :

  • Les faux positifs sont de bonnes sorties signalées à tort comme FAIL.
  • Les faux négatifs sont des FAIL qui ont été manqués.
  • Les vrais positifs sont des FAIL correctement identifiés.

Précision et rappel

En gardant à l'esprit votre classe positive, vous pouvez désormais utiliser la précision et le rappel, qui sont de meilleures métriques que l'alignement brut :

  • Précision : lorsque le juge LLM dit FAIL, à quelle fréquence a-t-il raison ? Par exemple, lorsque le juge a signalé un slogan comme toxique, à quelle fréquence avait-il réellement raison ?
  • Rappel : lorsque l'humain dit FAIL, à quelle fréquence le juge LLM l'a-t-il détecté ? Par exemple, parmi toutes les sorties réellement toxiques, et parmi tous les slogans et palettes réellement hors marque, combien le juge a-t-il détecté ?

Comprendre le coût des erreurs + définir des scores cibles

Posez-vous la question suivante : quelle erreur est la pire pour votre application ?

  • Toxicité : la toxicité est un problème de sécurité. Nous voulons détecter tous les slogans toxiques (minimiser les faux négatifs), même si cela signifie que notre juge est parfois trop strict et signale un slogan sûr. Le signalement d'un slogan sûr (faux positif) entraîne un léger délai ou un examen humain. Nous visons donc un rappel de 100%. La précision peut être inférieure.
  • Adéquation à la marque : nous avons besoin d'un équilibre. Manquer de mauvaises conceptions et rejeter de bonnes conceptions sont tout aussi coûteux. Nous voulons donc une précision et un rappel solides.
Reconnaissance des formes pour la précision et le rappel
Par Walber - CC BY-SA 4.0

Score F1

Lorsque le rappel augmente, la précision diminue souvent. Pour la toxicité, ce n'est pas un problème, car vous ne vous intéressez qu'au rappel.

Pour l'adéquation à la marque, le rappel et la précision sont tous deux importants. Pour équilibrer cette importance, vous pouvez utiliser une nouvelle métrique : F1. Votre score F1 combine la précision et le rappel en une seule métrique équilibrée.

Atteindre l'alignement

Exécutez votre juge sur l'ensemble de données étiqueté par des experts et calculez les scores de justesse, de précision, de rappel et F1 pour chacun de vos critères. Évaluez si vous atteignez vos objectifs.

Si ce n'est pas le cas, regroupez les cas d'échec et lisez les justifications du LLM. Mettez à jour les instructions système et la grille d'évaluation du juge pour combler les écarts jusqu'à ce que les métriques atteignent vos objectifs.

Une fois que votre juge atteint vos objectifs, il est aligné.

Validation finale

Nous allons maintenant valider notre juge en suivant exactement les mêmes étapes que celles décrites dans la configuration du juge de base, mais en appliquant vos nouvelles métriques avancées :

  • Test de résistance avec bootstrapping : rééchantillonnez votre ensemble de données de manière aléatoire avec remplacement pendant 10 itérations. Calculez la variance de vos scores de précision, de rappel et F1 sur ces exécutions pour prouver mathématiquement que vos scores élevés ne sont pas dus au hasard.
  • Tester l'auto-cohérence : exécutez exactement les mêmes entrées plusieurs fois dans le juge pour vous assurer que ses verdicts sont stables à 100 %. Nous voulons une variance nulle sur toutes les itérations.
  • Faites passer un examen final au juge : testez le juge sur un ensemble de 15 à 20 échantillons frais étiquetés par des experts qu'il n'a jamais vus auparavant. Calculez les scores Kappa de Cohen, de précision, de rappel et F1 sur cet ensemble masqué. Si ces métriques restent proches, cela prouve que votre juge n'a pas surajusté vos données d'alignement et qu'il est prêt à être généralisé au monde réel.

Réaligner le juge

Une fois que vous avez terminé, félicitations ! Vous avez créé un pipeline d'évaluation hautement fiable.

N'oubliez pas de réaligner votre juge chaque fois que vous mettez à jour le LLM sous-jacent sur lequel il s'appuie ou lorsque l'ensemble de fonctionnalités de votre application change fondamentalement.