Impariamo a dialogare con l’Intelligenza Artificiale Chat-GPT

Chat-GPT dell’azienda Open-AI è la più straordinaria applicazione di Intelligenza Artificiale che sia mai stata messa a disposizione di un vasto pubblico. Se provate a dialogare con lei vi accorgerete che siamo quasi arrivati a far superare da una macchina il “Test di Turing“, il padre dell’Intelligenza Artificiale.

Turing, uno dei più grandi matematici del secolo scorso, fu il responsabile del gruppo di lavoro del Regno Unito che nel corso della seconda guerra mondiale decifrava i messaggi in codice usati dai tedeschi, usando un primo rudimentale elaboratore elettromeccanico nei laboratori di Bletchley Park, vicino Londra. Il lavoro di quel gruppo consentiva di prevedere in anticipo le mosse dei tedeschi, decifrando i messaggi che questi si scambiavano utilizzando la famosa macchina ENIGMA. Si stima che quel gruppo di lavoro abbia consentito di abbraviare la guerra di due anni, risparmiando milioni di morti.

Tornando a noi, il famoso Test di Turing fu formulato per testare il comportamento di una macchina, e per capire se si comportasse o meno in modo “intelligente“. Naturalmente a quel tempo questa prospettiva sembrava molto futuristica, ma oggi non è più così. Il Test suggerito da Turing consiste nel porre le stesse domande a due entità, un essere umano e una macchina, e nel momento in cui le due entità fossero indistinguibili da chi poneva la domanda, si sarebbe potuto affermare che quella macchina aveva comportamenti “intelligenti”.

Chat-GPT, l’acronimo di “Chat Generative Pretrained Transformer”, ci mette alla prova, e si avvicina moltissimo a questo risultato. E’ una applicazione di Intelligenza Artificiale, addestrata su una mole enorme di dati, e sottoposta a test preliminari supervisionati dai tecnici che hanno seguito il suo addestramento, per correggere gli errori di impostazione nelle risposte che man mano venivano fatti dall’AI.

Le applicazioni sono infinite, dalla stesura di testi, alle ricerche approfondite su qualsiasi tema, alla scrittura di codice per i computer, alle traduzioni, allo svolgimento di lavori letterari, e così via.

Il risultato è straordinario, e potete testarlo voi stessi, come descritto di seguito.

Andate sul sito di Open-AI: https://openai.com/blog/chatgpt/ e cliccate “Try CHATGPT” si aprirà un pannello in cui vi chiede di registrarvi, e successivamente si aprirà il pannello della Chat, con l’ultima riga in basso digitabile per le domande.

Quello che può fare Chat-GPT vi lascerà a bocca aperta: risponde a domande di ogni tipo, tranne quelle ritenute non consone, tipo come ci si suicida, come costruire una bomba o domande di tipo razzista su specifiche etnie, e così via. Questo è il limite di questa AI, ma è anche una garanzia che certe pratiche non devono essere “aiutate” dall’AI. Potremmo discutere all’infinito su chi è che mette questi paletti, e di che tipo siano gli eventuali pregiudizi di chi ha supervisionato l’addestramento della AI, ma non arriveremmo a nessuna conclusione, è un fatto, una “valvola di sicurezza etica” se vogliamo.

Del resto, a chiunque ponessimo delle domande, dall’uomo della strada al più famoso esperto di una certa materia, avremmo comunque una risposta formulata in base alle sue convinzioni e allla sua esperienza. Il tema importante da affrontare è quello, appunto, di sviluppare delle applicazioni di AI che contengano dei limiti etici che dovremmo definire nel miglior modo possibile, e col più ampio consenso.

Non a caso, nell’ambito dell’Unione Europea, è stato varato una bozza preliminare di “Codice Etico” dopo ampia e approfondita discussione nell’ambito di una equipe di 52 esperti (due italiani tra questi), che ha definito dei paletti e dei principi generali per l’utilizzo delle AI:

