Skip to content
Announcements7 min read

Potato 2.6: a análise de dados qualitativos encontra a avaliação de agentes

Potato 2.6 já saiu: Modo QDA para codificação qualitativa, um fluxo de calibração e alinhamento de LLM-as-judge, edição de trajetórias que produz dados de treino SFT e DPO, uma inicialização 3 vezes mais rápida e uma nova licença GPL-3.0-or-later.

Potato Team

O Potato 2.6 já saiu. É uma versão com dois centros de gravidade. De um lado, traz o Potato para a análise de dados qualitativos, o mundo das transcrições de entrevistas, dos livros de códigos e dos memorandos que viveu dentro de ferramentas de desktop proprietárias. De outro, aprofunda o conjunto de ferramentas de avaliação de agentes rumo à produção de dados de treino, e não apenas de pontuações. E, por baixo de ambos, fica perceptivelmente mais rápido e muda de licença.

Se você vem acompanhando, as publicações das últimas semanas anteciparam essas funcionalidades uma a uma. Esta é a versão que de fato as entrega.

Potato 2.6, dividido entre análise de dados qualitativos e avaliação de agentesPotato 2.6

Uma nota inicial: o Potato agora é GPL-3.0

O Potato passa a ter uma nova licença GPL-3.0-or-later, em vez de PolyForm Shield. É o tipo de mudança fácil de enterrar e que não deveria ser, porque altera o que você tem permissão de fazer com o projeto.

Sob a GPL-3.0-or-later, você pode usar, modificar e redistribuir o Potato, inclusive comercialmente, desde que as obras derivadas permaneçam sob GPL. A antiga licença PolyForm Shield trazia uma restrição de não concorrência que fazia alguns adotantes (e suas equipes jurídicas) hesitarem. A GPL é uma licença que essas equipes já entendem. Se uma questão de licenciamento estava segurando o seu laboratório ou a sua empresa, essa questão agora tem uma resposta familiar. Veja a página About para os detalhes.

Modo QDA

Para quem faz pesquisa qualitativa, o destaque é o Modo QDA: uma única chave que transforma o Potato em um espaço de trabalho colaborativo de codificação qualitativa.

yaml
qda_mode:
  enabled: true            # codebook + memos + cases + search
codebook_invivo_key: i     # mint a code from a text selection

Ativá-lo compõe um livro de códigos vivo, codificação in-vivo, memorandos de analista, casos e busca em texto completo, com padrões ajustados para um único analista codificando um corpus inteiro. Você pode expandir e reorganizar o livro de códigos à medida que lê, criar um código diretamente a partir de um trecho destacado com uma tecla, anexar memorandos privados ou compartilhados a qualquer excerto, agrupar excertos em casos por participante e executar a busca FTS5 por todo o corpus. É uma alternativa gratuita, de código aberto e baseada na web ao NVivo, ATLAS.ti, MAXQDA e Dedoose, situada na mesma ferramenta que o restante do seu trabalho de anotação.

Escrevemos sobre o design em Trazendo a codificação qualitativa ao Potato. Referência completa: documentação do Modo QDA.

LLM-as-judge: calibração, alinhamento e triagem

Usar um LLM para avaliar saídas de modelos já é rotina. Saber até onde confiar nele é a parte que a 2.6 trata, com três funcionalidades que trabalham juntas.

Judge Calibration rotula seus dados automaticamente com um ou mais juízes LLM, amostra cada item k vezes para obter uma confiança empírica, depois executa uma passagem humana cega (as pessoas anotadoras nunca veem os rótulos do modelo) e relata acurácia, kappa de Cohen e de Fleiss, alpha de Krippendorff e Erro de Calibração Esperado. Responde a "devo confiar neste juiz?" com números que você pode defender. Tratamos disso em Você pode confiar no seu juiz LLM?.

Judge Alignment ajusta um único juiz contra seus rótulos de ouro humanos, acompanhando o kappa de Cohen à medida que você refina a rubrica, com um veredito opcional exibido em linha ao lado do rótulo humano durante a anotação.

The Triage Queue prioriza a fila de anotação por um sinal por item (um erro do agente, um polegar para baixo em produção, uma pontuação baixa) para que quem revisa veja primeiro os traces mais suspeitos, em vez da ordem de chegada.

yaml
triage:
  enabled: true
  signal_field: quality_score
  invert_signal: true
assignment_strategy: priority

Alinhamento e triagem se combinam em um ciclo de avaliação ativo, que percorremos em Fechando o ciclo. Documentação de referência: Judge Calibration, Judge Alignment, Triage Queue.

