Il mese di novembre è stato un mese intenso per il panorama dell’intelligenza artificiale e soprattutto per OpenAI: i nuovi annunci hanno sconvolto il panorama, in particolare la possibilità di creare i propri assistenti basati su GPT direttamente dall’interfaccia Web di ChatGPT, e condividerli e forse in futuro commercializzarli.
Cerchiamo di capire innanzitutto questa nuova tecnologia e come funzioni, e successivamente analizzare i rischi di lock-in nella sua adozione e possibili strategie alternative.
Come creare il proprio ChatGPT
La creazione di un proprio GPT richiede il livello plus di GPT, ovverosia quello a pagamento, si può fare utilizzando la funzione “Explore” che è disponibile in alto a sinistra nella nuova versione dell’interfaccia:
Si possono quindi vedere i propri GPT e il sistema offre la possibilità di creare un nuovo GPT:
Il sistema offre quindi due modalità per la realizzazione di un nuovo assistente: supportato da GPT stesso oppure con configurazione manuale.
In realtà la creazione supportata non fa che generare la configurazione che sarà comunque personalizzabile successivamente.
Come esempio realizziamo un assistente che generi illustrazioni per libri per bambini:
Il sistema propone un nome all’assistente e, una volta confermato, genera un’immagine per l’assistente:
L’AI fa altre domande per poter caratterizzare l’assistente e il suo comportamento:
L’assistente creato può essere testato prima di essere salvato usando il pannello di destra dell’interfaccia:
È possibile visualizzare e modificare la configurazione del proprio assistente selezionando il tab “Configure”:
Come si può vedere è possibile limitare le capacità dell’agente limitando l’accesso alla generazione di immagini, all’accesso ai dati in Internet e al sistema di analisi di dati.
È inoltre possibile caricare file in vari formati per fornire conoscenza specifica all’assistente. Ad esempio si può caricare il materiale didattico di un corso per ottenere un assistente che risponda a domande relative al corso.
L’aggiunta di file di dati all’assistente fornisce nuova conoscenza a GPT ma, dai primi esperimenti, sembra difficile focalizzare l’attenzione e il comportamento rispetto ai sistemi RAG che fanno uso di Vector DB per recuperare i frammenti di conoscenza da includere nel contesto di una richiesta al modello LLM.
Condividere il proprio assistente
Una volta creato è possibile salvare e condividere l’assistente creato. OpenAI ha annunciato che sarà possibile pubblicare gli assistenti su uno store, ma è già possibile condividere un assistente mediante un link inviato ad utenti del livello Plus di GPT, oppure rendendolo pubblico (ovverosia autorizzando la piattaforma a condividere il collegamento con tutti, presumibilmente sullo store).
Ad oggi i costi degli assistenti GPTs sono inclusi nel piano Plus o enterprise, e non è possibile consentire l’accesso ad utenti che non abbiano la versione del servizio a pagamento. L’impossibilità di condividere gli agenti creati con utenti che non siano già abbonati al servizio Plus limita significativamente gli usi, ma si tratta della beta del servizio ed è lecito immaginare scenari che il costo del servizio possa essere assorbito da chi ha creato l’agente (ad esempio per usi di marketing) oppure da chi lo utilizza.
Gli scenari possibili sono molti, e con il rinnovo della governance di OpenAI con un nuovo CdA, non è da escludersi un cambio di rotta più orientata al marketplace.
La “saga” di Sam Altman e i dubbi su OpenAI
Pochi giorni dopo la conferenza di cui abbiamo scritto in apertura, l’annuncio di venerdì 17 novembre del licenziamento del CEO di OpenAI Sam Altman da parte del CdA, e i successivi cinque giorni hanno rischiato di bruciare la più grande startup del mondo e tutti coloro che hanno investito sui suoi modelli salvo poi tornare indietro sui suoi passi ma con un nuovo CdA.
Nonostante l’impressione sia che tutto sia tornato a posto, la defiance fa interrogare sulla stabilità di investimenti su un’unica realtà aziendale, ed è naturale chiedersi se abbia senso investire in tecnologie proprie di OpenAI come la creazione di assistenti ChatGPT personalizzati.
AI e lock-in
Il nuovo indirizzo di OpenAI annunciato durante l’evento per gli sviluppatori è quello di candidarsi a funzionare come la piattaforma su cui realizzare soluzioni enterprise basate su intelligenza artificiale nella declinazione dei vari modelli sviluppati dalla startup.
I recenti eventi alla guida della startup hanno però sottolineato, come se ve ne fosse bisogno, come interi business che sono nati appoggiandosi alle sue tecnologie siano andati nel panico durante la crisi nel timore che il cambiamento potesse vanificare gli investimenti fatti.
In molti hanno sottovalutato il problema, nella convinzione che i modelli LLM, se non uguali, siano simili e quindi seguendo i dettami del software engineering si possano astrarre nello sviluppo di un sistema rendendoli sostituibili. Purtroppo la realtà è ben diversa, e da sviluppatore del sistema Oraculum basato sui modelli di OpenAI ho passato i giorni della crisi ad interrogarmi sulle conseguenze.
Da vecchio sviluppatore quale sono, ho limitato le dipendenze di Oraculum e Sibylla al sottoinsieme di funzioni tipiche di un LLM nella consapevolezza che prima o poi il sistema avrebbe potuto funzionare con modelli alternativi: già adesso è possibile usare GPT non solo nella versione di OpenAI ma i modelli GPT sono disponibili anche su Azure AI studio. Esistono librerie di programmazione che consentono di “astrarre” la variante di GPT che si utilizza come la libreria Betalgo.OpenAI utilizzata in Oraculum.
È certo che l’uso di funzioni specifiche e più lontane dal funzionamento puro degli LLM può contribuire a rendere uno strumento vincolato alla tecnologia specifica per assenza di funzionalità.
La disponibilità dello stesso modello presso più provider assomiglia quindi a sistemi che già conosciamo e per cui le tecniche per ridurre il rischio di lock-in mediante API standard possono mitigare i rischi nel dipendere da una tecnologia specifica.
Ad un certo livello di astrazione un modello LLM si può immaginare come una funzione che, dato in ingresso il testo di un contesto e i parametri di configurazione, genera il testo della risposta. Si può quindi immaginare un’API simile con più modelli, ma il comportamento del modello varia significativamente anche a parità di dimensione. Sappiamo, ad esempio, che Google Bard è meno efficace nel seguire istruzioni di GPT anche se i due modelli hanno funzioni confrontabili. Nel caso di Oraculum il sistema prevede che l’inserimento di testo XML nel prompt aiuti il modello nell’estrazione di conoscenza da utilizzare nella risposta, è un’ipotesi sicuramente vera per GPT, la abbiamo verificata con Llama 2 70B, ma non è necessariamente sempre vera.
In sostanza, il comportamento di un sistema dipende sia dalle funzionalità che sono offerte da un modello particolare, che dal modello stesso.
Le tecniche standard del software engineering sono quindi meno efficaci rispetto ad altri ambiti, ed è un fattore da tenere presente nello sviluppo di sistemi basati su modelli AI. Questo è ancora più evidente se si combinano modelli più distanti dagli LLM come i generatori di immagini o quelli che analizzano le immagini.
La creazione di assistenti GPTs con OpenAI è, in questo contesto, una forma di lock-in più decisa rispetto all’uso dei modelli mediante l’API. Gli assistenti così creati saranno sostanzialmente non portabili su altre piattaforme o modelli. Non si sa infatti come il sistema analizzi e usi la conoscenza fornita sotto forma di file, e di conseguenza è difficile immaginare che si possa facilmente ottenere lo stesso comportamento su altre piattaforme.
È quindi importante fare un’analisi del rischio se si decide di utilizzare sistemi come GPTs per la realizzazione di assistenti personalizzati: la conoscenza viene messa a disposizione di OpenAI, così come il testo delle interazioni, e in caso di cambio di rotta della startup l’intero investimento potrebbe essere vanificato. Allo stesso tempo la velocità di sviluppo consente di abbattere i costi di sviluppo offrendo impieghi magari su aree non mission critical una volta che sia chiaro come un utente non OpenAI possa beneficiare del servizio (ad oggi si può usare l’API ed aprire quindi un assistente all’interno dei propri sistemi).
Conclusioni
Gli assistenti GPTs sono molto interessanti, e come ho già avuto modo di dire, mi ricordano molto Visual Basic negli anni ’90: rendendo accessibile le tecnologie AI generativa ad una platea più ampia consentirà di assistere ad applicazioni decisamente più fantasiose rispetto a quelle immaginate dai tecnici. Sarà molto interessante tener d’occhio il Market place di OpenAI per trovare nuove idee sull’impiego dell’AI generativa, spunti che poi programmatori potranno utilizzare per ingegnerizzare sistemi più complessi.
Come sempre non resta che attendere ed osservare l’evoluzione del panorama, nella consapevolezza che un altro venerdì pomeriggio potrebbe mettere in discussione tutto, e capire se il mercato è pronto alla creazione di un ecosistema di applicazioni basate su AI e se emergeranno altri attori in questo giovane mercato.