* Claudio Curci  /  Php developer

3. lezione - Come funziona un embedding?


Per quanto possa sembrare controintuitivo, alla base dei modelli linguistici c’è la matematica. È un discorso affascinante ed accademico, e anche stavolta useremo alcune analogie per semplificare.

Come spiegare i modelli LLM in maniera semplice?

Immaginate lo spazio logico in cui opera un LLM come un'enorme carta geografica in cui le parole sono vicine in base al loro significato, precisamente in base alle relazioni semantiche apprese durante l'addestramento. Gatto sarà vicinissimo a micio, abbastanza vicino a cane, molto lontano da ciclamino e lontanissimo da automobile. Al tempo stesso la regina, intesa come l’ape nel proprio alveare, sarà alquanto distante dalla Regina, intesa ad esempio come Elisabetta.

Questa è una delle basi di un LLM: capire la vicinanza delle parole e posizionarle su una mappa logica così da interpretare delle domande e generare delle risposte. Altro aspetto fondamentale sono i transformer,  ma li vedremo in un'altra lezione.

Tuttavia una mappa di questo tipo non può contenere direttamente le parole. Le stringhe di testo non si prestano a funzioni matematiche avanzate che calcolano rapidamente concetti di vicinanza, come accade con i vettori, le matrici, le derivate. I modelli neurali operano su tensori numerici, non su stringhe.

Cosa si intende per embeding?

Il processo che trasforma parole in entità matematiche, vettori, è chiamato embedding, vale a dire la trasformazione di oggetti complessi in forme numeriche così da elaborarne significati e relazioni. Si parla di oggetti complessi perché si può realizzare un embedding anche di formati diversi, come quello di immagini, ma è sufficiente aver capito il significato e il meccanismo.

Quali sono le fasi di sviluppo di un progetto AI dei nostri giorni?

1. suddividere i documenti in blocchi (chunk) così da renderli “digeribili” al processo di embedding

2. processare i documenti (embedding) così da averli in una rappresentazione semantica e salvarli in un database vettoriale

3. quando l’utente esegue una richiesta, eseguire l’embedding della richiesta stessa

4. confrontare l’embedding dell’utente con il database (i db vettoriali mettono a disposizione appositi strumenti di confronto come la distanza coseno, il prodotto scalare, la “nearest neighbors search”)

5. attivare il modello LLM che riceve i documenti recuperati come contesto aggiuntivo e li usa per generare una risposta.

È sempre necessario utilizzare gli LLM e gli embedding?

Questo è un punto critico su cui insisto spesso con i clienti: non è sempre necessario utilizzare un LLM o un sistema AI. Svariate operazioni possono essere svolte ancora oggi “alla vecchia maniera”, con un database relazionale e dei processi schedulati oppure con un approccio misto, in cui ci si occupa dei primi 4 punti ma non è necessario utilizzare un LLM perché all’utente servono solo i documenti e non una sintesi testuale. Come spesso accade con le tecnologie emergenti (ricordate le applet Java?), una novità viene rapidamente percepita come un must-have, ma non è così, specie quando c’è un costo da sostenere.

Dal 1997, il Php a Roma!

Claudio Curci
Da quasi trent'anni mi dedico alla programmazione, con oltre 20 anni di esperienza come freelance. Credo in un approccio al lavoro in cui la competenza si sposa con la serenità, dove le urgenze sono vizi, non virtù. Mi impegno a supportare i clienti con risposte chiare e soluzioni concrete, evitando inutili tecnicismi. "La vera efficienza si trova nella serenità." – Henry David Thoreau
Infocurci Questo sito non utilizza cookie, non mostra nessuna pubblicità e non profila nulla. Navigate serenamente, siete i benvenuti.

Ambienti / piattaforme di sviluppo

Amazon Booking.com CodeIgniter Joomla Magento Moodle Kelkoo Kigo PayPal Symfony Wordpress Airbnb FormaLms Laravel Prestashop Shopify Whatsapp