Como transformar avaliações e feedback de usuários em notas com o Laya

diagrama mostrando o Laya feedback de usuários transformando comentários em notas por tema
Resposta rápida

Dá para usar o Laya em feedback de usuários para trocar estrela e planilha manual por notas comparáveis por tema. O Laya é um modelo de decisão com pesos abertos (Apache 2.0, da Convai Innovations) que não gera texto: você passa o comentário e perguntas tipadas, e ele devolve probabilidades e confiança. Com uma pergunta choice você define o tema (login, cobrança, desempenho), com uma score você mede a gravidade numa régua de 0 a 3, tudo numa única passada. Depois é só agregar por tema, revisar os casos de baixa confiança e reajustar o modelo com essas revisões

Estrela não diz qual é o problema, e muito menos o tamanho dele

Uma nota 2 pode ser o login que trava todo santo dia ou alguém irritado com a cor de um botão haha

Comentário de app na loja, resposta aberta de pesquisa de satisfação, avaliação no suporte… tudo isso vive em texto livre

E aí o destino quase sempre é o mesmo: uma planilha, alguém lendo linha por linha e classificando na mão 😛

É aqui que entra o Laya, um modelo de decisão com pesos abertos e não autorregressivo, criado pela Convai Innovations e liberado sob licença Apache 2.0

Ele se apresenta como uma reprodução aberta do TypeSafe Jev, outro modelo de decisão que também não gera texto

Não autorregressivo? Calma, te explico: ele não escreve texto token por token como um chatbot

Tu passa um texto (o estado) e perguntas tipadas, e ele devolve probabilidades por pergunta mais um número de confiança

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Ou seja, em vez de uma resposta bonitinha em prosa, você recebe algo que dá pra somar, comparar e jogar num gráfico

A ideia deste post é usar isso pra transformar feedback em notas por tema, separando do que a pessoa reclama de quanto aquilo dói

Bora ver na prática? 😀

O que você precisa antes de começar:

O básico é Python com pip funcionando na sua máquina

A instalação é direta:

pip install laya

Os pesos ficam na organização convaiinnovations no Hugging Face, e o código fica no repositório NandhaKishorM/laya no GitHub, que é o repositório de código indicado na própria página do modelo

Tome cuidado: existem outros repositórios com o mesmo nome, e eles são forks ou ports da comunidade, então a referência pra sintaxe e atualização é esse aí

Quais checkpoints do Laya existem?

Os checkpoints ficam na página do modelo no Hugging Face, na organização convaiinnovations

Checkpoint Parâmetros Base Contexto
Inglês 421M ModernBERT-large 512 tokens
Multilíngue 322M mmBERT-base 1024 tokens

Tem também uma variante ajustada, a laya-typed-decisions, que aparece de novo lá no passo 8

Pra feedback em português, o multilíngue é o que interessa: ele cobre mais de 100 idiomas e ainda aguenta comentários mais longos por causa do contexto maior 🙂

Quão rápido ele é?

O repositório informa 33 ms para uma pergunta e 7,2 ms por pergunta em lote, medidos numa GPU T4

Fora isso, você só precisa de uma base de comentários exportada: avaliações da loja de apps, respostas de formulário de pesquisa, tickets de suporte e por aí vai

Passo a passo: transformar comentários em notas por tema

Antes do como, o porquê: estrela mistura tudo num número só, e planilha manual não escala

O que a gente quer é, para cada comentário, duas respostas separadas: qual é o tema e qual é a intensidade

  1. Instale e carregue o Router

O Router é quem escolhe o checkpoint pelo idioma detectado no texto

Se a sua base mistura idiomas, carrega tudo de uma vez com preload:

router = Router(preload=True)

Com Router(preload=True) todos os checkpoints ficam carregados, e você evita um recarregamento a frio de 7 a 10 segundos toda vez que o idioma muda

O erro comum deste passo: rodar uma base mista de português e inglês sem preload e pagar o cold start a cada troca de idioma, o que transforma um processamento rápido numa novela

  1. Defina a pergunta choice com os temas do seu produto

