
Classify
La fonction classify
dans GenAIScript vous permet de catégoriser des entrées en fonction d’un modèle d’apprentissage automatique.
Elle fournit une interface simple pour exploiter la puissance des LLM pour les tâches de classification.
Utilisation
Section intitulée « Utilisation »classify
est défini dans le runtime GenAIScript et doit être importé. Il prend en entrée le texte à classer, un ensemble d’étiquettes (et des options pour le LLM)
et renvoie l’étiquette fournie par le LLM.
import { classify } from "@genaiscript/runtime"
const { label } = await classify( "The app crashes when I try to upload a file.", { bug: "a software defect", feat: "a feature request", qa: "an inquiry about how to use the software", })
- L’invite encourage le LLM à expliquer ses choix avant de retourner l’étiquette.
- Les tokens des étiquettes sont renforcés à l’aide du logit-bias pour améliorer la fiabilité de la classification.
Vous pouvez passer une fonction qui prend un contexte d’invite
et construire la variable DATA
de manière programmatique.
Cela vous permet de sélectionner des fichiers, des images et d’autres options GenAIScript.
const res = await classify(_ => { _.defImages('DATA', img)}, ...)
Étiquettes
Section intitulée « Étiquettes »Le paramètre labels
est un objet où les clés sont les étiquettes dans lesquelles vous souhaitez classer l’entrée, et les valeurs sont les descriptions de ces étiquettes. Le LLM utilise ces descriptions pour comprendre ce que chaque étiquette signifie.
Chaque identifiant d’étiquette doit être un mot unique qui s’encode en un seul token. Cela permet de renforcer l’étiquette à l’aide du logit-bias et d’améliorer la fiabilité de la classification.
Étiquette other
Section intitulée « Étiquette other »Une étiquette other
peut être automatiquement ajoutée à la liste
des étiquettes pour offrir une échappatoire au LLM lorsqu’il n’est pas capable de classer le texte.
const res = await classify( "...", { ... }, { other: true })
Explications
Section intitulée « Explications »Par défaut, l’invite de classification est réglée pour retourner un token (maxToken: 1
) en tant qu’étiquette.
Vous pouvez activer l’émission d’une justification avant de retourner l’étiquette.
const res = await classify( "...", { ... }, { explanation: true })
Modèle et autres options
Section intitulée « Modèle et autres options »La fonction classify
utilise par défaut l’alias de modèle classify
.
Vous pouvez modifier cet alias ou spécifier un autre modèle dans les options.
const res = await classify("...", { model: "large",})
Les options
sont transmises en interne à l’invite en ligne et peuvent être utilisées pour modifier le comportement du LLM.
Évaluation de la qualité de la classification
Section intitulée « Évaluation de la qualité de la classification »GenAIScript renvoie la logprob (et l’entropie) de l’étiquette de classification. Vous pouvez utiliser cette valeur pour évaluer la qualité du classement.
Si l’étiquette a une probabilité élevée, cela signifie que c’est probablement une classification de bonne qualité. Une probabilité plus faible peut signifier que le LLM a hésité ou que d’autres étiquettes ont également été envisagées.
const { label, probPercent } = await classify(...)if (probPercent < 80) { // 80% console.log(`classifier confused...`)}
Configuration
Section intitulée « Configuration »Vous pouvez désactiver les logprobs
en définissant logprobs: false
dans les options. Vous pouvez désactiver les topLogprobs
en définissant topLogprobs: false
dans les options.
Remerciements
Section intitulée « Remerciements »Cette fonction est inspirée de la classification dans Marvin.