• Mutimedia Web la Web Agency Italiana. Contattateci per preventivi gratuiti e consulenze nello sviluppo del vostro sito web o app Ios e Android. Professinalità e assistenza garatite!
    Immagini dei quadri e opere di: Giuseppe Lattanzio

  • Social

    [easy-social-share buttons="facebook,twitter,pinterest,linkedin,digg,stumbleupon,vk,tumblr,print,mail,del,reddit,whatsapp" counters=0 hide_names="force" template="grey-blocks-retina"]
  • WEB AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Trovaci sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB ITALIA

Home / News / Embedding: vettorizzazione numerica di contenuti | AI

Embedding: vettorizzazione numerica di contenuti | AI


Prima di iniziare a parlare di embedding ricordiamo ora che, nel nostro percorso di creazione di una RAG, abbiamo imparato a:

  • caricare documenti originati da varie sorgenti per creare una base di conoscenza ricca sebbene ancora in linguaggio naturale;
  • splittare i documenti scaricati per suddividerli in chunk ovvero microporzioni (quanto “micro” dipenderà dalle nostre impostazioni e necessità) per renderli più “digeribili” (si passi il termine) per il nostro sistema,

siamo pronti ad affrontare il terzo step ovvero la trasformazione delle parole in numeri: l’embedding.

Embedding

La definizione usata poco fa può suonare alquanto strana eppure se pensiamo che, in fin dei conti, i computer sono letteralmente dei calcolatori e ricordiamo come ogni informazione, per grafica e variopinta che possa essere, alla fine viene trasformata in forma numerica, non appare assolutamente strano che esso succeda in un campo così “matematico” come l’Intelligenza Artificiale.

Con una RAG, creeremo – in parole semplici – una sorta di motore di ricerca in grado di fare essenzialmente due cose: recuperare informazioni nella nostra base di conoscenza; passarle ad un motore di Intelligenza Artificiale (un LLM) per far generare una risposta che ce le presenti nel modo più “umano” possibile. L’Embedding è una procedura alla base di questa ricerca che serve a trasformare testi in vettori numerici che saranno destinati poi ad essere immagazzinati in un particolare tipo di database noto come database vettoriale.

Il vantaggio di trasformare un testo in un vettore di numeri consiste nel fatto che potremo confrontare due frasi e calcolare la distanza tra i testi in esse immagazzinati. Il problema della distanza, trattandosi ora di vettori numerici e non più di testi, sarà espressamente ridotto ad un puro calcolo matematico.

Il valore della vettorizzazione

A prima vista, un approccio di questo tipo potrebbe non sembrare così fondamentale, visto che esistono moltissimi algoritmi di natura linguistica, già pienamente sfruttati dai motori di ricerca, che permettono di calcolare la somiglianza tra espressioni. Il valore di questa vettorizzazione però consiste nell’allontanare i concetti dalle parole. I vettori rappresenteranno non tanto i testi per come sono scritti ma i concetti che essi identificano.

Facciamo un esempio semplice al solo scopo di chiarimento: se un vettore rappresenta un testo che parla di un gatto sarà sicuramente più “vicino”, relativamente al loro spazio geometrico, ad uno che parla di un “felino” che ad uno che parla di caffettiere. Il significato pertanto sarà preservato e manipolato al di là che le parole “gatto” e “felino” siano tecnicamente differenti tra loro. Ciò permette di avvicinare tra loro concetti nascosti in parole diverse ma anche di mettere al riparo da falsi amici come parole ortograficamente simili ma dal significato del tutto diverso, per non parlare di una parola scritta in modo identico che può indicare a seconda dei casi concetti del tutto differenti (pensiamo a un piatto per mangiare o a un piatto per la batteria).

Calcolo della distanza

Per calcolare la distanza tra due vettori ci rivolgeremo ad algoritmi che si occupano di valutare quanto essi in uno spazio siano vicini tra loro. Uno degli algoritmi più usati e che sperimenteremo anche noi, si basa sul coseno. Tale concetto trigonometrico valuta l’angolo che due vettori formano tra loro: minore è questo angolo più si può dire che i concetti sono simili.

Quello del coseno è un sistema molto pratico ma non sicuramente l’unico. Esistono altre famiglie di algoritmi che si basano su altri fattori oltre all’angolo come la direzione e la lunghezza. Ad esempio, ve ne sono alcuni focalizzati sulla distanza euclidea che mirano a vedere quanto sono lontani i vertici dei vettori tra loro mentre altri sfruttano il prodotto scalare per concentrarsi su direzione e lunghezza del vettore.

Noi faremo in primis uso del metodo del coseno, non solo perché è estremamente diffuso, ma anche perché è un sistema che sintetizza diversi aspetti dei vettori come la direzione stessa che, in caso di divergenza tra i vettori studiati, porterebbe immediatamente ad un angolo più ampio.

Embedding in pratica

Il concetto centrale l’abbiamo illustrato ma quindi, ora, come applicare l’embedding? Come in molti altri casi siamo estremamente fortunati perché framework e operatori di Intelligenza Artificiale mettono a disposizione i loro embedder per poter accedere a queste funzionalità molto velocemente. Se si è già provato a sperimentare un po’ di programmazione AI-based non sarà strano che ci si sia trovati in punti in cui, oltre al modello LLM da usare, sia stato chiesto di indicare un embedder: ecco, quello era proprio il componente che si occupava di embedding.

In generale, quando si sceglie un embedder si può procedere in vari modi ma i criteri sono sempre simili a quelli dominanti nella Intelligenza Artificiale Generativa:

  • famigliarità come il modello di AI che si sta utilizzando, in modo che un po’ tutto resti “in casa”;
  • modalità di accesso on line o in locale;
  • costi e disponibilità;
  • lingua che in questo caso è fondamentale. Per fare in modo che il significato venga ben interpretato è importante che l’embedder sia pronto ad interpretare anche la lingua dominante dei testi che deve vettorizzare.

Le informazioni di base ci sono, ora è il momento di iniziare a mettere mano alla pratica implementando un po’ di vettorizzazioni e calcoli di similarità nelle prossime lezioni.

Se vuoi aggiornamenti su Embedding: vettorizzazione numerica di contenuti inserisci la tua email nel box qui sotto:



Source link