Il , Jeremy Likness ha pubblicato un articolo fondamentale che esplora l'IA generativa e i grandi modelli di linguaggio (LLM) nel contesto dello sviluppo C#. Questo approfondimento mira a fornire una base solida per i professionisti .NET/C# che operano con piattaforme come Microsoft Foundry, GitHub Models e AI Extensions, nonché con runtime locali come Ollama. L'IA generativa si è affermata come la tecnologia mainstream a più rapida crescita nella storia, superando giganti come Instagram e TikTok, raggiungendo 100 milioni di utenti in meno di due mesi.
Alla fine del 2022, OpenAI ha introdotto una versione gratuita di GPT-3.5 tramite un client di chat conversazionale, ChatGPT. Questo modello, affinato utilizzando il rinforzo per apprendimento dal feedback umano (RLHF), ha segnato il momento in cui l'IA generativa ha raggiunto la notorietà di massa. All'inizio del 2023, Microsoft ha risposto lanciando il servizio Azure OpenAI, che consente agli sviluppatori di implementare e utilizzare in modo sicuro modelli compatibili con OpenAI dietro endpoint gestiti da Azure.
Poco dopo, Microsoft ha introdotto una serie di strumenti e astrazioni chiave per supportare ulteriormente gli sviluppatori nel campo dell'IA:
- Semantic Kernel (SK) → strumenti per orchestrare prompt, memorie e plugin usando C# o Python.
- Microsoft Extensions for AI (MEAI) → astrazioni unificate per interagire con i modelli (ad esempio,
IChatClient). - Microsoft Extensions for Vector Data → interfacce standard per i database vettoriali utilizzati nei sistemi RAG (Retrieval Augmented Generation).
Questo articolo si distacca dall'innovazione rapida per concentrarsi sui concetti fondamentali, offrendo una base essenziale per gli sviluppatori .NET/C#.
Comprendere i termini legati all'IA
Il campo dell'intelligenza artificiale ha un proprio lessico, con termini distinti e significati molto specifici che sono cruciali per una comprensione approfondita.
Intelligenza artificiale (IA)
L'IA comprende tecniche che permettono ai computer di eseguire compiti che normalmente richiedono l'intelligenza umana, come il ragionamento, il linguaggio, la pianificazione o la percezione. Sebbene l'IA non sia una novità, oggi la maggior parte delle persone usa il termine "IA" per riferirsi specificamente all'IA generativa, data la sua recente ascesa e la sua capacità di produrre contenuti originali.
IA generativa (GenAI)
L'IA generativa si riferisce a sistemi di IA in grado di produrre testo, immagini, audio o altri contenuti. Un esempio emblematico è GPT, acronimo di "Generative Pre-trained Transformer" (trasformatore generativo pre-addestrato). Analizzando il nome, possiamo riassumere le sue caratteristiche principali:
- Generativo → produce contenuti;
- Pre-addestrato → addestrato su enormi set di dati;
- Trasformatore → architettura di rete neurale che consente una modellazione linguistica di alta qualità.
Grandi modelli di linguaggio (LLM)
I LLM sono modelli addestrati su miliardi di token (o gettoni) e sono capaci di generare testo, immagini, codice o passaggi di ragionamento complessi. La loro abilità di funzionare in diverse lingue deriva dall'apprendimento delle relazioni tra le parole e non da una semplice traduzione dizionario uno-a-uno. Questo approccio è fondamentale per superare le difficoltà inerenti alla traduzione tradizionale.
Perché la traduzione è difficile? Le parole hanno spesso molteplici significati, rendendo la traduzione una sfida per il software tradizionale. Consideriamo l'esempio della parola "pass" in inglese, con le sue diverse traduzioni e contesti:
- pass the car = passare la macchina
- mountain pass = col de montagne (passo di montagna)
- pass on the opportunity = lasciare passare l'occasione
- your park pass on the dashboard = la tua tessera di accesso al parco sul cruscotto
Il software tradizionale faticava a gestire questa ambiguità; i LLM eccellono perché operano nello spazio semantico, comprendendo il significato contestuale delle parole.
Token e integrazioni (embeddings)
I modelli non leggono direttamente il testo. Essi lo suddividono in token, che possono essere parole intere, frammenti di parole o caratteri. Questi token vengono poi convertiti in vettori numerici chiamati integrazioni (embeddings), che sono rappresentazioni matematiche del significato. Queste integrazioni catturano le sfumature semantiche delle parole anche in contesti diversi.
Ad esempio, nelle frasi "l'attore era una star" e "a loro piacevano le stelle", la parola "star" appare in entrambe, ma con significati diversi. Le integrazioni catturano questa differenza, rappresentando "star" in posizioni diverse nello spazio vettoriale a seconda che si riferisca a una celebrità o a un corpo celeste.
Si può visualizzare questo concetto in modo semplificato: in un grafico, il significato semantico della parola "star" può essere rappresentato in base alla sua vicinanza al concetto di "corpo celeste" (una stella nella notte) e al concetto di "attore" (star dello spettacolo). Immaginate ora miliardi di punti simili. I modelli generano testo navigando in questo spazio e prevedendo il vettore successivo più probabile, basandosi sulla prossimità semantica.
Ecco alcuni esempi di distanza semantica, che illustrano come le integrazioni riflettano la relazione tra i concetti:
- scuola ↔ scola (distanza ravvicinata → correzione ortografica)
- gatto ↔ cane (distanza ravvicinata → animali simili)
- gatto ↔ computer portatile (distanza lontana)
La ricerca semantica utilizza la distanza nello spazio di integrazione per trovare contenuti correlati, piuttosto che una semplice corrispondenza di stringhe, rendendola molto più potente e contestualmente rilevante.
Parametri: dimensione del modello
I LLM sono spesso descritti dal loro numero di parametri, che possono variare significativamente: 7 miliardi, 14 miliardi, 70 miliardi, 123 miliardi, ecc. I parametri sono pesi che vengono addestrati durante il processo di apprendimento del modello. Un numero maggiore di parametri si traduce in una capacità di ragionamento più profonda, una conoscenza più ricca e una maggiore capacità di cogliere le sfumature. Per dare un contesto storico, GPT-1 (rilasciato nel 2018) contava 117 milioni di parametri, mentre i modelli all'avanguardia moderni possono superare i 100 miliardi e arrivare a più di 400 miliardi di parametri, un salto quantico nella complessità e nelle capacità.
Prompt, istruzioni e strumenti
Mentre le sezioni precedenti si sono concentrate sulle informazioni relative al modello, questa parte esamina i termini direttamente collegati agli input e agli output che interagiscono con il modello.
Prompt (istruzione generativa)
I prompt sono semplicemente gli input che l'utente fornisce al modello. Ad esempio, una domanda diretta come "Qual è il modo migliore per sbucciare un mango?" è un prompt. È il punto di partenza per l'interazione con l'IA generativa.
Istruzioni di sistema
Le istruzioni di sistema rappresentano un "piano" nascosto che guida il comportamento del modello, stabilendo il suo ruolo o la sua personalità per una determinata interazione. Ad esempio, l'istruzione "Sei uno sbucciatore di mango e considerato un esperto nel tuo campo" imposta il contesto e il tono con cui il modello deve rispondere, influenzando la qualità e la specificità della sua output.
Strumenti / Funzioni
I LLM sono addestrati su dati storici, il che significa che la loro conoscenza potrebbe non essere aggiornata o specifica per determinate situazioni. Gli strumenti o le funzioni sono il meccanismo che permette ai LLM di accedere a informazioni attuali o autorevoli esterne. Questi possono includere:
- API meteo
- Ricerca in un database
- Motore di ricerca
- Indice delle conoscenze aziendali
Questo approccio è noto come Generazione Aumentata tramite Recupero (RAG - Retrieval Augmented Generation) e migliora significativamente la pertinenza e l'accuratezza delle risposte del modello.
Consideriamo due scenari per illustrare il RAG in azione:
Scenario 1: Agente concierge
Immaginate un agente concierge virtuale che ha accesso a un'API per i ristoranti locali e a un'API per le previsioni meteorologiche. Un utente inserisce la seguente istruzione generativa: "Puoi prenotarmi un tavolo per cena questa settimana in un ristorante con terrazza?"
In questo caso, il LLM, attraverso i suoi strumenti, agisce in più fasi: prima interroga l'API meteo per identificare le serate in cui è probabile che il tempo sia asciutto e più caldo. Poi, con queste informazioni, chiama l'API dei ristoranti per trovare quelli aperti e con disponibilità di posti a sedere che dispongono di una terrazza. Infine, l'agente restituisce una lista di suggerimenti che corrispondono esattamente alla richiesta dell'utente, dimostrando come gli strumenti estendano le capacità del modello oltre i dati di addestramento.
Scenario 2: Agente del servizio clienti
Prendiamo un agente del servizio clienti di un negozio al dettaglio che ha accesso a tutte le informazioni sui prodotti. L'utente digita: "Che tipo di pile servono per il Traveling Wonder Cube?"
Il LLM è in grado di estrarre il nome del prodotto, "Traveling Wonder Cube". Vectorizza il testo della query e poi richiama l'API del prodotto con il nome del prodotto e i vettori. La ricerca semantica viene invocata utilizzando una funzione per trovare i punti del manuale del prodotto che sono semanticamente più vicini alla query. Questo restituirà il risultato pertinente sulle pile richieste, se una tale sezione esiste nel manuale del prodotto, fornendo una risposta precisa e basata su dati aggiornati.
Protocollo di contesto del modello (Model Context Protocol - MCP)
Il Protocollo di Contesto del Modello, o MCP in breve, è un insieme di standard per l'interoperabilità tra agenti e strumenti. Consente ai modelli di comprendere facilmente quali strumenti sono disponibili e come richiamarli. Questo protocollo è fondamentale per creare "cassette degli attrezzi" virtuali che qualsiasi modello o agente può utilizzare, facilitando l'integrazione e la flessibilità nell'architettura AI.
E gli agenti?
Un agente, nel contesto dell'IA, è semplicemente un mezzo per fornire una soluzione specializzata che comprende un modello, strumenti e un contesto specifico. Ad esempio, l'agente concierge menzionato in precedenza può includere un modello di ragionamento abbinato a strumenti che forniscono informazioni su meteo, eventi e altri punti di interesse, consentendogli di offrire un servizio altamente personalizzato e funzionale. Gli agenti sono il fulcro dell'applicazione pratica dei LLM, combinando intelligenza artificiale con capacità di interazione con il mondo reale.