Unità IBM della ricerca sull'intelligenza artificiale (AI) ha presentato un set di dati di 14 milioni di campioni per sviluppare modelli di apprendimento automatico che possono aiutare nelle attività di programmazione. Un set di dati denominato Codice progettoNet, prende il nome da ImageNet, il famoso repository di immagini che ha rivoluzionato la visione artificiale e il deep learning.
I programmatori scoprono nuovi problemi ed esplorano diverse soluzioni, utilizzando molti meccanismi del pensiero conscio e subconscio. La maggior parte degli algoritmi di apprendimento automatico richiede attività ben definite e grandi quantità di dati annotati per sviluppare modelli in grado di risolvere gli stessi problemi.
Sono stati compiuti molti sforzi per creare set di dati e benchmark per lo sviluppo e la valutazione di sistemi di intelligenza artificiale per codice da parte della comunità di esperti. Ma, data la natura creativa e aperta dello sviluppo del software, è molto difficile creare il set di dati perfetto per la programmazione. Con Project CodeNet, i ricercatori IBM hanno tentato di creare un set di dati multiuso che può essere utilizzato per addestrare modelli di machine learning su una varietà di attività. I creatori di CodeNet lo descrivono come "un set di dati su larga scala, diversificato e di alta qualità per accelerare i progressi algoritmici nell'intelligenza artificiale per il codice".
Il set di dati contiene 14 milioni di esempi di 500 milioni di righe di codice scritte in 55 diversi linguaggi di programmazione. I campioni di codice sono stati ottenuti da quasi 4000 attività inviate pubblicate sulle piattaforme di codifica online AIZU e AtCoder. Gli esempi di codice includono risposte corrette e non corrette alle attività specificate.
Interessante anche:
- Hubble è entrato in modalità provvisoria a causa di un errore del software nel computer di bordo
- Un altro guaio per CD Projekt: gli hacker minacciano di far trapelare in rete i codici sorgente dei giochi
Una delle caratteristiche principali di CodeNet è la quantità di annotazioni aggiunte agli esempi. Ciascuna delle attività di codifica incluse nel set di dati ha una descrizione testuale, oltre al tempo della CPU e ai limiti di memoria. Ogni invio di codice contiene una dozzina di informazioni, tra cui lingua, data di invio, dimensioni, tempo di esecuzione, accettazione e tipi di errore. I ricercatori IBM hanno anche fatto di tutto per garantire che il set di dati fosse bilanciato su una varietà di parametri, tra cui linguaggio di programmazione, accettabilità e tipi di errore.
CodeNet non è l'unico set di dati per l'addestramento dei modelli di machine learning sulle attività di programmazione. Ma ci sono diverse caratteristiche che lo distinguono. Il primo è la vastità del set di dati, compreso il numero di campioni e la diversità delle lingue. Ma forse più importanti sono i metadati forniti con gli esempi di codice. Le ricche annotazioni aggiunte a CodeNet lo rendono adatto a una serie diversificata di attività, a differenza di altri set di dati di codifica specializzati in attività di programmazione specifiche.
Questo è strabiliante.
Con GPT-3, ho creato un generatore di layout in cui descrivi semplicemente qualsiasi layout desideri e genera il codice JSX per te.
CHE COSA pic.twitter.com/w8JkrZO4lk
- Sharif Shameem (@sharifshameem) Luglio 13, 2020
Esistono diversi modi per utilizzare CodeNet. Uno di questi è la traduzione linguistica. Poiché ogni attività di codifica nel set di dati contiene rappresentazioni di diversi linguaggi di programmazione, i data scientist possono utilizzarla per creare modelli di machine learning che traducono il codice da una lingua all'altra. Questo può essere conveniente per le organizzazioni che vogliono portare il vecchio codice in nuovi linguaggi e renderli accessibili alle nuove generazioni di programmatori.
Leggi anche:
- IBM ha introdotto la prima tecnologia di produzione di chip a 2 nm al mondo
- IBM sta sviluppando l'intelligenza artificiale per inventare nuovi antibiotici
Le tradizioni e l'ereditarietà dovrebbero giocare insieme a pensieri diversi, con le generazioni più giovani di algoritmi neurali e metodi ML per porre problemi, migliorandosi a vicenda
Nel tempo, il livello dei programmatori diminuirà ancora di più (rispetto a adesso). Cioè, sarà possibile scrivere codice obliquo e storto nella "lingua di merda". E poi la macchina ottimizzerà e sarà possibile ottenere il codice ottimizzato di un programmatore assembler professionista (o anche meglio).