Interviuri

Itamar Friedman, CEO & Co-Founder of CodiumAI – Interviu

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

Itamar Friedman este CEO și co-fondator al CodiumAI. Codium se axează pe partea de “integritate a codului” a generării de cod – generarea de teste automate, explicații de cod și revizuiri. Ei au publicat cercetări despre generarea de soluții de cod pentru provocările de programare competitive care depășesc Google DeepMind.

Când și cum ați devenit inițial interesat de IA?

În 2009, am lucrat la Mellanox (Acq. de NVIDIA (NVDA )) și am studiat ingineria electrică. Realizând că multe dintre procesele de dezvoltare tedioase de la Mellanox ar putea fi automatizate prin algoritmi de învățare automată, am schimbat specializările mele în optimizare și învățare automată și am absolvit un master în acest domeniu. Până în 2010, eram deja implicat într-un proiect de învățare profundă (cu o rețea neuronală adâncă de 3 straturi), punând bazele pentru perioada mea la Alibaba, unde am condus un grup de cercetare specializat în căutarea arhitecturii neuronale, antrenarea modelelor și construirea unor instrumente AutoML pentru dezvoltatori. În jurul anului 2021, nu mai eram rușinat să numesc munca noastră “IA”, deoarece modelele de limbaj mare au devenit instrumente puternice, iar imaginația mea despre ceea ce putea fi realizat cu ele a crescut.

Fostul dvs. startup axat pe viziunea computerului, Visualead, a fost în cele din urmă achiziționat de Alibaba Group, ce a fost acest startup și care au fost unele dintre principalele concluzii pe care le-ați tras din această experiență?

Visualead s-a specializat în scanarea logourilor, codurilor QR și a tuturor celorlalte, inclusiv securizarea și ascunderea informațiilor în imagini pentru a permite tranzacții și angajamente sigure P2P. La Visualead, am rulat algoritmi pe dispozitive mobile încă din 2012, inclusiv modele. A fost o provocare și o chestiune dificilă să facem acest lucru în acea perioadă, și am învățat mult despre construirea de modele eficiente și despre gardurile de protecție din jurul acestor creaturi statistice.

Până în ziua de astăzi, încă aplic lecțiile învățate din acea perioadă proiectelor curente pe care le întreprind – de exemplu, atunci când am construit instrumentul de generare de soluții deschis AlphaCodium, am introdus conceptul de inginerie a fluxului și am aplicat acest concept pentru a construi un flux care să protejeze ieșirile modelelor LLM.

Ne puteți împărtăși povestea de genesis din spatele lansării CodiumAI?

La Alibaba, am văzut direct cum o eroare în cod poate duce la o problemă de un milion de dolari și provocările cu care se confruntă dezvoltatorii pentru a menține generarea de cod fără a sacrifica calitatea sau integritatea. Această problemă persistă, și astăzi, codul de calitate scăzută a fost atribuit unei probleme de trilion de dolari care continuă să crească.

Echipa de la CodiumAI se specializează în construirea de instrumente împuternicite de IA la scară și este condusă de dorința de a aborda punctele dureroase cu care se confruntă dezvoltatorii. Cu apariția noilor capacități LLM și IA, am înțeles că acesta este momentul nostru de a construi o platformă holistică de integritate a codului pentru a ajuta echipele ocupate, cum suntem noi, să reducă erorile și să atenueze alte probleme de integritate. Pe măsură ce tot mai mult cod este generat de IA, problema benchmarkării acestui cod și a asigurării că funcționează așa cum este intenționat a devenit un punct dureros critic și unul pe care am fost determinați să îl rezolvăm. Construirea de instrumente împuternicite de IA la scară și, prin urmare, benchmarkarea este un concept esențial pentru noi.

Ca grup de dezvoltatori experimentați, înțelegem; a face față sarcinilor tedioase, cum ar fi testarea și revizuirea codului, poate fi frustrant. Suntem foarte motivați să permitem în cele din urmă echipelor ocupate să crească și să gestioneze integritatea codului lor.

Ne puteți descrie ce tipuri de analize ne-triviale efectuează CodiumAI asupra codului și cum acestea sprijină dezvoltatorii în îmbunătățirea calității codului?

