Anslut dig till vårt nätverk!

Intervjuer

Itamar Friedman, VD och medgrundare av CodiumAI – Intervjuserien

mm

publicerade

 on

Itamar Friedman, är VD och medgrundare av Codium AI. Codium fokuserar på "kodintegritet"-sidan av kodgenerering - genererar automatiserade tester, kodförklaringar och recensioner. De har släppt forskning om att generera kodlösningar för konkurrenskraftiga programmeringsutmaningar som överträffar Google DeepMind.

När och hur började du intressera dig för AI?

2009 arbetade jag på Mellanox (Acq. av NVIDIA) och studerade elektroteknik. När jag insåg att många av de tråkiga utvecklingsprocesserna i Mellanox kunde automatiseras med maskininlärningsalgoritmer bytte jag mina huvudämnen till optimering och maskininlärning och avslutade en MSc i rymden. År 2010 arbetade jag redan på ett djupinlärningsprojekt (med 3 lager djupt neuralt nätverk) som lade grunden för min tid på Alibaba där jag ledde en forskargrupp som specialiserat sig på neural arkitektursökning, utbildningsmodeller och att bygga AutoML-verktyg för utvecklare. Runt 2021 skämdes jag inte för att kalla vårt arbete för "AI", eftersom stora språkmodeller blev kraftfulla verktyg, och min fantasi om vad som kunde uppnås med dem växte.

Din tidigare datorvision fokuserade startup Visualead förvärvades så småningom av Alibaba Group, vad var denna startup, och vad var några av dina viktigaste takeaways från denna erfarenhet?

Visualead specialiserat sig på att skanna logotyper, QR-koder och allt däremellan, inklusive att säkra och dölja information i bilder för att möjliggöra säkra P2P-transaktioner och engagemang. På Visualead har vi kört algoritmer på mobila enheter sedan 2012, inklusive modeller. Det var utmanande och knepigt att göra det förr i tiden, och vi lärde oss mycket om att bygga effektiva modeller och skyddsräcken runt dessa statistiska varelser.

Än i dag tillämpar jag fortfarande lärdomar från den tiden på pågående projekt som jag genomför - till exempel när vi byggde verktyget för att skapa lösningar med öppen källkod AlphaCodium vi introducerade konceptet Flow Engineering och tillämpade detta koncept för att bygga ett flöde till skyddsräckets LLM-modeller.

Skulle du kunna dela med dig av historien bakom lanseringen av CodiumAI?

På Alibaba såg jag på egen hand hur en bugg i kod kunde leda till ett miljontalsproblem och de utmaningar som utvecklare ställdes inför för att hänga med i kodgenereringen utan att offra kvalitet eller integritet. Detta problem kvarstår, och idag har kod av låg kvalitet tillskrivits ett problem med biljoner dollar som fortsätter att växa.

Teamet på CodiumAI är specialiserat på att bygga AI-bemyndigade verktyg i stor skala och drivs av att ta itu med de smärtpunkter som utvecklare står inför. Med födelsen av nya LLM- och AI-kapaciteter förstod vi att detta var vår möjlighet att bygga en holistisk kodintegritetsplattform för att hjälpa upptagna team som vi att minska buggar och mildra andra integritetsproblem. Eftersom mer och mer kod genererades av AI, blev problemet med att benchmarka den här koden och se till att den fungerade som avsett en kritisk smärtpunkt och en som vi var drivna att lösa. Att bygga AI-baserade verktyg i stor skala, och därför är benchmarking ett viktigt koncept för oss.

Som en grupp erfarna utvecklare får vi det; att ta itu med tråkiga uppgifter som testning och kodgranskning kan vara frustrerande. Vi är mycket uppdragsdrivna för att äntligen göra det möjligt för upptagna team att öka och hantera sin kodintegritet.

Kan du beskriva vilka typer av icke-trivial analys CodiumAI utför på kod, och hur detta stöder utvecklare att förbättra kodkvaliteten?

Tills nyligen erbjöd de befintliga verktygen tillgängliga för utvecklare lite värde - men med ankomsten av LLMs (ChatGPT, Copilot, etc.) börjar funktionerna överträffa förväntningarna, och det stöd som är tillgängligt för utvecklare är inte längre trivialt.

