Le API di ChatGPT sono già disponibili commercialmente, sia attraverso il sito di OpenAI sia nel cloud Azure. È possibile usare modelli con capacità differenti, e il sistema di pagamento dipende dalla complessità (e quindi dal costo computazionale) del modello selezionato.
Come si vede in figura il modello più costoso è Davinci, quello alla base di GPT3, che costa 2 centesimi di dollaro ogni mille token.
L’unità di misura “token” è interessante poiché rivela, almeno in parte, il funzionamento interno del sistema: il testo viene separato in blocchi di 4-5 caratteri (circa ¾ di una parola) e conteggiato ai fini della stima del costo. Una risposta ad una domanda può facilmente aggirarsi (domanda inclusa) intorno ai 1.000 token, da cui la fatturazione per unità di misura.
Esempi e scenari d’uso
Una volta loggati sul sito è possibile accedere alla sezione Examples dove è possibile vedere un numero sorprendente di possibili usi dell’API e che sono solo in parte riportati nella seguente figura. Come è lecito attendersi le applicazioni riguardano la trasformazione del testo, ma sono presenti numerose applicazioni relative ai linguaggi di programmazione. È anche possibile richiedere la classificazione del testo, o l’analisi di testi specifici come i Tweet per effettuare la sentiment analysis, o semplicemente di rispondere a domande data una base di conoscenza da utilizzare. Sono tutte applicazioni per cui è facile immaginare scenari d’uso nei sistemi di un’organizzazione. Si potrebbero, ad esempio, prendere il contenuto dei campi note nella sottomissione di form ed effettuarne un’analisi alla ricerca di informazioni specifiche senza dover ricorrere all’uso di risorse umane per svolgere il compito.
Nella piattaforma è disponibile un playground dove è possibile testare queste applicazioni ed ottenere degli esempi di codice per includere nelle proprie applicazioni le funzioni di AI in modo semplice ed efficace.
Prima di dare un breve sguardo alle capacità dell’API di OpenAI vale la pena di confrontare due esempi così come vengono visualizzati nel playground per farne un breve confronto il cui risultato ci sorprenderà non poco. Proviamo a confrontare l’esempio del Q&A con quello della classificazione avanzata di Tweet:
Sebbene i due esempi differiscano significativamente, i parametri (alla destra) non indicano informazioni specifiche, e in effetti il comportamento atteso è definito nel testo stesso attraverso quello che viene chiamato il prompt. In sostanza si impartisce un ordine su come comportarsi all’intelligenza artificiale che segue le indicazioni date nelle risposte successive.
I prompt di ChatGPT
Il comportamento dell’AI è quindi definito in linguaggio naturale e non mediante parametri specifici in un programma. Questa capacità è disponibile anche nell’applicazione Web e sono già cresciuti molto i siti Web dove si collezionano dei prompt che fanno assumere a ChatGPT dei comportamenti sorprendenti. Uno di questi è il sito Awesome ChatGPT Prompts dove si trovano decine di prompt alcuni generati da ChatGPT stesso in un’interessante applicazione in cui si chiede all’AI di generare un prompt per sé stessa con certe caratteristiche.
Per esemplificare un prompt basta chiedere a ChatGPT di comportarsi come una particolare figura professionale e di rispondere senza includere alcuna spiegazione:
È sorprendente assistere ad un programma che determina il proprio funzionamento a partire da indicazioni fornite in linguaggio naturale, ed è in grado di mantenere il comportamento richiesto anche nelle successive risposte, anche se stiamo per scoprire che il contesto di una conversazione è ottenuto semplicemente includendo nel prompt tutte le battute precedenti nella chat.
Se si è curiosi è possibile provare come prompt: “Comportati come una maestra delle scuole elementari che deve spiegare alla classe come nascono i bambini”.
Domande e risposte
Un esempio decisamente illuminante di applicazione dell’API di OpenAI è quella delle domande frequenti. Molti siti Web hanno sezioni dedicate a domande frequenti per supportare gli utenti di un servizio. Se osserviamo il prompt proposto nel playground il sistema istruisce GPT che risponderà solo se è certo della verità altrimenti si limiterà a rispondere “Unknown”. Nell’API i marcatori “Q:” e “A:” sono considerati delimitatori, e come si vede se si pone una domanda come “Quanti piedi ha il presidente?” si ottiene la risposta “Unknown”. Se invece si chiede un presidente repubblicano si ottiene la risposta dedotta incrociando la seconda e la terza domanda fornite come input al sistema.
È altrettanto sorprendente osservare come il sistema sia capace di utilizzare una base di conoscenza in inglese e accettare domande e rispondere in altre lingue, nel nostro caso in italiano. Si può provare con altre lingue (con l’ausilio di un sistema di traduzione) e verificare che le domande e le risposte siano corrette.
Si tratta di un’applicazione molto interessante poiché rende possibile esprimere una base di conoscenza in italiano e porre domande in qualsiasi lingua come si può osservare nell’esempio seguente:
È quindi pensabile sviluppare in una pagina Web un’interfaccia per interagire con un chatbot che non fa altro che preparare il prompt per ChatGPT ed invocare la API dal server.
La API di OpenAPI
Invocare i servizi di OpenAI richiede una sottoscrizione (per sperimentare vengono messi a disposizione 18$ a titolo gratuito). Come abbiamo osservato molto del comportamento dipende dal prompt non sorprenderà quindi il fatto che esistono due chiamate per interagire col sistema:
- Completions
- Edit
La prima chiamata richiede di completare un prompt e si ottiene come risposta il testo che lo completa. La seconda chiamata invece consente di modificare il prompt, ad esempio quando si richiedono correzioni ad un testo passato come input al sistema.
In tutte le chiamate è possibile specificare quale modello usare per funzionare, si può indicare Davinci, il più elaborato ma anche più costoso, ma per alcuni compiti modelli più semplici possono essere sufficienti per lo scopo ad un costo inferiore.
La API offre anche la possibilità di addestrare un modello con conoscenza dell’organizzazione, in questo caso il prompt darà accesso alla conoscenza ottenuta non solo dal modello di base ma anche dalla conoscenza acquisita relativa ad informazioni specifiche. È anche possibile generare immagini usando il popolare modello DALL-E.
È sorprendente come l’API sia molto concisa e con poche chiamate disponibili, normalmente a comportamenti complessi di un servizio sono associate API piene di chiamate possibili, ma in questo caso l’API non fa altro che sottomettere richieste al modello.
Integrare l’AI nei propri servizi
Grazie alla flessibilità e alla semplicità dell’API si possono introdurre nei propri servizi funzioni cognitive di vario genere. Oltre a servizi di question answering in un sito Web le funzioni di traduzione e di manipolazione del testo possono consentire di realizzare servizi avanzati. Si possono verificare gli input in un form di un sito Web ponendo domande sui contenuti immessi per cercare di verificarne l’appropriatezza e la presenza di informazioni utili.
Si possono poi immaginare facili servizi per ottenere sommari di parti del sito, o analizzare i comportamenti degli utenti una volta descritti come testo.
In molti scenari possibili l’input all’AI potrebbe essere generato dall’applicazione server e il risultato utilizzato per svolgere una qualche funzione senza che l’utente sia coinvolto in questa interazione. A titolo di esempio ecco una semplice (e condivisibile) analisi:
E la privacy?
Come tutte le API nel cloud la privacy è un aspetto importante, sicuramente la disponibilità del servizio anche su Azure può beneficiare delle certificazioni esistenti, ma la natura orientata all’analisi dei contenuti consente la realizzazione di servizi che non coinvolgono dati personali, inoltre l’API REST fa uso di un token che va protetto, quindi l’API riceve richieste dai server di un’organizzazione e non dai client che accedono al servizio. Gli unici dati personali sono dunque quelli eventualmente presenti nei prompt, aspetto da considerare se si vuole realizzare un sistema che automatizzi l’analisi documentale, ma in molte applicazioni, come ad esempio i sistemi di Q&A o l’analisi di elementi testuali presenti in Form è possibile utilizzare il servizio senza che vi sia alcuna trasmissione di dati personali.
Il problema della privacy in questi sistemi è comunque di grande importanza per l’uso generale e sicuramente sarà un aspetto sviluppato nel prossimo futuro unitamente ai vincoli sulle intelligenze artificiali che si stanno sviluppando, come testimoniato dal documento appena rilasciato dal NIST sulla gestione del rischio relativo a queste tecnologie.
L’AI è disponibile ora
La disponibilità delle API di OpenAI consente con relativa semplicità di introdurre nei propri sistemi le funzioni di ChatGPT. L’interazione in più lingue, la comprensione di un testo, e la capacità di estrarre informazioni rendono possibile la realizzazione di servizi avanzati che fino ad oggi richiedevano l’uso di ingenti risorse per effettuare in autonomia l’addestramento di reti neurali dedicate. Una AI general purpose è sicuramente un concetto interessante anche se resta da vedere come isolare la conoscenza generale che la caratterizza dalle informazioni utili allo svolgimento di un compito specifico.
Sicuramente le integrazioni che Microsoft ha annunciato in Office potrebbero ridefinire il modo in cui usiamo le applicazioni di Office Automation, ma anche per piccole realtà è ora accessibile la stessa funzionalità i cui impieghi porteranno a ulteriori evoluzioni nei sistemi.
Sicuramente l’imprinting ottimista della AI e l’attenzione ad evitare comportamenti discutibili rende più facile la sua adozione all’interno di un processo produttivo, anche se si potrebbero verificare attacchi in cui si cercano di richiedere comportamenti specifici nel tentativo di forzare un sistema.
Personalmente mi sento come quando vidi per la prima volta un motore di ricerca alla fine degli anni ’90: è evidente che assistiamo all’introduzione di una tecnologia destinata a rivoluzionare ancora una volta il mondo, ed accessibile a tutti, non solo per fare due chiacchiere alla ricerca dei suoi limiti, ma per realizzare servizi più smart capaci di comprendere meglio i bisogni degli utenti.
In questi giorni non facciamo altro che leggere articoli su ChatGPT, l’intelligenza artificiale che ha rapidamente rubato la scena alle “colleghe” che generano immagini. L’impiego più o meno lecito fornisce molti spunti di riflessione e giustamente ci si preoccupa degli impieghi poco leciti dei testi generati, siano essi a fini scolastici, scientifici o di altra natura.
C’è poi una sempre più folta popolazione che valuta la correttezza delle risposte senza rendersi conto che l’atteggiamento sembra quello di scolari che canzonano altri scolari sottolineando una conoscenza superiore dopo averli colti in fallo, riconoscendo all’intelligenza artificiale uno status che per certi versi va oltre quello di una macchina che esegue un programma.
Considerato che il costo giornaliero per erogare le risposte di ChatGPT è stimato essere di circa 100.000$ c’è da chiedersi quale possa essere il modello di business di OpenAI e quali impieghi di questa tecnologia possano essere monetizzati dai suoi creatori per sostenerla e svilupparla.
Sicuramente il contributo di molti finanziatori, incluso Microsoft, contribuisce a pagare le bollette, ma se l’intelligenza artificiale diviene solo un fenomeno da baraccone sembra difficile trovare delle applicazioni nella vita reale.