Interviuri

Profesor Eran Yahav, Co-Fondator și Co-CEO al Tabnine – Seria de Interviuri

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Profesor Eran Yahav, Co-Fondator și Co-CEO al Tabnine, este un profesor de informatică la Technion – Israel Institute of Technology, a cărui cercetare se axează pe limbaje de programare, învățare automată și inginerie software, în special sinteză de programe și analiză de cod la scară largă. În paralel cu activitatea sa academică, el a co-fondat Tabnine (inițial Codota) pentru a aplica ani de cercetare în instrumente practice pentru dezvoltatori, ajutând la promovarea asistenților de codare cu inteligență artificială și automatizare. Lucrarea sa face punte între academia și industrie, cu accent pe crearea unui cod generat de inteligență artificială mai fiabil, securizat și conștient de context pentru medii enterprise reale.

Tabnine este o platformă de codare bazată pe inteligență artificială, proiectată pentru a asista dezvoltatorii pe tot parcursul ciclului de dezvoltare a software-ului, de la scrierea și depanarea codului la generarea de teste și documentație. Lansat inițial ca un instrument de completare a codului, a evoluat într-o platformă mai largă, orientată către enterprise, care integrează inteligență artificială generativă și fluxuri de lucru bazate pe agenți, permițând echipelor să automateze sarcini de dezvoltare complexe, menținând în același timp un control puternic asupra confidențialității, securității și conformității. Cu suport pentru zeci de limbaje de programare și integrări în principalii medii de dezvoltare, Tabnine își propune să îmbunătățească productivitatea dezvoltatorilor, asigurând în același timp că codul generat de inteligență artificială rămâne de încredere și aliniat cu standardele organizaționale.

Ați petrecut ani cercetând analiza și sinteza de programe la Technion și ați lucrat anterior la IBM Research. Ce problemă din dezvoltarea software v-a convins să co-fondați Tabnine, și cum a influențat cercetarea dvs. academică viziunea inițială a companiei?

Lucrarea mea academică s-a axat pe analiza și sinteza de programe, care în esență înseamnă învățarea mașinilor să înțeleagă și să genereze cod. Am făcut doctoratul în Analiza de Programe, și acesta a fost și locul unde am petrecut primii mei ani de cercetare aplicată. Abordarea problemelor de calitate a software-ului cu analiza de programe a făcut clar că unele probleme sunt foarte greu de rezolvat odată ce programul a fost scris în mod greșit. O uncie de prevenire valorează mai mult decât o libră de vindecare, dacă se poate spune așa. Acest lucru m-a convins că abordarea corectă pentru a rezolva problemele de calitate a software-ului este prin Sinteză de Programe, unde am petrecut cea mai mare parte a timpului și energiei mele de cercetare.

Inițial, am lucrat la Sinteză de Programe pentru programe concurente, încercând să automatizez crearea de programe concurente din programe secvențiale. Apoi, am trecut la o sinteză de programe mai generală, utilizând învățarea automată.

Sinteză de programe utilizând învățarea automată a fost, de asemenea, ideea fundamentală care a stat la baza Tabnine. Ideea, care acum pare evidentă, a fost că modelele pot învăța direct pattern-urile de codare din mari corpora de cod și pot asista dezvoltatorii în timp real. Această idee generală este aplicabilă în toate etapele ciclului de dezvoltare a software-ului – de la crearea codului la revizia codului, la implementare și dincolo.

Viziunea a fost întotdeauna aceea de a îmbunătăți munca dezvoltatorului uman, oferindu-le instrumente care să accelereze procesul de dezvoltare și să înlăture fricțiunile. Dezvoltarea software-ului este o disciplină creativă și de rezolvare a problemelor, iar scopul a fost ca inteligența artificială să înlăture fricțiunile din proces, gestionând sarcinile rutiniere și ajutând dezvoltatorii să rămână în flux. Acea viziune ne ghidă și astăzi, deși tehnologia a evoluat semnificativ de la acele zile timpurii.

