ChatGPT: cos’è e cosa può generare il nuovo rivoluzionario strumento per la generazione di testi

ChatGPT è il prodotto di punta di OpenAI. Questo chatbot, completamente gratuito, ci permette di interagire con l'intelligenza artificiale per generare idee, articoli, codice e molto altro. Scopriamo le sue caratteristiche e alcuni possibili campi applicativi.

Share

Reading time: 8 minutes

Il 30 Novembre 2022 è stato un giorno molto importante per il mondo dell’intelligenza artificiale: ChatGPT è stato reso disponibile al pubblico. Ma cos’è ChatGPT? È un prototipo di chatbot sviluppato da OpenAI  adatto a chiunque voglia familiarizzare con l’Intelligenza Artificiale (senza la necessità di settare i parametri o dover mettere mano al codice) e basato sui modelli GTP3.5 o meglio conosciuti come InstructGPT. Questi modelli, a differenza di quelli precedenti, sono basati sul deep learning e ottimizzati mediante il rinforzo umano. Rendendo pubblico l’accesso a ChatGPT, OpenAI spera di:

rendere l’interazione con i sistemi di AI più naturale, e, grazie al feedback degli utenti, a migliorare e rendere più sicuri il sistema

In questo articolo spiegheremo come ChatGPT è stato costruito, i suoi vantaggi e limitazioni e alcuni esempi di suo utilizzo.

Come è costruito ChatGPT

Per creare ChatGPT, OpenAI ha addestrato un modello utilizzando la tecnica dell’Apprendimento tramite Rinforzo Umano (Reinforcement Learning from Human Feedback o RLHF), come già fatto nei modelli Instruct, ma con alcune differenze nella configurazione della collezione di dati. In particolare, il modello iniziale è stato addestrato utilizzando un fine-tuning supervisionato: un pool di supervisori umani (trainers) ha fornito conversazioni reali in cui interpretavano entrambe le parti, l’utente e l’assistente AI. Questi utenti hanno avuto anche l’accesso a suggerimenti scritti dal modello per aiutarli a scrivere le loro risposte. Infine, hanno mescolato questo nuovo dataset di dialoghi con il dataset di InstructGPT, opportunamente trasformato in un formato di dialogo.

https://openai.com/blog/chatgpt/

Per creare un modello di ricompensa per l’apprendimento con rinforzo, è stato chiesto ai trainers di classificare diverse risposte alternative a dei messaggi che erano stati usati nelle conversazioni con il chatbot. Usando questa classificazione e la Proximal Policy Optimization è stato perfezionato il modello di generazione. Tutto questo processo è stato eseguito più volte per raffinare il risultato.

ChatGPT risulta essere significativamente migliore di predecessori in quanto fornisce:

  • risposte più lunghe: ChatGPT è significativamente più verboso sia di text-davinci-002 che anche di text-davinci-003
  • risposte più pertinenti: ChatGPT è significativamente più bravo di text-davinci-002 nel capire le richieste che gli vengono fatte.
  • risposte più sicure: ChatGPT è stato ottimizzato per ridurre le “allucinazioni” ossia la creazione di contenuti inventati

È significativamente migliorata anche la produzione di codice, che non solo è possibile copiarlo direttamente con un click, ma viene anche spiegato, commentato, e, se espressamente richiesto dall’utente, anche debuggato e semplificato.

Il tutto senza dover impostare nulla: modello, temperatura, top_p, max_tokens etc. Tutto è nascosto e gira in modo automatico.

Come usare ChatGPT

Dopo aver inserito le proprie credenziali verrete reindirizzati alla dashboard di ChatGPT.

Se già utilizzate GPT-3 non avrete problemi. Una volta raggiunta la pagina troverete una dashboard molto più semplificata di quello a cui siete abituati.

Ma se siete novizi non preoccupatevi comunque. L’utilizzo di ChatGPT3 è molto semplice e intuitivo. Una volta raggiunta la dashboard troverete infatti solamente una linea di comando e nessun parametro da settare.

Come vedete, nella stessa homepage di ChatGPT ci sono alcuni suggerimenti per iniziare la vostra interazione. Sarà sufficiente inserire un qualsiasi prompt nella riga di comando e premere INVIO.

Potete sbizzarrirvi nella creazione delle vostre chat, potete per esempio:

  • chiedere di scrivere una ricetta dati alcuni bizzarri ingredienti
  • scrivere un codice e o un pezzo di programma (GPT-3 è particolarmente bravo con javascript e python, ma non se la cava per nulla male anche con altri linguaggi)
  • scrivere un articolo ottimizzato SEO

ChatGPT risponderà in modo automatico, utilizzando le informazioni a sua disposizione per fornire risposte coerenti e realistiche e soprattutto originali. Senza bisogno di settare parametri del modello.

Vantaggi di ChatGPT

Uno dei principali vantaggi di ChatGPT è la sua capacità di “imparare” dalla conversazione che ha con gli utenti. In questo modo, il sistema è in grado di adattarsi ai diversi stili di interazione e di offrire risposte sempre più pertinenti e personalizzate.