Codiumate Coding-Agent som utvecklats av CodiumAI erbjuder utvecklare unika verktyg för att förbättra deras arbetsflöde och förbättra kodgenereringen. Codiumate effektiviserar utvecklingsprocessen genom att tillhandahålla automatiserad assistans under hela kodningsuppgiften. Med hjälp av de befintliga kodavsnitten som en mänsklig utvecklare lyfter fram i sin miljö kan agenten automatiskt utarbeta en lätt att följa och sammanhållen utvecklingsplan, skriva kod enligt den planen, identifiera dubblettkod som utvecklaren kanske vill använda eller ta bort, utkast till dokumentation , och föreslå tester för att säkerställa att koden fungerar korrekt innan den distribueras i en live-miljö.

Codiumate förser utvecklare med en djupgående beteendeanalys som belyser möjliga beteenden och grenar som koden under test omfattar. Detta gör att utvecklaren kan undersöka den genererade koden och skapa tester som (grenar) täcker alla beteenden, vilket förbättrar koden mer än om utvecklaren hade redogjort för alla möjliga fall på egen hand.

Vilka specifika funktioner tillhandahåller PR-agenten för pull request-analys, och hur effektiviserar den granskningsprocessen på plattformar som GitHub och GitLab?

PR-Agenten erbjuder en mängd olika funktioner utformade för att förbättra och effektivisera pull request (PR) analys och granskningsprocessen mellan olika git-leverantörer.

Automatisk generering av PR-beskrivningar genererar automatiskt omfattande och detaljerade beskrivningar för pull-förfrågningar. Den här funktionen tar upp vanliga problem där utvecklare kan hoppa över detaljerade PR-beskrivningar på grund av tidsbrist eller förbiseende. Med automatiserade beskrivningar är varje PR utrustad med tillräckligt sammanhang, vilket gör det lättare för granskare att förstå ändringarna utan att behöva dechiffrera kodskillnaderna i stor utsträckning. Vi har också byggt in automatisk PR-granskning för att ge utvecklare en omfattande översikt över PR som låter dem upptäcka potentiella problem som buggar, säkerhetssårbarheter eller kodlukter proaktivt. Denna förebyggande feedback gör att utvecklare kan göra korrigeringar innan granskningsprocessen, vilket förbättrar kvaliteten på koden som når granskarna.

Genom att utnyttja AI kan automatiserade kodförslag också föreslå förbättringar eller alternativa implementeringar direkt i PR-gränssnittet. Dessa förslag kan vara optimeringar, efterlevnad av kodningsstandarder eller till och med arkitektoniska förbättringar, som hjälper till att höja kvaliteten på kodbasen stegvis.

PR-Agenten stöder många alternativ för att anpassa de kommandon den erbjuder. Ett av de mest användbara anpassningsalternativen är användningen av anpassade etiketter för att förbättra organisationen och hanteringen av pull-förfrågningar på plattformar som GitHub och GitLab. Denna funktionalitet bidrar till den operativa effektiviteten och tydligheten i utvecklings- och granskningsprocesserna.

Hur genererar CodiumAI meningsfulla tester, och vad gör dessa tester mer effektiva än standardenhetstester?

Vi förbättrar testgenereringen genom att skanna kodlager efter relevanta utdrag relaterade till koden som testas. Genom att använda tankekedja för att kartlägga alla potentiella kodbeteenden, inklusive typiska sökvägar och kantfall, använder vårt tillvägagångssätt kontextspecifik hämtning och skräddarsydda uppmaningar som är skräddarsydda för olika programmeringsspråk, inbäddade expertkunskaper för att säkerställa att tester uppfyller branschstandarder. Dessutom ställer CodiumAI upp specifika runtime-miljöer för att bättre upptäcka buggar och generera självläkande tester. Dessa funktioner gör CodiumAI-genererade tester mer omfattande än standardenhetstester, som ofta missar oavsiktliga beteenden på grund av utvecklarnas inneboende fördomar och begränsningarna i att förutse alla möjliga scenarier. Detta resulterar i tester som inte bara är grundliga utan också mer effektiva för att avslöja subtila buggar och kantfall.

Baserat på feedback från användare, vilka är de mest uppskattade funktionerna i CodiumAI, och hur har dessa funktioner påverkat utvecklarnas produktivitet?

Baserat på feedback från användare som vi har fått ser vi att /fråga med kodblockskontext och /testgenerering funktionerna i Codiumate-agenten är mycket eftertraktade och förbättrar utvecklarens arbetsflöde.

