stub Itamar Friedman, administrerende direktør og medgründer av CodiumAI - Intervjuserien - Unite.AI
Kontakt med oss

intervjuer

Itamar Friedman, administrerende direktør og medgründer av CodiumAI – Intervjuserien

mm

Publisert

 on

Itamar Friedman, er administrerende direktør og medgründer av Codium AI. Codium fokuserer på "kodeintegritet"-siden av kodegenerering - genererer automatiserte tester, kodeforklaringer og anmeldelser. De har gitt ut forskning om å generere kodeløsninger for konkurransedyktige programmeringsutfordringer som overgår Google DeepMind.

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

I 2009 jobbet jeg hos Mellanox (Acq. av NVIDIA) og studerte elektroteknikk. Da jeg innså at mange av de kjedelige utviklingsprosessene i Mellanox kunne automatiseres av maskinlæringsalgoritmer, endret jeg hovedfagene mine til optimalisering og maskinlæring og fullførte en MSc i verdensrommet. I 2010 jobbet jeg allerede med et dyplæringsprosjekt (med 3-lags dypt nevralt nettverk) som la grunnlaget for min tid på Alibaba, hvor jeg ledet en forskningsgruppe som spesialiserte meg på nevral arkitektursøk, treningsmodeller og bygging av AutoML-verktøy for utviklere. Rundt 2021 skammet jeg meg ikke over å kalle arbeidet vårt «AI», ettersom store språkmodeller ble kraftige verktøy, og fantasien min om hva som kunne oppnås med dem vokste.

Din forrige datamaskinvisjonsfokuserte oppstart Visualead ble til slutt kjøpt opp av Alibaba Group, hva var denne oppstarten, og hva var noen av de viktigste resultatene dine fra denne opplevelsen?

Visualead har spesialisert seg på skanning av logoer, QR-koder og alt i mellom, inkludert sikring og skjul av informasjon i bilder for å muliggjøre sikre P2P-transaksjoner og engasjement. Hos Visualead har vi kjørt algoritmer på mobile enheter siden 2012, inkludert modeller. Det var utfordrende og vanskelig å gjøre det på den tiden, og vi lærte mye om å bygge effektive modeller og rekkverk rundt disse statistiske skapningene.

Den dag i dag bruker jeg fortsatt erfaringene fra den tiden på nåværende prosjekter jeg påtar meg – for eksempel da vi bygde verktøyet for generering av åpen kildekodeløsninger AlphaCodium vi introduserte konseptet Flow Engineering og brukte dette konseptet for å bygge en flyt til autovern LLM-modeller.

Kan du dele opprinnelseshistorien bak lanseringen av CodiumAI?

Hos Alibaba så jeg på egenhånd hvordan en feil i kode kunne føre til et million-dollar-problem og utfordringene utviklere sto overfor for å holde tritt med kodegenerering uten å ofre kvalitet eller integritet. Dette problemet vedvarer, og i dag har lavkvalitetskode blitt tilskrevet et billion-dollar-problem som fortsetter å vokse.

Teamet hos CodiumAI spesialiserer seg på å bygge AI-baserte verktøy i stor skala og er drevet til å takle smertepunktene utviklere står overfor. Med fødselen av nye LLM- og AI-evner, forsto vi at dette var vår mulighet til å bygge en helhetlig kodeintegritetsplattform for å hjelpe travle team som oss med å redusere feil og redusere andre integritetsproblemer. Etter hvert som mer og mer kode ble generert av AI, ble problemet med å benchmarke denne koden og sørge for at den fungerte etter hensikten et kritisk smertepunkt og et som vi ble drevet til å løse. Å bygge AI-baserte verktøy i stor skala, og derfor er benchmarking et viktig konsept for oss.

Som en gruppe erfarne utviklere får vi det; å håndtere kjedelige oppgaver som testing og kodegjennomgang kan være frustrerende. Vi er svært oppdragsdrevne for endelig å gjøre det mulig for travle team å øke og administrere kodeintegriteten sin.

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

Inntil nylig ga de eksisterende verktøyene som var tilgjengelige for utviklere liten verdi - men med ankomsten av LLM-er (ChatGPT, Copilot, etc.) begynner funksjonene å overgå forventningene, og støtten tilgjengelig for utviklere er ikke lenger triviell.

