\part{}

\chapter{L’Intelligenza Artificiale Generativa}
%\chapter*{1. L’Intelligenza Artificiale Generativa}  % * rimuove la numerazione automatica
%\addcontentsline{toc}{chapter}{11. L’Intelligenza Artificiale Generativa}  % Aggiunge all'indice manualmente



L'elaborazione del linguaggio naturale (NLP) si affidava inizialmente a modelli che oggi definiremmo rudimentali, come le catene di Markov, che calcolavano la probabilità di ave-
re una parola in base alle parole che la precedevano, oppure Word2Vec che permetteva di rappresentare il significato delle parole con vettori numerici. Questi sistemi tuttavia erano inadeguati a comprendere appieno la complessità e la coerenza del linguaggio umano. . Questi sistemi tuttavia erano inadeguati a comprendere appieno la complessità e la coerenza del linguaggio umano. Una svolta fondamentale è stata l’introduzione dell’architettura \emph{Transformer}, presentata nel contributo “Attention Is All You Need” \parencite{vaswani_attention_2017}. Questa architettura ha rivoluzionato il campo dell’NLP grazie a un meccanismo di \emph{Attention} che permette al modello di valutare l’importanza delle singole parole o frasi all’interno di un testo, superando i limiti dei modelli precedenti. L’architettura \emph{Transformer} ha creato le basi per lo sviluppo dei Large Language Models (LLM), sistemi capaci di generare testo coerente e appropriato al contesto. A differenza dei sistemi predittivi tradizionali, gli LLM basati su \emph{attention} riescono a modellare con precisione le relazioni tra le parole del testo anche a lunga distanza tra loro. Questi modelli lavorano a livello di \emph{token} (parole o parti di parole), prevedendo la sequenza di \emph{token} più probabile a partire da un testo iniziale. Questo processo, simile a un autocompletamento molto avanzato, si basa su complessi modelli probabilistici, addestrati su enormi quantità di dati testuali.

L’addestramento degli LLM si articola in due fasi principali: il \emph{pretraining} e il \emph{fine-tuning}. Il \emph{pretraining}, o addestramento preliminare, è un processo non supervisionato che utilizza vasti insiemi di testi provenienti da diverse fonti, come siti web, libri, articoli scientifici e archivi di dati. In questa fase, il modello impara a riconoscere schemi, strutture e relazioni semantiche nel linguaggio, memorizzando queste informazioni in una rete di parametri (\emph{pesi}) che può contare centinaia di miliardi di elementi. Sebbene sia cruciale per l’acquisizione di una conoscenza linguistica generale, il \emph{pretraining} può portare all’assorbimento di pregiudizi, errori e informazioni fuorvianti presenti nei dati. Inoltre, un modello preaddestrato non è sempre allineato con le aspettative umane in termini di etica e sicurezza. Per ovviare a questi limiti, si ricorre a una seconda fase di addestramento, chiamata \emph{fine-tuning}. Il \emph{fine-tuning} adatta il modello preaddestrato a compiti o ambiti specifici, utilizzando dati etichettati o il riscontro fornito da persone. Una tecnica di \emph{fine-tuning} particolarmente efficace è il Reinforcement Learning from Human Feedback (RLHF), che si avvale di valutatori umani per giudicare la qualità delle risposte del modello e fornire indicazioni per migliorarlo.

In ambito educativo, la qualità delle risposte generate da un LLM è fondamentale. Utilizzare modelli generici, inclini alle “allucinazioni” e ai \emph{bias}, ovvero a generare informazioni inaccurate, inventate o distorte, può essere controproducente e persino dannoso per l’apprendimento in quanto indurrebbe a fidarsi di informazioni sbagliate. Un LLM che fornisce risposte errate o incomplete in una specifica materia scolastica compromette l’acquisizione di conoscenze corrette da parte degli studenti, diffondendo disinformazione e creando confusione. Per questo motivo, è essenziale migliorare l’accuratezza e l’affidabilità delle risposte, specializzando l’LLM nell’ambito di conoscenza specifico della materia trattata in classe. Solo così l’IA può diventare un vero strumento di supporto all’apprendimento, fornendo informazioni verificate e contribuendo a una didattica efficace.

