Torna al blog
Ritrovare ciò che conta senza riportare tutto: le soglie della ricerca per significato
Tecnico4 min di lettura

Ritrovare ciò che conta senza riportare tutto: le soglie della ricerca per significato

Perché ti riguarda

Quando chiedi a LIA «cosa ti avevo detto sul ristorante di Paolo?», non cerca le parole esatte della tua frase. Cerca per significato. Ogni ricordo, ogni nota del diario e ogni passaggio dei tuoi documenti viene trasformato in una sequenza di numeri, un embedding, che rappresenta ciò che vuole dire. Due testi vicini per significato hanno embedding vicini, e la loro somiglianza si misura con un punteggio.

Resta da decidere da quale punteggio un ricordo è abbastanza vicino da servire. Con una soglia troppo bassa, LIA infila nella risposta ricordi che non c'entrano: la risposta si confonde e paghi token per del rumore. Troppo alta, e le sfugge ciò che pure sa. Questa soglia sembra un dettaglio tecnico; è lei a decidere se LIA ricorda bene.

Cosa volevo

Volevo una soglia per ogni uso, scelta su test realistici. Ritrovare un ricordo utile, individuare un doppione tra i tuoi interessi o scegliere un passaggio di un documento non sono la stessa domanda. E volevo che ogni soglia si scegliesse in base al costo dei suoi errori.

Come funziona

Ogni modello di embedding codifica il significato a modo suo. Quando LIA è passata al modello di embedding di Google, che non avvicina più due testi senza legame solo perché scritti nella stessa lingua, tutte le soglie sono state ricalibrate: quelle del vecchio modello non volevano più dire nulla. Per ciascuna ho misurato su set di test ciò che lascia passare per errore e ciò che si lascia sfuggire.

  • Cercare o eliminare i doppioni. Per richiamare un ricordo basta una soglia moderata. Per decidere che due interessi sono in realtà uno solo, devono essere quasi identici. Un ricordo ha addirittura due embedding: uno per il contenuto, uno per le parole chiave che devono richiamarlo.
  • Il costo di un errore. Per eliminare i doppioni tra i tuoi interessi, due soglie facevano esattamente lo stesso numero di errori. La più bassa fondeva per errore argomenti distinti, come Android e iOS: il tuo interesse per l'uno spariva nell'altro, senza possibilità di ritorno. La più alta lasciava passare qualche doppione, visibile e facile da correggere. Ho tenuto la più alta, perché contare gli errori non bastava: bisognava guardare quali erano. Il motivo è scritto accanto al valore, nel codice.
  • Sei lingue, una sola soglia. Per gli spazi di conoscenza la soglia è stata misurata in ciascuna delle sei lingue di LIA, e il valore migliore era lo stesso ovunque. Meglio così: un documento in tedesco può rispondere a una domanda posta in italiano, e una soglia per lingua non avrebbe saputo quale scegliere. Un piccolo bonus premia anche le parole esatte, perché un nome di prodotto o un riferimento non vadano persi.
  • Una soglia che impara. Per il tuo diario un valore fisso non andava bene per tutti: i punteggi dipendono da ciò che ognuno scrive e dal numero di note. Questa soglia quindi si adatta a te, al massimo di un piccolo passo al giorno, tra due limiti che non può superare. Un interruttore permette di fissarla al suo valore predefinito.

Un embedding deve ancora arrivare

Una soglia ben scelta non serve a nulla se l'embedding non viene calcolato. Questo calcolo passa per un servizio online, che limita il numero di chiamate al minuto. Le attività in background di LIA si avviano quindi in momenti sfalsati, per non partire tutte nello stesso secondo. Se il servizio si satura comunque, LIA riprova un numero limitato di volte, e la sua stessa regolazione, nel dubbio, lascia passare la richiesta perché la tua risposta conservi la sua memoria.

I limiti

  • Nessuna soglia separa perfettamente ciò che è pertinente dal resto. Due argomenti distinti possono somigliarsi molto, e due formulazioni della stessa idea molto meno. La soglia resta un compromesso, ed è per questo che la scelgo dal lato dell'errore meno grave.
  • Gli embedding di due modelli diversi non si confrontano tra loro: cambiare modello impone di ricalibrare tutto.
  • La ricerca per significato oggi dipende da un servizio di Google. Non funziona offline.

Per approfondire: I tuoi documenti, a portata di domanda: gli spazi di conoscenza; Mostrare al modello ciò che conta: i servizi che alleggeriscono il lavoro di LIA.

#embeddings#similarity#calibration#gemini#thresholds#f1-score