GPT-3 ha due nuove funzionalità: modifica e inserimento

GPT-3 possiede due nuove funzionalità: la modifica (edit) e l'inserimento (insert). Consentono rispettivamente di modificare un input in base a delle istruzioni, e di inserire contenuto ad un input in una determinata posizione. Come funzionano? Quanto sono affidabili?

GPT-3 ha due nuove funzionalità: modifica e inserimento
GPT-3 ha due nuove funzionalità: modifica e inserimento

GPT-3 è un modello di linguaggio che utilizza il deep learning per produrre testo simile a quello umano. Il suo acronimo significa Generative Pre-trained Transformer (di terza generazione).

Il termine "Generative" indica che si tratta di un algoritmo che genera contenuti, infatti si sono visti molti esempi di come, partendo da un input (prompt), GPT-3 sia in grado di completarlo con del testo originale. Tuttavia, esistono altre modalità di completamento, ad esempio le funzionalità di EDIT (modifica) e INSERT (inserimento). Tali nuove capacità saranno disponibili sia per GPT-3, sia per Codex.

Queste nuove funzionalità rendono pratico l'utilizzo delle API di OpenAI per delle revisioni di un contenuto esistente, ad esempio per la ri-scrittura di un paragrafo o il refactoring di un blocco di codice.

Nell'immagine che segue, è possibile vedere come le due nuove modalità sono state aggiunte al Playground di GPT-3.

Le modalità a disposizione nel Playground di GPT-3
Le modalità a disposizione nel Playground di GPT-3

La prima icona rappresenta la modalità di "Completamento" (il metodo che era già presente), la seconda di "Inserimento" e la terza di "Modifica". Le nuove funzioni sono in versione beta, e finché lo saranno l'utilizzo rimarrà gratuito.

L'utilizzo di "edit" e "insert" è gratuito finché rimangono in versione beta
L'utilizzo di "edit" e "insert" è gratuito finché rimangono in versione beta

L'obiettivo, infatti è quello di raccogliere il maggior numero possibile di feedback per il miglioramento delle funzionalità.

L'inserimento nel testo (insert)

La nuova funzionalità di inserimento permette di aggiungere del testo, mantenendo il contesto, all'interno di un contenuto esistente. Questo approccio può essere utile quando, ad esempio si utilizza GPT-3 per generare un testo di una certa lunghezza, e successivamente si decide di ampliare alcune parti.

Provare l'inserimento all'interno del Playground è davvero semplice. L'interfaccia presenta una sola area di testo all'interno della quale è possibile incollare il contenuto da elaborare. Attraverso il placeholder "[insert]", successivamente, si va ad indicare all'algoritmo deve procedere con l'inserimento.

Un esempio per l'inserimento in un testo

Nell'esempio che segue, ho inserito nell'area di testo a disposizione i primi tre paragrafi di questo post. Il testo evidenziato in verde è la parte aggiunta da GPT-3.

Un esempio di inserimento di testo da parte di GPT-3
Un esempio di inserimento di testo da parte di GPT-3

Come si può notare, il contenuto è allineato al contesto: non solo continua ed espande il paragrafo precedente, ma va anche ad introdurre un argomento che viene trattato successivamente.

Un esempio per l'inserimento di codice

L'INSERT è particolarmente utile per scrivere codice. Proprio per questo, l'idea di tale funzionalità deriva proprio da Codex. Nell'esempio che segue, in cui ho scritto un frammento di una semplicissima funzione PHP, vediamo come il modello va a completare in maniera perfetta la parte mancante.

Un esempio di INSERT di GPT-3 in un blocco di codice
Un esempio di INSERT di GPT-3 in un blocco di codice

La funzionalità di inserimento è disponibile via API, come parte dell'endpoint "completions" e attraverso il Playground.


La modifica del testo (edit)

La modifica funziona specificando un testo come prompt e delle istruzioni su come modificarlo. L'endpoint di "edit" può essere utilizzato, ad esempio, per modificare il tone of voice del testo o apportare modifiche mirate come la correzione dell'ortografia.