Med /fråga med kodblockskontext (se dokumentation här: /fråga)-utvecklare kan ställa öppna frågor om sin kod, eller begära kodförbättringar eller recensioner under en gratis chattsession. Denna funktion är särskilt fördelaktig för att få en djupare förståelse av kodbasen, eftersom modellen behåller hela projektets sammanhang, vilket gör det möjligt för den att hantera mycket detaljerade och specifika förfrågningar.

Smakämnen /testgenerering (se dokumentation här: /testa) verktyget låter utvecklare skapa omfattande testsviter för sin kod med bara ett klick. Att utforska kodbeteende, identifiera och lösa buggar snabbt och snabbt utöka kodtäckningen är en enorm tillgång för produktiviteten.

PR-agenten /recension (se dokumentation här - /recension)-funktionen skannar PR-kodändringar och genererar automatiskt en PR-recension för att fånga problem innan utvecklare går till produktion. De

/beskriva (se dokumentation här - /beskriva)-funktionen skannar PR-kodändringarna och genererar en beskrivning för PR – titel, typ, sammanfattning, genomgång och etiketter vilket sparar tid och energi för utvecklare som de bättre kan använda för mer krävande eller kreativa uppgifter.

Hur identifierar CodiumAI kantfall och misstänkta beteenden i koden?

Våra verktyg söker igenom utvecklarens arkiv efter relevanta kodavsnitt som relaterar till koden som testas, och med hjälp av tankekedjan kartlägger vi alla möjliga kodbeteenden och visar dem för utvecklaren. CodiumAI kan identifiera misstänkta beteenden direkt (oavsett testgenerationer), genom att identifiera avvikelser eller inkonsekvenser mellan olika kodavsnitt, eller kodavsnitt och den medföljande dokumentationen.

CodiumAI stöder stora programmeringsspråk; kan du utveckla hur den hanterar språkspecifika nyanser i kodanalys och testgenerering?

För större programmeringsspråk går vår plattform utöver grundläggande support genom att implementera specialiserade tekniker. Dessa inkluderar kontextspecifik hämtning och anpassade uppmaningar skräddarsydda för varje språks unika syntax och semantik. Dessa anpassade uppmaningar innehåller expertkunskaper på språkdomäner för att få resultat på branschnivå. Dessutom tillhandahåller vi möjligheter att skapa en körtidsmiljö specifikt för dessa språk, vilket förbättrar vårt verktygs förmåga att upptäcka buggar och generera självläkande tester effektivt.

För mindre vanliga språk använder vi stora språkmodeller (LLM) som förstår flera programmeringsspråk. Detta kompletteras av vår allmänna kontextinfrastruktur och adaptiva promptsystem, som tillsammans underlättar korrekt kodanalys och testgenerering över olika programmeringsmiljöer. Genom att använda ett tillvägagångssätt på två nivåer kan vi säkerställa omfattande support oavsett vilket programmeringsspråk som används.

Vilka framtida förbättringar planeras för CodiumAI för att ytterligare stödja och förenkla utvecklarnas uppgifter?

CodiumAI:s framtida utvecklingsstrategi betonar att förbättra den tillgängliga uppsättningen av AI-verktyg för att sömlöst integreras i alla stadier av mjukvaruutvecklingens livscykel. Genom att använda avancerade flödestekniska principer för att effektivisera och förenkla utvecklarnas arbetsflöden, kommer våra agenter att ge betydande värde över olika utvecklingsstadier. CodiumAI är dessutom engagerad i att säkerställa att dessa verktyg utmärker sig i att hantera komplexa, verkliga kod- och textscenarier, vilket gör dem oumbärliga i vardagliga programmeringsuppgifter. Detta holistiska tillvägagångssätt syftar till att lyfta vårt erbjudande som ett robust verktyg för daglig användning för utvecklare, vilket ökar produktiviteten och effektiviteten i mjukvaruutvecklingsprocessen.

Tack för den fina intervjun, läsare som vill veta mer bör besöka Codium AI.

En av grundarna av unite.AI och en medlem av Forbes Technology Council, Antoine är en futurist som brinner för framtiden för AI och robotik.

Han är också grundare av Securities.io, en webbplats som fokuserar på att investera i disruptiv teknik.