Connect with us

Intervjuer

Itamar Friedman, CEO & Co-Founder of CodiumAI – Intervju-serie

mm

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) og studerte elektroingeniør. Da jeg innsett at mange av de kjedelige utviklingsprosessene i Mellanox kunne automatiseres ved hjelp av maskinlæringsalgoritmer, skiftet jeg hovedfag til optimering og maskinlæring og fullførte en mastergrad i dette området. Allerede i 2010 arbeidet jeg på et dyp-læringsprosjekt (med 3 lag dype neurale nettverk) som la grunnlaget for min tid i Alibaba, der jeg ledet en forskningsgruppe som spesialiserte seg på neural arkitektursøk, modelltrening og bygging av AutoML-verktøy for utviklere. Rundt 2021 var jeg ikke redd for å kalle vårt arbeid “AI”, ettersom store språkmodeller ble kraftfulle verktøy, og min forestilling om hva som kunne oppnås med dem økte.

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

Visualead spesialiserte seg på å scannere logoer, QR-koder og alt imellom, inkludert å sikre og skjule informasjon i bilder for å muliggjøre trygge P2P-transaksjoner og engasjement. Hos Visualead hadde vi vært i gang med å kjøre algoritmer på mobile enheter siden 2012, inkludert modeller. Det var en utfordring og triksy å gjøre dette på den tiden, og vi lærte mye om å bygge effektive modeller og sikkerhetsforanstaltninger rundt disse statistiske skapningene.

Den dag i dag bruker jeg fremdeles lærdommene fra den tiden til nåværende prosjekter jeg påtar meg – for eksempel, da vi bygget den åpne kildekode-løsningsgenereringen AlphaCodium, innførte vi konseptet Flow Engineering og anvendte dette konseptet for å bygge en flyt for å sikre LLM-modellens utgang.

Kunne du dele opphavsfortellingen bak lanseringen av CodiumAI?

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

Teamet i CodiumAI spesialiserer seg på å bygge AI-utstyrte verktøy i stor skala og er drevet av å løse de 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-integritetsplattform for å hjelpe travle team som oss selv å redusere feil og minimere andre integritetsproblemer. Ettersom stadig 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-utstyrte 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 å muliggjøre at travle team kan øke og håndtere sin kode-integritet.

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

Inntil nylig tilbød de eksisterende verktøyene til utviklere liten verdi – men med ankomsten av LLM (ChatGPT, Copilot osv.) er kapasitetene beginning å 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 arbeidsflyten og forbedre kode-generering. Codiumate strømlinjeformer utviklingsprosessen ved å tilby automatisert assistanse gjennom hele kodingsoppgaven. Ved å bruke eksisterende kode-utklipp 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 duplikatkode 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 tilbyr utviklere en dyptgående atferdsanalyse – belysning mulig atferd og grener koden-under-test omfatter. Dette tillater utvikleren å undersøke den genererte koden og lage tester som (grein) dekker alle atferder, og dermed forbedre koden mer enn hvis utvikleren hadde tatt hensyn til alle mulige tilfeller på egen hånd.

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

PR-Agenten tilbyr en rekke funksjoner designet for å forbedre og strømlinjeforme pull-forespørsel-analyse og gjennomgangsprosessen på 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 enklere for gjennomgangere å forstå endringene uten å måtte tyde kode-diff ekstensivt. Vi bygget også inn automatisk PR-gjennomgang for å gi utviklere en omfattende oversikt over PR, som lar dem oppdage potensielle problemer som feil, sikkerhetsvulnerabiliteter eller kode-lukt proaktivt. Denne forhåndsvarslende tilbakemeldingen tillater utviklere å gjøre korreksjoner før gjennomgangsprosessen, og dermed forbedre kvaliteten på koden som når gjennomgangere.

Ved hjelp av AI kan automatiserte kode-forslag også foreslå forbedringer eller alternative implementeringer direkte i PR-grensesnittet. Disse forslagene kan være optimaliseringer, overholdelse av kode-standarden eller selv arkitektoniske forbedringer, som hjelper til å heve kvaliteten på kodebasen gradvis.

