stub Itamaras Friedmanas, „CodiumAI“ generalinis direktorius ir vienas iš įkūrėjų – Interviu serija – Unite.AI
Susisiekti su mumis

Interviu

Itamaras Friedmanas, „CodiumAI“ interviu serijos generalinis direktorius ir vienas iš įkūrėjų

mm

paskelbta

 on

Itamaras Friedmanas yra bendrovės vadovas ir vienas iš įkūrėjų CodiumAI. „Codium“ daugiausia dėmesio skiria kodo generavimo „kodo vientisumo“ pusei – generuoja automatinius testus, kodo paaiškinimus ir apžvalgas. Jie išleido mokslinius tyrimus, kaip generuoti kodo sprendimus konkurencingiems programavimo iššūkiams, kurie pranoksta „Google DeepMind“.

Kada ir kaip iš pradžių susidomėjote AI?

2009 m. dirbau Mellanox (Acq. by NVIDIA) ir studijavau elektros inžineriją. Suprasdamas, kad daugelį varginančių Mellanox kūrimo procesų galima automatizuoti mašininio mokymosi algoritmais, pakeičiau savo specialybę į optimizavimą ir mašininį mokymąsi ir baigiau kosmoso magistrantūros studijas. 2010 m. jau dirbau su giluminio mokymosi projektu (su 3 sluoksnių giluminiu neuroniniu tinklu), kuris padėjo pagrindus mano darbo laikui Alibaba, kur vadovavau tyrimų grupei, kurios specializacija yra neuroninės architektūros paieška, mokymo modeliai ir AutoML įrankių kūrėjams kūrimas. Apie 2021 m. nesigėdijau mūsų darbų pavadinti „AI“, nes dideli kalbų modeliai tapo galingais įrankiais, o mano įsivaizdavimas, ką su jais galima pasiekti, augo.

Jūsų ankstesnį į kompiuterinę viziją orientuotą paleidimą „Visualead“ galiausiai įsigijo „Alibaba Group“. Kas buvo šis paleidimas ir kokie buvo pagrindiniai šios patirties atradimai?

„Visualead“ specializuojasi nuskaitydamas logotipus, QR kodus ir viską, kas yra tarp jų, įskaitant informacijos apsaugą ir slėpimą vaizduose, kad būtų užtikrintos saugios P2P operacijos ir įsitraukimas. „Visualead“ nuo 2012 m. vykdėme algoritmus mobiliuosiuose įrenginiuose, įskaitant modelius. Tais laikais tai padaryti buvo sudėtinga ir sudėtinga, ir mes daug sužinojome apie efektyvių modelių ir apsauginių turėklų kūrimą aplink šias statistines būtybes.

Iki šiol iš to laiko išmoktas pamokas taikau dabartiniams projektams, kurių imuosi, pavyzdžiui, kai sukūrėme atvirojo kodo sprendimų generavimo įrankį. AlphaCodium pristatėme srauto inžinerijos koncepciją ir pritaikėme šią koncepciją kurdami srautą į apsauginių turėklų LLM modelių išvestį.

Ar galėtumėte pasidalinti CodiumAI paleidimo atsiradimo istorija?

„Alibaba“ iš pirmų lūpų pamačiau, kaip kodo klaida gali sukelti milijonų dolerių problemą ir iššūkius, su kuriais susiduria kūrėjai, norėdami neatsilikti nuo kodo generavimo neprarandant kokybės ar vientisumo. Ši problema išlieka ir šiandien žemos kokybės kodas priskiriamas trilijonų dolerių problemai, kuri ir toliau auga.

