Come addestrare il vostro chatbot tramite il prompt engineering
Indice dell'articolo
Uno dei motivi per cui i chatbot basati sull’intelligenza artificiale hanno conquistato il mondo negli ultimi mesi è che possono generare o perfezionare il testo per una varietà di scopi, che si tratti di creare una campagna pubblicitaria o di scrivere un curriculum. Questi chatbot sono alimentati da algoritmi LLM (Large Language Model), che possono imitare l’intelligenza umana e creare contenuti testuali, ma anche audio, video, immagini e codice informatico. Gli LLM sono un tipo di intelligenza artificiale addestrata su un’enorme quantità di articoli, libri o risorse basate su internet e altri input per produrre risposte simili a quelle umane agli input in linguaggio naturale.
Un numero crescente di aziende tecnologiche ha presentato strumenti di intelligenza artificiale generativa basati sulle LLM per uso aziendale, al fine di automatizzare le attività applicative. Ad esempio, la scorsa settimana Microsoft ha distribuito a un numero limitato di utenti un chatbot basato su ChatGPT; è integrato in Microsoft 365 e può automatizzare le funzioni delle applicazioni CRM ed ERP e creare una prima bozza di un documento in Word, facendo risparmiare potenzialmente ore di scrittura, ricerca e modifica. Anche Salesforce ha annunciato l’intenzione di rilasciare un chatbot basato su GPT da utilizzare con la sua piattaforma CRM.
La maggior parte degli LLM, come GPT-4, sono preaddestrati come motori di previsione di parole o contenuti successivi: è così che la maggior parte delle aziende li utilizza, per così dire “out of the box”. Sebbene i chatbot basati sui LLM abbiano prodotto la loro parte di errori, gli algoritmi LLM preaddestrati funzionano relativamente bene nel fornire contenuti per lo più accurati e convincenti che, per lo meno, possono essere utilizzati come punto di partenza.
Molti settori, tuttavia, richiedono algoritmi LLM più personalizzati, in grado di comprendere il loro gergo e di produrre contenuti specifici per i loro utenti. Gli LLM per il settore sanitario, ad esempio, potrebbero dover elaborare e interpretare le cartelle cliniche elettroniche (EHR), suggerire trattamenti o creare un riassunto dell’assistenza sanitaria del paziente basato sulle note del medico o sulle registrazioni vocali. Un LLM specializzato nel settore dei servizi finanziari potrebbe invece creare trascrizioni di riunioni ed eseguire analisi delle frodi per proteggere i consumatori.
In tutti i settori, garantire un elevato grado di accuratezza delle risposte può essere fondamentale. La maggior parte degli LLM è accessibile attraverso un’interfaccia di programmazione delle applicazioni (API) che consente all’utente di creare parametri o regolazioni per le modalità di risposta dell’LLM. Una domanda o una richiesta inviata a un chatbot è chiamata prompt, in quanto l’utente sollecita una risposta. I prompt possono essere domande in linguaggio naturale, frammenti di codice o comandi, ma affinché l’LMM svolga il suo lavoro in modo accurato, i prompt devono essere precisi.
Questa necessità ha dato vita a una nuova competenza: la capacità di confezionare richieste articolate e specifiche in modo da ottenere i risultati desiderati dai i modelli linguistici: l’ingegneria dei prompt.
Il prompt engineering in pillole
Il prompt engineering, o ingegneria dei prompt, è il processo di creazione e ottimizzazione dei messaggi di testo per i modelli linguistici di grandi dimensioni per ottenere i risultati desiderati. “Questo processo aiuta gli LLM a realizzare una rapida iterazione nella prototipazione e nell’esplorazione dei prodotti, in quanto consente di adattare l’LLM in modo da allinearlo meglio alla definizione del compito in modo rapido e semplice” ha dichiarato Marshall Choy, vicepresidente senior del prodotto di SambaNova Systems, una startup della Silicon Valley che produce semiconduttori per l’intelligenza artificiale.
Secondo Eno Reyes, ingegnere di Hugging Face (una piattaforma che crea e ospita LLM), l’ingegneria di prompt è destinata a diventare una skill vitale per i professionisti dell’IT e del business. “Molte persone che conosco nel campo del software, dell’IT e della consulenza utilizzano sempre il prompt engineering per il loro lavoro personale”, ha dichiarato Reyes. “Con la crescente integrazione delle LLM nei vari settori, il loro potenziale di miglioramento della produttività è immenso”. Utilizzando in modo efficace il prompt engineering, gli utenti aziendali possono ottimizzare i large language model per svolgere in modo più efficiente e accurato i loro compiti specifici, che vanno dall’assistenza clienti alla generazione di contenuti e all’analisi dei dati.
Leggi anche: Come usare HuggingFace per sperimentare LLM e IA in modo facile
L’LLM più conosciuto e usato al momento, GPT-3.5 di OpenAI, è alla base del popolarissimo chatbot ChatGPT. L’LLM GPT-3.5 si basa su un modello di 175 miliardi di parametri in grado di generare testo e codice informatico con brevi messaggi scritti.
Oltre a GPT, le piattaforme di IA generativa più diffuse includono modelli aperti come BLOOM e XLM-RoBERTa di Hugging Face, NeMO LLM di Nvidia, XLNet, Co:here e GLM-130B. Poiché l’ingegneria dei prompt è una disciplina emergente, le aziende si affidano a guide ai prompt per garantire risposte ottimali alle loro applicazioni di intelligenza artificiale. Stanno persino nascendo dei mercati per i prompt, come quello dei 100 migliori prompt per ChatGPT.
“Le persone vendono persino suggerimenti per i prompt”, ha dichiarato Arun Chandrasekaran, illustre analista vicepresidente di Gartner Research, aggiungendo che la recente attenzione per l’IA generativa ha gettato i riflettori sulla necessità di migliorare l’ingegneria dei prompt. “Si tratta di un settore relativamente recente. Le applicazioni di IA generativa si basano spesso su modelli di IA giganti auto-supervisionati e quindi per ottenere risposte ottimali da questi modelli sono necessari maggiori conoscenze, prove e sforzi aggiuntivi. Sono sicuro che con la crescente maturità potremo vedere migliori pratiche da parte dei creatori di modelli di IA sui modi efficaci per ottenere il meglio dai modelli e dalle applicazioni di IA”.
Un buon input equivale a un buon output
La componente di machine learning degli LLM impara automaticamente dai dati in ingresso. Oltre ai dati originariamente utilizzati per creare un LLM come GPT-4, OpenAI ha creato una cosa chiamata Reinforcement Learning Human Feedback, in cui un essere umano addestra il modello a dare risposte simili a quelle umane.
Ad esempio, un utente porrà una domanda al LLM e scriverà la risposta ideale. Poi l’utente porrà di nuovo la stessa domanda al modello, il quale offrirà molte altre risposte diverse. Se si tratta di una domanda basata sui fatti, la speranza è che la risposta rimanga la stessa; se invece si tratta di una domanda aperta, l’obiettivo è quello di produrre molteplici risposte creative simili a quelle umane.
Ad esempio, se un utente chiede a ChatGPT di generare una poesia su una persona seduta su una spiaggia delle Hawaii, l’aspettativa è che generi ogni volta una poesia diversa. “Quello che fanno i formatori umani è valutare le risposte dalla migliore alla peggiore”, ha detto Chandrasekaran. “Questo è un input per il modello per assicurarsi che dia una risposta migliore o più simile a quella umana, cercando di ridurre al minimo le risposte peggiori. Ma il modo in cui inquadrate le domande ha un’enorme influenza sull’output che ottienete da un modello”.
Le organizzazioni possono addestrare un modello GPT inserendo set di dati personalizzati interni all’azienda. Ad esempio, possono prendere i dati aziendali, etichettarli e annotarli per aumentarne la qualità e quindi inserirli nel modello GPT-4. In questo modo il modello viene perfezionato in modo da poter rispondere alle domande specifiche di quell’organizzazione. La messa a punto può anche essere specifica per il settore. Sta già nascendo un’industria di start-up che prende GPT-4 e ingerisce molte informazioni specifiche per un settore verticale, come quello dei servizi finanziari.
Ad esempio, Harvey è una startup che ha collaborato con OpenAI per creare quello che chiama un “copilot per avvocati” o una versione di ChatGPT per i professionisti legali. Gli avvocati possono utilizzare il chatbot ChatGPT personalizzato per scoprire eventuali precedenti legali di determinati giudici per prepararsi al prossimo caso. “Vedo il valore della vendita di prompt non tanto per il linguaggio quanto per le immagini”, ha detto Chandrasekaran. “Ci sono tutti i tipi di modelli che si vogliono nello spazio dell’intelligenza artificiale generativa, compresi i modelli da testo a immagine”. Ad esempio, un utente può chiedere a un modello di intelligenza artificiale generativa di produrre l’immagine di un chitarrista che strimpella sulla luna. “Penso che il settore text-to-image abbia un’enfasi maggiore nel mercato della vendita di prompt”.
Hugging Face come hub LLM unico
Sebbene Hugging Face crei alcuni dei propri LLM, tra cui BLOOM, il ruolo principale dell’organizzazione è quello di essere un hub per i modelli di machine learning di terze parti, come GitHub per il codice; attualmente Hugging Face ospita più di 100.000 modelli di machine learning, tra cui una varietà di LLM di startup e big tech. Man mano che nuovi modelli vengono open-sourced, di solito vengono resi disponibili sull’hub, creando una destinazione unica per gli LLM open-source emergenti.
Per mettere a punto un LLM per un’attività o un settore specifico utilizzando Hugging Face, gli utenti possono sfruttare le API Transformers e le librerie Datasets dell’organizzazione. Ad esempio, nel settore dei servizi finanziari un utente può importare un LLM pre-addestrato come Flan-UL2, caricare un set di dati di articoli di notizie finanziarie e utilizzare il trainer “transformers” per mettere a punto il modello in modo da generare sommari di tali articoli. Le integrazioni con AWS, DeepSpeed e Accelerate semplificano e ottimizzano ulteriormente il training.
Secondo Reyes, l’intero processo può essere realizzato in meno di 100 righe di codice. Un altro modo per iniziare a lavorare con il prompt engineering è l’Inference API di Hugging Face: si tratta di un semplice endpoint di richiesta HTTP che supporta più di 80.000 modelli di transformers. “Questa API consente agli utenti di inviare messaggi di testo e di ricevere risposte dai modelli open-source presenti sulla nostra piattaforma, compresi gli LLM”, ha detto Reyes. “Per farla ancora più facile, potete inviare testo senza codice utilizzando il widget di inferenza sui modelli LLM nell’hub Hugging Face”.
Apprendimento few-shot e zero-shot
L’ingegneria dei prompt per i large language model assume tipicamente due forme: l’apprendimento o l’addestramento few-shot e zero-shot. L’apprendimento zero-shot prevede l’inserimento di una semplice istruzione come prompt che produce una risposta attesa da parte del LLM. È progettato per insegnare a un LLM a svolgere nuovi compiti senza utilizzare dati etichettati per quei compiti specifici, affidandosi unicamente alle connessioni che il modello riesce a trovare tra i suoi dati. Per esempio, è possibile chiedere a un LLM di tradurre una frase da una lingua in un’altra, anche se esso non è mai stato addestrato per quella coppia di lingue.
L’apprendimento few-shot utilizza invece una piccola quantità di informazioni o dati campione per addestrare il LLM a dare le risposte desiderate. Questo tipo di apprendimento è costituito da tre componenti principali:
- Descrizione del compito: Una breve descrizione di ciò che il modello deve fare, ad esempio Tradurre dall’inglese al francese
- Esempi: Alcuni esempi che mostrano al modello cosa ci si aspetta che faccia, ad esempio “lontra marina => loutre de mer”
- Prompt: L’inizio di un nuovo esempio che il modello deve completare generando il testo mancante, ad esempio “formaggio => “.
Secondo Chandrasekaran, sono ancora poche le organizzazioni che dispongono di modelli di formazione personalizzati in base alle loro esigenze, perché la maggior parte dei modelli è ancora in una fase iniziale di sviluppo. E mentre l’apprendimento few-shot e zero-shot può essere d’aiuto, l’apprendimento dell’ingegneria dei prompt come skill è importante sia per gli utenti IT, sia per quelli business.
“Il prompt engineering è una skill importante da possedere oggi, poiché i modelli di fondazioni sono perfetti nell’apprendimento few-shot e zero-shot, ma le loro prestazioni sono in molti modi influenzate dal modo in cui creiamo metodicamente i prompt“, continua Chandrasekaran. La maggior parte delle API consente agli utenti di applicare le proprie tecniche di creazione dei messaggi. Secondo Reyes, ogni volta che un utente invia un testo a un LLM, è possibile perfezionare i messaggi per ottenere risultati specifici.
“Tuttavia, questa flessibilità apre anche le porte a casi di utilizzo dannosi come l’iniezione di prompt; in questi casi le persone possono infatti sfruttare il prompt engineering per scopi non voluti. Come campo di studio in crescita, affrontare il problema della prompt injection sia nei casi di uso malevolo, sia nel red-teaming per il pen-testing sarà fondamentale per il futuro, garantendo un uso responsabile e sicuro degli LLM in varie applicazioni.”