Modelos de decisión como primer nivel de etiquetado barato
Un modelo de decisión puntúa cada opción en una pasada hacia delante, sin generar texto. Sirve de primer nivel antes de un LLM en preguntas con pocas opciones.
Un modelo de decisión etiqueta una pregunta de opciones fijas en una sola pasada hacia delante y devuelve una probabilidad para cada opción, sin texto que generar. Úsalo como primer nivel de una cascada de etiquetado en preguntas de una opción entre N con un puñado de opciones, envía a un LLM los ítems sobre los que duda y certifica su umbral con una muestra humana ciega, porque su confianza puede seguir siendo alta en entradas en las que se equivoca.
Un modelo de decisión es un clasificador que recibe un fragmento de texto y un conjunto de preguntas tipadas y devuelve una probabilidad para cada respuesta. No genera texto, así que no puede escribir un prompt, una justificación ni una regla. Laya es un modelo abierto de este tipo. Su ficha del modelo recoge un checkpoint en inglés sobre un codificador ModernBERT-large con 421M parámetros bajo la licencia Apache 2.0, y un checkpoint multilingüe con 322M parámetros. La API /v1/systemone sirve el mismo tipo de respuesta por HTTP, desde Jev alojado, OpenJev o el propio servidor de Laya.
Dónde ahorra dinero un primer nivel
Una cascada de etiquetado prueba modelos en orden, normalmente del más barato al más capaz, y solo pasa un ítem al siguiente cuando el modelo actual no tiene confianza suficiente. Cuando un corpus tiene una proporción grande de ítems fáciles, un modelo barato que los etiqueta con confianza le deja al LLM un resto más pequeño y más difícil. El ahorro depende de esa proporción, así que mídela con tus propios datos antes de planificar contando con ella.
Un modelo de decisión encaja en el primer nivel porque responde a todas las opciones en una sola pasada, así que una pregunta con cinco etiquetas cuesta una pasada hacia delante y nada de texto generado. Sus probabilidades de salida son la puntuación de confianza, así que no necesita una pregunta de seguimiento ni muestreo repetido. Además, funciona en una CPU. La ficha del modelo indica de 193 a 464 ms por petición en CPU con los checkpoints precargados, y 39.5 ms para el checkpoint en inglés en una GPU T4.
Los límites indicados para Laya
Cuatro de estos límites proceden de la ficha del modelo de Laya, y el quinto, sobre las escalas de valoración, procede de la documentación de Potato:
- Muchas opciones. En el benchmark de intenciones Banking77, la ficha indica para Laya una exactitud de 0.425 con 77 etiquetas, frente a 0.870 para Jev con 72. Las opciones comparten un presupuesto fijo de tokens, así que las listas de etiquetas largas se estorban entre sí. La documentación de Potato señala además que Laya avisa de que su temperatura está fuera de rango en preguntas con 11 o más opciones y la recorta.
- Otros sistemas de escritura con el checkpoint en inglés. La ficha indica para el checkpoint en inglés una exactitud de 0.000 y una confianza de 0.952 con texto en jemer. Un umbral de confianza no puede detectar un error del que el modelo está seguro.
- Exactitud zero-shot. La ficha indica que los checkpoints base, en zero-shot, quedan cerca del azar en su benchmark de decisiones tipadas, con 0.362 frente a una línea base aleatoria de 0.318 y una de clase mayoritaria de 0.461, y describe Laya como «una base rápida para especializar, no un motor de decisiones zero-shot».
- Calibración de origen. La ficha indica que
layaviene con un exceso de confianza, con un error de calibración esperado medio de 0.466 que baja a 0.081 tras reajustar las temperaturas con tus propios datos. La calibración varía según el dominio, así que un umbral elegido con los datos de otra persona no se puede trasladar. - Escalas de valoración. La documentación de Potato observa que en los esquemas
likertysliderlas puntuaciones de Laya apenas pueden seguir la escala, se formule como se formule la pregunta.
En conjunto, estos límites aconsejan reservar el modelo de decisión para preguntas de una opción entre N con pocas opciones, en el idioma para el que se entrenó su checkpoint. Elige su umbral a partir de etiquetas humanas de tu propio corpus.
Un modelo de decisión en Potato
Potato 2.11 añade dos tipos de endpoint para modelos de decisión. laya ejecuta Laya dentro del proceso de Potato y necesita el extra decision, pip install 'potato-annotation[decision]', que arrastra torch y transformers. systemone se comunica con cualquier servidor que tenga la API /v1/systemone y solo necesita una base_url. Ambos funcionan con esquemas radio, select, likert y slider, y Solo Mode no arranca si uno de ellos está configurado para etiquetar un esquema multiselect, de spans o de texto libre.
En el motor de etiquetado, un modelo de decisión es una fuente decision colocada en primer lugar en la cascada. Este fragmento del ejemplo de texto que viene con Potato pone a Laya por delante de un LLM pequeño de Ollama y certifica la pareja frente a un objetivo de error del 10% con la confianza del 90% que Potato usa por defecto:
labeling_engine:
enabled: true
sources:
- id: laya
kind: decision
endpoint_type: laya
model: convaiinnovations/laya
options:
device: cpu
- id: llm
kind: llm
endpoint_type: ollama
model: llama3.2:3b
base_url: http://localhost:11434
max_tokens: 200
cascade: [laya, llm]
contracts:
- id: accuracy
kind: selective_risk
schema: sentiment
error: 0.1
confidence: 0.9El motor elige el umbral de confianza de Laya con la mitad de una muestra humana ciega y lo prueba con la otra mitad, así que el umbral sale de tu corpus y no de la ficha del modelo. Hasta que la mitad dev de la muestra fija un umbral para Laya, el LLM etiqueta todos los ítems. A partir de ahí, el LLM solo ve los ítems sobre los que Laya no está seguro, más la muestra de calibración.
En la ejecución documentada en el README del ejemplo, con Gemma 12B como LLM, el umbral de Laya nunca llegó a fijarse y el LLM aportó todas las etiquetas aceptadas, así que mide lo que aporta el primer nivel con tu propio corpus antes de contar con él. Como el motor prueba por separado las etiquetas aceptadas de cada nivel, un fallo con mucha confianza, como el caso del jemer, aparece como errores en la muestra de certificación, siempre que la muestra cubra ese tipo de entrada. El contrato distributional también puede usar el vector completo de probabilidades de Laya, lo que encaja con preguntas subjetivas en las que los anotadores se reparten.
En Solo Mode, un modelo de decisión va en labeling_models y como primer nivel de confidence_routing. Solo Mode también necesita un modelo generativo en revision_models, porque los modelos de decisión no pueden escribir los prompts y las reglas que produce su bucle de revisión.
Probar un modelo de decisión antes de una ejecución completa
Ejecuta el modelo sobre unas cuantas decenas de ítems que ya hayas etiquetado antes de pasar por él un corpus entero. El botón Try on 10 items de Solo Mode hace esto con un prompt y, en el motor, potato label run seguido de potato label status muestra cuántas etiquetas más necesita el umbral de cada nivel y qué fuente produjo errores. Un nivel que no supera la certificación no acepta nada y envía los ítems por encima de su umbral a personas en lugar de al LLM, lo que gasta el presupuesto de etiquetas humanas en ítems que el LLM quizá habría podido etiquetar. Si el nivel del modelo de decisión sigue sin superar la certificación, quítalo de la cascada.
Lecturas adicionales
- Configuración del motor de etiquetado, con todas las opciones de una fuente
decision - Certificar las etiquetas de un LLM con una muestra humana ciega, sobre cómo certificar un umbral frente a una muestra ciega
- Solo Mode, sobre el enrutamiento por confianza con un solo experto