„CodiumAI“ komanda specializuojasi kuriant DI įgalintus įrankius plačiu mastu ir yra verčiama spręsti problemas, su kuriomis susiduria kūrėjai. Atsiradus naujoms LLM ir AI galimybėms, supratome, kad tai buvo mūsų galimybė sukurti holistinę kodo vientisumo platformą, kuri padėtų užimtoms komandoms, tokioms kaip mes, sumažinti klaidas ir sušvelninti kitas vientisumo problemas. Kadangi dirbtinis intelektas sugeneravo vis daugiau kodo, šio kodo palyginimo ir įsitikinimo, kad jis veikia taip, kaip numatyta, problema tapo labai svarbia problema, kurią turėjome išspręsti. Dirbtinio intelekto įgalintų įrankių kūrimas dideliu mastu, todėl lyginamoji analizė yra esminė mūsų koncepcija.

Kaip patyrusių kūrėjų grupė, mes tai gauname; varginančių užduočių, tokių kaip testavimas ir kodo peržiūra, tvarkymas gali būti varginantis. Esame labai orientuoti į misiją, kad pagaliau užimtos komandos galėtų padidinti ir valdyti savo kodo vientisumą.

Ar galite apibūdinti, kokių tipų nebanalią kodo analizę atlieka CodiumAI ir kaip tai padeda kūrėjams gerinti kodo kokybę?

Dar visai neseniai esami kūrėjams prieinami įrankiai teikė mažai naudos, tačiau atsiradus LLM (ChatGPT, Copilot ir kt.) galimybės pradeda viršyti lūkesčius, o kūrėjams teikiama pagalba nebėra menka.

CodiumAI sukurtas „Codiumate Coding-Agent“ siūlo kūrėjams unikalius įrankius, skirtus pagerinti darbo eigą ir pagerinti kodų generavimą. Codiumate supaprastina kūrimo procesą, teikdama automatizuotą pagalbą atliekant kodavimo užduotį. Naudodamas esamus kodo fragmentus, kuriuos kūrėjas pabrėžia savo aplinkoje, agentas gali automatiškai sudaryti lengvai vykdomą ir nuoseklų plėtros planą, parašyti kodą pagal tą planą, nustatyti pasikartojančius kodus, kuriuos kūrėjas gali norėti naudoti arba pašalinti, parengti dokumentaciją. , ir pasiūlyti testus, kad įsitikintų, jog kodas tinkamai veikia prieš jį diegiant gyvoje aplinkoje.

Codiumate suteikia kūrėjams nuodugnią elgesio analizę, nušviečiančią galimą elgesį ir atšakas, kurias apima bandomas kodas. Tai leidžia kūrėjui išnagrinėti sugeneruotą kodą ir sukurti testus, kurie (šakos) apima visas elgsenas, todėl kodą patobulina labiau nei tuo atveju, jei kūrėjas pats atsižvelgė į visus galimus atvejus.

Kokias konkrečias funkcijas teikia PR-agentas, skirtas ištraukti užklausų analizei ir kaip jis supaprastina peržiūros procesą tokiose platformose kaip „GitHub“ ir „GitLab“?

PR-Agent siūlo daugybę funkcijų, skirtų patobulinti ir supaprastinti ištraukimo užklausų (PR) analizės ir peržiūros procesą įvairiuose „git“ teikėjuose.

Automatinis PR aprašymo generavimas automatiškai generuoja išsamius ir išsamius ištraukimo užklausų aprašymus. Ši funkcija sprendžia įprastas problemas, dėl kurių kūrėjai gali praleisti išsamius viešųjų ryšių aprašymus dėl laiko apribojimų ar priežiūros. Naudojant automatizuotus aprašymus, kiekvienas PR turi pakankamai konteksto, todėl recenzentams lengviau suprasti pakeitimus, nereikia daug iššifruoti kodo skirtumų. Taip pat įdiegėme automatinę viešųjų ryšių peržiūrą, kad kūrėjams pateiktume išsamią viešųjų ryšių apžvalgą, kuri leidžia jiems aktyviai pastebėti galimas problemas, pvz., klaidas, saugos spragas ar kodo kvapus. Šis prevencinis grįžtamasis ryšys leidžia kūrėjams atlikti pataisymus prieš peržiūros procesą, taip pagerinant recenzentus pasiekiančio kodo kokybę.

