Aller au contenu

Étiquetage assisté par un modèle entraîné sur vos étiquettes

Quand les pré-étiquettes d'un modèle entraîné sur vos propres annotations font gagner du temps, comment elles ancrent les annotateurs et comment un groupe mis à l'écart mesure l'effet.

L'étiquetage assisté par un modèle accélère l'annotation en entraînant un modèle sur les étiquettes que vos annotateurs ont déjà données, puis en montrant ses prédictions sur de nouveaux items sous forme de pré-étiquettes à confirmer ou à corriger. Comme une pré-étiquette attire aussi l'annotateur vers la réponse du modèle, une étude qui utilise des pré-étiquettes doit mettre certains annotateurs à l'écart et mesurer de combien les réponses se déplacent.

Nouveauté de la v2.14.0

Une pré-étiquette est une étiquette qu'un modèle a proposée pour un item avant que quiconque l'étiquette. L'étiquetage assisté par un modèle, aussi appelé pré-étiquetage, est un flux de travail avec humain dans la boucle dans lequel les annotateurs acceptent, modifient ou rejettent ces pré-étiquettes, et les étiquettes acceptées et corrigées deviennent le jeu de données. Ce guide traite du cas où le modèle est entraîné sur les annotations du projet et réentraîné à mesure que d'autres arrivent. Le guide sur la pré-annotation par LLM et par modèle de vision traite des pré-étiquettes d'un modèle généraliste piloté par un prompt, et le guide sur l'apprentissage actif traite du choix des prochains items à étiqueter.

En quoi un modèle entraîné sur vos étiquettes diffère de la pré-annotation par LLM

Un LLM ou un modèle de vision préentraîné peut pré-étiqueter dès le premier item, guidé par un prompt et quelques exemples. Un modèle entraîné sur vos étiquettes part de rien et a d'abord besoin d'un ensemble de départ d'items étiquetés. Le module d'entraînement sklearn-text de Potato refuse de s'ajuster avec moins de 10 items dans la partition d'entraînement, et les classifieurs Hugging Face pour le texte, les empans et les images refusent en dessous de 20. En échange, le modèle entraîné apprend les frontières d'étiquettes que vos annotateurs tracent réellement sur vos items. Chaque exécution est évaluée sur des items mis de côté avant l'entraînement, et le score figure sur la page Training avant qu'un annotateur voie une pré-étiquette. Un petit classifieur tourne aussi sur votre propre machine sans coût par item.

Les suggestions d'un LLM peuvent couvrir le début d'une étude pendant que l'ensemble de départ grandit, et le modèle entraîné peut prendre le relais quand son score sur items réservés dépasse l'accord du LLM avec les mêmes étiquettes. L'apprentissage actif se combine avec les deux, puisqu'il choisit l'ordre des items alors que le pré-étiquetage change le travail sur chaque item.

Quand les pré-étiquettes font gagner du temps

Le pré-étiquetage fait gagner du temps quand lire et confirmer une étiquette est plus rapide que d'en produire une. Dans une expérience d'étiquetage morphosyntaxique avec deux annotateurs, Fort et Sagot (2010) ont mesuré pour un annotateur environ 7,5 minutes pour 10 phrases sans pré-annotation et environ 2,5 minutes en corrigeant la sortie d'un étiqueteur. Un étiqueteur entraîné sur seulement 50 phrases atteignait 81,6 % d'exactitude, et le temps que ses pré-annotations faisaient gagner ne différait pas de façon significative de celui que faisait gagner un étiqueteur entraîné sur 37 990 phrases à 96,4 %. Seul l'étiqueteur entraîné sur 10 phrases ralentissait l'annotation de façon significative par rapport aux autres, et il était exact à 66,5 %. Lingren et al. (2014) ont trouvé des gains de temps de 13,85 % à 21,5 % par entité pour l'annotation d'entités nommées cliniques, sans changement significatif de l'accord ni de la performance des annotateurs. Mikulová et al. (2022) ont constaté que la pré-annotation par un analyseur précis rendait l'annotation en dépendances plus rapide et plus cohérente.

Pour un modèle entraîné sur les propres étiquettes d'un projet, le résultat de Fort et Sagot suggère qu'un modèle entraîné sur les premières dizaines d'items étiquetés peut déjà faire gagner du temps. Un modèle encore proche du hasard fait perdre du temps, donc les premières pré-étiquettes doivent attendre un score sur items réservés nettement au-dessus du hasard.

Quand les pré-étiquettes nuisent