(https://www.europarl.europa.eu/doceo/document/TA-9-2020-0275_IT.html)

(https://digital-strategy.ec.europa.eu/en/policies/expert-group-ai)

(https://www.hdblog.it/2019/04/09/intelligenza-artificiale-ia-codice-etico-ue/)

Sono temi che non appartengono più al futuro ormai, ma al presente. Tocca a noi aggiornarci e seguirne gli sviluppi, senza preconcetti, ma in modo consapevole. Tenendo ben presente che o seguiamo noi il progresso, o ci troveremo emarginati nel nuovo mondo che sta nascendo. Un saluto.

Intelligenza artificiale in SecondLife. Novità dal Pathfinding presto in SecondLife

L’intelligenza artificiale così come è definita dalla nostra Enciclopedia Universale http://it.wikipedia.org/wiki/Intelligenza_artificiale è esprimibile in poche parole come

Con il termine intelligenza artificiale (o IA, dalle iniziali delle due parole, in italiano
[1]
) si intende generalmente l’abilità di un computer di svolgere funzioni e ragionamenti tipici della menteumana. L’intelligenza artificiale è una disciplina dibattuta tra scienziati e filosofi, la quale manifesta aspetti sia teorici che pratici.
Nel suo aspetto puramente informatico, essa comprende la teoria e le tecniche per lo sviluppo di algoritmi che consentano alle macchine (tipicamente ai calcolatori) di mostrare un’abilità e/o attività intelligente, almeno in domini specifici.
Uno dei problemi principali dell’intelligenza artificiale è quello di dare una definizione formale delle funzioni sintetiche/astratte di ragionamento, meta-ragionamento e apprendimentodell’uomo, per poter poi costruire dei modelli computazionali che li concretizzano e realizzano (in modo “goal-oriented“)
[2]
.

Ora come ho imparato a mie spese quando ho dato l’esame di Intelligenza Artificiale all’Università di Informatica di Torino, una cosa è la teoria è una cosa sono poi le applicazioni pratiche. Da idealista qual ero ero convinto che si potesse, almeno “introduttoriamente” simulare alcune delle caratteristiche del pensiero umano, anche se solo per principi di Emulazione e di simulazione, magari con calcoli statistici e/o con “trucchi” e piccoli inganni (ad. es. cfr. il programma Elisa sviluppato nel ’66 e famoso negli anni 80 http://it.wikipedia.org/wiki/ELIZA),

Un esempio di output del programma ELIZA

ELIZA è un Chatterbot scritto nel 1966 da Joseph Weizenbaum che fa la parodia di un terapeuta Rogersiano, in buona parte rispondendo al paziente con domande ottenute dalla riformulazione delle affermazioni del paziente stesso. Cosi, per esempio, alla frase “Mi fa male la testa” il programma può ribattere con “Perché dici che ti fa male la testa?” oppure la risposta a “Mia madre mi odia” potrebbe essere “Chi altro nella tua famiglia ti odia?”

Una rappresentazione di una rete neurale

Per dirla in breve, a parte alcuni risultati molto interessanti ottenuti con la tecnica delle reti neurali http://it.wikipedia.org/wiki/Rete_neurale  (argomento peraltro tabù nella mia Università in quanto i risultati erano impredicibili e quindi a-scientifici), al momento l’intelligenza artificiale sembra un ramo abbastanza morto e deprimente.

Fanno una eccezione notevole i robot (dove appunto le reti neurali hanno brillanti applicazioni) e i video games, dove alcune tecniche particolari di Intelligenza Artificiale hanno una applicazione notevole nella programmazione dei cosiddetti NPC (Non Player Character). Se avete mai giocato a uno di questi giochi come WoW o altri dove ci sono i cattivi che vi inseguono o che scappano da voi, forse avete una idea di cosa si intende qua.

Ebbene Linden Lab dall’anno scorso ha investito moltissime energie in una tecnologia di Intelligenza artificiale nota come Pathfinding, il che consentirebbe di ottenere in SL dei “bot” (ma anche semplicemente degli oggetti, animali, mostri cose) in grado di avere un comportamento “intelligente”. Come detto il Pathfinding è solo un piccolo pezzo dell’Intelligenza artificiale, ma potrebbe essere un ottimo punto di partenza per Università ed altri enti per fare o dimostrare dei modelli di AI, ivi compresa la simulazione di ecosistemi di creature animali o virtuali. Mi viene ad esempio in mente a parte gli animali che si autoproducono (meebo e cavallini da compagnia), soprattutto applicazioni di simulazione di colonie batteriche o di ambienti naturali. Un esempio interessante è ad esempio offerto dal seguente video:

Simulazione di un ecosistema in Second Life. Con Piante, Erbivori e Carnivori. I Carnivori possono cacciare ed uccidere altre creature per mangiarne la carne. Gli erbivori possono mangiare frutti e le piante morte. Le Piante mangiano gli escrementi. I carnivori e gli erbivori producono escrementi quando digeriscono il cibo. Le piante producono frutti. Ognuno di loro produce dei cloni mutati fintanto che riescono a trovare abbastanza cibo. I loro “geni” consistono di colori, velocità, distanza di vista, angolo di vista, capacità di attacco, dimensioni dello stomaco, ecc. I tratti benefici richiedono energia: se una creatura può muoversi più velocemente ha bisogno di più cibo. Per cominciare il processo, alcune creature con geni casuali sono sganciati dal cielo finchè la popolazione si stabilizza attorno ad almeno 100 unità. Questo progetto è una mistura di “Breedable Pets in SL” e “Polyworld” e usa il nuoso sistema di SL denominator Pathfinding.

Entro pochi mesi questi sistemi saranno realtà nella grid ufficiale di SecondLife e consentiranno (così come 6 mesi fa la funzione di animazione llSetKeyFramedMotion), a SL di avere una marcia in più (e anche due) rispetto a OpenSim che si trova purtroppo ad arrancare e che implementerà queste funzioni se va bene dopo qualche anno.

Ma come potete fare se volete sperimentare da subito queste funzionalità?

Anzitutto, dovete scaricarvi un viewer sperimentale: http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers#Pathfinding e poi dovete collegarvi nella grid di Beta test chiamata “Aditi”. Ecco alcuni link importanti per capire meglio cosa sia il path finding: http://wiki.secondlife.com/wiki/Linden_Lab_Official:Alternate_Viewers#Pathfinding

Le funzionalità di scripting LSL pathfinding vi consentono di creare dei personaggi che riescono in modo dinamico ad evitare degli ostacoli e raggiungere degli obiettivi mentre realizzano alcuni comportamenti tipici che si possono incontrare o volere fare nei giochi o in altre esperienze virtuali, includendo:

  • Evitamento – cercare di stare lontano da uno specifico oggetto o avatar. Cfr llEvade.
  • Fuga – cercare di mantenere una determinata distanza da una locazione. Cfr. llFleeFrom.
  • Navigazione – Dirigersi verso una determinata locazione. Cfr. llNavigateTo.
  • Pattugliare fare la ronda – Muoversi attraverso un percorso definito da un insieme di  “punti di pattuglia.” Cfr. llPatrolPoints.
  • Catturare ricercare – Trovare uno specifico oggetto o avatar. Cfr. llPursue.
  • Vagabondare – Muoversi in modo casuale all’interno di una specifica distanza da un punto centrale . Cfr. llWanderWithin.
Il tutto ovviamente evitando ostacoli fissi e mobili e manifestando un comportamento “pseudo” intelligente.
Le possibilità ci sono tutte… Ora vediamo se il tutto si tradurrà in qualcosa di concreto e di appetitibile per Scuole, Università, community di Role Playing  o rimarrà soltanto limitato ai costruttori di “Breedable Pets”… Time Will Tell… (Chi vivrà vedrà)…

Per ulteriori dettagli:  Pathfinding LSL Functions.

 

 

Salahzar Stenvaag