È interessante anche l'utilizzo senza specificare un input, ma solo le istruzioni. Questo, di fatto, diventa molto simile all'utilizzo di GPT-3 per azioni di completamento.

Un esempio di modifica di testo

Ho inserito come testo di input il primo paragrafo di questo post, dando le seguenti istruzioni: "Riscrivilo come fosse GPT-3 a parlare". Quello che segue è il testo rielaborato dell'algoritmo.

Ciao, sono un modello di linguaggio che utilizza il deep learning per produrre testo simile a quello umano. Il mio acronimo significa Generative Pre-trained Transformer (di terza generazione).Ciao, sono un modello di linguaggio che utilizza il deep learning per produrre testo simile a quello umano. Il mio acronimo significa Generative Pre-trained Transformer (di terza generazione).

Alcuni esempi di modifica del codice

In questo caso vediamo un test in cui fornisco all'algoritmo delle istruzioni senza specificare un input. L'istruzione: "Scrivi una funzione PHP che restituisce la somma di due parametri al quadrato". L'output è stato il seguente.

Un esempio di utilizzo di EDIT senza specificare un input
Un esempio di utilizzo di EDIT senza specificare un input

Di certo possono esserci stili di sviluppo diversi, ma il fatto che generi la funzione correttamente è davvero sbalorditivo.

Vediamo un altro esempio, invece, in cui avviene la trasformazione da una serie di dati al JSON corrispondente. Da notare che nei dati non viene specificata un'intestazione per i valori numerici. Tuttavia, nel JSON, tutti i dati sono etichettati.

GPT-3 trasforma una lista di dati in una stringa JSON
GPT-3 trasforma una lista di dati in una stringa JSON

L'endpoint di modifica è particolarmente utile per scrivere codice. Funziona molto bene per attività come il refactoring, l'aggiunta di documentazione, la traduzione di istruzioni da un linguaggio di programmazione ad un altro.

Anche la funzionalità di EDIT è disponibile via API, come parte dell'endpoint "completions" e attraverso il Playground.


Conclusioni

GPT-3 e i modelli simili stanno diventando sempre più potenti, e svolgono compiti sempre più complessi.

Queste due nuove funzionalità ci presentano il modello in un'altra veste rispetto a quella alla quale siamo abituati (completamento). Il risultato non cambia ed è sbalorditivo come riesca a mantenere il contesto in fase di INSERT, ad esempio, ma anche come "comprende" le parti mancanti di un blocco di codice.

Di certo, siamo solo all'inizio, e la tecnologia e gli algoritmi sono destinati a migliorare: di questo possiamo essere certi.

Per approfondire

New GPT-3 Capabilities: Edit & Insert
We’ve released new versions of GPT-3 and Codex which can edit or insert content into existing text, rather than just completing existing text. These new capabilities make it practical to use the OpenAI API to revise existing content, such as rewriting a paragraph of text or refactoring code. This
GPT-3: dialoghi con l’intelligenza artificiale di OpenAI
Cos’è GPT-3 di OpenAI? Si tratta di un’intelligenza artificiale molto evoluta. Dopo un lungo periodo d’attesa sono stato abilitato all’utilizzo del programma beta delle API. Come funziona? Lo vediamo insieme!
GPT-3 e la generazione di testi “tossici”: i nuovi modelli InstructGPT
Modelli linguistici come GPT-3, oggi sono estremamente potenti e vengono utilizzati per produrre contenuti in diversi ambiti. Tuttavia, un training derivante da materiale presente online, può portare a produrre informazioni tossiche e disinformazione. Cos’è InstructGPT? Vediamo di cosa si tratta!
GPT-3 e l’addestramento personalizzato: fine-tune training
Come possiamo personalizzare la base di conoscenza di GPT-3 e far mantenere all’intelligenza artificiale un “tone of voice” allineato con il brand? Addestrando il modello su un set di dati specifico (fine-tune training). Vediamo di cosa si tratta.