Intervjuer

Itamar Friedman, CEO og medgrunnlegger av CodiumAI – Intervju-serie

mm
Legg til Unite.AI blant dine foretrukne kilder på Google

Itamar Friedman er CEO og medgrunnlegger av CodiumAI. Codium fokuserer på “kode-integritet”-siden av kode-generering — generering av automatiserte tester, kode-forklaringer og -gjennomganger. De har publisert forskning på generering av kode-løsninger for konkurranse-utfordringer som overgår Google DeepMind.

Når og hvordan ble du først interessert i AI?

I 2009 arbeidet jeg i Mellanox (Acq. av NVIDIA (NVDA )) og studerte elektroteknikk. Da jeg innsett at mange av de kjedelige utviklingsprosessene i Mellanox kunne automatiseres med maskinlæring-algoritmer, skiftet jeg hovedfag til optimering og maskinlæring og fullførte en mastergrad i faget. Allerede i 2010 arbeidet jeg på et dyp-læring-prosjekt (med 3 lag dyp neural nettverk) som la grunnlaget for min tid i Alibaba, der jeg ledet en forskningsgruppe som spesialiserte seg på neural arkitektur-søk, modell-trening og bygging av AutoML-verktøy for utviklere. Rundt 2021 var jeg ikke redd for å kalle vårt arbeid “AI”, da store språk-modeller ble kraftfulle verktøy, og min forestilling om hva som kunne oppnås med dem økte.

Din tidligere startup, Visualead, som fokuserte på datavisualisering, ble til slutt kjøpt av Alibaba Group. Hva var denne startup-en, og hva var noen av dine viktigste erfaringer fra denne opplevelsen?

Visualead spesialiserte seg på å scanne logoer, QR-koder og alt imellom, inkludert sikring og skjuling av informasjon i bilder for å muliggjøre trygg P2P-transaksjoner og engasjement. Hos Visualead kjørte vi algoritmer på mobile enheter allerede i 2012, inkludert modeller. Det var utfordrende og triksy å gjøre dette på den tiden, og vi lærte mye om å bygge effektive modeller og sikkerhetsforanstaltninger rundt disse statistiske skapningene.

Fremdeles i dag bruker jeg erfaringer fra den tiden på nåværende prosjekter – for eksempel da vi bygget den åpne kilde-kode-løsnings-verktøyet AlphaCodium introduserte vi konseptet Flow Engineering og anvendte dette konseptet for å bygge en flyt for å sikre LLM-modell-utdata.

Kunne du dele opphavshistorien bak lanseringen av CodiumAI?

Hos Alibaba så jeg selv hvordan en feil i kode kunne føre til et million-dollars problem og utfordringene utviklere møtte for å holde tritt med kode-generering uten å ofre kvalitet eller integritet. Dette problemet består, og i dag har lavkvalitetskode blitt tilskrevet et trillion-dollars problem som fortsatt vokser.

Teamet i CodiumAI spesialiserer seg på å bygge AI-utrustede verktøy i stor skala og drives av å løse smertepunktene utviklere møter. Med fødselen av nye LLM og AI-kapasiteter, forstod vi at dette var vår mulighet til å bygge en holistisk kode-integritets-plattform for å hjelpe travle team som oss selv å redusere feil og mildne andre integritets-problemer. Ettersom mer og mer kode ble generert av AI, ble problemet med å benchmarkere denne koden og sikre at den fungerte som ønsket, et kritisk smertepunkt som vi var drevet til å løse. Bygging av AI-utrustede verktøy i stor skala, og derfor benchmarking, er et essensielt konsept for oss.

Som en gruppe erfarna utviklere, forstår vi det; å håndtere kjedelige oppgaver som testing og kode-gjennomgang kunne være frustrerende. Vi er høyt motiverte til å til slutt muliggjøre for travle team å øke og håndtere sin kode-integritet.

Kan du beskrive hvilke typer ikke-trivielle analyser CodiumAI utfører på kode, og hvordan dette støtter utviklere i å forbedre kode-kvalitet?

Frem til nylig tilbød de eksisterende verktøyene til utviklere liten verdi – men med ankomsten av LLM (ChatGPT, Copilot osv.) begynner kapasitetene å overgå forventningene, og støtten tilgjengelig for utviklere er ikke lenger trivial.