Până de curând, instrumentele existente disponibile pentru dezvoltatori oferă puțină valoare, dar cu sosirea LLM-urilor (ChatGPT, Copilot etc.) capacitățile încep să depășească așteptările, și suportul disponibil pentru dezvoltatori nu mai este trivial.

Agentul de codare Codiumate dezvoltat de CodiumAI oferă dezvoltatorilor instrumente unice pentru a-și îmbunătăți fluxul de lucru și a-și îmbunătăți generarea de cod. Codiumate simplifică procesul de dezvoltare prin oferirea de asistență automată pe tot parcursul sarcinii de codare. Folosind fragmentele de cod existente pe care un dezvoltator le evidențiază în mediul său, agentul poate să proiecteze automat un plan de dezvoltare ușor de urmat și coerent, să scrie cod conform acelui plan, să identifice codul duplicat pe care dezvoltatorul ar putea să-l folosească sau să-l elimine, să proiecteze documentație și să sugereze teste pentru a asigura că codul funcționează corect înainte de a fi implementat într-un mediu live.

Codiumate oferă dezvoltatorilor o analiză comportamentală în profunzime – iluminând comportamente și ramuri posibile pe care codul sub test le cuprinde. Acest lucru permite dezvoltatorului să examineze codul generat și să creeze teste care (ramifică) acoperă toate comportamentele, îmbunătățind astfel codul mai mult decât dacă dezvoltatorul ar fi luat în considerare toate cazurile posibile singur.

Ce funcționalități specifice oferă agentul PR pentru analiza cererilor de extragere și cum simplifică procesul de revizuire pe platforme precum GitHub și GitLab (GTLB )?

Agentul PR oferă o varietate de funcționalități proiectate pentru a îmbunătăți și simplifica analiza și procesul de revizuire a cererilor de extragere pe diverse furnizori de git.

Generarea automată a descrierilor pentru cererile de extragere generează automat descrieri cuprinzătoare și detaliate pentru cererile de extragere. Această funcționalitate abordează problemele comune în care dezvoltatorii ar putea să omită descrieri detaliate pentru cererile de extragere din cauza lipsei de timp sau a omisiunii. Cu descrieri automate, fiecare cerere de extragere este dotată cu context suficient, făcându-le mai ușor revizorilor să înțeleagă schimbările fără a fi nevoiți să descifreze diferențele de cod în mod extensiv.

Prin utilizarea IA, sugestiile automate de cod pot sugera, de asemenea, îmbunătățiri sau implementări alternative direct în interfața cererii de extragere. Aceste sugestii pot fi optimizări, respectarea standardelor de codare sau chiar îmbunătățiri arhitecturale, ajutând la ridicarea calității bazei de cod în mod incremental.

Agentul PR sprijină numeroase opțiuni pentru personalizarea comenzilor pe care le oferă. Una dintre cele mai utile opțiuni de personalizare este utilizarea etichetelor personalizate pentru a îmbunătăți organizarea și gestionarea cererilor de extragere pe platforme precum GitHub și GitLab. Această funcționalitate contribuie la eficiența operațională și la claritatea proceselor de dezvoltare și revizuire.

Cum generează CodiumAI teste semnificative și ce face aceste teste mai eficiente decât testele unitare standard?

Îmbunătățim generarea de teste prin scanarea depozitelor de cod pentru fragmente de cod relevante legate de codul sub test. Utilizând prompturi de lanț de gândire pentru a cartografia toate comportamentele posibile de cod, inclusiv căi tipice și cazuri limită, abordarea noastră utilizează preluarea contextului specific și prompturi personalizate adaptate la diferite limbi de programare, încorporând cunoștințe de expertiză din domeniu pentru a asigura că testele îndeplinesc standardele industriale. În plus, CodiumAI configurează medii de rulare specifice pentru a detecta erorile și a genera teste auto-vindecătoare. Aceste capacități fac teste generate de CodiumAI mai cuprinzătoare decât testele unitare standard, care adesea omit comportamente neintenționate din cauza prejudecăților inerente ale dezvoltatorilor și limitărilor în a prevedea toate scenariile posibile.

Pe baza feedback-ului utilizatorilor, care sunt cele mai apreciate funcționalități ale CodiumAI și cum au aceste funcționalități impactat productivitatea dezvoltatorilor?

