AlphaСode, un'intelligenza artificiale per la generazione di codice

DeepMind, noto per i suoi sviluppi nel campo dell'intelligenza artificiale e la costruzione di reti neurali in grado di giocare a computer e giochi da tavolo a livello umano, recentemente svelate il progetto AlphaCode che descrive come un sistema di apprendimento automatico per la generazione di codice che puoi partecipare a concorsi di programmazione sulla piattaforma Codeforces e dimostrare un risultato medio.

Si dice che il progetto utilizza l'architettura di rete neurale "Transformer". in combinazione con altri metodi di campionamento e filtraggio per generare varie varianti di codice imprevedibili corrispondenti al testo in linguaggio naturale.

Il metodo come funziona AlphaСode si basa sul filtraggio, sul raggruppamento e sull'ordinamento, dopodiché procede alla selezione del codice di lavoro più ottimale dal flusso di opzioni generato, che viene quindi verificato per garantire che si ottenga il risultato corretto (in ogni compito del concorso, un esempio di dati di input e un risultato corrispondente) a questo esempio, che dovrebbe essere ottenuto dopo l'esecuzione del programma).

Descriviamo in dettaglio AlphaCode, che utilizza modelli di linguaggio basati su trasformatori per generare codice su una scala senza precedenti, quindi filtra in modo intelligente un piccolo insieme di programmi promettenti.

Convalidiamo le nostre prestazioni utilizzando concorsi ospitati su Codeforces, una piattaforma popolare che ospita competizioni regolari che attirano decine di migliaia di partecipanti da tutto il mondo che vengono a testare le proprie abilità di programmazione. Abbiamo selezionato 10 concorsi recenti per la valutazione, ciascuno più recente dei nostri dati di allenamento. AlphaCode era più o meno al livello del concorrente medio, segnando la prima volta che un sistema di generazione di codice AI ha raggiunto un livello competitivo di prestazioni nelle competizioni di programmazione.

Per un allenamento approssimativo del sistema apprendimento automatico, si evidenzia che è stato utilizzato il codice base disponibile nei repository GitHub pubblici. Dopo aver preparato il modello iniziale, è stata effettuata una fase di ottimizzazione basata su una raccolta di codice con esempi di problemi e soluzioni offerti ai partecipanti ai contest Codeforces, CodeChef, HackerEarth, AtCoder e Aizu.

In totale, per la formazione di AlphaCode 715 GB di codice GitHub utilizzati e più di un milione di esempi di soluzioni a problemi tipici della concorrenza. Prima di procedere alla generazione del codice, il testo dell'incarico ha attraversato una fase di normalizzazione, in cui è stato escluso tutto il superfluo e sono rimaste solo le parti significative.

Per testare il sistema sono stati selezionati 10 nuovi concorsi Codeforces con più di 5.000 partecipanti, tenuti dopo aver completato la formazione del modello di machine learning.

Posso tranquillamente affermare che i risultati di AlphaCode hanno superato le mie aspettative. Ero scettico perché anche in semplici problemi competitivi, spesso è richiesto non solo di implementare l'algoritmo, ma anche (e questa è la parte più difficile) di inventarlo. AlphaCode è riuscito a esibirsi al livello di un nuovo promettente concorrente. Non vedo l'ora di vedere cosa accadrà!

MIKE mirzayanov

FONDATORE DI CODEFORCE

I risultati degli incarichi consentiti per l'ingresso del sistema AlphaCode circa nel mezzo della qualificazione di queste competizioni (54,3%). Il punteggio complessivo previsto da AlphaCode era di 1238 punti, garantendo l'ingresso nel Top 28% tra tutti i partecipanti Codeforces che hanno partecipato alle competizioni almeno una volta negli ultimi 6 mesi.

Va notato che si osserva che il progetto è ancora nella fase iniziale di sviluppo e che in futuro si prevede di migliorare la qualità del codice generato, nonché di sviluppare AlphaСode verso sistemi che aiutano a scrivere codice, o strumenti di sviluppo di applicazioni che possono essere utilizzati da persone senza competenze di programmazione.

Infine se sei interessato a saperne di più, dovresti sapere che una caratteristica chiave dello sviluppo è la capacità di generare codice in Python o C++, prendendo come input di testo una dichiarazione del problema in inglese.

Puoi controllare i dettagli nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.