Naudojant AI, automatiniai kodo pasiūlymai taip pat gali pasiūlyti patobulinimų ar alternatyvių diegimų tiesiogiai PR sąsajoje. Šie pasiūlymai gali būti optimizavimas, kodavimo standartų laikymasis ar net architektūriniai patobulinimai, padedantys laipsniškai pakelti kodo bazės kokybę.

PR-Agent palaiko daugybę siūlomų komandų tinkinimo parinkčių. Viena iš naudingiausių tinkinimo parinkčių yra tinkintų etikečių naudojimas, siekiant pagerinti ištraukimo užklausų organizavimą ir valdymą tokiose platformose kaip „GitHub“ ir „GitLab“. Ši funkcija prisideda prie veiklos efektyvumo ir kūrimo bei peržiūros procesų aiškumo.

Kaip CodiumAI generuoja reikšmingus testus ir kas daro šiuos testus veiksmingesnius už standartinius vienetų testus?

Patobuliname testų generavimą, nuskaitydami kodų saugyklas, ieškodami atitinkamų fragmentų, susijusių su bandomu kodu. Naudodami minčių grandinės raginimus, kad nustatytų visas galimas kodo elgsenas, įskaitant tipiškus kelius ir kraštutinius atvejus, mūsų metodas naudoja konkrečią konteksto gavimą ir pritaikytus raginimus, pritaikytus skirtingoms programavimo kalboms, įterpdami ekspertų žinias, kad testai atitiktų pramonės standartus. Be to, CodiumAI nustato konkrečias vykdymo aplinkas, kad būtų galima geriau aptikti klaidas ir generuoti savigydos testus. Dėl šių galimybių CodiumAI sukurti testai yra išsamesni nei standartiniai vienetų testai, kurie dažnai praleidžia nenumatytą elgesį dėl kūrėjams būdingų šališkumo ir apribojimų numatant visus galimus scenarijus. Dėl to atliekami testai, kurie yra ne tik išsamūs, bet ir veiksmingesni atskleidžiant subtilias klaidas ir kraštutinius atvejus.

Remiantis vartotojų atsiliepimais, kokios yra labiausiai vertinamos „CodiumAI“ funkcijos ir kaip šios funkcijos paveikė kūrėjų produktyvumą?

Remdamiesi vartotojų atsiliepimais, kuriuos gavome, matome, kad /klausti su kodo bloko kontekstu ir /bandomoji karta Codiumate agento funkcijos yra labai paklausios ir pagerina kūrėjo darbo eigą.

Su /klausti su kodo bloko kontekstu (žiūrėkite dokumentaciją čia: /paklausti) kūrėjai gali užduoti atvirus klausimus apie savo kodą arba paprašyti kodo patobulinimų ar peržiūrų nemokamos pokalbio sesijos metu. Ši funkcija ypač naudinga norint giliau suprasti kodų bazę, nes modelis išlaiko visą projekto kontekstą, leidžiantį atsakyti į labai išsamius ir specifinius klausimus.

Šios /bandomoji karta (žiūrėkite dokumentaciją čia: /testas) įrankis leidžia kūrėjams sugeneruoti išsamius savo kodo bandymų rinkinius vienu paspaudimu. Kodo veikimo tyrimas, klaidų nustatymas ir greitas pašalinimas bei sparčiai plečiama kodo aprėptis yra didžiulis produktyvumo pranašumas.

PR agentas /apžvalga (dokumentaciją žiūrėkite čia – /apžvalga) funkcija nuskaito PR kodo pakeitimus ir automatiškai generuoja PR peržiūrą, kad nustatytų problemas prieš kūrėjams pradedant gaminti. The

