L’IA potrebbe essere usata per barare sui test di programmazione?
 ork Summit  per lo streaming.

 
Il plagio non si limita ai saggi. Il plagio di programmazione, in cui uno sviluppatore copia il codice deliberatamente senza attribuzione, è una tendenza in aumento. Secondo un articolo del New York Times , alla Brown University, più della metà delle 49 accuse di violazione del codice accademico nel 2016 riguardava la frode in informatica. A Stanford, fino al 20% degli studenti in un singolo corso di informatica del 2015 è stato segnalato per possibile imbroglio, riporta lo stesso pezzo.

Measure of Software Similarity, o MOSS, è rimasto uno dei sistemi più popolari per rilevare il plagio nel software sin dal suo sviluppo nel 1994. MOSS è in grado di analizzare il codice in una vasta gamma di linguaggi tra cui C, C++ e Java, elencando automaticamente coppie di programmi con codice simile ed evidenziando singoli passaggi in programmi che sembrano essere gli stessi.

 
Ma un nuovo studio rileva che i sistemi di intelligenza artificiale disponibili gratuitamente potrebbero essere utilizzati per completare gli incarichi di programmazione di livello introduttivo senza attivare il MOSS. In un documento coautore dei ricercatori di Booz Allen Hamilton ed EleutherAI , un modello linguistico chiamato GPT-J è stato utilizzato per generare codice “privo di indicazioni particolari che le future tecniche di rilevamento del plagio potrebbero utilizzare per cercare di identificare il codice generato algoritmicamente”.

 
“L’obiettivo principale del documento era contestualizzare il fatto che GPT-J può risolvere esercizi introduttivi di informatica in un modello realistico di minaccia per il plagio in un contesto educativo”, Stella Biderman, ricercatrice di intelligenza artificiale presso Booz Allen Hamilton e coautrice dello studio , ha detto a VentureBeat via e-mail. “[I nostri] risultati hanno dimostrato che uno studente con accesso a GPT-J e una conoscenza minima dell’informatica può fornire compiti di livello introduttivo senza attivare MOSS”.

Biderman e Edward Raff, l’altro coautore, hanno chiesto a GPT-J di rispondere a domande che richiedevano di codificare programmi in grado di creare tabelle di conversione da miglia a chilometri, calcolare l’IMC di una persona dati peso e altezza e altro ancora. GPT-J ha commesso errori minori che nella maggior parte dei casi necessitavano di correzione, ma questi errori spesso non richiedevano una programmazione oltre alla capacità di eseguire codice e cercare codici di errore sul Web.

Sebbene Biderman non abbia trovato prove che GPT-J sia, in effetti, utilizzato per imbrogliare gli incarichi, il lavoro solleva dubbi sul fatto che (o strumenti simili) possano essere abusati nei test di codifica professionali. Molte aziende tecnologiche si affidano a esami, interni o di terze parti, per valutare la conoscenza dei noleggi di software. A seconda del design, questi potrebbero essere suscettibili, almeno in teoria, al codice generato dall’IA.

“Il MOSS è stato sviluppato molto prima che cose come GPT fossero possibili, ma questo illustra l’importanza di comprendere il modo in cui gli strumenti digitali si evolvono nel tempo per introdurre nuovi rischi e limitazioni”, ha aggiunto Biderman.

 
Rick Brownlow, CEO e cofondatore di Geektastic, una piattaforma di valutazione tecnica, afferma di non aver visto alcuna prova di plagio da parte di un partecipante al test che utilizza l’IA. Osserva che per la maggior parte delle aziende, un test di codifica costituisce solo una parte di un processo di assunzione. In genere ci si aspetta che i candidati siano in grado di spiegare le loro soluzioni in un modo che renda evidente se sono stati disonesti riguardo alle loro capacità di programmazione.

“[I] nostri strumenti di plagio si attiveranno quando qualcuno ha copiato un’altra soluzione, completamente o in parte, [anche individuando] quando qualcuno ha offuscato parte del codice copiato per cercare di evitare il rilevamento. Se – e questo è un grande se – l’IA potesse scrivere una “buona” soluzione per una delle nostre sfide da portare a casa e questa fosse originale (cioè, non ha pescato a strascico e copiato la soluzione dal web), allora questo essere difficile da individuare come qualcuno che usa il proprio amico sviluppatore di Google per aiutare”, ha detto Brownlow a VentureBeat. “Penso che quando arriveremo a un punto in cui l’IA risolverà le sfide di codifica a casa, saremo al punto in cui non assumerai più ingegneri del software”.