Codiumate Coding-Agent utviklet av CodiumAI tilbyr utviklere unike verktøy for å forbedre sin arbeidsflyt og forbedre kode-generering. Codiumate strømlinjeformer utviklingsprosessen ved å tilby automatisert assistanse gjennom hele kodingsoppgaven. Ved å bruke eksisterende kode-utklipp som en menneskelig utvikler høydepunkter i sin miljø, kan agenten automatisk utarbeide en enkel å følge og sammenhengende utviklingsplan, skrive kode i henhold til denne planen, identifisere duplikat-kode utvikleren kan ønske å bruke eller fjerne, utarbeide dokumentasjon og foreslå tester for å sikre at koden fungerer korrekt før den deployes i en live-miljø.

Codiumate gir utviklere en dybde-behavior-analyse – belysning mulig atferd og grener koden-under-test omfatter. Dette tillater utvikleren å undersøke den genererte koden og lage tester som (gren) dekker alle atferder, og dermed forbedre koden mer enn hvis utvikleren hadde tatt hensyn til alle mulige tilfeller på egen hånd.

Hva spesifikke funksjoner tilbyr PR-Agenten for pull-forespørsel-analyse, og hvordan strømlinjeformer den gjennomgangsprosessen på plattformer som GitHub og GitLab (GTLB )?

PR-Agenten tilbyr en rekke funksjoner designet for å forbedre og strømlinjeforme pull-forespørsel-analyse og -gjennomgangsprosessen på tvers av ulike git-tilbydere.

Automatisk PR-beskrivelse-generering genererer automatisk omfattende og detaljerte beskrivelser for pull-forespørsler. Denne funksjonen løser vanlige problemer der utviklere kan hoppe over detaljerte PR-beskrivelser på grunn av tidsbegrensninger eller oversikt. Med automatiserte beskrivelser, er hver PR utstyrt med tilstrekkelig kontekst, noe som gjør det lettere for gjennomgangere å forstå endringene uten å måtte tykke ut kode-diff ekstensivt. Vi har også bygget inn automatisk PR-gjennomgang for å gi utviklere en omfattende oversikt over PR-en, som lar dem spore potensielle problemer som feil, sikkerhets-sårbarheter eller kode-lukt proaktivt. Denne forhåndsvarslende tilbakemelding tillater utviklere å korrigere før gjennomgangsprosessen, og dermed forbedre kvaliteten på koden som når gjennomgangere.

Med AI, kan automatiske kode-forslag foreslå forbedringer eller alternative implementeringer direkte innenfor PR-grensesnittet. Disse forslagene kan være optimaliseringer, overholdelse av kode-standarder eller selv arkitektoniske forbedringer, som hjelper til å heve kvaliteten på kodebasen inkrementelt.

PR-Agenten støtter flere alternativer for å tilpasse kommandoene den tilbyr. En av de mest nyttige tilpasnings-alternativene er bruken av tilpassede etiketter for å forbedre organisering og håndtering av pull-forespørsler på plattformer som GitHub og GitLab. Denne funksjonen bidrar til den operative effisiensen og klarheten i utviklings- og gjennomgangsprosessen.

Hvordan genererer CodiumAI meningsfulle tester, og hva gjør disse testene mer effektive enn standard enhetstester?

Vi forbedrer test-generering ved å scanne kode-repositorier for relevante kode-utklipp som er relatert til koden-under-test. Ved å bruke chain-of-thought-prompt, kartlegger vi alle mulige kode-atferder, inkludert typiske stier og kanter, og vår tilnærming anvender kontekst-spesifik fetching og tilpassede prompter tilpasset ulike programmeringsspråk, og innlemmer ekspert-kunnskap for å sikre at testene møter bransjestandarder. I tillegg setter CodiumAI opp bestemte runtime-miljøer for å bedre detektere feil og generere selv-helende tester. Disse evnene gjør CodiumAI-genererte tester mer omfattende enn standard enhetstester, som ofte mangler uforutsette atferder på grunn av utviklerens innebygde fordommer og begrensninger i å forutse alle mulige scenarier. Dette resulterer i tester som ikke bare er grundige, men også mer effektive i å avdekke subtile feil og kanter.

Basert på bruker-tilbakemelding, hva er de mest verdifulle funksjonene i CodiumAI, og hvordan har disse funksjonene påvirket produktiviteten til utviklere?