PR-Agenten støtter flere alternativer for å tilpasse kommandoene den tilbyr. En av de mest nyttige tilpasningsalternativene er bruk av egendefinerte etiketter for å forbedre organisering og håndtering av pull-forespørsler på plattformer som GitHub og GitLab. Denne funksjonen bidrar til operasjonell effisiens og klarhet 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 å scannere kode-repositorier for relevante kode-utklipp relatert til koden under test. Ved å bruke chain-of-thought-prompts for å kartlegge alle mulige kode-atferder, inkludert typiske stier og kanter, anvender vår tilnærming kontekst-spesifik henting og tilpassede prompts tilpasset ulike programmeringsspråk, og inkorporerer ekspertkunnskap for å sikre at testene møter bransjestandarder. I tillegg setter CodiumAI opp bestemte kjøremiljøer for å bedre detektere feil og generere selv-helbredende tester. Disse kapasitetene gjør CodiumAI-genererte tester mer omfattende enn standard enhetstester, som ofte overseer uforutsette atferder på grunn av utviklerens innebygde fordommer og begrensninger i å forutse alle mulige scenarioer. Dette resulterer i tester som ikke bare er grundige, men også mer effektive i å avdekke subtile feil og kanter.

Basert på brukertilbakemelding, hva er de mest verdifulle funksjonene i CodiumAI, og hvordan har disse funksjonene påvirket utviklerens produktivitet?

Basert på brukertilbakemelding vi har mottatt, ser vi at /ask med kode-blokk-kontekst og /test-generering-funksjonene til Codiumate-agenten er høyt ettertraktet og forbedrer utviklerens 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 -gjennomgang under en gratis chatsesjon. Denne funksjonen er spesielt nyttig for å få en dypere forståelse av kodebasen, ettersom modellen beholder full kontekst av prosjektet, og dermed kan besvare svært detaljerte og spesifikke spørsmål.

Den /test-generering-funksjonen (se dokumentasjon her: /test) tillater 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 opp problemer før utviklere pusher til produksjon. Den

/beskriv-funksjonen (se dokumentasjon her – /beskriv) scannrer PR-kode-endringer og genererer en beskrivelse for PR – tittel, type, sammenfatting, gjennomgang og etiketter, og sparer utviklere tid og energi som de kan bedre anvende på 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 relaterer til koden under test, og ved å bruke chain-of-thought-prompts, kartlegger vi alle mulige kode-atferder og viser dem til utvikleren. CodiumAI kan identifisere mistenkelige atferder direkte (uavhengig av test-generering), ved å identifisere diskrepanser eller inkonsistenser 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 tekniker. Disse inkluderer kontekst-spesifik henting og tilpassede prompts tilpasset hvert språks unike syntaks og semantikk. Disse tilpassede promptene inkorporerer språk-domene-ekspertkunnskap for å oppnå bransjestandard-resultater. I tillegg tilbyr vi kapasiteter for å etablere et kjøremiljø spesifikt for disse språkene, noe som forbedrer vårt verktøys evne til å detektere feil og generere selv-helbredende tester effektivt.

For mindre vanlige språk, anvender vi store språkmodeller (LLM) som innebygget forstår flere programmeringsspråk. Dette komplementeres av vår generelle kontekst-infrastruktur og adaptivt prompt-system, som sammen muliggjør nøyaktig kode-analyse og test-generering på tvers av ulike programmerings-miljøer. Ved å ta en dobbelt-nivå-tilnærming, kan vi sikre omfattende støtte uavhengig av programmeringsspråket som brukes.

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

CodiumAIs fremtidige utviklingsstrategi legger vekt på å forbedre den tilgjengelige suiten av AI-verktøy for å strømlinjeforme og forenkle utviklerens arbeidsflyt over alle stadier av programvare-utviklingslivssyklusen. Ved å anvende avanserte flow-engineering-prinsipper for å strømlinjeforme og forenkle utviklerens arbeidsflyt, vil våre agenter tilby betydelig verdi over ulike stadier av utviklingen. Videre er CodiumAI engasjert i å 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 robustt, 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, bør besøke CodiumAI.

Antoine er en visjonær leder og grunnleggende partner i Unite.AI, drevet av en urokkelig lidenskap for å forme og fremme fremtiden for AI og robotikk. En seriegründer, han tror at AI vil være like disruptiv for samfunnet som elektrisitet, og blir ofte tatt i å tale om potensialet for disruptiv teknologi og AGI.
Som en futurist, er han dedikert til å utforske hvordan disse innovasjonene vil forme vår verden. I tillegg er han grunnleggeren av Securities.io, en plattform som fokuserer på å investere i banebrytende teknologier som omdefinerer fremtiden og omformer hele sektorer.