Les pré-étiquettes changent les réponses autant que la vitesse. L'ancrage est l'attraction qu'une réponse suggérée exerce sur un jugement ultérieur, et la validation mécanique consiste à accepter les suggestions sans les lire, une forme de biais d'automatisation. Dans l'expérience de Fort et Sagot, l'exactitude de l'annotateur le plus précis est passée de 98,1 % à 95,8 % avec les pré-annotations de l'étiqueteur à 81,6 %, et avec le meilleur étiqueteur le même annotateur a commis des erreurs systématiques identiques à celles de l'étiqueteur (adjectif pour participe passé). Dans une étude préenregistrée sur les suggestions d'un LLM pour des tâches subjectives, Schroeder et al. (2025) ont constaté que les annotateurs n'allaient pas plus vite et suivaient les suggestions assez souvent pour déplacer la distribution des étiquettes. L'exactitude mesurée du LLM augmentait aussi quand les étiquettes assistées servaient de référence d'évaluation.

Réentraîner sur des pré-étiquettes acceptées ajoute une boucle de rétroaction. Une pré-étiquette que l'annotateur enregistre sans la changer devient la réponse de cet annotateur, et l'exécution d'entraînement suivante apprend de cette réponse comme de toute autre étiquette. Une erreur que les annotateurs acceptent revient donc comme donnée d'entraînement, et le modèle suivant peut répéter l'erreur sur de nouveaux items. Les mesures d'accord ne peuvent pas détecter la boucle, car des annotateurs qui acceptent la même pré-étiquette sont d'accord par construction. Distinguer relecture et validation mécanique décrit des signaux de durée pour les annotateurs qui acceptent sans lire, et mesurer comment les suggestions d'un LLM ancrent les annotateurs décrit des items en aveugle pour les annotateurs qui lisent et sont pourtant attirés.

Choix de conception

Quatre paramètres décident si les pré-étiquettes aident une étude donnée : le seuil de confiance, les items qui reçoivent des pré-étiquettes, la part d'annotateurs mis à l'écart et la fréquence de réentraînement du modèle.

Seuil de confiance

Sous un seuil de confiance, une prédiction est masquée et l'annotateur étiquette l'item à partir de zéro. Un seuil plus élevé montre moins de pré-étiquettes, avec une plus grande part de pré-étiquettes correctes. Un seuil n'a de sens que si les confiances du modèle sont calibrées. Les prédictions d'un modèle calibré à 0,8 de confiance sont justes environ 80 % du temps sur les items réservés. sklearn-text de Potato calibre par défaut les confiances du classifieur dès qu'une exécution compte au moins 50 items d'entraînement, avec la mise à l'échelle de Platt en dessous de 1 000 items et la régression isotonique au-delà. Fixez le seuil à partir des items réservés, à la confiance au-dessus de laquelle le modèle est assez souvent juste pour que vérifier une pré-étiquette soit plus rapide qu'étiqueter l'item.

Quels items reçoivent des pré-étiquettes

Potato ne pré-étiquette jamais les items d'entraînement d'un modèle, car un modèle est sûr de ses données d'entraînement pour des raisons qui ne disent rien des nouvelles données. Au-delà de cette règle, gardez les pré-étiquettes hors des items servant à mesurer l'accord inter-annotateurs et hors des items de référence. L'accord sur des items avec une pré-étiquette commune mesure la pré-étiquette, et un item de référence traité avec la pré-étiquette à l'écran mesure autant le modèle que l'annotateur. Parmi les items restants, une file de relecture triée de la moins sûre à la plus sûre place les annotateurs sur les erreurs probables du modèle. Une file qui sert chaque item de la moins sûre à la plus sûre convient à une étude où chaque item a encore besoin d'une étiquette humaine.

Mettre des annotateurs à l'écart pour mesurer l'effet

L'ancrage se mesure en comparant les réponses données avec une pré-étiquette aux réponses données sans pré-étiquette, par les mêmes annotateurs sur le même genre d'item. ai_support.holdout de Potato retient toute forme d'assistance pour une part aléatoire des paires annotateur-item, et les pré-étiquettes d'entraînement font partie des formes retenues. Potato tire au sort par paire plutôt que par item, et la plupart des items ont alors des annotateurs assistés et des annotateurs mis à l'écart. Un hachage salé garde chaque paire dans le même groupe après un redémarrage. Pour les schémas radio, multiselect, likert et select, l'onglet AI influence du tableau de bord d'administration compare les deux groupes sur la fréquence à laquelle les réponses correspondent au modèle, la fréquence à laquelle elles correspondent à la référence et l'accord à l'intérieur de chaque groupe. L'onglet rapporte la différence d'accord avec le modèle avec un intervalle bootstrap à 95 % dès que chaque groupe compte 10 réponses sur des items qui ont une réponse du modèle. Fixez la fraction et le sel avant le début de l'annotation, car changer l'un ou l'autre en cours d'étude redistribue les groupes. Mesurer l'influence de l'IA liste chaque surface d'assistance que la réserve retient.