/apibūdinti (dokumentaciją žiūrėkite čia – /apibūdinti) funkcija nuskaito PR kodo pakeitimus ir generuoja PR aprašymą – pavadinimą, tipą, santrauką, apžvalgą ir etiketes, taip taupant kūrėjų laiką ir energiją, kurią jie gali geriau pritaikyti sudėtingesnėms ar kūrybiškesnėms užduotims.

Kaip CodiumAI nustato kraštutinius atvejus ir įtartinus veiksmus kode?

Mūsų įrankiai nuskaito kūrėjo saugyklą, ieškodami atitinkamų kodo fragmentų, susijusių su bandomu kodu, ir, naudodami minčių grandinės raginimus, susiejame visus galimus kodo veiksmus ir parodome juos kūrėjui. „CodiumAI“ gali tiesiogiai nustatyti įtartiną elgesį (neatsižvelgiant į bandymų kartas), nustatydama skirtingų kodo fragmentų arba kodo fragmentų ir pridedamų dokumentų neatitikimus arba neatitikimus.

CodiumAI palaiko pagrindines programavimo kalbas; ar galite paaiškinti, kaip jis tvarko su kalbai būdingus niuansus analizuojant kodą ir generuojant testus?

Pagrindinėms programavimo kalboms mūsų platforma apima ne tik pagrindinį palaikymą, bet ir specialius metodus. Tai apima konkrečiam kontekstui pritaikytą gavimą ir tinkintus raginimus, pritaikytus kiekvienos kalbos unikaliai sintaksei ir semantikai. Šie tinkinti raginimai apima kalbos srities ekspertų žinias, kad būtų gauti pramonės lygio rezultatai. Be to, suteikiame galimybes sukurti vykdymo aplinką specialiai šioms kalboms, o tai pagerina mūsų įrankio gebėjimą aptikti klaidas ir efektyviai generuoti savigydos testus.

Retesnėms kalboms naudojame didelių kalbų modelius (LLM), kurie savaime supranta kelias programavimo kalbas. Tai papildo mūsų bendra konteksto infrastruktūra ir prisitaikanti raginimo sistema, kuri kartu palengvina tikslią kodo analizę ir testų generavimą įvairiose programavimo aplinkose. Taikydami dviejų lygių metodą galime užtikrinti visapusišką palaikymą nepriklausomai nuo naudojamos programavimo kalbos.

Kokie būsimi „CodiumAI“ patobulinimai planuojami toliau palaikyti ir supaprastinti kūrėjų užduotis?

Būsimoje „CodiumAI“ kūrimo strategijoje pabrėžiamas turimo AI įrankių rinkinio tobulinimas, kad būtų galima sklandžiai integruotis visuose programinės įrangos kūrimo ciklo etapuose. Taikydami pažangius srautų inžinerijos principus, kad supaprastintų ir supaprastintų kūrėjų darbo eigą, mūsų agentai suteiks didelę vertę įvairiuose kūrimo etapuose. Be to, CodiumAI yra įsipareigojusi užtikrinti, kad šie įrankiai puikiai valdytų sudėtingus, realaus pasaulio kodo ir teksto scenarijus, todėl jie yra būtini atliekant kasdienes programavimo užduotis. Šiuo holistiniu požiūriu siekiama patobulinti mūsų pasiūlą kaip patikimą, kasdien naudojamą įrankį kūrėjams, didinančią programinės įrangos kūrimo proceso produktyvumą ir efektyvumą.

Dėkojame už puikų interviu, skaitytojai, norintys sužinoti daugiau, turėtų apsilankyti CodiumAI.

Unite.AI įkūrėjas ir narys „Forbes“ technologijų taryba, Antuanas yra a futuristas kuris aistringai domisi AI ir robotikos ateitimi.

Jis taip pat yra įkūrėjas Vertybiniai popieriai.io, svetainė, kurioje pagrindinis dėmesys skiriamas investicijoms į trikdančias technologijas.