Intermedio7 min di letturaAggiornato
Classificazione zero-shot: come un modello capisce regole scritte a parole
Come fa un modello a far rispettare «Niente spoiler» se non è mai stato addestrato su quella regola? Inferenza in linguaggio naturale e regole personalizzate.
Il problema
Un classificatore classico conosce solo le categorie su cui è stato addestrato. Ma ogni community ha le sue regole: niente spoiler, niente vendita di account, si parla solo di calcio, niente link ad altri server. Addestrare un modello nuovo per ogni regola di ogni community è impossibile.
La classificazione zero-shot risolve il problema: il modello riceve la categoria come frase al momento della richiesta, e giudica se il testo la rispetta.
L'inferenza in linguaggio naturale (NLI)
Molti classificatori zero-shot si basano su un compito chiamato inferenza in linguaggio naturale. Il modello riceve due testi:
- una premessa (qui: il messaggio in chat),
- un'ipotesi (qui: una regola o la descrizione di una categoria),
e decide se la premessa implica l'ipotesi, la contraddice o è neutra.
| Premessa (messaggio) | Ipotesi | Risposta |
|---|---|---|
| «ahah alla fine il cane muore» | «Questo messaggio rivela la trama di un film o di una serie.» | implica |
| «qualcuno ha visto il finale?» | «Questo messaggio rivela la trama di un film o di una serie.» | non implica |
| «vendo account livello 80, scrivetemi» | «Questo messaggio offre di comprare o vendere account di gioco.» | implica |
La probabilità di «implica» diventa il punteggio della regola. Lo stesso meccanismo vale per le categorie fisse: «insulto» è solo l'ipotesi «Questo messaggio insulta una persona».
Perché generalizza
In addestramento il modello vede centinaia di migliaia di coppie premessa-ipotesi su ogni tipo di argomento. Non impara le regole in sé: impara la capacità di verificare se un testo corrisponde a una descrizione. Questa capacità vale anche per regole mai viste, in ogni lingua che il modello conosce.
Scrivere buone regole
- Concreto batte astratto. «Niente compravendita o scambio di account e oggetti» funziona meglio di «Rispetta l'economia del gioco».
- Un'idea per regola. Dividi «Niente spam e niente politica» in due regole.
- Descrivi il comportamento, non una lista di parole. «Non rivelare il finale di film o serie» prende gli spoiler scritti in qualsiasi modo.
- Prova su esempi veri e regola la soglia, come per ogni categoria.
Il contesto aiuta anche le regole
«Alla fine muore lui» è uno spoiler solo se la conversazione parla di una serie. I modelli zero-shot che leggono anche i messaggi precedenti possono giudicare regole che dipendono dalla chat: vedi il contesto nella moderazione.
In VigiMod
Le regole si mandano con ogni richiesta, fino a 10, in qualsiasi lingua:
"rules": {"niente-spoiler": "Niente spoiler su film o serie"}
Ogni regola restituisce il suo punteggio e la sua segnalazione (rule:niente-spoiler), accanto alle categorie predefinite. I dettagli sono nella documentazione.
Mettiti alla prova
Rispondi alle domande, poi controlla le risposte.
Continua a imparare
Guardalo su messaggi veri
Prova la demo dal vivo, o leggi come funziona l'API.