Tabnine a fost un pionier în asistenții de codare cu inteligență artificială, cu ani înainte ca inteligența artificială generativă să devină mainstream cu instrumente precum modelele OpenAI. Cum a evoluat rolul inteligenței artificiale în dezvoltarea software de la acele zile timpurii, și ce lecții a învățat industria de la prima undă de copiloți de codare?

Prima generație de asistenți de codare cu inteligență artificială s-a axat în principal pe predicție. Ei erau, în esență, sisteme avansate de completare a codului care ajutau dezvoltatorii să scrie cod mai rapid, previzualizând următoarea linie sau funcție.

Ce s-a schimbat cu buclele agenților este că inteligența artificială poate acum gestiona sarcini cu o autonomie mai mare, până la punctul în care putem considera agenții (cu o ghidare corespunzătoare) ca dezvoltatori juniori independenți.

Însă, acest lucru a învățat industria și o lecție importantă. Capacitatea brută a modelului nu este suficientă pentru dezvoltarea software-ului enterprise. Modelele antrenate pe date publice pot produce ieșiri impresionante, dar adesea lipsesc conștientizarea arhitecturii, a dependențelor și a convențiilor unei organizații.

Acesta este motivul pentru care următoarea etapă de evoluție nu se axează doar pe modele mai mari sau ferestre de context mai mari, ci pe conectarea acestor modele la contextul real în care se construiește software-ul.

Multe întreprinderi descoperă că scalarea agenților inteligenței artificiale necesită mai mult decât modele mai mari – necesită un context organizațional mai profund. De ce credeți că contextul devine adevărata frontieră pentru dezvoltarea cu inteligență artificială de încredere?

Sistemele software sunt rețele complexe de relații. O singură schimbare poate afecta multiple servicii, API-uri sau componente descendente.

Modelele de inteligență artificială de astăzi sunt foarte bune la generarea de cod plauzibil, dar adesea operează fără o înțelegere structurată a acestor relații. Fără acea înțelegere, inteligența artificială nu poate raționa în mod fiabil despre consecințele unei schimbări.

Ceea ce descoperă întreprinderile este că fiabilitatea sistemelor de inteligență artificială depinde de calitatea contextului în care operează. Dacă un sistem de inteligență artificială înțelege arhitectura sistemului, dependențele dintre servicii și standardele de codare ale organizației, poate genera cod care se aliniază mult mai strâns cu modul în care funcționează realmente sistemul.

În acest sens, contextul devine următoarea frontieră pentru dezvoltarea enterprise cu inteligență artificială.

Noul dumneavoastră Motor de Context Enterprise are ca scop să ofere agenților de inteligență artificială o înțelegere structurată a arhitecturii, a dependențelor și a practicilor de inginerie ale unei organizații. Cum se diferențiază această abordare de metodele comune, cum ar fi generarea augmentată de recuperare pe care multe companii o utilizează în prezent?

Generarea augmentată de recuperare este o tehnică utilă. Permite modelelor să extragă documente sau fragmente de cod relevante atunci când generează o soluție.

Însă, recuperarea singură nu creează înțelegere. Oferește acces la informații, nu structură.

Motorul de Context Enterprise este proiectat să meargă mai departe, construind o reprezentare structurată a mediului software. Analizează repository-uri, servicii, dependențe, API-uri și relații arhitecturale și le organizează într-un model de funcționare a sistemului.

Acest lucru permite sistemelor de inteligență artificială să raționeze despre relațiile dintre componente, și nu doar să extragă fragmente de text. Pentru medii enterprise complexe, acea distincție devine foarte importantă.

Uneltele de codare cu inteligență artificială evoluează de la sugestii de completare a codului la agenți autonomi capabili să execute fluxuri de lucru multi-pași. Cum anticipați că se va schimba echilibrul dintre dezvoltatorii umani și sistemele agenților pe următorii cinci ani?

Agenții de inteligență artificială vor prelua sarcini de dezvoltare rutiniere. Ei sunt deja capabili să implementeze funcționalități de la capăt la capăt, inclusiv testare și documentație. Fiecare dezvoltator va deveni lider de echipă al dezvoltatorilor de inteligență artificială. Principala provocare va fi să comunice cerințele acestei echipe și să verifice dacă artifactele generate corespund cerințelor stabilite.