Basert på bruker-tilbakemelding vi har mottatt, ser vi at /ask med kode-blokk-kontekst og /test-generering-funksjonene i Codiumate-agenten er høyt etterspurte og forbedrer utvikler-arbeidsflyt.

Med /ask med kode-blokk-kontekst (se dokumentasjon her: /ask) kan utviklere stille åpne spørsmål om sin kode, eller be om kode-forbedringer eller -gjennomganger under en gratis chat-sesjon. Denne funksjonen er spesielt nyttig for å få en dypere forståelse av kodebasen, da modellen beholder full kontekst av prosjektet, og muliggjør å besvare svært detaljerte og spesifikke spørsmål.

/test-generering-verktøyet (se dokumentasjon her: /test) lar utviklere generere omfattende test-suiter for sin kode med bare ett klikk. Å utforske kode-atferd, identifisere og løse feil raskt, og raskt utvide kode-dekning, er en stor tilgang til produktivitet.

PR-Agenten /gjennomgang-funksjonen (se dokumentasjon her – /review) scannrer PR-kode-endringer og genererer automatisk en PR-gjennomgang for å fange problemer før utviklere pusher til produksjon. Den

/beskriv-funksjonen (se dokumentasjon her – /describe) scannrer PR-kode-endringer og genererer en beskrivelse for PR-en – tittel, type, sammenfatting, gjennomgang og etiketter, og sparer utviklere tid og energi som kan brukes til mer krevende eller kreative oppgaver.

Hvordan identifiserer CodiumAI kanter og mistenkelige atferder i koden?

Våre verktøy scannrer utviklerens repository for relevante kode-utklipp som er relatert til koden-under-test, og ved å bruke chain-of-thought-prompt, kartlegger vi alle mulige kode-atferder og viser dem til utvikleren. CodiumAI kan identifisere mistenkelige atferder direkte (uavhengig av test-generering), ved å identifisere inkonsistenser eller uoverensstemmelser mellom ulike kode-utklipp, eller kode-utklipp og tilhørende dokumentasjon.

CodiumAI støtter større programmeringsspråk; kan du forklare hvordan det håndterer språk-spesifikke nyanser i kode-analyse og test-generering?

For større programmeringsspråk, går vår plattform utover grunnleggende støtte ved å implementere spesialiserte teknikker. Disse inkluderer kontekst-spesifik fetching og tilpassede prompter tilpasset hvert språks unike syntaks og semantikk. Disse tilpassede promptene innlemmer språk-domene-ekspert-kunnskap for å få bransje-nivå-resultater. I tillegg tilbyr vi evner til å etablere et runtime-miljø spesifikt for disse språkene, som forbedrer vårt verktøys evne til å detektere feil og generere selv-helende tester effektivt.

Hva fremtidige forbedringer er planlagt for CodiumAI for å ytterligere støtte og forenkle oppgavene til utviklere?

CodiumAIs fremtidige utviklingsstrategi legger vekt på å forbedre det tilgjengelige settet av AI-verktøy for å integrere sammen over alle stadier av programvare-utviklingslivssyklusen. Ved å bruke avanserte flow-engineering-prinsipper for å strømlinjeforme og forenkle utvikler-arbeidsflyt, vil våre agenter tilby betydelig verdi over ulike stadier av utvikling. Videre er CodiumAI dedikert til å sikre at disse verktøyene utmerker seg i å håndtere komplekse, virkelige kode- og tekst-scenarier, og gjøre dem uunnværlige i hverdags-programmeringsoppgaver. Denne holistiske tilnærmingen har som mål å heve vårt tilbud som et robust, daglig-brukt verktøy for utviklere, og forbedre produktivitet og effisiens i programvare-utviklingsprosessen.

Takk for det flotte intervjuet, lesere som ønsker å lære mer kan besøke CodiumAI.

Antoine er en visjonær leder og medgrunnlegger av Unite.AI, drevet av en urokkelig lidenskap for å forme og fremme fremtiden for AI og robotikk. En serial entrepreneur, han tror at AI vil være like disruptiv for samfunnet som elektrisitet, og blir ofte fanget i å prise potensialet for disruptive teknologier og AGI.

Som en futurist, er han dedikert til å utforske hvordan disse innovasjonene vil forme vår verden. I tillegg er han grunnlegger av Securities.io, en plattform som fokuserer på å investere i banebrytende teknologier som definerer fremtiden og omformer hele sektorer.