Codiumate Coding-Agent utviklet av CodiumAI tilbyr utviklere unike verktøy for å forbedre arbeidsflyten deres og forbedre kodegenerering. Codiumate effektiviserer utviklingsprosessen ved å gi automatisert assistanse gjennom hele kodeoppgaven. Ved å bruke de eksisterende kodebitene en menneskelig utvikler fremhever i miljøet sitt, kan agenten automatisk utarbeide en enkel å følge og sammenhengende utviklingsplan, skrive kode i henhold til den planen, identifisere duplikatkode utvikleren kanskje vil bruke eller fjerne, utkast til dokumentasjon , og foreslå tester for å sikre at koden fungerer som den skal før den distribueres i et levende miljø.

Codiumate gir utviklere en dyptgående atferdsanalyse som belyser mulig atferd og grener koden-under-test omfatter. Dette lar utvikleren undersøke den genererte koden og lage tester som (gren) dekker all atferd, og forbedrer dermed koden mer enn om utvikleren hadde gjort rede for alle mulige tilfeller på egenhånd.

Hvilke spesifikke funksjoner gir PR-agenten for pull request-analyse, og hvordan effektiviserer den gjennomgangsprosessen på plattformer som GitHub og GitLab?

PR-Agenten tilbyr en rekke funksjoner designet for å forbedre og strømlinjeforme pull request (PR)-analysen og gjennomgangsprosessen på tvers av forskjellige git-leverandører.

Automatisk generering av PR-beskrivelser 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 tilsyn. Med automatiserte beskrivelser er hver PR utstyrt med tilstrekkelig kontekst, noe som gjør det lettere for anmeldere å forstå endringene uten å måtte dechiffrere kodeforskjellene omfattende. Vi har også bygget inn automatisk PR-gjennomgang for å gi utviklere en omfattende oversikt over PR som lar dem oppdage potensielle problemer som feil, sikkerhetssårbarheter eller kodelukter proaktivt. Denne forebyggende tilbakemeldingen lar utviklere foreta korrigeringer før gjennomgangsprosessen, og dermed forbedre kvaliteten på koden som når anmelderne.

Ved å utnytte AI kan automatiserte kodeforslag også foreslå forbedringer eller alternative implementeringer direkte i PR-grensesnittet. Disse forslagene kan være optimaliseringer, overholdelse av kodestandarder, eller til og med arkitektoniske forbedringer, som bidrar til å heve kvaliteten på kodebasen trinnvis.

PR-Agenten støtter en rekke alternativer for å tilpasse kommandoene den tilbyr. Et av de mest nyttige tilpasningsalternativene er bruken av tilpassede etiketter for å forbedre organiseringen og administrasjonen av pull-forespørsler på plattformer som GitHub og GitLab. Denne funksjonaliteten bidrar til operasjonell effektivitet og klarhet i utviklings- og gjennomgangsprosessene.

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

Vi forbedrer testgenerering ved å skanne kodelagre for relevante utdrag relatert til koden som testes. Ved å bruke tankekjede-forespørsler for å kartlegge all potensiell kodeatferd, inkludert typiske baner og kanttilfeller, bruker vår tilnærming kontekstspesifikk henting og tilpassede forespørsler skreddersydd for forskjellige programmeringsspråk, og bygger inn ekspertkunnskap for å sikre at tester oppfyller bransjestandarder. I tillegg setter CodiumAI opp spesifikke kjøretidsmiljøer for bedre å oppdage feil og generere selvhelbredende tester. Disse egenskapene gjør CodiumAI-genererte tester mer omfattende enn standard enhetstester, som ofte savner utilsiktet oppførsel på grunn av utvikleres iboende skjevheter og begrensningene i å forutse alle mulige scenarier. Dette resulterer i tester som ikke bare er grundige, men også mer effektive til å avdekke subtile feil og kantsaker.

Basert på tilbakemeldinger fra brukere, hva er de mest verdsatte funksjonene til CodiumAI, og hvordan har disse funksjonene påvirket produktiviteten til utviklere?

Basert på tilbakemeldinger fra brukere vi har mottatt, ser vi at /spør med kodeblokkkontekst og /testgenerasjon funksjonene til Codiumate-agenten er svært ettertraktede og forbedrer arbeidsflyten for utviklere.

