Scrierea codului este doar primul pas în crearea a ceva. Verificarea codului pentru erori și remedierea acestora necesită timp și deseori durează mai mult decât se anticipa, dar este totuși un pas esențial.

Dacă ar exista o modalitate de a remedia automat erorile care depășește erorile de sintaxă și înțelege cu adevărat intențiile din spatele codului dvs.

Recent, Microsoft a dezvoltat o inteligență artificială capabilă să detecteze și să remedieze erorile din cod folosind învățarea profundă. Dar cum a apărut această piesă de tehnologie revoluționară și cum funcționează?

Ce este BugLab și cum funcționează?

BugLab este o implementare Python de inteligență artificială care caută și remediază erorile din cod. A fost dezvoltat de Miltos Alamanis și Marc Brockschmidt, doi cercetători de la Microsoft Research. Ei au reușit să depășească lipsa datelor etichetate folosite adesea în învățare automată recurgând la învățarea auto-supravegheată și permițând lui BugLab să se antreneze printr-un joc de „ascunselea” cu linii de cod.

instagram viewer

BugLab a fost antrenat folosind două modele de calcul; unul care ascunde erori în fragmentele corecte de cod și altul care caută și corectează erorile. Ambele modele învață continuu unul de la celălalt. De-a lungul timpului, selectorul de erori devine mai bun la ascunderea erorilor din cod, iar detectorul devine mai bun la prinderea și remedierea acestora.

Înțelegerea codului cu BugLab

Majoritatea erorilor pe care BugLab AI este antrenat să le detecteze și să le repare nu au ca rezultat erori logice, ci sunt doar greșite ca urmare a contextului general al codului. Înțelegerea intenției dezvoltatorului este esențială pentru a găsi aceste erori.

Tratarea fragmentelor de cod în același mod ca și procesarea limbajelor naturale dă rezultate suboptime. Este încă dificil pentru AI să înțeleagă relația dintre diferite declarații atunci când sunt împărțite în jetoane individuale.

În schimb, BugLab privește codul ca întreg. În acest fel, fiecare sintaxă, expresie, simbol și identificator sunt reprezentate ca puncte într-un grafic, permițând AI să „înțeleagă” conexiunea și relația dintre diferitele noduri.

Arhitecturi de rețele neuronale sunt apoi folosite pentru a antrena AI de depanare. Ei sunt capabili să extragă informații din structura bogată a graficului de cod și să ofere motive pentru relația fiecărui nod cu celelalte.

Funcționează BugLab pe codul din viața reală?

Este important de reținut că BugLab nu este un înlocuitor pentru un programator calificat. Asta pentru că erorile complexe încă nu sunt la îndemână.

Scopul Microsoft cu AI este să detecteze și să remedieze erorile frecvente, cum ar fi operatorii booleeni incorecți, cum ar fi utilizarea lui „sau” în loc de „și” și invers, în plus față de comparațiile de valori inversate și variabile abuzuri.

Conform Microsoft, rezultatele sunt promițătoare, deoarece BugLab este capabil să detecteze și să remedieze automat aproximativ 26 la sută dintre erori dintr-o bucată de cod. Cu toate acestea, un procent semnificativ de precizie este încă pierdut din cauza falselor pozitive și erorilor ratate.

Aplicații viitoare ale Microsoft BugLab

Scopul Microsoft cu BugLab este să economisească timp dezvoltatorilor de software, petrecut adesea să analizeze codul lor căutând cele mai mici erori.

În timp ce modelul de depanare AI este încă în curs de desfășurare, are șansa găsirea și remedierea erorilor care variază de la incomod la catastrofal. Dar în câțiva ani, vă puteți aștepta ca BugLab să devină o necesitate în setul de instrumente al fiecărui dezvoltator, chiar dacă nu este perfect.

Evoluția exponențială a AI auto-predare

Cu cât modelele AI precum BugLab au mai mult timp pentru a se instrui pe exemple din viața reală, cu atât vor da rezultate mai bune și mai precise.

Una dintre cele mai dificile obstacole cu care s-au confruntat cercetătorii Microsoft în timpul dezvoltării BugLab a fost utilizarea unei înțelegeri umane a codului și a intenției în instrument. Dar acum că acest lucru este în mare parte rezolvat, vă puteți aștepta ca BugLab să se îmbunătățească cu timpul.

Învățare profundă vs. Învățare automată vs. AI: Cum merg ei împreună?

Încercați să stabiliți diferența dintre inteligența artificială, învățarea automată și învățarea profundă? Iată ce înseamnă toate.

Citiți în continuare

AcțiuneTweetE-mail
Subiecte asemănătoare
  • Programare
  • Microsoft
  • Sfaturi de codare
  • Inteligență artificială
Despre autor
Anina Ot (89 articole publicate)

Anina este scriitoare independentă de tehnologie și securitate pe internet la MakeUseOf. Ea a început să scrie despre securitatea cibernetică în urmă cu 3 ani în speranța de a-l face mai accesibil pentru omul obișnuit. Dornic să învețe lucruri noi și un mare tocilar al astronomiei.

Mai multe de la Anina Ot

Aboneaza-te la newsletter-ul nostru

Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Click aici pentru a te abona