Însă, dezvoltarea software-ului este fundamental o disciplină de rezolvare a problemelor și de proiectare. Dezvoltatorii umani vor continua să definească arhitectura, să facă compromisuri și să ghideze direcția generală a sistemelor.

Ce se va schimba este nivelul de abstractizare la care lucrează dezvoltatorii. În loc să se concentreze pe cod, dezvoltatorii vor orchestra fluxuri de lucru de nivel superior și vor colabora cu sisteme de inteligență artificială care execută părți ale acestor fluxuri.

Altfel spus, rolul dezvoltatorilor devine mai strategic, pe măsură ce inteligența artificială gestionează mai mult din munca mecanică.

Tabnine a indicat că utilizatorii enterprise pot vedea rate de acceptare a codului generat de inteligență artificială de până la 80% în anumite medii. Care sunt metricile pe care organizațiile ar trebui să le utilizeze pentru a determina dacă uneltele de codare cu inteligență artificială îmbunătățesc realmente productivitatea dezvoltatorilor, și nu doar generează mai mult cod?

Întrebarea cheie nu este cât cod generează inteligența artificială, ci câtă muncă utilă produce realmente.

Există câteva metrici pe care organizațiile ar trebui să le urmărească. Una dintre ele este rata de acceptare la prima trecere, care măsoară cât de des codul generat de inteligență artificială poate fi utilizat fără modificări. O altă metrică este timpul de revizuire a ciclului – câte iterații sunt necesare înainte ca o solicitare de tragere să poată fi fuzionată.

Organizațiile ar trebui, de asemenea, să urmărească timpul petrecut de dezvoltatori pentru refacerea codului, precum și timpul de conducere pentru modificări de la dezvoltare la producție.

Dacă uneltele de codare cu inteligență artificială îmbunătățesc realmente productivitatea, ar trebui să se vadă îmbunătățiri în toate aceste metrici. Dezvoltatorii petrec mai puțin timp corectând codul generat și mai mult timp lucrând la sarcini de valoare mai mare.

Întreprinderile rămân precaute în ceea ce privește expunerea codului proprietar către modele externe. Cum abordează conceptul de “Codare cu Inteligență Artificială de Încredere” preocupările de guvernanță, confidențialitate și conformitate care au încetinit adoptarea instrumentelor de dezvoltare cu inteligență artificială în întreprinderi?

Încrederea este unul dintre factorii cei mai importanți în adoptarea enterprise a inteligenței artificiale.

Încrederea este provocarea finală pentru realizarea inginerului de inteligență artificială. Cum putem încredința inteligenței artificiale să acționeze autonom pentru a finaliza sarcini critice de inginerie software? Cum putem asigura că acțiunile sale se aliniază cu așteptările noastre pentru calitate, securitate și conformitate cu politicile noastre? Dacă inginerul de inteligență artificială urmează să fie un membru acceptat al echipelor noastre de ingineri, el trebuie să fie la fel de de încredere ca și colegii noștri de încredere și bine pregătiți.

Abordarea acestei provocări se bazează pe două piloni critici:

  • Personalizare: Echiparea inginerului de inteligență artificială cu o înțelegere intimă a organizației, a bazei de cod și a celor mai bune practici.
  • Control: Implementarea unor sisteme robuste pentru a asigura că toate codurile – atât cele generate de inteligență artificială, cât și cele scrise de oameni – îndeplinesc standardele de calitate, securitate, performanță și fiabilitate ale organizației.

În plus, Codarea cu Inteligență Artificială de Încredere înseamnă oferirea organizațiilor controlul asupra modului în care se implementează inteligența artificială și asigurarea guvernanței și controlului centralizat.

Ați sugerat că contextul organizațional poate deveni un strat fundamental în stiva de inteligență artificială a întreprinderii – similar cu bazele de date sau infrastructura cloud din epocile anterioare de calcul. Cum arată acea arhitectură viitoare?

