Tra le capacità dei modelli di intelligenza artificiale c’è la generazione del codice in vari linguaggi di programmazione (sfruttata anche per attacchi informatici). Un studio pubblicato sul numero di giugno di IEEE Transactions on Software Engineering conferma gli ottimi risultati ottenuti da ChatGPT, ma solo per problemi antecedenti al 2021.
ChatGPT: poco esperto di programmazione
Cinque ricercatori di varie università hanno esaminato il codice prodotto da ChatGPT in termini di funzionalità, complessità e sicurezza. I risultati mostrano un range di successo estremamente ampio (tra lo 0,66% all’89%) quando si tratta di produrre codice funzionale, a seconda della difficoltà dell’attività, del linguaggio di programmazione e una serie di altri fattori. In alcuni casi, il chatbot genera codice migliore di quello umano, ma in altri si evidenziano gravi problemi di sicurezza.
Per un analisi approfondita è stata valutata la capacità del modello GPT-3.5 nella risoluzione di 728 problemi presenti sulla piattaforma LeetCode in cinque linguaggi di programmazione: C, C++, Java, JavaScript e Python. ChatGPT ha fornito soluzioni corrette per la maggioranza dei problemi antecedenti al 2021. Le percentuali di successo sono 89%, 71% e 40% per problemi di livello facile, medio e difficile.
La correttezza del codice è crollata a picco con i problemi successivi al 2021. La percentuale è diminuita al 52% per i problemi di livello facile e allo 0,66% per quelli di livello difficile. Ciò è dovuto quasi certamente alla mancanza di dati usati per l’addestramento. A differenza del programmatore umano, ChatGPT non può risolvere problemi che non ha mai incontrato.
I ricercatori hanno inoltre notato che il chatbot non riesce sempre a correggere i propri errori di programmazione, in quanto non ha compreso il problema originario. Nel codice generato sono anche presenti varie vulnerabilità, ma la maggioranza di esse sono state corrette. Non è noto se i risultati sono migliori con GPT-4 e GPT-4o.