Unitate IBM de cercetare în Inteligența Artificială (AI) a prezentat un set de date de 14 milioane de mostre pentru a dezvolta modele de învățare automată care pot ajuta la sarcini de programare. Un set de date numit Proiectul CodeNet, își ia numele de la ImageNet, celebrul depozit de imagini care a revoluționat viziunea computerizată și învățarea profundă.
Programatorii descoperă noi probleme și explorează diferite soluții, folosind multe mecanisme ale gândirii conștiente și subconștiente. Majoritatea algoritmilor de învățare automată necesită sarcini bine definite și cantități mari de date adnotate pentru a dezvolta modele care pot rezolva aceleași probleme.
S-a depus mult efort pentru a crea seturi de date și repere pentru dezvoltarea și evaluarea sistemelor AI-for-code de către comunitatea de experți. Dar, având în vedere natura creativă și deschisă a dezvoltării de software, este foarte dificil să se creeze setul de date perfect pentru programare. Cu Project CodeNet, cercetătorii IBM au încercat să creeze un set de date multifuncțional care poate fi folosit pentru a antrena modele de învățare automată pentru o varietate de sarcini. Creatorii CodeNet îl descriu drept „un set de date la scară foarte mare, divers și de înaltă calitate pentru accelerarea progreselor algoritmice în AI pentru cod”.
Setul de date conține 14 milioane de exemple de 500 de milioane de linii de cod scrise în 55 de limbaje de programare diferite. Exemple de cod au fost obținute din aproape 4000 de sarcini trimise postate pe platformele de codare online AIZU și AtCoder. Exemplele de cod includ atât răspunsuri corecte, cât și incorecte la sarcinile date.
Interesant de asemenea:
- Hubble a intrat în modul sigur din cauza unei erori de software în computerul de bord
- O altă problemă pentru CD Projekt: Hackerii amenință că vor scurge codurile sursă ale jocurilor în rețea
Una dintre caracteristicile cheie ale CodeNet este cantitatea de adnotări adăugate la exemple. Fiecare dintre sarcinile de codare incluse în setul de date are o descriere textuală, precum și timpul CPU și limitele de memorie. Fiecare trimitere de cod conține o duzină de informații, inclusiv limba, data trimiterii, dimensiunea, timpul de execuție, acceptarea și tipurile de erori. Cercetătorii IBM au făcut tot posibilul pentru a se asigura că setul de date este echilibrat pe o varietate de parametri, inclusiv limbajul de programare, acceptabilitatea și tipurile de erori.
CodeNet nu este singurul set de date pentru antrenarea modelelor de învățare automată pentru sarcini de programare. Dar există mai multe caracteristici care îl deosebesc. Prima este dimensiunea totală a setului de date, inclusiv numărul de eșantioane și diversitatea limbilor. Dar poate mai importante sunt metadatele care vin cu mostrele de cod. Adnotările bogate adăugate la CodeNet îl fac potrivit pentru un set divers de sarcini, spre deosebire de alte seturi de date de codare care sunt specializate în sarcini specifice de programare.
Aceasta este suflarea minții.
Cu GPT-3, am construit un generator de aspect în care descrieți orice aspect doriți și generează codul JSX pentru dvs.
- Sharif Shameem (@sharifshameem) Iulie 13, 2020
Există mai multe moduri de a utiliza CodeNet. Una dintre ele este traducerea limbilor. Deoarece fiecare sarcină de codificare din setul de date conține reprezentări ale diferitelor limbaje de programare, oamenii de știință din date o pot folosi pentru a construi modele de învățare automată care traduc codul dintr-o limbă în alta. Acest lucru poate fi convenabil pentru organizațiile care doresc să port codul vechi în limbi noi și să le facă accesibile noilor generații de programatori.
Citeste si:
- IBM a introdus prima tehnologie de fabricare a cipurilor de 2 nm din lume
- IBM dezvoltă inteligență artificială pentru a inventa noi antibiotice
Tradițiile și ereditatea ar trebui să joace împreună cu o gândire diferită, cu cele mai tinere generații de algoritmi neuronali și metode ML de a pune probleme, îmbunătățindu-se reciproc reciproc
În timp, nivelul programatorilor va scădea și mai mult (comparativ cu acum). Adică se va putea scrie cod oblic, strâmb în „limbajul rahat”. Și apoi mașina se va optimiza și va fi posibil să obțineți codul optimizat al unui programator profesionist de asamblare (sau chiar mai bine).