intelligenza artificiale

ChatGpt, perché la nuova funzione Plug-in cambia tutto



Indirizzo copiato

Ancora una volta OpenAI spariglia il gioco e annuncia in sordina una funzione che generalizza la funzione dei plug-in recentemente rilasciata ai sottoscrittori del livello Plus di ChatGPT all’uso delle API. Vedremo se questa nuova funzione semplificherà l’introduzione dell’AI in sistemi reali e non solo in chat più o meno intelligenti

Pubblicato il 23 giu 2023

Antonio Cisternino

Università di Pisa



Chatbot per customer service: come integrarlo nel servizio

Una rivoluzione silenziosa che può cambiare la nostra vita con l’intelligenza artificiale. Questi possono essere i plug-in di ChatGpt, un po’ come sono state le app dell’app store dell’iPhone per il mondo smartphone.

Mentre continua il dibattito sull’intelligenza dell’intelligenza artificiale, e a quale intelligenza vada il primato tra ChatGPT, Google Bard e molti altri Large Language Model si perde un po’ di vista l’impatto che queste tecnologie possono avere nel mondo reale a prescindere dall’interfaccia di chat a cui cerchiamo sempre più spesso di delegare (o per meglio dire scaricare) i nostri compiti più tediosi.

In fondo un Large Language Model altro non è che un grande modello linguistico il cui primo scopo è quello di comprendere in una qualche misura il linguaggio, possibilmente più linguaggi, ed abbiamo imparato ad apprezzare che conosca non solo linguaggi “umani” ma anche i linguaggi di programmazione e scripting.

Troppo poco spazio è dedicato alla comprensione di come queste tecnologie possano integrarsi in altre tecnologie, ma è difficile per ora immaginare una AI che impari tutta la conoscenza del mondo e solo quella verificata, è quindi indispensabile trovare meccanismi per fornire conoscenze, possibilmente esatte per mitigare la natura stocastica del processo generativo del testo, a queste intelligenze artificiali.

OpenAI spariglia le carte con i plugin

Ancora una volta OpenAI spariglia il gioco e sul suo blog annuncia in sordina, oltre ad un rilevante abbassamento dei prezzi, una funzione che generalizza la funzione dei plug-in recentemente rilasciata ai sottoscrittori del livello Plus di ChatGPT all’uso delle API. È quindi ora possibile istruire mediante le API l’intelligenza artificiale a chiamare API della propria organizzazione che svolgono elaborazione dati e compiono azioni su richiesta dell’AI. Ho già avuto modo di commentare il mio stupore nel realizzare come si scrivono plugins per ChatGPT, ma questo ulteriore passo sconvolge ancora una volta il panorama e ridefinisce le regole del gioco, anche su temi caldi come, ad esempio, il trattamento dei dati personali. Cerchiamo quindi di approfondire brevemente questo nuovo meccanismo per poi capirne gli impatti e le potenzialità che sono sicuramente degne di nota da un punto di vista filosofico e di architettura dei sistemi.

Invocare funzioni esterne attraverso una API Web

Tra le principali novità del nuovo aggiornamento di OpenAI troviamo la possibilità di istruire sia GPT-3.5 che GPT-4 (entrambi rilasciati in modelli aggiornati) ad invocare funzioni esterne attraverso una API Web. In questo modo diviene possibile effettuare elaborazioni nei propri sistemi, o accedere a servizi esterni, e restituire gli elementi che poi GPT utilizzerà per sintetizzare una risposta in linguaggio naturale.

Per apprezzare questa novità è necessaria una breve digressione per comprendere come normalmente le architetture software vengono estese utilizzando variazioni dell’Adapter pattern che consente, potendo affidarsi ad un’interfaccia (ovverosia un insieme di chiamate con nomi e argomenti il cui significato è condiviso) per invocare delle funzioni che possono essere quindi sostituite cambiando il comportamento del software senza doverlo necessariamente modificare. Basti pensare ai famigerati driver delle stampanti che consentono ad un’applicazione di stampare senza dover conoscere e supportare tutte le stampanti esistenti.