Come dimostrato dalla letteratura, le prestazioni dei \textit{Large Language Models (LLM)} come ChatGPT variano in modo significativo a seconda della materia e del tipo di compito richiesto. \textcite{stribling_model_2024} mostra l’ottimo rendimento di GPT-4 in ambito biomedico su domande a risposta breve o a completamento, mentre le sue prestazioni diminuiscono drasticamente con quesiti che richiedono l’elaborazione di figure. \textcite{dao_investigating_2023} evidenziano come in matematica, a livello di scuola superiore, le prestazioni di ChatGPT e Bing Chat siano inferiori, per ora, a quelle degli studenti. \textcite{makrygiannakis_evidence-based_2024} conferma l’inesattezza delle risposte anche in ambito odontoiatrico, sottolineando la necessità di miglioramenti in termini di accuratezza scientifica, chiarezza e pertinenza delle risposte. Questi studi dimostrano che le prestazioni degli LLM non sono uniformi in una specifica materia, ma dipendono dalla complessità e dalla natura del compito, eccellendo in attività testuali ma mostrando limiti con domande specialistiche o dove c’è l’interpretazione di immagini o grafici questo perche la ricerca e la industria a iniziato successivamente a occuparsi della multimodalità. Uno studio ancora più recente ha mostrato come l’ultima versione di ChatGPT sia capace di passare gli esami di un corso di laurea in fisica con la sufficienza, avendo difficoltà solo in domande interdisciplinari, che hanno bisogno di lunghi step intermedi di ragionamento o che sono relative a esperienze dirette in laboratorio \parencite{pimbblet_can_2024}.

Per risolvere il problema di risposte apparentemente corrette nella forma, ma errate nel contenuto, è spesso necessario un successivo \emph{fine-tuning}, ovvero un ri-addestramento di un modello pre-addestrato su un nuovo insieme di dati scelti con cura per lo scopo. Questa è una soluzione efficace per specializzare gli LLM a domini e casi d’uso particolari. Tuttavia, questo processo può essere molto costoso in termini di risorse computazionali e tempo, rendendolo spesso inaccessibile a molti utenti o aziende. Inoltre, il \emph{fine-tuning} richiede una grande quantità di dati di alta qualità, che non sempre sono disponibili o facili da reperire, e non è un’attività che riesce bene al primo tentativo. Anche con i migliori esperti, occorrerà fare più prove di \emph{fine-tuning}, modificando vari parametri per trovare le impostazioni corrette, e ognuno di questi tentativi ha dei costi che non tutti possono sostenere. Di conseguenza, è necessario esplorare strategie alternative per migliorare la specificità degli LLM senza dover ricorrere a costosi processi di ri-addestramento.

\section{Il ruolo del prompting}
Le seguenti tecniche di \emph{prompting} si rivelano particolarmente utili per migliorare le prestazioni dei modelli in compiti relativi a materie specifiche e quindi renderli strumenti efficaci per l’apprendimento:

