Skip to content

Etiquetado ICL

Etiquetado asistido por IA con aprendizaje en contexto y verificación humana para anotación escalable.

Etiquetado ICL Asistido por IA

La función de etiquetado ICL (In-Context Learning) de Potato permite la anotación asistida por IA utilizando anotaciones humanas de alta confianza como ejemplos en contexto para guiar a un LLM en el etiquetado de los datos restantes. El sistema rastrea la confianza del LLM y envía las predicciones de vuelta a los humanos para su verificación.

Descripción General

El sistema de etiquetado ICL:

  1. Recopila Ejemplos de Alta Confianza: Identifica instancias donde los anotadores coinciden (por ejemplo, 80%+ de acuerdo)
  2. Etiqueta con LLM: Usa los ejemplos para solicitar al LLM que etiquete instancias sin etiquetar
  3. Rastrea la Confianza: Registra las puntuaciones de confianza del LLM para cada predicción
  4. Verifica la Precisión: Envía una muestra de instancias etiquetadas por el LLM a humanos para verificación ciega
  5. Reporta Métricas: Calcula y muestra la precisión del LLM basándose en los resultados de verificación

Características

Recopilación Automática de Ejemplos

El sistema identifica automáticamente ejemplos de alta confianza donde múltiples anotadores coinciden:

  • Umbral de acuerdo configurable (por defecto: 80%)
  • Requisito mínimo de número de anotadores (por defecto: 2)
  • Actualización automática en intervalo configurable
  • Grupos de ejemplos por esquema

Etiquetado LLM con Límites

Para permitir mejora iterativa en lugar de etiquetado masivo:

  • Máximo total de etiquetas: Limita el número total de predicciones del LLM
  • Ratio máximo sin etiquetar: Solo etiqueta un porcentaje de los datos restantes
  • Pausar por baja precisión: Se pausa automáticamente si la precisión cae por debajo del umbral

Verificación Ciega

La verificación utiliza "etiquetado ciego" — los anotadores ven la instancia como una tarea normal sin conocer la predicción del LLM:

  • Tasa de muestreo configurable (por defecto: 20% de las etiquetas del LLM)
  • Múltiples estrategias de selección: low_confidence, random, mixed
  • Las tareas de verificación se mezclan naturalmente con las asignaciones regulares

Configuración

El etiquetado ICL requiere que ai_support esté habilitado:

yaml
# AI endpoint configuration (required)
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
 
# ICL labeling configuration
icl_labeling:
  enabled: true
 
  # Example selection settings
  example_selection:
    min_agreement_threshold: 0.8      # 80% annotators must agree
    min_annotators_per_instance: 2    # Minimum annotations for consensus
    max_examples_per_schema: 10       # Max examples per schema in prompt
    refresh_interval_seconds: 300     # How often to refresh examples
 
  # LLM labeling settings
  llm_labeling:
    batch_size: 20
    trigger_threshold: 5              # Min examples before LLM labeling starts
    confidence_threshold: 0.7         # Min confidence to accept prediction
    batch_interval_seconds: 600
    max_total_labels: 100             # Max instances to label total
    max_unlabeled_ratio: 0.5          # Max portion of unlabeled to label
    pause_on_low_accuracy: true
    min_accuracy_threshold: 0.7
 
  # Human verification settings
  verification:
    enabled: true
    sample_rate: 0.2                  # 20% of LLM labels verified
    selection_strategy: "low_confidence"
    mix_with_regular_assignments: true
    assignment_mix_rate: 0.2

Estrategias de Selección

  • low_confidence: Prioriza la verificación de las predicciones menos confiables del LLM primero
  • random: Muestreo aleatorio de todas las predicciones
  • mixed: 50% baja confianza + 50% aleatorio

API de Administración

Endpoint de Estado

http
GET /admin/api/icl/status

Devuelve el estado general del etiquetador ICL incluyendo ejemplos por esquema, predicciones realizadas, tamaño de la cola de verificación y métricas de precisión.

Endpoint de Ejemplos

http
GET /admin/api/icl/examples?schema=sentiment

Devuelve ejemplos de alta confianza, opcionalmente filtrados por esquema.

Endpoint de Precisión

http
GET /admin/api/icl/accuracy?schema=sentiment

Devuelve métricas de precisión basadas en los resultados de verificación humana.

Endpoint de Activación Manual

http
POST /admin/api/icl/trigger
Content-Type: application/json
 
{"schema_name": "sentiment"}

Activa manualmente el etiquetado por lotes para un esquema específico.

Flujo de Trabajo

1. Configura Tu Proyecto

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"
  ai_config:
    model: "gpt-4o-mini"
    api_key: "${OPENAI_API_KEY}"
 
icl_labeling:
  enabled: true
  example_selection:
    min_agreement_threshold: 0.8
  llm_labeling:
    max_total_labels: 50  # Start small
  verification:
    enabled: true
    sample_rate: 0.3  # Verify 30% initially

2. Recopila Anotaciones Humanas

Haz que los anotadores etiqueten datos normalmente. A medida que alcanzan consenso (80%+ de acuerdo), esas instancias se vuelven disponibles como ejemplos.

3. Monitorea el Progreso

bash
curl http://localhost:8000/admin/api/icl/status

4. Revisa la Precisión

bash
curl http://localhost:8000/admin/api/icl/accuracy

5. Itera

Basándote en la precisión:

  • Si la precisión es alta (>80%), aumenta max_total_labels
  • Si la precisión es baja, agrega más ejemplos humanos antes de continuar

Mejores Prácticas

  1. Comienza Pequeño: Empieza con límites conservadores (max_total_labels: 50) para evaluar la precisión antes de escalar

  2. Verifica Temprano: Usa una tasa de muestreo más alta inicialmente (0.3-0.5) para obtener estimaciones de precisión confiables

  3. Monitorea Activamente: Revisa las métricas de precisión regularmente a través de la API de administración

  4. Ajusta los Umbrales: Si la precisión del LLM es baja:

    • Aumenta min_agreement_threshold para ejemplos más limpios
    • Aumenta trigger_threshold para más ejemplos antes del etiquetado
    • Reduce confidence_threshold para rechazar predicciones inciertas
  5. Usa Estrategias de Selección:

    • low_confidence: Mejor para identificar categorías problemáticas
    • random: Mejor para estimaciones de precisión imparciales
    • mixed: Enfoque equilibrado

Solución de Problemas

El LLM No Etiqueta

  1. Verifica que ai_support esté configurado correctamente
  2. Comprueba que existan suficientes ejemplos de alta confianza
  3. Verifica si el etiquetado está pausado debido a límites o baja precisión

Baja Precisión

  1. Aumenta min_agreement_threshold para ejemplos más limpios
  2. Agrega más guías/instrucciones de anotación
  3. Revisa los ejemplos que se están usando (/admin/api/icl/examples)

Las Tareas de Verificación No Aparecen

  1. Verifica que verification.enabled sea true
  2. Comprueba que mix_with_regular_assignments sea true
  3. Verifica que haya verificaciones pendientes en la cola

Lecturas Adicionales

Para detalles de implementación, consulta la documentación fuente.