Anche a livello applicativo i driver sono importanti, basti pensare ai driver ODBC che per oltre vent’anni hanno consentito ad applicazioni di accedere DBMS differenti senza dover essere riscritte.

Un componente COM su Windows, ad esempio, deve implementare l’interfaccia IUnknown i cui metodi sono evidenziati in figura e consentono di interrogarlo per capire quali interfacce supporti e come gestire la memoria mediante le funzioni AddRef e Release.

COM from scratch - PART ONE - CodeProject

Nell’arco di oltre trent’anni il software si è evoluto ed oggi le API si invocano mediante chiamate Web, e si passano valori espressi in notazione JSON o XML, ma la sostanza resta la stessa: per poter invocare una API se ne deve conoscere la definizione e tutti i dettagli dell’invocazione.

Non può non essere quindi sorprendente la seguente chiamata a GPT:

Immagine che contiene testo, schermata, schermo, softwareDescrizione generata automaticamente In questo caso informiamo che GPT debba considerare se invocare una o più funzioni descritte nella sezione functions e che contengono il nome (get_current_weather) della funzione, una descrizione in linguaggio naturale della sua funzionalità, ed uno schema dei parametri che si attende per essere invocata (in questo caso la location e l’unità di misura desiderata.

Non vi sono specifiche da seguire, sintassi da implementare, o specifici nomi da prevedere affinché il software possa invocare la funzione, in questo caso l’AI impara la funzione dalla sua descrizione in linguaggio naturale e “capisce” quali argomenti fornire per la sua invocazione. Sebbene sappiamo che GPT scriva interi programmi (anche se non sempre interamente corretti), stupisce comunque che capisca autonomamente gli argomenti e li invochi correttamente. Sicuramente i plugins di ChatGPT hanno dimostrato che l’approccio funzioni.

Nell’esempio vediamo come la descrizione delle funzioni disponibili sia parte del messaggio che contiene le informazioni della chat, e l’utente (lo si evince dal ruolo) è interessato a sapere com’è il tempo a Boston e quindi GPT ci informa che è necessario invocare la nostra funzione con i parametri da lei stimati:

Immagine che contiene testo, schermata, schermo, softwareDescrizione generata automaticamente

È il nostro codice ad invocare quindi la funzione utilizzando gli argomenti suggeriti dalla AI ed allegare alla successiva richiesta il risultato della sua esecuzione:

Immagine che contiene testo, schermata, schermo, softwareDescrizione generata automaticamente

Possiamo osservare come il terzo messaggio ha come role function e come content il valore restituito dal servizio meteo:

{“role”: “function”, “name”: “get_current_weather”, “content”: “{\”temperature\”: “22”, \”unit\”: \”celsius\”, \”description\”: \”Sunny\”}”}

Ecco quindi che l’AI ci restituirà un contenuto testuale che fa uso dei dati restituiti dal servizio:

Immagine che contiene testo, schermata, schermo, CarattereDescrizione generata automaticamente

Gli aspetti salienti di questa interazione

Gli aspetti salienti di questa interazione sono:

  • La decisione se avvalersi della funzione esterna è discrezionale di GPT e quindi non è deterministica (anche se molto probabile quando necessaria)
  • La funzione è opaca per l’AI: i dati elaborati non sono disponibile per l’intelligenza artificiale, né devono essere trasmessi, se quindi il risultato contiene un’aggregazione di dati il singolo dato resterà sconosciuto all’AI (una buona notizia in termini di privacy)
  • Il risultato potrebbe essere soggetto ad ulteriore “valutazione” da parte dell’AI nella produzione del testo finale, ad esempio la funzione potrebbe restituire una tabella di valori e l’AI potrebbe individuare i valori migliori nella tabella.

Le funzioni invocate possono compiere qualsiasi azione, possono ad esempio inviare email o azionare dispositivi, le linee guida dello sviluppo mettono quindi in guardia il programmatore raccomandando l’adozione di conferme esplicite prima di eseguire azioni che possano portare a conseguenze indesiderate.

Le altre novità OpenAi

Insieme alle funzioni OpenAI ha annunciato altre novità sicuramente interessanti: alcune riguardano l’abbassamento dei costi di alcuni modelli (e di conseguenza una maggiore applicabilità in scenari che prevedono grandi volumi di token da analizzare e generare). È sicuramente benvenuta l’estensione a 16 mila token per il modello GPT-3.5 dai quattromila attuali: grazie a questo incremento è possibile fornire più informazioni nel prompt e quindi ottenere risposte che usino più informazioni di contesto da parte del modello.

Un nuovo modo di aggregare il software

La capacità introdotta da OpenAI per l’invocazione di funzioni esterne è sicuramente degna di nota e destinata a ridefinire, almeno in parte, alcuni concetti di aggregazione di software. Nei sistemi basati su driver è il software che usa il driver a decidere, in modo deterministico, le funzioni da chiamare fornendo garanzie sulle sequenze di invocazione. Ora il software in autonomia decide se è opportuno o meno chiamare una funzione, e se opportuno generare gli argomenti in base alla propria conoscenza e al contesto e analizzare i risultati ottenuti.

Si tratta di una strada alternativa a quella di fornire solo conoscenza testuale alle AI e fornire contenuti in maniera esatta e deterministica (come ad esempio l’interrogazione ad un database).

In questo nuovo scenario il modello LLM non assolve più l’intera elaborazione ma si limita ad interagire in linguaggio naturale e appoggiarsi a funzioni messe a disposizione per ottenere le informazioni necessarie a produrre una risposta. Si tratta sicuramente di un interessante mix di sistemi non deterministici e sistemi più tradizionali, mix che aprirà nuove strade magari consentendoci di superare il dibattito sulla conoscenza appresa da questi modelli e sul suo grado di completezza.

Conclusioni

Sicuramente si tratta di una strada interessante da percorrere per chi vuole introdurre queste tecnologie in produzione riducendo anche l’esposizione dei propri dati all’esterno (anche se da marzo la politica di OpenAI prevede che i dati passati attraverso le API non possano essere usati per l’addestramento del modello).

Vedremo se questa nuova funzione semplificherà l’introduzione dell’AI in sistemi reali e non semplicemente in chat più o meno intelligenti.

EU Stories - La coesione innova l'Italia

Tutti
Analisi
Video
Iniziative
Social
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia
Programmazione europ
Fondi Europei: la spinta dietro ai Tecnopoli dell’Emilia-Romagna. L’esempio del Tecnopolo di Modena
Interventi
Riccardo Monaco e le politiche di coesione per il Sud
Iniziative
Implementare correttamente i costi standard, l'esperienza AdG
Finanziamenti
Decarbonizzazione, 4,8 miliardi di euro per progetti cleantech
Formazione
Le politiche di Coesione UE, un corso gratuito online per professionisti e giornalisti
Interviste
L’ecosistema della ricerca e dell’innovazione dell’Emilia-Romagna
Interviste
La ricerca e l'innovazione in Campania: l'ecosistema digitale
Iniziative
Settimana europea delle regioni e città: un passo avanti verso la coesione
Iniziative
Al via il progetto COINS
Eventi
Un nuovo sguardo sulla politica di coesione dell'UE
Iniziative
EuroPCom 2024: innovazione e strategia nella comunicazione pubblica europea
Iniziative
Parte la campagna di comunicazione COINS
Interviste
Marco De Giorgi (PCM): “Come comunicare le politiche di coesione”
Analisi
La politica di coesione europea: motore della transizione digitale in Italia
Politiche UE
Il dibattito sul futuro della Politica di Coesione
Mobilità Sostenibile
L’impatto dei fondi di coesione sul territorio: un’esperienza di monitoraggio civico
Iniziative
Digital transformation, l’Emilia-Romagna rilancia sulle comunità tematiche
Politiche ue
Fondi Coesione 2021-27: la “capacitazione amministrativa” aiuta a spenderli bene
Finanziamenti
Da BEI e Banca Sella 200 milioni di euro per sostenere l’innovazione di PMI e Mid-cap italiane
Analisi
Politiche di coesione Ue, il bilancio: cosa ci dice la relazione 2024
Politiche UE
Innovazione locale con i fondi di coesione: progetti di successo in Italia

Articoli correlati