\begin{enumerate}
\item \textit{Few-Shot prompting}: Questa tecnica sfrutta la capacità degli LLM di apprendere dagli esempi. Fornendo al modello un numero limitato di esempi (da uno a pochi) di input e output desiderati, lo si guida a comprendere il compito richiesto e a generare risposte coerenti. Ad esempio, per insegnare all'LLM a completare analogie, si possono fornire alcuni esempi come "caldo : freddo = alto : basso" prima di chiedere di completare una nuova analogia, ad esempio in chimica. Questa tecnica è particolarmente utile per compiti ben definiti e con una struttura chiara. Studi come quello di \textcite{min_rethinking_2022} sottolineano l'importanza della scelta degli esempi, del formato e della distribuzione delle etichette per massimizzare l'efficacia del few-shot prompting.
\item \textit{Chain-of-Thought (CoT) prompting}: Invece di fornire solo input e output, si includono nel prompt anche i passaggi intermedi del ragionamento. Questo aiuta l'LLM a scomporre il problema e a generare risposte più accurate e motivate. Ad esempio, per un problema matematico, si possono includere nel prompt i singoli passaggi di calcolo. \textcite{wei_chain--thought_2022} hanno dimostrato l'efficacia del CoT prompting nel migliorare le capacità di ragionamento degli LLM. La variante zero-shot CoT, che prevede l'aggiunta di frasi come "Pensiamo passo a passo" al prompt, può essere efficace anche senza esempi specifici \parencite{liu_generated_2022}.
\item \textit{Retrieval Augmented Generation (RAG)}: La RAG è particolarmente utile in contesti educativi dove l'accuratezza delle informazioni è cruciale. Questa tecnica rappresenta un approccio ibrido che unisce la capacità generativa degli LLM con un meccanismo di recupero di informazioni da un archivio esterno. Il processo di RAG si sviluppa in due fasi principali: il recupero e la generazione. Nella fase di recupero, a fronte di una domanda, il sistema interroga un archivio di documenti precedentemente organizzati attraverso la creazione di rappresentazioni vettoriali, chiamate embeddings. Gli embeddings sono vettori numerici che catturano il significato semantico di porzioni dei documenti (chunks), permettendo di misurare la somiglianza di significato con la domanda. Le parti dei documenti con maggiore somiglianza semantica vengono quindi recuperate. Nella successiva fase di generazione, questi documenti, insieme alla domanda iniziale, vengono forniti come contesto all'LLM. Il modello linguistico utilizza queste informazioni aggiuntive per generare una risposta più precisa, pertinente e adatta al contesto. In questo modo, la RAG mira a ridurre i problemi legati alle "allucinazioni" fattuali e a migliorare l'affidabilità delle risposte generate, basandosi su fonti concrete e verificabili. La creazione preliminare di embeddings per l'organizzazione dell'archivio e l'efficiente calcolo della somiglianza durante la fase di recupero sono quindi aspetti cruciali per il corretto funzionamento e l'efficacia del paradigma RAG, ed è un lavoro da svolgere in precedenza. La maggior parte dei sistemi RAG permette di visualizzare quali sono gli estratti selezionati per generare la risposta, il che è molto utile perché consente di "vedere le fonti".
\item \textit{Knowledge Generated Prompting}: Simile alla RAG, questa tecnica \parencite{liu_generated_2022} prevede l'aggiunta di informazioni rilevanti al prompt, ma in questo caso la "conoscenza" viene generata dall'LLM stesso prima di rispondere alla domanda principale. Questo approccio può essere utile per fornire contesto o definizioni che aiutano l'LLM a comprendere meglio il compito e a generare risposte più accurate.
\end{enumerate}

Nei contesti educativi, l’integrazione di queste tecniche di \emph{prompting} permette di sfruttare appieno il potenziale degli LLM come strumenti per l’apprendimento, migliorando la qualità delle interazioni e promuovendo un utilizzo più efficace e consapevole dell’IA in educazione in modo più economico.

\section{L’importanza del contesto e della RAG}

Aggiungendo istruzioni al contesto possiamo indicare una strada da seguire all’LLM, specificando la maniera in cui risponde, il tono, la lingua. Ad esempio, dopo aver arricchito la conoscenza dell’LLM, si può indicare che non deve dare la soluzione all’utente quando quest’ultimo chiede il risultato di un esercizio, ma piuttosto guidarlo alla soluzione e invitarlo a riflettere. Questo è il principio, ad esempio, dei tutor Khanmigo, un prodotto di KhanAccademy basato su GPT-4. Al giorno d’oggi la creazione di un tutor didattico basato su un LLM, se ben progettato, è un processo relativamente semplice. La facilità d’uso di piattaforme come GPTs e le Gems di Gemini rende oggi possibile persino ai docenti creare tutor personalizzati per i propri studenti, se disposti a pagare per il servizio.

La manipolazione del contesto e, in particolare, la RAG rappresentano approcci promettenti ed economici per raggiungere questo obiettivo. Il contesto, inteso come l’insieme delle informazioni, indicazioni e conoscenze relative a un determinato ambito selezionato dal \emph{prompt engineer}, può essere fornito all’LLM attraverso il \emph{prompt} di sistema, ovvero l’input testuale principale che guida la generazione del testo. Un \emph{prompt} ben strutturato e ricco di dettagli contestuali può indirizzare l’LLM verso la produzione di risposte più pertinenti e precise e ridurre ma non eliminare del tutto le allucinazioni. Con il passare del tempo, l’avanzamento della tecnologia sta portando a un ampliamento del contesto. Ad oggi, alcuni modelli della serie Gemini offrono un contesto che, secondo l’azienda, arriva a 2 milioni di \emph{token}, anche se alcuni studi dimostrano che in realtà è leggermente inferiore \parencite{hsieh_ruler_2024}. L’aumento della capacità del contesto permette di far riferimento a interi libri, mentre prima era necessario vettorializzare e per poi affidarsi alla RAG. Chiaramente, inserire molte informazioni nel contesto è più costoso dal punto di vista computazionale, perché, in un certo senso, l’LLM "ripassa" tutto ciò che è presente nel contesto, lo "studia" di nuovo prima di ogni sessione. E se la quantità di informazioni è elevata, ovviamente, questo influisce sui tempi di risposta.

