Modelos de decisão como primeiro nível barato de rotulagem
Um modelo de decisão pontua todas as opções numa só passagem direta e não escreve texto. Ele serve de primeiro nível antes de um LLM em perguntas com poucas opções.
Um modelo de decisão rotula uma pergunta de escolha fixa em uma única passagem direta e devolve uma probabilidade para cada opção, sem texto para gerar. Use um como primeiro nível de uma cascata de rotulagem em perguntas de uma entre N com poucas opções, mande os itens sobre os quais ele está incerto para um LLM e certifique o limiar dele em uma amostra humana cega, porque a confiança dele pode continuar alta em entradas que ele erra.
Um modelo de decisão é um classificador que recebe um trecho de texto e um conjunto de perguntas tipadas e devolve uma probabilidade para cada resposta. Ele não gera texto, então não consegue escrever um prompt, uma justificativa nem uma regra. O Laya é um modelo aberto desse tipo. Seu model card lista um checkpoint em inglês sobre um encoder ModernBERT-large com 421M de parâmetros, sob a licença Apache 2.0, e um checkpoint multilíngue com 322M de parâmetros. A API /v1/systemone serve o mesmo tipo de resposta por HTTP, a partir do Jev hospedado, do OpenJev ou do próprio servidor do Laya.
Onde um primeiro nível economiza dinheiro
Uma cascata de rotulagem testa modelos em ordem, geralmente do mais barato ao mais capaz, e só passa um item adiante quando o modelo atual não está confiante o bastante. Quando um corpus tem uma grande fração de itens fáceis, um modelo barato que rotula esses itens com confiança deixa para o LLM um restante menor e mais difícil. A economia depende dessa fração, então meça-a nos seus próprios dados antes de planejar em torno dela.
Um modelo de decisão se presta ao primeiro nível porque responde a todas as opções em uma passagem, então uma pergunta com cinco rótulos custa uma passagem direta e nenhum texto gerado. Suas probabilidades de saída são o escore de confiança, então ele não precisa de pergunta de acompanhamento nem de amostragem repetida. Ele também roda em CPU. O model card relata de 193 a 464 ms por requisição em CPU com os checkpoints pré-carregados, e 39,5 ms para o checkpoint em inglês em uma GPU T4.
Limites relatados para o Laya
Quatro destes limites vêm do model card do Laya, e o quinto, sobre escalas de avaliação, vem da documentação do Potato:
- Muitas opções. No benchmark de intenções Banking77, o card relata o Laya com acurácia de 0,425 em 77 rótulos, contra 0,870 do Jev em 72. As opções dividem um orçamento fixo de tokens, então listas longas de rótulos se espremem umas às outras. A documentação do Potato também observa que o Laya avisa que sua temperatura está fora do intervalo em perguntas com 11 ou mais opções e a limita.
- Outras escritas no checkpoint em inglês. O card relata o checkpoint em inglês com acurácia de 0,000 e confiança de 0,952 em texto em khmer. Um limiar de confiança não consegue pegar um erro do qual o modelo tem certeza.
- Acurácia zero-shot. O card relata os checkpoints base perto do acaso no seu benchmark de decisões tipadas em zero-shot, com 0,362 contra uma linha de base aleatória de 0,318 e uma de classe majoritária de 0,461, e chama o Laya de "uma base rápida para especializar, não um motor de decisão zero-shot".
- Calibração bruta. O card relata que o
layavem superconfiante, com um erro de calibração esperado médio de 0,466 que cai para 0,081 depois de reajustar as temperaturas com seus próprios dados. A calibração varia conforme o domínio, então um limiar escolhido com os dados de outra pessoa não se transfere. - Escalas de avaliação. A documentação do Potato constata que, em esquemas
likerteslider, os escores do Laya mal conseguem acompanhar a escala, seja qual for a redação da pergunta.
Em conjunto, os limites sugerem manter o modelo de decisão em perguntas de uma entre N com poucas opções, no idioma para o qual o checkpoint foi treinado. Escolha o limiar dele a partir de rótulos humanos no seu próprio corpus.
Um modelo de decisão no Potato
O Potato 2.11 adiciona dois tipos de endpoint para modelos de decisão. laya executa o Laya dentro do processo do Potato e precisa do extra decision, pip install 'potato-annotation[decision]', que traz torch e transformers junto. systemone conversa com qualquer servidor que tenha a API /v1/systemone e precisa só de uma base_url. Os dois funcionam em esquemas radio, select, likert e slider, e o Modo Solo não inicia quando um deles é configurado para rotular um esquema multiselect, de span ou de texto livre.
No motor de rotulagem, um modelo de decisão é uma fonte decision colocada em primeiro lugar na cascata. Este trecho do exemplo de texto que vem com o Potato coloca o Laya à frente de um LLM pequeno no Ollama e certifica o par contra uma meta de erro de 10%, com a confiança padrão de 90% do Potato:
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.9O motor escolhe o limiar de confiança do Laya em metade de uma amostra humana cega e o testa na outra metade, então o limiar vem do seu corpus, e não do model card. Até a metade dev da amostra fixar um limiar para o Laya, o LLM rotula todos os itens. Depois disso, o LLM vê só os itens sobre os quais o Laya não tem certeza, mais a amostra de calibração.
Na execução documentada no README do exemplo, com o Gemma 12B como LLM, o limiar do Laya nunca foi fixado e o LLM entregou todos os rótulos aceitos, então meça o que o primeiro nível contribui no seu próprio corpus antes de contar com ele. Como o motor testa separadamente os rótulos aceitos de cada nível, uma falha confiante como o caso do khmer aparece como erros na amostra de certificação, desde que a amostra cubra esse tipo de entrada. O contrato distributional também pode usar o vetor completo de probabilidades do Laya, o que serve para perguntas subjetivas em que os anotadores se dividem.
No Modo Solo, um modelo de decisão fica em labeling_models e como primeiro nível de confidence_routing. O Modo Solo também precisa de um modelo generativo em revision_models, porque modelos de decisão não conseguem escrever os prompts e as regras que o ciclo de revisão dele produz.
Como testar um modelo de decisão antes de uma execução completa
Rode o modelo em algumas dezenas de itens que você já rotulou antes de encaminhar um corpus inteiro por ele. O botão Try on 10 items do Modo Solo faz isso para um prompt, e no motor, potato label run seguido de potato label status mostra quantos rótulos a mais o limiar de cada nível precisa e qual fonte produziu erros. Um nível que falha na certificação não aceita nada e manda os itens acima do seu limiar para pessoas em vez de para o LLM, o que gasta o orçamento de rótulos humanos em itens que o LLM talvez tivesse rotulado. Se o nível do modelo de decisão continuar falhando na certificação, tire-o da cascata.
Leitura adicional
- Configuração do motor de rotulagem, com todas as opções de uma fonte
decision - Como certificar rótulos de LLM com uma amostra humana cega, sobre certificar um limiar contra uma amostra cega
- Modo Solo, sobre o roteamento por confiança com um especialista