Inoltre, è possibile tenere traccia della storia delle interazioni (trovate le vostre conversazioni nella sidebar di sinistra).

É un ottimo modo per provare e testare nuove prompt, familiarizzare con GPT-3 e aiutare attraverso la propria interazione all’ottimizzazione del modello.

Inoltre, aspetto non di poco conto. È assolutamente gratuito. Ha dei limiti di token e  non è possibile personalizzare i vari parametri del modello. Ma è in assoluto un ottimo strumento per familiarizzare con questa nuova intelligenza artificiale.

Il formato di dialogo consente a ChatGPT di rispondere a domande successive, ammettere i propri errori, contestare premesse errate e rifiutare richieste inappropriate.

Infine, è utilizzabile in qualsiasi lingua. In base alla lingua del testo fornito, la risposta di ChatGPT sarà possibilmente coerente. Quindi, in alcuni casi, non c’è neanche la necessità di tradurre il testo!!!

Limiti di ChatGPT

Come ogni modello di Intelligenza Artificiale, anche ChatGPT ha i suoi limiti.

Il primo aspetto riguarda il setting delle variabili del modello, per quanto un aspetto più tecnico e meno user friendly, la possibilità di misurare il livello di creatività attraverso la temperatura o il top_p ci è parsa una semplificazione eccessiva. Inoltre, da quello che abbiamo notato:

  • Il modello a volte produce risposte errate o senza senso, che possono essere difficili da correggere. Ciò può essere dovuto alla mancanza di una “fonte di verità” durante l’addestramento tramite rinforzo.
  • Il modello può essere sensibile a piccole modifiche nella frase di input o a ripetuti prompt, portando a risposte inconsistenti.
  • Il modello è spesso verboso e può ripetere troppo spesso alcune frasi o concetti, il che può essere causato da bias nei dati di addestramento o da problemi di sovraottimizzazione.
  • Il modello, pur essendo addestrato alla conversazione, non chiede domande di chiarimento quando la richiesta dell’utente è ambigua, ma cerca invece di indovinare ciò che l’utente intende.

Inoltre, sebbene OpenAI abbia fatto sforzi per far rifiutare al modello richieste inappropriate, il modello può ancora rispondere a istruzioni dannose o mostrare comportamenti bias. L’API di moderazione viene utilizzata per segnalare o bloccare determinati tipi di contenuti non sicuri, ma può dare falsi positivi o falsi negativi.

Infine, l’alto numero di utenti sta facendo tremare i server di OpenAI. Quindi è frequente osservare errori, problemi di connessione, interruzioni temporanee del servizio. Non ci si può lamentare, in quanto è (ancora) un servizio completamente gratuito.

Cosa si può fare

Le possibilità di utilizzo sono svariate e sono limitate più che altro alla nostra fantasia o alle nostre esigenze. Vediamo alcuni esempi.

Generazione codice Python

Con ChatGPT è possibile chiedere di generare del codice nel nostro linguaggio preferito. Supponiamo ad esempio di sottomettere la seguente richiesta:

scrivi un programma in python per il calcolo della circonferenza

La risposta che potremmo ottenere è la seguente:

Per calcolare la circonferenza di un cerchio in Python, puoi utilizzare la seguente formula:

				
					circonferenza = 2 * pi * r
				
			

dove "pi" è una costante approssimata a 3.14159 e "r" è il raggio del cerchio.

Ecco un esempio di come potresti scrivere un programma che calcola la circonferenza di un cerchio in Python:

				
					import math

def calcola_circonferenza(r):
  circonferenza = 2 * math.pi * r
  return circonferenza

# Test del programma
print(calcola_circonferenza(2))  # Output: 12.566370614359172
print(calcola_circonferenza(5))  # Output: 31.41592653589793

				
			

In questo esempio, abbiamo importato la libreria "math" per ottenere il valore di "pi" e abbiamo definito una funzione chiamata "calcola_circonferenza" che prende in input il raggio del cerchio e restituisce la circonferenza utilizzando la formula sopra descritta. Abbiamo quindi testato la funzione con due valori di raggio diversi.

Come si può notare, il codice riportato, che è possibile anche copiare direttamente dal chatbot, è non solo corretto ma anche commentato. Pertanto scrivere dei bolierplate o semplici tutorial su alcuni argomenti di programmazione potrà risultare molto più semplice e veloce. Ovviamente ci raccomandiamo di verificare che ciò che viene generato sia corretto. Nel caso non lo fosse, potete comunque fornire un feedback a ChatGPT per migliorare i risultati forniti.

Twitter thread

Si può richiedere a ChatGPT di generare anche dei thread Twitter su un argomento a nostra scelta. Ad esempio, chiedendo di generarlo sull’argomento “modellazione dei database” il risultato che otterremmo potrebbe essere il seguente.

