Migrer vers le moteur d'étiquetage
Faites passer les configurations icl_labeling, judge_calibration, pre_annotation et Solo Mode au moteur d'étiquetage avec potato label migrate-config, et voyez ce qui change ensuite.
Les anciennes fonctionnalités d'étiquetage automatique de Potato continuent de fonctionner en 2.11, et rien ne change de comportement tant que vous n'ajoutez pas de bloc labeling_engine. Trois clés affichent désormais au démarrage une note d'information qui nomme leur équivalent dans le moteur d'étiquetage, et leur suppression est prévue pour la 3.0. Ces notes vont sur stderr, commencent par NOTE: et ne sont pas des avertissements, donc potato validate --strict n'échoue pas à cause d'elles.
Le tableau liste les trois clés et ce que devient chacune :
| Ancienne clé | Équivalent dans le moteur |
|---|---|
icl_labeling | une source llm, avec un contrat threshold_legacy pour l'ancienne règle et un contrat selective_risk à côté |
judge_calibration | des sources judge avec une confiance k_sample, dont l'échantillon en aveugle devient des demandes de calibration |
pre_annotation | une source static |
Le Solo Mode, l'alignement des juges et l'assistant IA interactif (ai_support) ne sont pas dépréciés. Le Solo Mode, c'est un expert qui travaille avec un LLM dans sa propre interface, et l'alignement des juges est un rapport. Quand le moteur est activé, tous deux écrivent aussi leurs prédictions de modèle dans le stockage du moteur, afin que le moteur puisse les calibrer et les certifier.
potato label migrate-config
potato label migrate-config traduit les anciennes clés en un bloc labeling_engine :
potato label migrate-config config.yaml --out config-engine.yamlLa commande lit le YAML sans charger de données, ajoute un bloc labeling_engine équivalent et écrit le résultat avec un en-tête de notes qui expliquent chaque traduction. Elle écrit le bloc avec enabled: false, de sorte que la configuration traduite se comporte comme l'originale jusqu'à ce que vous activiez le moteur. Lisez les notes, vérifiez les sources et les contrats, puis définissez enabled: true et assignment_strategy: engine. La commande se termine en erreur quand la configuration contient déjà un bloc labeling_engine, ou quand il n'y a rien à traduire.
Table de correspondance
Chaque ancien bloc correspond à des sources, des contrats et des réglages humains du moteur comme suit :
| Ancien bloc | Sources | Contrats | Humains |
|---|---|---|---|
solo_mode avec confidence_routing.tiers | une source par niveau, dans l'ordre des niveaux | selective_risk pour chaque schéma à choix unique, error: 1 - end_human_annotation_agreement | pools: [solo] |
solo_mode avec labeling_models | une source par modèle, la première formant la cascade | comme ci-dessus | pools: [solo] |
solo_mode.jury | une source par juré, plus une source jury comme cascade | comme ci-dessus | |
icl_labeling | le point de terminaison ai_support comme source llm | threshold_legacy à l'ancien confidence_threshold, et selective_risk à 10 % | calibration_rate = l'ancien sample_rate de vérification |
judge_alignment | le point de terminaison du juge comme source judge (avec la grille d'évaluation quand il n'y a qu'un schéma) | no_worse_than_human, epsilon: 0.15, pour chaque schéma jugé | overlap: 0.3 |
judge_calibration | chaque modèle comme source judge avec une confiance k_sample | sampling.sample_size → budgets.human_labels | |
pre_annotation avec field ou predictions_file | une source static, en tête de la cascade | ||
active_learning.llm | une source llm | ||
ai_budget.cap_usd | budgets.model_usd |
Changements de comportement après la migration
Le moteur traite les étiquettes humaines autrement que les anciennes fonctionnalités, et les notes de la configuration traduite indiquent où. Attendez-vous à quatre changements :
- Les seuils fixes deviennent des seuils testés. Les seuils de routage du Solo Mode et le seuil de confiance d'
icl_labelingacceptaient les étiquettes machine au-dessus d'une valeur fixe.selective_riskchoisit le seuil sur les étiquettes dev et n'accepte que ce qui réussit un test sur des étiquettes mises de côté, donc attendez-vous d'abord à moins d'étiquettes acceptées, avec une borne d'erreur énoncée sur celles qui le sont. - Les échantillons de vérification deviennent uniformes.
icl_labelingvérifiait d'abord les prédictions les moins confiantes, ce qui trouve vite les erreurs mais donne une estimation d'exactitude biaisée. Les demandes de calibration du moteur forment un échantillon aléatoire avec des probabilités d'inclusion enregistrées. - Le jugement en ligne passe en aveugle.
judge_alignment.inlinemontrait le verdict du juge pendant que les personnes étiquetaient, si bien que l'accord était mesuré sur des étiquettes influencées par ce verdict. Les demandes de calibration du moteur ne montrent jamais de réponse machine. - Les pré-annotations sont testées avant qu'on s'y fie. Les étiquettes d'une source
staticne sont acceptées que là où un contrat les certifie, et ailleurs les personnes les voient dans des demandes de vérification.
Pour aller plus loin
Pour les détails d'implémentation, consultez la documentation source.