A pergunta do tipo choice escolhe uma opção de um conjunto que VOCÊ define

Aqui ela vira o "do que a pessoa está falando": login, cobrança, desempenho, suporte, e tal

Pensa nela como um menu fechado: o modelo só escolhe entre as opções que tu listou, nada de inventar tema novo

O erro comum deste passo: criar temas sobrepostos ou vagos demais, tipo "problema técnico" e "bug" ao mesmo tempo, ou um "outros" que engole metade da base

  1. Defina a pergunta score com uma régua de 0 a 3

A pergunta score coloca o texto numa régua ordinal, como 0 a 3, e serve pra coisas como urgência, frustração ou gravidade

Escreva o significado de cada nível, por exemplo: 0 é comentário neutro, 1 é incômodo leve, 2 atrapalha o uso, 3 impede o uso

E por que separar isso do tema? Se liga nisso: "login" e "login que não funciona há três dias" são o MESMO assunto com intensidades totalmente diferentes

Se você mistura assunto e intensidade numa pergunta só (tipo "bug grave de login" como uma opção), perde a capacidade de comparar

Separando, dá pra responder coisas como "cobrança tem pouco volume, mas quando aparece dói muiiito"

O erro comum deste passo: misturar o "do que reclama" com o "quanto dói" na mesma pergunta, ou deixar a régua sem definição e cada nível virar interpretação

  1. Opcional: adicione uma pergunta noul

A noul é o booleano do Laya: ela devolve P(true) calibrada de 0.0 a 1.0

Funciona bem pra marcar spam ou risco de churn no mesmo comentário

O erro comum deste passo: tratar probabilidade como certeza, tipo ler 0.7 de churn como "esse usuário vai cancelar" em vez de "esse comentário tem sinal forte de cancelamento"

  1. Rode todas as perguntas numa única passada

O Laya avalia todas as perguntas numa única passada (forward pass), sem gerar token por token

Então tema (choice), intensidade (score) e o booleano (noul) do mesmo comentário saem juntos

O erro comum deste passo: fazer uma chamada por pergunta, como se fosse um LLM, e multiplicar o tempo à toa

  1. Leia a saída da score direito

A pergunta score devolve três coisas: o nível esperado, a distribuição de probabilidade entre os níveis da régua e a confiança

A distribuição conta uma história que o nível esperado esconde: um comentário dividido entre 0 e 3 é bem diferente de um que está firme no meio da régua

Use a confiança como porteiro: o que tem confiança alta vai direto pro relatório, o que tem confiança baixa vai pra revisão humana

O erro comum deste passo: olhar só o nível esperado e ignorar distribuição e confiança

  1. Agregue por tema

Agora sim a mágica (sem fórmula mágica, beleza? haha): agrupa por tema e calcula a média do nível esperado e o volume de comentários

Pronto, cada tema tem uma nota comparável, sem estrela e sem planilha classificada na mão

O erro comum deste passo: comparar temas com volumes muito diferentes só pela média, porque um tema com meia dúzia de comentários pode ter média alta por acaso, então olha sempre média e volume lado a lado

  1. Feche o ciclo com revisão e retreino

O fluxo sugerido é: pontuar na hora, um revisor concorda ou discorda dos veredictos, esses rótulos servem pra reajustar os pesos e, se as discordâncias continuarem, você acrescenta uma pergunta

E aqui vai o dado honesto: os checkpoints funcionam zero-shot, mas é o ajuste com decisões do seu domínio que faz a acurácia subir

No benchmark de decisões tipadas (2.000 decisões em quatro fluxos), o checkpoint ajustado laya-typed-decisions chega a 0,766 de acurácia, contra 0,362 do checkpoint base em inglês

O erro comum deste passo: confiar no zero-shot como resultado final e nunca revisar nada

Onde usar notas por tema no dia a dia do produto

Avaliações de app na loja

