Vai a Mappa Corsi Laboratorio Glossario Come funziona Problemi comuni Inizia →
ITEN
← Corso 05 · Capire il linguaggio (Lezione 05.02 · 22 minuti · Tastiera · Primo modello)

Classificare e cercare testi sul telefono.

Accendi la luce, che tempo fa domani, metti un po' di musica. Qui insegni al telefono a capire cosa chiede una frase, con un modello già pronto e pochi esempi tuoi, e usi lo stesso trucco per cercare nelle note per significato.

Cosa impari
  1. Come si costruisce un classificatore di frasi con pochi esempi
  2. Quando basta cercare la frase di esempio più vicina
  3. Come funziona la ricerca per significato, e dove sbaglia
Come vuoi seguirla
Preparo la scena…
  1. 01 La domanda

    Capire cosa chiede una frase, tra poche risposte.

    Vuoi un'app che capisca i comandi scritti. Accendi la luce, che tempo fa domani, metti un po' di musica. Le frasi possibili sono infinite, ma le intenzioni sono poche, luce, meteo, musica e altro. Riconoscere l'intenzione è una classificazione01.04 del testo. Ogni frase va in una delle tue classi.

    In pratica. Scegli intenzioni ben separate. Se due classi le confondi anche tu leggendo le frasi, il modello le confonderà di più.

01 / 07
(Approfondisci)

Qualche numero in più.


(01)

Perché il vocabolario pesa così tanto

Un modello multilingue come paraphrase-multilingual-MiniLM ha un vocabolario di circa 250.000 token, per coprire decine di lingue. Ogni token ha un embedding di 384 numeri. Fanno 96 milioni di pesi solo per il vocabolario, su circa 118 milioni in tutto.

La parte che capisce le frasi, dodici strati piccoli, pesa quindi meno di un quinto del totale. Per questo un modello per una lingua sola, con un vocabolario di 30.000 token, può pesare tre o quattro volte meno e restare bravo quasi uguale in quella lingua.

  • 250.000token nel vocabolario, circa
  • 96 Mpesi solo per il vocabolario
  • 118 Mpesi in tutto
(02)

Il classificatore in codice

Chi programma trova tutto questo in poche righe. Gli esempi si trasformano una volta sola e si salvano. Per ogni frase nuova si calcola l'embedding, si confronta con tutti gli esempi e si prende l'intenzione del più simile, se è abbastanza simile.

Con qualche centinaio di esempi il confronto richiede meno di un millisecondo. Con decine di migliaia di note si usano strutture apposta, dette indici vettoriali, che trovano i vicini senza confrontarli tutti.

const e = await corpo(frase);                       // 384 numeri
let meglio = { sim: -1, classe: "altro" };
for (const es of esempi) {
  const sim = coseno(e, es.embedding);
  if (sim > meglio.sim) meglio = { sim, classe: es.classe };
}
const risposta = meglio.sim > 0.6 ? meglio.classe : "altro";
(03)

Gli errori tipici

Gli embedding di frase colgono soprattutto l'argomento. Accendi la luce e non accendere la luce parlano della stessa cosa, e finiscono vicinissime. Un classificatore costruito solo sugli embedding rischia di accendere la luce a chi ha chiesto il contrario.

Se nel tuo problema le negazioni contano, mettile negli esempi come classi a parte, oppure aggiungi un controllo semplice sulle parole non e mai. Lo stesso vale per l'ironia, che anche i modelli grandi capiscono male.

(Prova sul telefono)

I tuoi comandi


Nel laboratorio costruisci un classificatore di comandi scritti con quattro intenzioni scelte da te. Servono dieci minuti e, se puoi, una seconda persona che scriva frasi di prova.

  1. Apri il laboratorio con il pulsante qui sotto. Parte già con l'ingresso Testo, e la prima volta scarica il modello delle frasi.
  2. Crea quattro classi, per esempio luce, meteo, musica e altro.
  3. Scrivi 10 frasi per classe, tutte diverse. Nella classe altro metti frasi che non c'entrano.
  4. Premi Addestra. Poi in Usa scrivi frasi nuove e guarda la classe e la frase di esempio più vicina.
  5. Prova una negazione, come non accendere la luce, e guarda cosa succede.
Apri il laboratorio →
(Verifica)

4 domande per chiudere la lezione.

Quando rispondi a tutte, la lezione risulta fatta e sulla mappa la sua pietra diventa gialla. Conta rispondere, non il punteggio.


  1. (01)

    Perché bastano dieci o venti frasi per intenzione?

  2. (02)

    Scrivi riunione di lavoro e trovi appuntamento con il capo alle tre. Perché?

  3. (03)

    Scrivi non accendere la luce e il modello risponde luce. Perché succede?

  4. (04)

    Dove sta la maggior parte del peso di un modello multilingue per le frasi?

Per chiudere la lezione rispondi alla verifica

← Le parole diventano numeri Torna alla mappa
(Prossima lezione · 05.03) Un modello linguistico in tasca