Intermédio7 min de leituraAtualizado
Classificação zero-shot: como um modelo percebe regras escritas por palavras
Como aplica um modelo «Nada de spoilers» sem ter sido treinado com essa regra? Inferência em linguagem natural e regras de moderação personalizadas.
O problema
Um classificador clássico só conhece as categorias com que foi treinado. Mas cada comunidade tem as suas regras: nada de spoilers, não vender contas, só falar de futebol, nada de links para outros servidores. Treinar um modelo novo para cada regra de cada comunidade é impossível.
A classificação zero-shot resolve isto: o modelo recebe a categoria como uma frase no momento do pedido e avalia se o texto encaixa nela.
Inferência em linguagem natural (NLI)
Muitos classificadores zero-shot assentam numa tarefa chamada inferência em linguagem natural. O modelo recebe dois textos:
- uma premissa (aqui: a mensagem do chat),
- uma hipótese (aqui: uma regra ou a descrição de uma categoria),
e decide se a premissa implica a hipótese, a contradiz ou é neutra.
| Premissa (mensagem) | Hipótese | Resposta |
|---|---|---|
| «lol o cão morre no fim» | «Esta mensagem revela o enredo de um filme ou série.» | implica |
| «alguém já viu o final?» | «Esta mensagem revela o enredo de um filme ou série.» | não implica |
| «vendo a minha conta nível 80, manda mensagem» | «Esta mensagem oferece comprar ou vender contas de jogos.» | implica |
A probabilidade de «implica» passa a ser a pontuação da regra. O mesmo mecanismo serve para as categorias fixas: «insulto» é apenas a hipótese «Esta mensagem insulta uma pessoa».
Porque é que generaliza
Durante o treino o modelo vê centenas de milhares de pares premissa–hipótese sobre todo o tipo de temas. Não aprende as regras em si: aprende a capacidade de verificar se um texto encaixa numa descrição. Essa capacidade passa para regras que nunca viu, em qualquer língua que o modelo conheça.
Escrever boas regras
- O concreto ganha ao abstrato. «Não comprar, vender nem trocar contas ou itens» funciona melhor do que «Respeita a economia».
- Uma ideia por regra. Divide «Nada de spam nem de política» em duas regras.
- Descreve o comportamento, não uma lista de palavras. «Não reveles o fim de filmes ou séries» apanha spoilers escritos de qualquer maneira.
- Testa com exemplos reais e ajusta o limiar, como em qualquer categoria.
O contexto também ajuda as regras
«Ele morre no fim» só é spoiler se a conversa for sobre uma série. Os modelos zero-shot que também leem as mensagens anteriores conseguem avaliar regras que dependem do chat; ver o contexto na moderação.
Na VigiMod
As regras são enviadas com cada pedido, até 10, em qualquer língua:
"rules": {"no-spoilers": "Nada de spoilers de filmes ou séries"}
Cada regra devolve a sua própria pontuação e alerta (rule:no-spoilers), ao lado das categorias integradas. Detalhes na documentação.
Teste-se
Responda às perguntas e depois verifique as respostas.
Continue a aprender
Veja em mensagens reais
Experimente a demo ao vivo ou leia como funciona a API.