Edição de trajetórias para SFT e DPO

O novo esquema trajectory_edit permite às pessoas anotadoras reescrever os passos de um trace de agente, com um diff ao vivo no nível da palavra, para corrigir um passo de raciocínio errado, reparar uma chamada de ferramenta ou reforçar a resposta final. O exportador trajectory_correction então transforma cada par original/corrigido em dados de treino: alvos de fine-tuning supervisionado em trajectory_sft.jsonl e pares de preferência DPO em trajectory_dpo.jsonl. Traces não editados são ignorados, pois treinar sobre uma trajetória inalterada não ensina nada.

Isso torna o Potato uma ferramenta de produção de dados de treino, não apenas de avaliação. O passo a passo completo está em Da avaliação aos dados de treino; a referência, na documentação de edição de trajetórias.

A exibição eval_trace

Ler traces de agentes com rapidez é um problema à parte. A nova exibição eval_trace divide um único trace em três painéis sincronizados (Reasoning, Function Calls e Final Answer) para que quem avalia veja de relance o que o agente pensou, fez e produziu. Foi construída para avaliação contínua, em que os traces chegam por um webhook, um poller do Langfuse ou um diretório monitorado e precisam ser julgados conforme aterrissam. Veja a documentação do eval_trace.

Fluxo de trabalho e implantação

Um conjunto de funcionalidades operacionais completa a versão:

  • Cobertura heterogênea. Atribua números diferentes de pessoas anotadoras a itens diferentes: uma na maioria, três numa amostra estratificada, com reforços adaptativos em caso de discordância e roteamento automático para arbitragem. Tratada em Além da sobreposição total; referência na documentação de cobertura heterogênea.
  • Recuperar atribuições abandonadas. Recupere os itens deixados por quem trabalha via Prolific ou foi bloqueado pelo controle de qualidade, com retenção configurável e recuperação idempotente. Veja atribuição de tarefas.
  • Atribuição de lotes personalizada. Atribua lotes predefinidos de itens a pessoas anotadoras específicas, criada para desenhos de estudo com rodadas repetidas.
  • Prefixos de URL para proxy reverso. Sirva o Potato sob um subcaminho atrás de um proxy reverso. Veja a documentação de proxy reverso.

Mais rápido, e uma renomeação de esquema

Duas mudanças afetam todos os projetos.

A inicialização é cerca de 3 vezes mais rápida. A pilha de aprendizado de máquina não é mais carregada antecipadamente na inicialização; em vez disso, carrega no primeiro uso. O tempo de importação caiu de cerca de 6.5s para 2s, a inicialização de 50.000 itens de cerca de 10 segundos para 5.7, e a memória residente de cerca de 750MB para 365MB. As reinicializações de contêiner são mais rápidas e a pegada de memória para escalonamento horizontal fica aproximadamente pela metade.

annotation_type: highlight agora é span. Há uma migração em vigor, e as configurações span existentes não são afetadas. Atualize as configurações antigas renomeando o tipo. "span" é o termo padrão em todo o PLN, e a renomeação alinha o tipo de anotação a ele.

Pondo em dia: 2.5 e 2.4.5

Algumas versões entre a 2.4 e a 2.6 saíram sem uma publicação aqui. Vale destacar os pontos altos, sobretudo porque o trabalho de codificação qualitativa em particular sustenta o Modo QDA:

2.5.0 foi a onda da codificação qualitativa. Acrescentou os kappa de Cohen e de Fleiss ao lado do alpha de Krippendorff, os exportadores codebook e quotation_report, e análises de administração para coocorrência de códigos e uma tabela cruzada de códigos por atributo. São as peças de confiabilidade e exportação sobre as quais o Modo QDA se constrói.

2.4.5 trouxe um framework de refinamento validado para melhorar diretrizes de anotação no modo solo, uma CLI de validação de configuração (python -m potato.validate_cli) e uma correção de segurança para um contorno de path traversal (GHSA-q9m2-fhv9-3jcf). Se você está numa 2.4.x mais antiga, a atualização incorpora essa correção.

O histórico completo vive na página Novidades.

Como obter

bash
pip install --upgrade potato-annotation

Depois aponte o Potato para um dos exemplos incluídos (examples/advanced/qda-mode-example/, examples/ai-assisted/judge-calibration/, examples/agent-traces/trajectory-correction/) para ver as novas telas em funcionamento. Cada versão aqui começou como uma pergunta de alguém usando a ferramenta; se a 2.6 levantar uma para você, o repositório no GitHub é o lugar para perguntar.