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

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
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
- 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
- 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
- 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
- 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"
- 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
- 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
- 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
- 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.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares

Choice, score e noul: quais são os tipos de pergunta do Laya e quando usar cada um?
Entenda os tipos de pergunta do Laya: choice, score e noul. Como cada um funciona, a acurácia de cada primitiva e quando usar em cada situação.

Como usar o laya para detectar phishing, spam e risco de churn em texto, email e ticket?
Veja como o laya detecta phishing, spam e risco de churn em texto, email e ticket com scores calibrados, rodando local via pip install.

Como fazer triagem de tickets de suporte com o laya: urgência, frustração e departamento
Triagem de tickets com laya: urgência, frustração e departamento em um forward pass, sem JSON. Veja instalação, código e a ressalva do zero-shot.
