Imagine pentru postarea 65.jpg
Inteligența artificială automatizează totul și ar putea înlocui programatorii? Foto: Midjourney

Un grup de cercetători a publicat recent o hartă cuprinzătoare a provocărilor cu care se confruntă inteligența artificială (IA) în domeniul dezvoltării de software și a propus o foaie de parcurs pentru cercetare, menită să contribuie în continuare la dezvoltarea acestui domeniu.

Imaginați-vă un viitor în care inteligența artificială preia în tăcere sarcinile plictisitoare ale dezvoltării de software: refactorizarea codului complex, migrarea sistemelor vechi și urmărirea erorilor bazate pe rasă, astfel încât inginerii de software umani să se poată concentra în întregime pe arhitectura sistemului, design și probleme creative pe care mașinile nu le pot rezolva încă. Progresele recente în domeniul inteligenței artificiale par să fi adus această viziune foarte aproape de realitate.

Cu toate acestea, un nou studiu realizat de oamenii de știință de la Laboratorul de Informatică și Inteligență Artificială (CSAIL) al MIT și de la institutele de cercetare partenere a arătat că, pentru a realiza acest viitor, trebuie mai întâi să ne confruntăm cu provocările foarte reale ale momentului prezent.

„Mulți oameni spun că programatorii nu mai sunt necesari, deoarece inteligența artificială a automatizat totul”, a declarat profesorul Armando Solar-Lezama, lector în inginerie electrică și informatică la MIT, cercetător senior la CSAIL și autorul principal al studiului. „În realitate, am făcut progrese foarte semnificative. Instrumentele pe care le avem acum sunt mult mai puternice decât înainte. Dar pentru a atinge întregul potențial al automatizării, mai este mult de parcurs.”

Profesorul Armando Solar-Lezama susține că noțiunea predominantă în prezent simplifică ingineria software la o sarcină similară cu tema de programare a unui student: primirea unei mici sarcini de funcție și scrierea codului pentru a o gestiona sau efectuarea unei sarcini în stil LeetCode. Între timp, realitatea este mult mai complexă: de la refactorizarea codului pentru optimizarea designului, până la migrări la scară largă a milioane de linii de cod din COBOL în Java, care modifică fundamental platforma tehnologică a unei companii.

Măsurarea și comunicarea rămân probleme dificile.

Optimizarea codului la scară industrială — cum ar fi modificarea nucleului GPU sau îmbunătățirile pe mai multe niveluri în Chrome V8 — rămâne dificil de evaluat. Benchmark-urile actuale se concentrează în principal pe probleme mici, complexe. Cea mai practică metrică disponibilă în prezent, SWE-Bench, necesită pur și simplu un model AI pentru a remedia o eroare pe GitHub — echivalentul unui exercițiu de programare la nivel scăzut, care implică câteva sute de linii de cod, cu potențialul de scurgeri de date și ignoră o serie de alte scenarii din lumea reală, cum ar fi refactorizarea asistată de AI, programarea om-mașină sau rescrierea sistemelor de înaltă performanță cu milioane de linii de cod. Până când benchmark-urile nu vor fi extinse pentru a cuprinde scenarii cu risc mai mare, măsurarea progresului — și, prin urmare, impulsionarea acestuia — va rămâne o provocare deschisă.

În plus, comunicarea om-mașină este, de asemenea, o barieră majoră. Autorul principal, Alex Gu, student absolvent, a afirmat că, în prezent, interacțiunea cu inteligența artificială este ca „un fir subțire de comunicare”. Când îi cere inteligenței artificiale să genereze cod, aceasta primește adesea fișiere mari, nestructurate, împreună cu câteva cazuri de testare simple și rudimentare. Această lacună este evidentă și în incapacitatea inteligenței artificiale de a utiliza eficient instrumente software familiare oamenilor, cum ar fi depanatoarele și analizoarele statice.

Un apel la acțiune din partea comunității.

Autorii susțin că nu există o soluție magică pentru aceste probleme și solicită eforturi la scară comunitară: construirea de date care să reflecte procesul real de dezvoltare al programatorilor (ce cod este păstrat, care este eliminat, cum este refactorizat codul în timp etc.), instrumente comune de evaluare pentru calitatea refactorizării, durabilitatea patch-urilor și acuratețea tranzițiilor de sistem; și construirea de instrumente transparente care să permită inteligenței artificiale să exprime incertitudinea și să invite intervenția umană.

Studentul absolvent Alex Gu vede acest lucru ca pe un „apel la acțiune” pentru comunitățile open-source la scară largă, pe care niciun laborator nu îl poate realiza singur. Solar-Lezama își imaginează progresul venind din pași mici, care se consolidează reciproc – „rezultate ale cercetării care abordează secvențial părți ale problemei” – transformând astfel inteligența artificială dintr-un „instrument de recomandare a codului” într-un adevărat partener de inginerie.

„De ce este important acest lucru? Software-ul este acum fundamentul finanțelor, transporturilor, asistenței medicale și al fiecărei activități zilnice. Însă eforturile umane de a le construi și întreține în siguranță devin un blocaj”, a declarat Gu. „O inteligență artificială care poate gestiona munca grea fără a crea erori ascunse ar permite programatorilor să se concentreze pe creativitate, strategie și etică. Dar pentru a realiza acest lucru, trebuie să înțelegem că finalizarea unei bucăți de cod este doar partea ușoară - partea dificilă constă în orice altceva.”

(Adaptat din MIT News)

Sursă: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html