Med /spør med kodeblokkkontekst (se dokumentasjon her: /spørre)-utviklere kan stille åpne spørsmål om koden deres, eller be om kodeforbedringer eller anmeldelser under en gratis chat-økt. Denne funksjonen er spesielt gunstig for å få en dypere forståelse av kodebasen, ettersom modellen beholder hele prosjektets kontekst, slik at den kan håndtere svært detaljerte og spesifikke forespørsler.

De /testgenerasjon (se dokumentasjon her: /test)-verktøyet lar utviklere generere omfattende testsuiter for koden deres med bare ett klikk. Å utforske kodeatferd, identifisere og løse feil raskt og raskt utvide kodedekningen er en stor fordel for produktiviteten.

PR-agenten /anmeldelse (se dokumentasjon her - /anmeldelse)-funksjonen skanner PR-kodeendringer og genererer automatisk en PR-gjennomgang for å fange opp problemer før utviklere går til produksjon. De

/beskrive (se dokumentasjon her - /beskrive)-funksjonen skanner PR-kodeendringene, og genererer en beskrivelse for PR – tittel, type, sammendrag, gjennomgang og etiketter sparer utviklere for tid og energi de bedre kan bruke på mer krevende eller kreative oppgaver.

Hvordan identifiserer CodiumAI edge-tilfeller og mistenkelig oppførsel i koden?

Verktøyene våre skanner utviklerens depot for relevante kodebiter som er relatert til koden som er under test, og ved å bruke tankekjede-meldinger kartlegger vi all mulig kodeatferd og viser dem til utvikleren. CodiumAI kan identifisere mistenkelig atferd direkte (uavhengig av testgenerasjoner), ved å identifisere avvik eller inkonsekvenser mellom forskjellige kodebiter, eller kodebiter og den medfølgende dokumentasjonen.

CodiumAI støtter store programmeringsspråk; kan du utdype hvordan den håndterer språkspesifikke nyanser i kodeanalyse og testgenerering?

For store programmeringsspråk går plattformen vår utover grunnleggende støtte ved å implementere spesialiserte teknikker. Disse inkluderer kontekstspesifikk henting og tilpasset spørsmål skreddersydd for hvert språks unike syntaks og semantikk. Disse tilpassede forespørslene inkluderer ekspertkunnskap for språkdomene for å oppnå resultater på bransjenivå. I tillegg tilbyr vi muligheter for å etablere et kjøretidsmiljø spesifikt for disse språkene, noe som forbedrer verktøyets evne til å oppdage feil og generere selvhelbredende tester effektivt.

For mindre vanlige språk bruker vi store språkmodeller (LLM) som iboende forstår flere programmeringsspråk. Dette kompletteres av vår generelle kontekstinfrastruktur og adaptive promptesystem, som sammen letter nøyaktig kodeanalyse og testgenerering på tvers av ulike programmeringsmiljøer. Ved å bruke en tilnærming på to nivåer kan vi sikre omfattende støtte uavhengig av hvilket programmeringsspråk som brukes.

Hvilke fremtidige forbedringer er planlagt for CodiumAI for ytterligere å støtte og forenkle utviklernes oppgaver?

CodiumAIs fremtidige utviklingsstrategi legger vekt på å forbedre den tilgjengelige pakken med AI-verktøy for sømløs integrering på tvers av alle stadier av programvareutviklingens livssyklus. Ved å bruke avanserte flyt-ingeniørprinsipper for å strømlinjeforme og forenkle utviklernes arbeidsflyter, vil våre agenter gi betydelig verdi på tvers av ulike utviklingsstadier. Videre er CodiumAI forpliktet til å sikre at disse verktøyene utmerker seg i å håndtere komplekse, virkelige kode- og tekstscenarier, noe som gjør dem uunnværlige i hverdagslige programmeringsoppgaver. Denne helhetlige tilnærmingen tar sikte på å heve tilbudet vårt som et robust verktøy for daglig bruk for utviklere, og øke produktiviteten og effektiviteten i programvareutviklingsprosessen.

Takk for det flotte intervjuet, lesere som ønsker å lære mer bør besøke Codium AI.

En grunnlegger av unite.AI og et medlem av Forbes teknologiråd, Antoine er en futurist som brenner for fremtiden til AI og robotikk.

Han er også grunnleggeren av Securities.io, et nettsted som fokuserer på å investere i forstyrrende teknologi.