Di seguito un esempio di \textit{prompt} per una applicazione di chimica, nel quale vengono fornite più informazioni sull’argomento e si cerca di evitare che il sistema diventi uno strumento per dare le soluzioni ai compiti \footnote{Prompt creato e testato con il supporto di dell'IA \textit{Antropic Prompt Improver}}:
\begin{lstlisting}[language=plain]
«Sei un tutor di chimica esperto e paziente, con una profonda conoscenza della materia e una grande capacità di spiegare concetti complessi in modo semplice e comprensibile. Il tuo compito è assistere uno studente di scuola superiore che ha difficoltà nello studio della chimica. Lo studente ti farà delle domande o ti chiederà di spiegare degli argomenti, e tu dovrai rispondere in modo chiaro e dettagliato, fornendo esempi concreti e, se necessario, proponendo analogie che possano facilitare la comprensione.

Per rispondere alle domande dello studente, potrai utilizzare le informazioni contenute nel seguente libro di testo: [INSERIRE QUI IL CAPITOLO DEL LIBRO DI CHIMICA, o UN SUO ESTRATTO]

In particolare, lo studente sta studiando la stechiometria e ha bisogno di aiuto per capire come bilanciare le reazioni chimiche. Spiegagli i passaggi necessari per bilanciare una reazione chimica, partendo da un esempio semplice come la reazione di sintesi dell’acqua. Utilizza un linguaggio adatto a uno studente di scuola superiore, evitando un gergo eccessivamente tecnico, ma senza semplificare troppo i concetti.

Quando lo studente ti pone una domanda, incoraggialo e stimolalo a ragionare in modo autonomo, ponendogli a tua volta delle domande che lo aiutino a individuare la risposta corretta. Se lo studente commette un errore, correggilo con gentilezza, spiegandogli dove ha sbagliato e come può migliorare.

Ricorda che il tuo obiettivo non è fornire la soluzione immediata, ma guidare lo studente nel processo di apprendimento, aiutandolo a sviluppare le sue capacità di ragionamento e di risoluzione dei problemi.»
\end{lstlisting}

Analizzando il prompt possiamo notare che si tratta di un testo relativamente corto con queste caratteristiche:

\begin{enumerate}
    \item Il ruolo dell'LLM viene definito con precisione: un tutor esperto, paziente e con ottime capacità comunicative. Questa impostazione permette di delineare un vero e proprio "personaggio" e di modulare al meglio lo stile interattivo del modello.
    
    \item Il \textit{prompt} non si limita a richiedere risposte corrette, ma sottolinea l'importanza di assistere lo studente nel suo percorso di apprendimento, stimolandone il ragionamento autonomo e la capacità di risolvere i problemi. Di conseguenza, l'LLM non è una semplice fonte di soluzioni, ma una guida.
   
    \item Si specifica che l'LLM può utilizzare un libro di testo (o un suo estratto) come fonte di conoscenza, ancorando così le risposte a un riferimento autorevole e specifico attraverso l'inclusione diretta di informazioni nel contesto.
    
    \item L'attenzione è concentrata su un argomento preciso, la \textit{stechiometria} e il \textit{bilanciamento delle reazioni}, definendo il contesto in modo più mirato.
    
    \item Il \textit{prompt} descrive con precisione le modalità di interazione tra l'LLM e lo studente: lo incoraggia, lo stimola con domande, offre correzioni gentili ed evita di fornire risposte immediate. Infine, si richiede l'uso di un linguaggio e di un tono adeguati a uno studente di scuola superiore, senza tecnicismi eccessivi ma anche senza banalizzare i concetti.

\end{enumerate}
Secondo chi scrive, le case editrici, grazie al possesso dei diritti sui testi, hanno un potenziale e un vantaggio competitivo in questo ambito, in quanto non dovrebbero affrontare problemi di copyright nell'utilizzo dei contenuti. Questo apre scenari interessanti per il futuro dell'istruzione tradizionale, con la possibilità di integrare strumenti di apprendimento sempre più efficaci e personalizzati nell'editoria scolastica e universitaria all'interno dei libri di testo.

 