Dacă privim cum evoluează tehnologia enterprise, adesea vedem apariția unor noi straturi de infrastructură.

Bazele de date au devenit fundamentul pentru gestionarea datelor. Platformele cloud au devenit fundamentul pentru rularea aplicațiilor la scară.

În era inteligenței artificiale, organizațiile vor avea nevoie de infrastructură care să le permită sistemelor de inteligență artificială să înțeleagă structura internă a întreprinderii – sistemele, relațiile și constrângerile operaționale.

Acea infrastructură va oferi context structurat pe care multiple sisteme de inteligență artificială îl pot utiliza, indiferent dacă sunt asistenți de codare, agenți de suport sau unelte de automatizare operațională.

În acest sens, contextul devine o bază comună pentru inteligența artificială enterprise.

Multe companii construiesc asistenți de codare strâns legați de un singur model de bază. Tabnine, în schimb, permite întreprinderilor să conecteze diferite modele, în funcție de nevoile lor. De ce este importantă flexibilitatea modelului pentru evoluția pe termen lung a instrumentelor de dezvoltare cu inteligență artificială pentru întreprinderi?

Ecosistemul de inteligență artificială evoluează foarte rapid. Noi modele sunt lansate frecvent, și diferite modele au puncte forte în diferite domenii.

Întreprinderile nu ar trebui să fie nevoite să redeseneze fluxurile lor de dezvoltare de fiecare dată când peisajul modelului se schimbă. Permițând organizațiilor să aleagă și să comute între modele, oferim flexibilitate care ajută la protejarea strategiei lor de inteligență artificială pentru viitor.

Flexibilitatea modelului permite, de asemenea, organizațiilor să echilibreze performanța, costul, cerințele de confidențialitate și constrângerile de implementare.

Pe termen lung, întreprinderile vor opera probabil într-un mediu multi-model, și platformele de dezvoltare ar trebui să fie proiectate cu acea realitate în minte.

Pentru CTO și lideri de ingineri care evaluează platformele de dezvoltare cu inteligență artificială în prezent, care sunt cele mai mari greșeli pe care organizațiile le fac atunci când implementează unelte de codare cu inteligență artificială, și cum pot evita aceste greșeli?

O greșeală comună este concentrarea doar pe capacitatea modelului. Modelele mai mari sunt, într-adevăr, o componentă critică, dar fiabilitatea în medii reale depinde de cât de bine inteligența artificială înțelege sistemul în care operează.

O altă greșeală este implementarea uneltelor de inteligență artificială fără a lua în considerare cerințele de guvernanță și securitate. Întreprinderile au nevoie de politici clare cu privire la modul în care se accesează codul, modul în care se implementează modelele și modul în care se validează ieșirile.

În final, organizațiile se așteaptă adesea ca inteligența artificială să ofere beneficii imediate de productivitate fără a adapta fluxurile de lucru sau a oferi suficient context. Implementările de succes implică, de obicei, integrarea inteligenței artificiale în procesele de dezvoltare existente și conectarea acesteia la codul și arhitectura organizației.

Când aceste elemente se combină, inteligența artificială poate deveni un accelerator puternic pentru dezvoltarea software, și nu doar un alt instrument.

Mulțumim pentru acest interviu minunat; cititorii care doresc să afle mai multe despre Tabnine ar trebui să viziteze Tabnine.

Antoine este un lider vizionar și partener fondator al Unite.AI, condus de o pasiune neclintită pentru modelarea și promovarea viitorului inteligenței artificiale și roboticii. Un întreprinzător serial, el crede că inteligența artificială va fi la fel de disruptivă pentru societate ca și electricitatea și este adesea prins vorbind entuziast despre potențialul tehnologiilor disruptive și AGI.

Ca futurist, el este dedicat explorării modului în care aceste inovații vor modela lumea noastră. În plus, el este fondatorul Securities.io, o platformă axată pe investiții în tehnologii de ultimă generație care redefinesc viitorul și reshapă întregi sectoare.