Skip to content

Rotulagem por ICL

Use aprendizado em contexto no Potato para que um LLM pré-rotule instâncias e depois encaminhe as ambíguas para verificação humana — escalando a anotação com IA no fluxo.

O recurso de rotulagem por ICL (In-Context Learning, aprendizado em contexto) do Potato possibilita a anotação assistida por IA usando anotações humanas de alta confiança como exemplos em contexto para guiar um LLM na rotulagem dos dados restantes. O sistema acompanha a confiança do LLM e encaminha as previsões de volta aos humanos para verificação.

Visão Geral

O sistema de rotulagem por ICL:

  1. Coleta Exemplos de Alta Confiança: Identifica instâncias em que os anotadores concordam (por exemplo, 80% ou mais de concordância)
  2. Rotula com o LLM: Usa os exemplos para instruir um LLM a rotular as instâncias não rotuladas
  3. Acompanha a Confiança: Registra as pontuações de confiança do LLM para cada previsão
  4. Verifica a Precisão: Encaminha uma amostra das instâncias rotuladas pelo LLM para verificação cega por humanos
  5. Reporta Métricas: Calcula e exibe a precisão do LLM com base nos resultados da verificação

Recursos

Coleta Automática de Exemplos

O sistema identifica automaticamente exemplos de alta confiança em que vários anotadores concordam:

  • Limite de concordância configurável (padrão: 80%)
  • Requisito de contagem mínima de anotadores (padrão: 2)
  • Atualização automática em intervalo configurável
  • Conjuntos de exemplos por esquema

Rotulagem por LLM com Limites

Para possibilitar a melhoria iterativa em vez da rotulagem em massa:

  • Máximo total de rótulos: Limita o número total de previsões do LLM
  • Razão máxima de não rotulados: Rotula apenas uma porcentagem dos dados restantes
  • Pausa em baixa precisão: Pausa automaticamente se a precisão cair abaixo do limite

Verificação Cega

A verificação usa "rotulagem cega" - os anotadores veem a instância como uma tarefa normal sem conhecer a previsão do LLM:

  • Taxa de amostragem configurável (padrão: 20% dos rótulos do LLM)
  • Múltiplas estratégias de seleção: low_confidence, random, mixed
  • Tarefas de verificação misturadas naturalmente com as atribuições regulares

Configuração

A rotulagem por ICL requer que o ai_support esteja 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

Estratégias de Seleção

  • low_confidence: Prioriza verificar primeiro as previsões menos confiantes do LLM
  • random: Amostragem aleatória de todas as previsões
  • mixed: 50% de baixa confiança + 50% aleatório

API de Administração

Endpoint de Status

http
GET /admin/api/icl/status

Retorna o status geral do rotulador ICL, incluindo exemplos por esquema, previsões feitas, tamanho da fila de verificação e métricas de precisão.

Endpoint de Exemplos

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

Retorna os exemplos de alta confiança, opcionalmente filtrados por esquema.

Endpoint de Precisão

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

Retorna métricas de precisão com base nos resultados da verificação humana.

Endpoint de Acionamento Manual

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

Aciona manualmente a rotulagem em lote para um esquema específico.

Fluxo de Trabalho de Uso

1. Configure Seu Projeto

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. Colete Anotações Humanas

Faça os anotadores rotularem os dados normalmente. À medida que chegam a um consenso (80% ou mais de concordância), essas instâncias ficam disponíveis como exemplos.

3. Acompanhe o Progresso

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

4. Revise a Precisão

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

5. Itere

Com base na precisão:

  • Se a precisão for alta (>80%), aumente max_total_labels
  • Se a precisão for baixa, adicione mais exemplos humanos antes de continuar

Boas Práticas

  1. Comece Pequeno: Inicie com limites conservadores (max_total_labels: 50) para avaliar a precisão antes de escalar

  2. Verifique Cedo: Use uma sample_rate mais alta no início (0,3-0,5) para obter estimativas de precisão confiáveis

  3. Monitore Ativamente: Verifique as métricas de precisão regularmente pela API de administração

  4. Ajuste os Limites: Se a precisão do LLM for baixa:

    • Aumente min_agreement_threshold para exemplos mais limpos
    • Aumente trigger_threshold para mais exemplos antes de rotular
    • Reduza confidence_threshold para rejeitar previsões incertas
  5. Use Estratégias de Seleção:

    • low_confidence: Melhor para identificar categorias problemáticas
    • random: Melhor para estimativas de precisão imparciais
    • mixed: Abordagem equilibrada

Solução de Problemas

O LLM Não Está Rotulando

  1. Verifique se o ai_support está configurado corretamente
  2. Confirme se há exemplos de alta confiança suficientes
  3. Verifique se a rotulagem está pausada por causa de limites ou baixa precisão

Baixa Precisão

  1. Aumente min_agreement_threshold para exemplos mais limpos
  2. Adicione mais diretrizes/instruções de anotação
  3. Revise os exemplos em uso (/admin/api/icl/examples)

Tarefas de Verificação Não Aparecem

  1. Confirme se verification.enabled é true
  2. Verifique se mix_with_regular_assignments é true
  3. Confirme se há verificações pendentes na fila

Leitura Complementar

Para detalhes de implementação, consulte a documentação de origem.