Fréquence de réentraînement

Réentraîner souvent garde les pré-étiquettes à jour avec les dernières décisions sur les consignes et les corrections, et chaque réentraînement remplace aussi les pré-étiquettes que voient les annotateurs. auto_retrain de Potato lance une exécution dès que update_frequency nouvelles annotations sont arrivées (25 par défaut) et que min_interval_s secondes se sont écoulées depuis la fin de la dernière exécution (600 par défaut). Une valeur plus grande de update_frequency économise du calcul et garde les pré-étiquettes stables sur de plus longues périodes de travail. Gardez split_seed fixe pour toute l'étude, car changer la graine déplace des items réservés vers l'entraînement et rend le score sur items réservés d'une exécution incomparable avec celui de la suivante. Potato place aussi chaque item qu'un relecteur a corrigé dans la partition d'entraînement de toutes les exécutions suivantes. Une correction enseigne alors le modèle suivant et ne sert jamais à l'évaluer.

L'étiquetage assisté par un modèle dans Potato

L'entraînement de modèles de Potato ajuste un modèle sur les annotations propres à une étude depuis la page Training de l'administration, l'évalue sur des items réservés et écrit ses prédictions en retour sur les items sous forme de pré-étiquettes. L'écriture en retour montre la réponse du modèle présélectionnée sur la page d'annotation. Une pré-étiquette ne devient la réponse de l'annotateur que quand celui-ci la modifie ou passe à la suite. Jusque-là, l'item ne compte pas comme terminé. Ces blocs ajoutent l'étiquetage assisté par un modèle avec réentraînement automatique et une réserve de 20 % à une configuration qui a un schéma radio nommé sentiment.

yaml
model_training:
  enabled: true
  auto_retrain:
    enabled: true
    trainer: sklearn-text
    schemas: [sentiment]
    update_frequency: 50
    min_interval_s: 600
  writeback:
    schemas: [sentiment]
    include_unlabeled: true
    min_confidence: 0.8
 
ai_support:
  holdout:
    fraction: 0.2
    salt: reviews-2026

writeback.schemas nomme les schémas dont les prédictions sont montrées aux annotateurs. La liste est vide par défaut, et les annotateurs ne voient aucune prédiction tant que la liste ne nomme pas un schéma. include_unlabeled: true prédit aussi sur les items que personne n'a encore étiquetés, et ce sont ces items-là pour lesquels une pré-étiquette fait gagner du temps. Sans ce paramètre, une exécution ne prédit que sur les items réservés de l'exécution. Les prédictions sous min_confidence sont conservées et non montrées. Le bloc de réserve fonctionne avec ai_support.enabled désactivé.

assignment_strategy: model_review sert les items pré-étiquetés de la moins sûre à la plus sûre pour relecture, et assignment_strategy: llm_confidence sert chaque item dans cet ordre. Un relecteur consigne un verdict accept, correct ou reject sur chaque pré-étiquette. Une pré-étiquette rejetée est retirée de l'item et n'est plus montrée. DELETE /admin/training/api/runs/<run_id>/predictions retire toutes les pré-étiquettes qu'une exécution a écrites. Le modèle dans la boucle parcourt pas à pas l'écriture en retour, la file de relecture, l'ordre d'acquisition et auto_retrain, et la référence amont sur l'écriture en retour liste chaque vérification qu'une prédiction passe avant qu'un annotateur la voie.

Pour aller plus loin

Références

  1. Fort, K., and Sagot, B. (2010). Influence of Pre-annotation on POS-tagged Corpus Development. Proceedings of the Fourth Linguistic Annotation Workshop, 56-63. https://aclanthology.org/W10-1807/
  2. Lingren, T., Deleger, L., Molnar, K., Zhai, H., Meinzen-Derr, J., Kaiser, M., Stoutenborough, L., Li, Q., and Solti, I. (2014). Evaluating the impact of pre-annotation on annotation speed and potential bias: natural language processing gold standard development for clinical named entity recognition in clinical trial announcements. Journal of the American Medical Informatics Association, 21(3), 406-413. https://doi.org/10.1136/amiajnl-2013-001837
  3. Mikulová, M., Straka, M., Štěpánek, J., Štěpánková, B., and Hajič, J. (2022). Quality and Efficiency of Manual Annotation: Pre-annotation Bias. Proceedings of the Thirteenth Language Resources and Evaluation Conference, 2909-2918. https://aclanthology.org/2022.lrec-1.312/
  4. Schroeder, H., Roy, D., and Kabbara, J. (2025). Just Put a Human in the Loop? Investigating LLM-Assisted Annotation for Subjective Tasks. Findings of the Association for Computational Linguistics: ACL 2025, 25771-25795. https://doi.org/10.18653/v1/2025.findings-acl.1323