Potato 2.6: el análisis de datos cualitativos se encuentra con la evaluación de agentes
Ya está disponible Potato 2.6: Modo QDA para codificación cualitativa, un flujo de trabajo de calibración y alineación de LLM-as-judge, edición de trayectorias que produce datos de entrenamiento SFT y DPO, un arranque 3 veces más rápido y una nueva licencia GPL-3.0-or-later.
Ya está disponible Potato 2.6. Es una versión con dos centros de gravedad. Por un lado, lleva Potato al análisis de datos cualitativos, el mundo de las transcripciones de entrevistas, los libros de códigos y los memorandos que ha vivido dentro de herramientas de escritorio propietarias. Por otro, profundiza el conjunto de herramientas de evaluación de agentes hacia la producción de datos de entrenamiento, no solo de puntuaciones. Y bajo ambos, se vuelve notablemente más rápido y cambia de licencia.
Si has venido siguiendo el blog, las publicaciones de las últimas semanas adelantaron estas funciones una por una. Esta es la versión que las pone en producción.
Potato 2.6
Una nota inicial: Potato ahora es GPL-3.0
Potato pasa a tener una nueva licencia GPL-3.0-or-later, en lugar de PolyForm Shield. Es la clase de cambio que es fácil de enterrar y no debería serlo, porque modifica lo que tienes permitido hacer con el proyecto.
Bajo GPL-3.0-or-later puedes usar, modificar y redistribuir Potato, incluso comercialmente, siempre que las obras derivadas permanezcan bajo GPL. La antigua licencia PolyForm Shield incluía una restricción de no competencia que hacía dudar a algunos adoptantes (y a sus equipos legales). GPL es una licencia que esos equipos ya entienden. Si una cuestión de licenciamiento frenaba a tu laboratorio o empresa, esa cuestión ahora tiene una respuesta conocida. Consulta la página About para los detalles.
Modo QDA
Lo más destacado para quienes hacen investigación cualitativa es el Modo QDA: un único interruptor que convierte Potato en un espacio de trabajo colaborativo de codificación cualitativa.
qda_mode:
enabled: true # codebook + memos + cases + search
codebook_invivo_key: i # mint a code from a text selectionActivarlo compone un libro de códigos vivo, codificación in-vivo, memorandos de analista, casos y búsqueda de texto completo, con valores predeterminados ajustados a un único analista codificando todo un corpus. Puedes hacer crecer y reorganizar el libro de códigos a medida que lees, crear un código directamente desde un pasaje resaltado con una tecla, adjuntar memorandos privados o compartidos a cualquier extracto, agrupar extractos en casos por participante y ejecutar la búsqueda FTS5 sobre el corpus. Es una alternativa gratuita, de código abierto y basada en web a NVivo, ATLAS.ti, MAXQDA y Dedoose, que vive dentro de la misma herramienta que el resto de tu trabajo de anotación.
Escribimos sobre el diseño en Llevando la codificación cualitativa a Potato. Referencia completa: documentación del Modo QDA.
LLM-as-judge: calibración, alineación y triaje
Usar un LLM para calificar las salidas de un modelo ya es rutina. Saber hasta qué punto fiarse de él es la parte que aborda 2.6, con tres funciones que trabajan juntas.
Judge Calibration etiqueta automáticamente tus datos con uno o más jueces LLM, los muestrea k veces para obtener una confianza empírica, luego ejecuta una pasada humana a ciegas (las personas anotadoras nunca ven las etiquetas del modelo) e informa de la exactitud, los kappa de Cohen y de Fleiss, el alpha de Krippendorff y el error de calibración esperado. Responde a «¿debería fiarme de este juez?» con cifras que puedes defender. Lo tratamos en ¿Puedes confiar en tu juez LLM?.
Judge Alignment ajusta un único juez frente a tus etiquetas de oro humanas, siguiendo el kappa de Cohen a medida que refinas la rúbrica, con un veredicto opcional mostrado en línea junto a la etiqueta humana durante la anotación.
The Triage Queue prioriza la cola de anotación según una señal por ítem (un error del agente, un voto negativo en producción, una puntuación baja) para que quienes revisan vean primero las trazas más sospechosas en lugar de en orden de llegada.
triage:
enabled: true
signal_field: quality_score
invert_signal: true
assignment_strategy: priorityLa alineación y el triaje se combinan en un bucle de evaluación activo, que recorrimos en Cerrando el ciclo. Documentación de referencia: Judge Calibration, Judge Alignment, Triage Queue.
Edición de trayectorias para SFT y DPO
El nuevo esquema trajectory_edit permite a las personas anotadoras reescribir los pasos de una traza de agente, con un diff en vivo a nivel de palabra, para corregir un paso de razonamiento erróneo, reparar una llamada a herramienta o reforzar la respuesta final. El exportador trajectory_correction convierte luego cada par original/corregido en datos de entrenamiento: objetivos de ajuste fino supervisado en trajectory_sft.jsonl y pares de preferencia DPO en trajectory_dpo.jsonl. Las trazas sin editar se omiten, porque entrenar sobre una trayectoria sin cambios no enseña nada.
Esto convierte a Potato en una herramienta de producción de datos de entrenamiento, no solo de evaluación. El recorrido completo está en De la evaluación a los datos de entrenamiento; la referencia, en la documentación de edición de trayectorias.
La visualización eval_trace
Leer trazas de agentes con rapidez es un problema en sí mismo. La nueva visualización eval_trace divide una sola traza en tres paneles sincronizados (Razonamiento, Llamadas a funciones y Respuesta final) para que quien evalúa vea de un vistazo lo que el agente pensó, hizo y produjo. Está pensada para la evaluación continua, donde las trazas llegan por un webhook, un sondeador de Langfuse o un directorio vigilado y deben juzgarse a medida que aterrizan. Consulta la documentación de eval_trace.
Flujo de trabajo y despliegue
Un conjunto de funciones operativas completa la versión:
- Cobertura heterogénea. Asigna distintos números de personas anotadoras a distintos ítems: una en la mayoría, tres en una muestra estratificada, con refuerzos adaptativos por desacuerdo y enrutamiento automático a arbitraje. Lo tratamos en Más allá del solapamiento total; referencia en la documentación de cobertura heterogénea.
- Recuperar asignaciones abandonadas. Recupera los ítems que dejaron quienes trabajan vía Prolific o que fueron bloqueados por el control de calidad, con retención configurable y recuperación idempotente. Consulta asignación de tareas.
- Asignación de lotes personalizada. Asigna lotes predefinidos de ítems a personas anotadoras concretas, pensado para diseños de estudio con rondas repetidas.
- Prefijos de URL para proxy inverso. Sirve Potato bajo una subruta tras un proxy inverso. Consulta la documentación de proxy inverso.
Más rápido, y un cambio de nombre en el esquema
Dos cambios afectan a todos los proyectos.
El arranque es aproximadamente 3 veces más rápido. La pila de aprendizaje automático ya no se carga de forma anticipada al iniciar; en su lugar se carga en el primer uso. El tiempo de importación bajó de unos 6.5s a 2s, el arranque de 50 000 ítems de unos 10 segundos a 5.7, y la memoria residente de unos 750MB a 365MB. Los reinicios de contenedores son más rápidos y la huella de memoria para el escalado horizontal se reduce aproximadamente a la mitad.
annotation_type: highlight ahora es span. Hay una migración en marcha y las configuraciones span existentes no se ven afectadas. Actualiza las configuraciones antiguas renombrando el tipo. «span» es el término estándar en todo el PLN, y el cambio de nombre alinea el tipo de anotación con él.
Poniéndonos al día: 2.5 y 2.4.5
Un par de versiones entre la 2.4 y la 2.6 salieron sin una publicación aquí. Vale la pena destacar lo más relevante, ya que el trabajo de codificación cualitativa en particular sustenta el Modo QDA:
2.5.0 fue la ola de codificación cualitativa. Añadió los kappa de Cohen y de Fleiss junto al alpha de Krippendorff, los exportadores codebook y quotation_report, y analíticas de administración para la coocurrencia de códigos y una tabla cruzada de códigos por atributo. Estas son las piezas de fiabilidad y exportación sobre las que se construye el Modo QDA.
2.4.5 trajo un marco de refinamiento validado para mejorar las pautas de anotación en modo individual, una CLI de validación de configuraciones (python -m potato.validate_cli) y una corrección de seguridad para una elusión de path traversal (GHSA-q9m2-fhv9-3jcf). Si estás en una 2.4.x más antigua, actualizar incorpora esa corrección.
El historial completo vive en la página de Novedades.
Cómo obtenerlo
pip install --upgrade potato-annotationLuego apunta Potato a uno de los ejemplos incluidos (examples/advanced/qda-mode-example/, examples/ai-assisted/judge-calibration/, examples/agent-traces/trajectory-correction/) para ver en marcha las nuevas pantallas. Cada versión aquí empezó como una pregunta de alguien que usaba la herramienta; si 2.6 te plantea una, el repositorio de GitHub es el lugar para preguntar.