Esse é o caso mais óbvio, e um playground do Laya disponível na web mostra justamente isso como exemplo: pontuar uma avaliação curta e identificar o problema citado nela

Choice com as áreas do app (login, pagamento, desempenho, interface) e score de 0 a 3 pra gravidade

Respostas abertas de pesquisa de satisfação

Aquele campo "quer comentar algo?" que ninguém lê direito 😅

Choice com os temas da pesquisa (preço, atendimento, produto, entrega) e score pra frustração, de 0 a 3

Tickets de suporte em português com log em inglês

Ticket de suporte costuma vir com o texto do usuário em português e um log colado em inglês

O repositório registra uma correção pra mandar esse caso ao checkpoint multilingual, então dá pra tratar os dois juntos

Choice pra área do problema e score pra urgência, e se quiser, uma noul de risco de churn

Priorização de backlog

Cruzando tema com intensidade média, o backlog ganha um critério que não é só "quem gritou mais alto"

Aqui a choice é o tema ligado ao item do backlog e a score é a gravidade, e a leitura é sempre média junto com volume

Próximo passo: comece pequeno e treine com o seu feedback

O Laya não substitui leitura humana, e nem é essa a proposta

O que ele faz é organizar o texto aberto em tema mais intensidade e mostrar a confiança de cada nota, o que já tira muiiito trabalho braçal da frente

O próximo passo prático:

  • separe um lote de comentários
  • defina de 4 a 6 temas e uma régua de 0 a 3 com cada nível escrito
  • rode tudo numa passada só
  • revise os casos de baixa confiança
  • use essas revisões pra ajustar o modelo ao seu domínio

Sobre confiar nas probabilidades: o erro de calibração esperado (ECE) é de 0,081 depois do ajuste de temperatura

Isso é motivo pra usar as probabilidades como sinal, não como verdade absoluta

O código e a documentação ficam no repositório NandhaKishorM/laya

Espero que tenha curtido, e até o próximo post! 🙂

Perguntas frequentes

Dá pra usar o Laya pra classificar avaliação de app em português?

Dá sim, o checkpoint multilíngue cobre mais de 100 idiomas e o repositório inclusive registra uma correção pra mandar ticket em português com log em inglês nesse checkpoint. Ele roda em mmBERT-base com 322M parâmetros e contexto de 1024 tokens, então aguenta comentário mais longo tranquilo.

O Laya substitui um revisor humano lendo feedback?

Não, o fluxo sugerido é o Laya pontuar na hora e um revisor concordar ou discordar dos veredictos. Esses rótulos de discordância servem pra reajustar os pesos depois, e se a discordância persistir, a saída é acrescentar uma pergunta nova.

Por que o Laya erra tanto zero-shot e como melhorar a acurácia?

No benchmark de decisões tipadas, com 2.000 decisões em quatro fluxos, o checkpoint base em inglês fica em 0,362 de acurácia, enquanto o checkpoint ajustado laya-typed-decisions chega a 0,766. Os checkpoints funcionam zero-shot, mas é o ajuste com decisões do seu próprio domínio que faz a acurácia subir de verdade.

Preciso de GPU pra rodar o Laya em produção?

O repositório mede 33 ms pra uma pergunta e 7,2 ms por pergunta em lote numa GPU T4, então é esse o cenário de referência de latência. O post não traz número de CPU, então não dá pra afirmar tempo fora desse ambiente.

O que é o Router e quando usar preload=True?

O Router é o componente que escolhe automaticamente o checkpoint certo com base no idioma detectado no texto de entrada. Com Router(preload=True) todos os checkpoints ficam carregados de uma vez, evitando um recarregamento a frio de 7 a 10 segundos toda vez que o idioma do comentário muda, o que é essencial em base de feedback multilíngue.

Como o Laya se compara ao Jev?

O Laya se apresenta como uma reprodução aberta do TypeSafe Jev, outro modelo de decisão que também não gera texto. A diferença prática pro usuário é que o Laya vem com pesos e código abertos sob licença Apache 2.0.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares