Interviews

Itamar Friedman, administrerende direktør og medstifter af CodiumAI – Interviewserie

mm
Føj Unite.AI til dine foretrukne kilder på Google

Itamar Friedman er administrerende direktør og medstifter af CodiumAI. Codium fokuserer på “kodeintegritet”-siden af kodegenerering – generering af automatiserede tests, kodeforklaringer og gennemgang. De har offentliggjort forskning i generering af kodeopløsninger til konkurrenceprogrammeringsudfordringer, der overgår Google DeepMind.

Hvornår og hvordan blev du først interesseret i AI?

I 2009 arbejdede jeg hos Mellanox (Acq. af NVIDIA (NVDA )) og studerede elektroteknik. Da jeg indså, at mange af de kedelige udviklingsprocesser hos Mellanox kunne automatiseres med maskinelæringsalgoritmer, skiftede jeg mine hovedfag til optimering og maskinelæring og afsluttede en kandidatuddannelse i området. Allerede i 2010 arbejdede jeg på et dybtlæringprojekt (med 3 lag dyb neuralt netværk), der lagde grundstenen for min tid hos Alibaba, hvor jeg ledte en forskningsgruppe, der specialiserede sig i neuralt arkitektursøgning, modeltræning og opbygning af AutoML-værktøjer til udviklere. Omkring 2021 var jeg ikke bleg for at kalde vores arbejde “AI”, da store sprogmodeller blev kraftfulde værktøjer, og min forestilling om, hvad der kunne opnås med dem, voksede.

Din tidligere startup, Visualead, der fokuserede på computerseende, blev senere opkøbt af Alibaba Group. Hvad var denne startup, og hvilke var nogle af dine vigtigste erfaringer fra denne oplevelse?

Visualead specialiserede sig i scanning af logoer, QR-koder og alt imellem, herunder sikring og skjult information i billeder for at muliggøre sikker peer-to-peer-transaktion og engagement. Hos Visualead havde vi kørt algoritmer på mobile enheder siden 2012, herunder modeller. Det var en udfordring og svært at gøre det dengang, og vi lærte meget om at bygge effektive modeller og sikkerhedsforanstaltninger omkring disse statistiske væsener.

Den dag i dag anvender jeg stadig erfaringer fra den tid på nuværende projekter – f.eks. da vi byggede den open-source-løsningsgenereringsværktøj AlphaCodium, introducerede vi Flow Engineering-konceptet og anvendte dette koncept til at bygge en flow til at sikre LLM-modellernes output.

Kan du dele historien bag lanceringen af CodiumAI?

Hos Alibaba så jeg førstehånds, hvordan en fejl i koden kunne føre til et milliondollorproblem, og udfordringerne, udviklere stod over for for at holde trit med kodegenerering uden at ofre kvalitet eller integritet. Dette problem består, og i dag tilskrives lavkvalitetskode et trilliondollorproblem, der fortsætter med at vokse.

Holdet hos CodiumAI specialiserer sig i at bygge AI-berigede værktøjer i stor skala og er drevet af at tackle de smertepunkter, udviklere står over for. Med fødslen af nye LLM- og AI-kapaciteter forstod vi, at dette var vores chance for at bygge en holistisk kodeintegritetsplatform til at hjælpe travle hold som os selv med at reducere fejl og afværge andre integritetsproblemer. Da mere og mere kode blev genereret af AI, blev problemet med at benchmarkere denne kode og sikre, at den fungerede, som det var tænkt, et kritisk smertepunkt, som vi var drevet til at løse. At bygge AI-berigede værktøjer i stor skala og derfor benchmarking er et væsentligt koncept for os.

Som en gruppe af erfarne udviklere forstår vi det; at have med at gøre kedelige opgaver som test og kodegennemgang kan være frustrerende. Vi er højt motivationsdrevne til at enable travle hold til at øge og styre deres kodeintegritet.

Kan du beskrive, hvilke typer non-trivial analyse CodiumAI udfører på kode, og hvordan dette understøtter udviklere i at forbedre kodekvaliteten?

Indtil for nylig tilbød de eksisterende værktøjer til udviklere kun lidt værdi – men med ankomsten af LLM’er (ChatGPT, Copilot osv.) begynder kapaciteterne at overgå forventningerne, og støtten til udviklere er ikke længere trivial.

Codiumate Coding-Agent, der er udviklet af CodiumAI, tilbyder udviklere unikke værktøjer til at forbedre deres workflow og forbedre kodegenerering. Codiumate strømliner udviklingsprocessen ved at tilbyde automatiseret assistance under hele kodningsopgaven. Ved at anvende de eksisterende kodefragmenter, som en menneskelig udvikler fremhæver i deres miljø, kan agenten automatisk udarbejde en letforståelig og samlet udviklingsplan, skrive kode i overensstemmelse med denne plan, identificere duplikeret kode, som udvikleren måske ønsker at bruge eller fjerne, udarbejde dokumentation og foreslå tests for at sikre, at koden fungerer korrekt, før den deployes i et live-miljø.

Codiumate giver udviklerne en dybdegående adfærdsanalyse, der belyser mulige adfærdsmønstre og grene, som kode-under-test omfatter. Dette giver udvikleren mulighed for at undersøge den genererede kode og oprette tests, der dækker alle adfærdsmønstre, og dermed forbedrer koden mere end hvis udvikleren selv havde stået for alle mulige tilfælde.

Hvad specifikke funktioner tilbyder PR-Agenten til pull request-analyse, og hvordan strømliner den gennemgangsprocessen på platforme som GitHub og GitLab (GTLB )?

PR-Agenten tilbyder en række funktioner, der er designet til at forbedre og strømline pull request-analyse og gennemgangsprocessen på tværs af forskellige git-udbydere.

Automatisk PR-beskrivelsesgenerering genererer automatisk udførlige og detaljerede beskrivelser for pull requests. Denne funktion løser et almindeligt problem, hvor udviklere måske overser detaljerede PR-beskrivelser på grund af tidsbegrænsninger eller oversigt. Med automatiserede beskrivelser er hver PR udstyret med tilstrækkelig kontekst, hvilket gør det lettere for gennemgangere at forstå ændringerne uden at skulle tykke kodeforskellene igennem. Vi har også bygget ind automatiseret PR-gennemgang for at give udviklere en udførlig gennemgang af PR, hvilket giver mulighed for at identificere potentielle problemer som fejl, sikkerhedsåbninger eller kode luger proaktivt. Denne forudgående feedback giver udviklerne mulighed for at foretage korrektioner, før gennemgangsprocessen, og dermed forbedre kvaliteten af koden, der når gennemgangere.

Med hjælp af AI kan automatiserede kodeforslag også foreslå forbedringer eller alternative implementeringer direkte i PR-grænsefladen. Disse forslag kan være optimeringer, overholdelse af kodestandarder eller endda arkitektoniske forbedringer, der hjælper med at forbedre kodebasens kvalitet gradvist.

PR-Agenten understøtter adskillige muligheder for tilpasse kommandoerne, den tilbyder. En af de mest nyttige tilpasningsmuligheder er brugen af brugerdefinerede mærker til at forbedre organisation og administration af pull requests på platforme som GitHub og GitLab. Denne funktion bidrager til operationel effektivitet og klarhed i udviklings- og gennemgangsprocessen.

Hvordan genererer CodiumAI meningsfulde tests, og hvad gør disse tests mere effektive end standard enhedstests?

Vi forbedrer testgenerering ved at scanne kodebiblioteker for relevante kodefragmenter, der relaterer til koden under test. Ved at anvende chain-of-thought-prompts til at kortlægge alle mulige kodeadfærdsmønstre, herunder typiske stier og kanter, anvender vores tilgang kontekstspecifik hentning og tilpassede prompts, der er tilpasset forskellige programmeringssprog. Disse tilpassede prompts inkorporerer sprogdomæneekspertviden for at sikre, at tests opfylder branchestandarder. Derudover sætter CodiumAI specifikke køremiljøer op til bedre at kunne opdage fejl og generere selvhelbredende tests. Disse kapaciteter gør CodiumAI-genererede tests mere udførlige end standard enhedstests, der ofte overser uventede adfærdsmønstre på grund af udviklernes indbyggede fordomme og begrænsninger i at forudse alle mulige scenarier. Dette resulterer i tests, der ikke kun er udførlige, men også mere effektive til at afsløre subtile fejl og kanter.

Baseret på brugerfeedback, hvilke er de mest værdsatte funktioner i CodiumAI, og hvordan har disse funktioner påvirket udviklernes produktivitet?

Baseret på brugerfeedback, vi har modtaget, ser vi, at /spørge med kodeblokkontekst og /testgenerering-funktionerne af Codiumate-agenten er meget efterspurgte og forbedrer udviklernes workflow.

Med /spørge med kodeblokkontekst (se dokumentation her: /spørge) kan udviklere stille åbne spørgsmål om deres kode eller anmode om kodeforbedringer eller gennemgang under en gratis chatsession. Denne funktion er særligt nyttig til at opnå en dybere forståelse af kodebasen, da modellen beholder den fulde kontekst af projektet, hvilket giver mulighed for at besvare meget detaljerede og specifikke spørgsmål.

/testgenerering-værktøjet (se dokumentation her: /test) giver udviklere mulighed for at generere udførlige testssuites for deres kode med kun ét klik. At udforske kodeadfærd, identificere og løse fejl hurtigt og hurtigt udvide kodeoverlapp er en stor aktiv til produktivitet.

PR-Agentens /gennemgang-funktion (se dokumentation her – /gennemgang) scanner PR-kodeændringer og genererer automatisk en PR-gennemgang for at identificere problemer, før udviklere sender til produktion. Den

/beskriv-funktion (se dokumentation her – /beskriv) scanner PR-kodeændringer og genererer en beskrivelse for PR – titel, type, sammenfatning, gennemgang og mærker, hvilket sparer udviklere tid og energi, som de bedre kan anvende på mere krævende eller kreative opgaver.

Hvordan identificerer CodiumAI kanter og mistænkelige adfærdsmønstre i koden?

Vores værktøjer scanner udviklernes repository for relevante kodefragmenter, der relaterer til koden under test, og ved at anvende chain-of-thought-prompts kortlægger vi alle mulige kodeadfærdsmønstre og viser dem til udvikleren. CodiumAI kan identificere mistænkelige adfærdsmønstre direkte (uanset testgenerering), ved at identificere afvigelser eller inkonsistenser mellem forskellige kodefragmenter eller kodefragmenter og den tilhørende dokumentation.

CodiumAI understøtter større programmeringssprog; kan du forklare, hvordan det håndterer sprog-specifikke nuancer i kodeanalyse og testgenerering?

For større programmeringssprog går vores platform ud over grundlæggende understøttelse ved at implementere specialiserede teknikker. Disse inkluderer kontekstspecifik hentning og tilpassede prompts, der er tilpasset hvert sprogs unikke syntaks og semantik. Disse tilpassede prompts inkorporerer sprogdomæneekspertviden for at opnå branchestandarder. Derudover giver vi mulighed for at oprette et køremiljø specifikt for disse sprog, hvilket forbedrer vores værktøjs evne til at opdage fejl og generere selvhelbredende tests.

For mindre almindelige sprog udnytter vi store sprogmodeller (LLM’er), der naturligt forstår multiple programmeringssprog. Dette suppleres af vores generelle kontekstinfrastruktur og adaptivt promptsystem, der tilsammen faciliterer præcis kodeanalyse og testgenerering på tværs af diverse programmeringsmiljøer. Ved at tage en dual-level-tilgang kan vi sikre udførlig understøttelse uanset det anvendte programmeringssprog.

Hvad er planlagt for fremtidige forbedringer af CodiumAI for at yderligere støtte og forenkle udviklernes opgaver?

CodiumAIs fremtidige udviklingsstrategi fokuserer på at forbedre det tilgængelige sæt af AI-værktøjer til at integrere næsten over alle stadier af softwareudviklingslivscyklussen. Ved at anvende avancerede flow-engineering-principper til at strømline og forenkle udviklernes workflows vil vores agenter give betydelig værdi på tværs af forskellige udviklingsstadier. Derudover er CodiumAI dedikeret til at sikre, at disse værktøjer excellerer i at håndtere komplekse, virkelige kode- og tekstscenarier, hvilket gør dem uundværlige i daglige programmeringsopgaver. Denne holistiske tilgang sigter mod at hæve vores tilbud som et robust, dagligt brugsværktøj til udviklere, der forbedrer produktivitet og effektivitet i softwareudviklingsprocessen.

Tak for det gode interview, læsere, der ønsker at lære mere, skal besøge CodiumAI.

Antoine er en visionær leder og medstifter af Unite.AI, drevet af en urokkelig passion for at forme og fremme fremtiden for AI og robotteknologi. En serieiværksætter, han tror, at AI vil være lige så omvæltende for samfundet som elektricitet, og han bliver ofte fanget i at tale om potentialet for omvæltende teknologier og AGI.

Som en futurist, er han dedikeret til at udforske, hvordan disse innovationer vil forme vores verden. Derudover er han grundlægger af Securities.io, en platform, der fokuserer på at investere i skarp teknologi, der gendefinerer fremtiden og omformer hele sektorer.