Il CEO di Qualified.io, Jake Hoffner, afferma che anche la sua azienda rileva i cheat sulla base di aspetti come “mancanza di sforzo di codifica (ad es. copia-incolla, modifiche minime)” e consiglia ai clienti di far esaminare il codice ai candidati. Ma vede un futuro in cui l’IA cambia la natura delle valutazioni di programmazione, spostando l’attenzione dalla codifica effettiva alle capacità di gestione del codice.

Gli strumenti emergenti di suggerimento e revisione basati sull’intelligenza artificiale, infatti, promettono di ridurre i costi di sviluppo consentendo ai programmatori di concentrarsi su attività meno ripetitive. Durante la  conferenza degli sviluppatori Build  del maggio 2021, Microsoft ha descritto in dettaglio una funzionalità  di Power Apps che sfrutta il modello linguistico GPT-3 di OpenAI per assistere le persone nella scelta delle formule. Il sistema Codex di OpenAI , che alimenta il servizio Copilot di GitHub , può suggerire intere righe di codice. ControlFlag di Intel è in   grado di rilevare automaticamente gli errori di codifica. E  TransCoder di Facebook  converte il codice da un linguaggio di programmazione in un altro.

 
“[A] il punto in cui l’IA inizia a scrivere più codice di qualità, l’industria nel suo insieme inizia a muoversi verso gli sviluppatori …. dirigere le macchine per scrivere codice ma meno coinvolgimento nella codifica effettiva”, ha detto Hoffner. “[L]a necessità che qualsiasi codice sia coinvolto inizia a passare in secondo piano per molte delle attività di ‘reinventare la ruota’ che gli sviluppatori svolgono ancora oggi, come l’assemblaggio di un’app mobile che recupera e scrive dati. I programmatori passano da questi compiti comuni a cose che sono meno definite e che sono nuove. Queste sono aree in cui non ci sarà abbastanza codice esistente da cui i sistemi di intelligenza artificiale possano imparare, quindi i programmatori dovranno comunque eseguirlo e questi sono i compiti che inizieremo a testare in termini di valutazione”.

Nis Frome, GM della piattaforma di coding challenge e tutorial Coderbyte, afferma di vedere un rischio minore nell’IA utilizzata per imbrogliare gli esami di codifica rispetto ai datori di lavoro che “[sacrificano] ottime esperienze per candidati onesti”. L’eccessiva concentrazione sulla prevenzione degli imbrogli in genere va a scapito del reclutamento e dell’approvvigionamento, afferma, con la conseguenza di respingere i candidati.

Un sondaggio del 2022 di CoderPad e CodinGame mette il problema in netto rilievo. Quasi la metà dei reclutatori cita la ricerca di sviluppatori qualificati come la sfida numero uno, con il 39% che afferma di aver ampliato il proprio pool di candidati a sviluppatori non accademici, rispetto al 23% nel 2021.

“Vediamo innumerevoli tecniche per barare, dall’invio della valutazione a un’altra persona alla copia delle risposte online. Non abbiamo dubbi sul fatto che i candidati abbiano provato a utilizzare GPT-J o  copilot  durante le valutazioni del codice su Coderbyte”, ha detto Frome a VentureBeat via e-mail. “[Ma] barare sarà sempre un gioco al gatto e al topo… È probabile che se la maggior parte dei tuoi candidati tradisce, hai un problema di approvvigionamento! Forse hai bisogno di più candidati senior e non dovresti pubblicare ruoli nelle bacheche di lavoro universitari. La soluzione non è fare un’esperienza autoritaria e noiosa per tutti i candidati”.

 
Biderman sottolinea che l’integrità della polizia, che coinvolga o meno l’IA, non è una nuova impresa. Sulla stessa linea della previsione di Hoffner, l’avvento dell’IA per la generazione di codice di facile utilizzo potrebbe semplicemente richiedere nuove valutazioni in cui le attività di debug vengono eseguite con soluzioni generate dall’IA, afferma.

“Possiamo ancora insegnare agli studenti le importanti competenze informatiche di cui hanno bisogno e trovare nuove applicazioni per [AI]. Questi cambiamenti strutturali potrebbero fornire risultati migliori per mitigare il plagio e le scorciatoie, aprendo la strada a un futuro in cui più strumenti di sviluppo basati sull’intelligenza artificiale sono nelle mani di un insieme più ampio di utenti”, ha aggiunto Biderman. Questo ci aiuta anche a prepararci per un potenziale futuro in cui l’intelligenza artificiale e l’apprendimento automatico potrebbero essere in grado di fare molto di più dei semplici incarichi di livello introduttivo e dovremmo iniziare a prepararci per questo”.

Di ihal