Pe baza feedback-ului pe care l-am primit, observăm că funcționalitățile /ask cu context de bloc de cod și /generare de teste ale agentului Codiumate sunt foarte solicitate și îmbunătățesc fluxul de lucru al dezvoltatorilor.

Prin /ask cu context de bloc de cod (a se vedea documentația aici: /ask), dezvoltatorii pot pune întrebări deschise despre codul lor sau pot solicita îmbunătățiri de cod sau revizuiri în timpul unei sesiuni de chat gratuite. Această funcționalitate este deosebit de benefică pentru a obține o înțelegere mai profundă a bazei de cod, deoarece modelul păstrează contextul complet al proiectului, permițându-i să abordeze întrebări foarte detaliate și specifice.

Instrumentul /generare de teste (a se vedea documentația aici: /test) permite dezvoltatorilor să genereze seturi de teste cuprinzătoare pentru codul lor cu doar un clic. Explorarea comportamentului codului, identificarea și rezolvarea promptă a erorilor și extinderea rapidă a acoperirii codului este un activ de productivitate imens.

/review (a se vedea documentația aici – /review) funcționează prin scanarea modificărilor de cod din cererile de extragere și generarea automată a unei revizuiri a cererii de extragere pentru a detecta problemele înainte ca dezvoltatorii să le trimită în producție.

/descrie (a se vedea documentația aici – /describe) scanează modificările de cod din cererile de extragere și generează o descriere pentru cererea de extragere – titlu, tip, rezumat, demonstrație și etichete, economisind timpul și energia dezvoltatorilor, pe care o pot aplica mai bine pentru sarcini mai solicitante sau creative.

Cum identifică CodiumAI cazurile limită și comportamentele suspecte în cod?

Instrumentele noastre scanează depozitul de cod al dezvoltatorului pentru fragmente de cod relevante care se referă la codul sub test și, utilizând prompturi de lanț de gândire, cartografiem toate comportamentele posibile de cod și le afișăm dezvoltatorului. CodiumAI poate identifica comportamente suspecte direct (indiferent de generarea de teste), prin identificarea discrepanțelor sau a incoerențelor dintre diferite fragmente de cod sau între fragmente de cod și documentația însoțitoare.

CodiumAI suportă limbaje de programare majore; ne puteți explica cum abordează nuanțele limbajului specific în analiza și generarea de cod?

Pentru limbajele de programare majore, platforma noastră merge dincolo de suportul de bază prin implementarea de tehnici specializate. Acestea includ preluarea contextului specific și prompturi personalizate adaptate la sintaxa și semantica unică a fiecărei limbi, încorporând cunoștințe de expertiză din domeniu pentru a obține rezultate la nivelul industriei. În plus, oferim capacități de a stabili un mediu de rulare specific pentru aceste limbi, ceea ce îmbunătățește capacitatea instrumentului nostru de a detecta erorile și a genera teste auto-vindecătoare.

Pentru limbajele mai puțin comune, ne bazăm pe modelele de limbaj mare (LLM) care înțeleg în mod inerent multiple limbaje de programare. Acest lucru este completat de infrastructura noastră generală de context și de sistemul nostru de prompturi adaptative, care împreună facilitează analiza și generarea de cod precisă în diverse medii de programare. Prin abordarea la nivel dual, putem asigura suport cuprinzător, indiferent de limba de programare utilizată.

Ce îmbunătățiri viitoare sunt planificate pentru CodiumAI pentru a sprijini și simplifica sarcinile dezvoltatorilor?

Strategia de dezvoltare viitoare a CodiumAI se axează pe îmbunătățirea gamei de instrumente IA disponibile pentru a se integra perfect în toate etapele ciclului de viață al dezvoltării software. Prin aplicarea principiilor avansate de inginerie a fluxului pentru a simplifica și a fluidiza fluxurile de lucru ale dezvoltatorilor, agenții noștri vor oferi valoare semnificativă în diferite etape ale dezvoltării. În plus, CodiumAI este dedicat asigurării că aceste instrumente excelează în gestionarea scenariilor complexe și realiste de cod și text, făcându-le indispensabile în sarcinile zilnice de programare. Această abordare holistică are ca scop ridicarea ofertei noastre la nivelul unui instrument robust și utilizat zilnic pentru dezvoltatori, îmbunătățind productivitatea și eficiența în procesul de dezvoltare software.

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

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.