Indice
- Che cos’è ChatGPT
- I modelli di lingua artificiale e la programmazione del software
- Che cosa ci possiamo aspettare in futuro?
Dal suo lancio lo scorso novembre, il chatbot AI di OpenAI sembra essere sulla bocca di tutti e sembra che con ChatGPT tutto sia possibile: dalla creazione di algoritmi a cv convincenti. Che cosa sta succedendo esattamente?
L'integrazione tra intelligenza artificiale e vita quotidiana è in realtà ormai naturalizzata da diversi anni, basti pensare ai sistemi di assistenza vocali alla guida in auto o in casa come Alexa. Eppure ChatGPT sembra andare oltre proponendo la scrittura di interi testi, descrizioni di prodotti, fino ad addentrarsi nel campo della programmazione, ma è davvero così? Oltre a semplificare il lavoro di programmazione, i modelli di AI linguistici potranno addirittura sostituire gli sviluppatori? Abbiamo dato un'occhiata a tutto l'hype che circonda ChatGPT e risposto a queste domande.
Che cos’è ChatGPT
Il software ChatGPT (OpenAI's Generative Pre-trained Transformer) è stato presentato a fine novembre 2022 dall'azienda OpenAI, un'organizzazione non a scopo di lucro che vede tra i suoi finanziatori Elon Musk e Microsoft. Microsoft in particolare, è stato uno dei primi investitori di OpenAI, contribuendo con un'iniezione di denaro di 1 miliardo di dollari nel 2019. In seguito, si dice che la società abbia iniettato altri due miliardi di dollari circa. Nella prima metà di gennaio Microsoft ha annunciato che presto renderà disponibile ChatGPT ai clienti del proprio servizio cloud. Che cos'è dunque ChatGPT?
ChatGPT è un modello linguistico basato sull'algoritmo AI GPT-3.5 che è in grado di effettuare previsioni linguistiche basate su un'enorme quantità di testi con cui l'intelligenza artificiale del chatbot è stata addestrata fino al 2021
L'interfaccia di ChatGPT assomiglia a quella di un motore di ricerca, ma la particolarità del software sta nel fatto che gli utenti possono "conversare" con il chatbot. Quindi, a differenza dei motori di ricerca, il modello non fornisce solo una risposta ad una particolare domanda, ma fornisce "fatti", "definizioni" e funge da assistente alla scrittura.
ChatGPT è stato infatti ottimizzato appositamente per i dialoghi ed è un ulteriore sviluppo del GPT3, sul quale è stato addestrato anche DALL-E. DALL-E è un algoritmo di intelligenza artificiale che trasforma gli input di testo in output di pixel, cioè converte le descrizioni letterali in immagini fotorealistiche. I dati di questo predecessore confluiscono in ChatGPT e danno all'utente la sensazione di condurre un vero dialogo. Probabilmente questa impressione di poter sostenere una conversazione suggerisce capacità umane e contribuisce all'hype a cui stiamo assistendo in questo periodo.
OpenAI ha raccolto un'enorme quantità di dati, che sono stati utilizzati per addestrare ChatGPT. Tuttavia, si tratta di un corpus di addestramento "limitato" perché come abbiamo detto arriva fino al 2021.In questo esempio abbiamo chiesto a ChatGPT di un evento recente, la cattura di Messina Denaro. Ecco la risposta che abbiamo ricevuto:
I modelli di lingua artificiale e la programmazione del software
Il desiderio utopistico di programmi che si scrivano da soli è vecchio quanto l'informatica stessa. Oggi, l'intelligenza artificiale può fornire un sostegno nella programmazione. Di norma, quando si è sviluppatori non si deve più risolvere un problema da zero e si ricorre quasi sempre ai blocchi di costruzione. Se ti blocchi, probabilmente guardeai Stackoverflow e cercherai pezzi di codice adatti e correzioni di bug. Sarebbe comodo se un algoritmo potesse fare esattamente questo, no?
Un modello di lingua artificiale come ChatGPT potrebbe trovare impiego in diverse aree della programmazione, ad esempio nella scrittura e ottimizzazione del codice per gli algoritmi più comunemente utilizzati, nella fase di testing e debugging, così come anche nella rilevazione di problemi di sicurezza o nell'analisi e traduzione di certe sezioni di codice in un altro linguaggio.
Tuttavia, nonostante sembri tutto molto impressionante, queste capacità di certo non potranno sostituire gli sviluppatori, perché modelli linguistici come ChatGPT non sono in grado di implementare computazionalmente la rilevazione di interrelazioni complesse. L'IA linguistica non conosce la causalità o le categorie di spazio e tempo.
Anche se la misura entro cui l'IA può generare testi creativi è controversa, gli esseri umani sono ancora importanti per la loro unicità e questo vale naturalmente anche per la programmazione di software. L'IA può sì allegerire il carico di certi lavori dello sviluppatore, come la documentazione o i test, ma la visione d'insieme e la direzione da seguire è sempre nelle mani di uno sviluppatore... umano.
Un problema fondamentale dei modelli di lingua artificiale come ChatGPT è che utilizzano modelli statici di parole riconosciuti dei dati di addestramento. Questo vuol dire che nelle loro previsioni, le IA di questo tipo possono generare correlazioni che potrebbero anche non esistere. Inoltre, l'IA non possiede una comprensione del mondo, ma si limita a produrre i suoi "fatti" in un testo credibile ed è poi l'utente che deve verificare queste informazioni. Infine, un altro grande problema è rappresentato dai limiti del corpus su cui modelli come ChatGPT sono addestrati. ChatGPT non sa nulla dopo il 2021, ma è chiaro che nell'attuale fase beta imparerà molto. Ciononostante, se è vero che aumenta la qualità dell'output ma diminuisce la qualità dei dati siamo sempre davanti al buon vecchio principio GIGO:garbage in, garbage out.
Che cosa ci possiamo aspettare in futuro?
Non è ancora chiaro l'impatto che le IA linguistiche avranno sul settore. Ma è già chiaro l'intelligenza artificiale potrà sostenere il lavoro degli sviluppatori facendo risparmiare molto tempo e cambiando quindi in meglio il flusso di lavoro dei team di sviluppo. Ci sono però ancora diverse questioni legali primarie da risolvere. Ad esempio che ruolo ha il diritto d'autore o la protezione dei dati? Non è inoltre chiaro in quale direzione si svilupperà il modello di business di OpenAI. Il software rimarrà gratuito con la prossima versione linguistica GPT4, che verrà rilasciata nella primavera del 2023 e conterrà circa 500 volte più parametri?
Quindi potete stare tranquilli, perché allo stato attuale soluzioni come ChatGPT non vi lasceranno senza lavoro come sviluppatori. Innanzitutto, l'IA commette ancora troppi errori. Va ricordato inoltre che la competenza principale di un buon sviluppatore non si limita alla scrittura di codice pulito. Il software deve essere ben strutturato, estensibile, manutenibile e scalabile. È necessario saper pensare fuori dagli schemi e sviluppare approcci creativi per risolvere i problemi IT. E questa è solo una parte del lavoro. C'è poi tutta la parte di comunicazione con il cliente, di discussione delle proposte, dell'analisi dei bisogni del cliente e della fattibilità di implementazione effettiva. Questo è un aspetto che l'IA può al massimo supportare analizzando i dati più velocemente o simulando modelli, ad esempio. Ma il miglior software non funziona senza un essere umano che lo utilizzi.
E se non siete ancora del tutto convinti lo abbiamo chiesto al diretto interessato... ecco la risposta :)
Che cosa ne pensate di ChatGPT? Avete provato a utilizzarlo per scrivere del codice? Secondo voi potrà essere un valido supporto in futuro nel settore IT? Fatecelo sapere lasciandoci un commento.