Ecco un thread Twitter sulla modellazione dei database:
1. Cos'è la modellazione dei database? È il processo di progettare il modo in cui i dati verranno organizzati e strutturati all'interno di un database.
2. Perché è importante la modellazione dei database? Una buona modellazione del database può aiutare a garantire che i dati siano facili da gestire e mantenere, e che le query sul database siano veloci ed efficienti.
3. Come si fa la modellazione dei database? Ci sono diverse tecniche di modellazione, come il modello relazionale, il modello a oggetti e il modello a grafi. Ognuno di questi modelli ha i suoi vantaggi e svantaggi in base al tipo di dati e alle esigenze dell'applicazione.
4. Quali sono le considerazioni importanti durante la modellazione dei database? È importante considerare come i dati verranno utilizzati, come dovranno essere interrogati e come verranno aggiornati. Inoltre, è importante considerare come i dati verranno protetti e come verrà gestita la scalabilità del database.
5. Quali strumenti vengono utilizzati per la modellazione dei database? Ci sono diversi strumenti di modellazione dei database disponibili, come diagrammi ER, diagrammi UML e strumenti di progettazione visiva. Questi strumenti possono aiutare a visualizzare e a progettare la struttura del database in modo chiaro e coerente.

Supporto “psicologico”

Nonostante sia un’assistente virtuale e non un essere umano, ChatGPT può interagire anche come un supporto psicologico. Supponiamo che stiamo affrontando un periodo difficile. Sottoponendo i nostri pensieri al chatbot potremmo ottenere la seguente risposta:

Mi dispiace che tu stia attraversando un momento difficile. Se vuoi parlarne, sono qui per ascoltare. A volte può essere utile condividere i propri pensieri e sentimenti con qualcuno, anche se questa persona è solo un assistente virtuale. Se vuoi, puoi raccontarmi di più sulla tua situazione e vedere se posso esserti d'aiuto in qualche modo.

Idee per brand

Supponiamo di aver creato la nostra nuova azienda e siamo a corto di idee per il nome. Sottoponiamo quindi la seguente richiesta:

Aiutami a trovare un nome nuovo per la mia azienda personale. Mi occupo di consulenza informatica nell'ambito di creazione siti web, formazione professionale e analisi dei dati

La risposta sarà la seguente:

Certo! Ecco alcune idee per il nome della tua azienda di consulenza informatica:
1. DataTech Solutions
2. WebPro Consulting
3. CodeCraft Co.
4. Digital Dynamics
5. Netwise Partners
6. NextGen IT
7. TechBridge Consulting
8. Insight Technologies
9. InformaTech Services
10. ComputaCare Inc.
Spero che queste idee ti siano d'aiuto! Ricorda che il nome della tua azienda dovrebbe essere facile da pronunciare e ricordare, e che dovrebbe riflettere la tua area di specializzazione e il tipo di servizi che offri. Inoltre, assicurati che il nome sia disponibile per l'uso e che non sia già stato registrato da qualcun altro.

Come si può notare, non solo ci viene una fornita di 10 possibili candidati, ma anche alcune raccomandazioni nella scelta che andremo ad effettuare!!!

Idee regalo

Oltre a suggerire i nomi per le cose può essere utile anche per avere qualche idea regalo per parenti e amici. Chiedendo quali regali possono essere fatti ad un bambino di 8 anni la risposta sarà la seguente:

Ci sono moltissime opzioni per il regalo di compleanno di un bambino di 8 anni! Ecco alcune idee:
1. Un gioco da tavolo o un puzzle: questi possono essere divertenti da giocare in famiglia o con gli amici.
2. Un nuovo libro o una serie di libri: regalare un buon libro può incoraggiare il bambino a leggere di più e a sviluppare la propria immaginazione.
3. Un kit per una attività artistica o uno strumento musicale: se il bambino ha interessi artistici o musicali, potrebbe apprezzare un kit per la pittura o uno strumento come una chitarra.
4. Un gioco sportivo o un'attività all'aperto: se il bambino ama lo sport o trascorrere del tempo all'aperto, potrebbe apprezzare una palla da calcio o una bicicletta nuova.
5. Un nuovo gioco per la console di gioco o un nuovo gioco per il computer: se il bambino è appassionato di videogiochi, potrebbe apprezzare un nuovo gioco per la console o per il computer.
In generale, è importante considerare i interessi e le passioni del bambino quando si sceglie un regalo di compleanno. Spero che queste idee ti siano state d'aiuto!

Anche in questo caso le idee proposte non sono fuori contesto. Ovviamente non abbiamo una lista dettagliata di prodotti che potremmo acquistare ma ci fornisce un’idea da cui partire per la nostra ricerca.

More To Explore

Intelligenza artificiale

DBSCAN: come funziona

Gli algoritmi di clustering permettono di raggruppare i dati in base alle loro caratteristiche intrinseche. Esistono molti algoritmi che sono stati sviluppati negli anni. Tra quelli più famosi non possiamo dimenticare il DBSCAN. Scopriamo, passo passo, come questo metodo riesce ad individuare cluster di dati di qualsiasi forma e dimensione grazie a soli due parametri.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Design with MongoDB

Design with MongoDB!!!

Buy the new book that will help you to use MongoDB correctly for your applications. Available now on Amazon!