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óteseResposta
«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.

  1. 1. O que significa aqui «zero-shot»?
  2. 2. Na NLI, a mensagem do chat faz o papel de…
  3. 3. Que regra deve funcionar melhor?
  4. 4. Porque é que o modelo consegue verificar uma regra que nunca viu?

Todos os guias →

Veja em mensagens reais

Experimente a demo ao vivo ou leia como funciona a API.