Fino a due anni fa, le scuole e le università si impegnavano molto per insegnare agli studenti i linguaggi C\C++ partendo da zero, stampando “Hello World”. Tuttavia, questo è ormai solo un ricordo del passato. Con l’avvento di ChatGPT, l’inglese è diventato il nuovo linguaggio di programmazione. Di recente, un meme è diventato virale su Internet suggerendo che i codici generati da ChatGPT richiedano più tempo per il debug degli sviluppatori.
Su Twitter, diversi utenti hanno espresso il loro disappunto riguardo alla difficoltà nel debuggare il codice creato da ChatGPT. Uno degli utenti su Twitter ha dichiarato: “ChatGPT è utile per generare codice, ma il codice che genera richiede il debug, quindi usarlo senza pensarci sarebbe una perdita di tempo”.
Tuttavia, questa ragione non è sufficiente per impedire loro di utilizzare ChatGPT per la codifica. La risposta è un deciso no, perché la codifica e il pensiero procedono contemporaneamente interrompendo la catena di pensiero. Nonostante richieda più tempo, le persone continuerebbero comunque a utilizzare ChatGPT per la codifica, poiché consente loro di essere creativi, risolvere problemi e scoprire nuove idee di codifica. Con ChatGPT, la nostra capacità di pensiero critico non è limitata dalla velocità con cui possiamo tradurre i pensieri in codice.
È un fatto noto che nemmeno il programmatore umano più esperto riesca sempre a ottenere il programma giusto al primo tentativo. I modelli di linguaggio di grandi dimensioni (LLM) si sono dimostrati molto abili nella generazione di codice, ma incontrano ancora difficoltà quando si tratta di compiti di programmazione complessi. Per superare queste sfide, i ricercatori hanno esplorato una tecnica chiamata autoriparazione, in cui il modello può identificare e correggere gli errori nel proprio codice. Questo approccio ha guadagnato popolarità poiché aiuta a migliorare le prestazioni dei LLM negli scenari di programmazione.
Un documento di ricerca intitolato “Demystifying GPT Self-Repair for Code Generation” quantifica le capacità di auto-debug di GPT-4 rispetto ad altri LLM. Secondo il documento, GPT-4 possiede un’abilità emergente estremamente utile che supera tutti gli altri modelli: l’auto-debug.
Uno dei risultati chiave del documento è stato che GPT-3.5 può scrivere codice molto migliore grazie al feedback di GPT-4. L’eccezionale capacità di autoriparazione di GPT-4 deriva dal suo straordinario meccanismo di feedback. A differenza degli altri modelli, GPT-4 possiede una capacità unica di auto-riflessione efficace, che gli consente di identificare e correggere i problemi all’interno del codice. Questa caratteristica distintiva lo differenzia dagli altri modelli di intelligenza artificiale.
In particolare, il modello di feedback e il modello di generazione del codice in GPT-4 non devono necessariamente coincidere. Ad esempio, è possibile eseguire il debug del codice creato da GPT-3.5 utilizzando GPT-4. In questo caso, GPT-3.5 funge da modello di generazione del codice e GPT-4 funge da modello di feedback. Questo approccio consente a GPT-4 di migliorare e perfezionare continuamente le sue capacità di codifica, rendendolo una soluzione straordinaria nel campo della programmazione guidata dall’intelligenza artificiale.
In uno studio interessante, è emerso che il feedback autogenerato da GPT-4, insieme al feedback fornito da un programmatore esperto, ha aumentato il numero di programmi riparati. Questo significa che il pensiero critico umano deve ancora far parte del processo di debug. L’intelligenza artificiale può aiutare con il debug, ma alla fine tutto si riduce alle tue abilità.
Il codice creato da ChatGPT sarà efficiente quanto il prompt che gli viene fornito. Se il prompt non è all’altezza, non sarà possibile ottenere l’output desiderato. L’approccio consiste principalmente nel tentare ed errare, ovvero se un prompt non funziona, se ne prova un altro. Nel futuro, potrebbe non essere nemmeno necessario creare prompt da soli per la codifica. Gli sviluppatori stanno lavorando su modelli open source che possono essere integrati nell’API di ChatGPT per fornire i migliori suggerimenti possibili.
Un esempio di questo tipo di agente di intelligenza artificiale è il “GPT prompt engineer”. Si tratta di un agente vincolato, il che significa che il suo comportamento è altamente controllato, portando a risultati migliori rispetto agli agenti non vincolati. Concatena molte chiamate di GPT-4 e GPT-3.5-Turbo che lavorano insieme per trovare il miglior prompt possibile. Spesso è riuscito a superare persino i suggerimenti scritti dagli esseri umani.