Interviews

Itamar Friedman, CEO & Co-Founder van CodiumAI – Interviewreeks

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Itamar Friedman is de CEO en mede-oprichter van CodiumAI. Codium richt zich op de “code-integriteit”-kant van codegeneratie – het genereren van geautomatiseerde tests, codeverklaringen en -beoordelingen. Zij hebben onderzoek gepubliceerd over het genereren van codes oplossingen voor competitieve programmeringsuitdagingen die beter presteren dan Google DeepMind.

Wanneer en hoe bent u voor het eerst geïnteresseerd geraakt in AI?

In 2009 werkte ik bij Mellanox (overgenomen door NVIDIA (NVDA )) en studeerde ik elektrotechniek. Ik realiseerde me dat veel van de saaie ontwikkelingsprocessen bij Mellanox geautomatiseerd konden worden met machine learning-algoritmen, dus ik veranderde mijn hoofdvakken naar optimalisatie en machine learning en voltooide een master in dit vakgebied. In 2010 werkte ik al aan een diep lerend project (met 3 lagen diep neurale netwerken) en legde de basis voor mijn tijd bij Alibaba, waar ik een onderzoeksgroep leidde die zich specialiseerde in neurale architectuurzoek, modeltraining en het bouwen van AutoML-hulpmiddelen voor ontwikkelaars. Rond 2021 was ik niet langer bang om ons werk “AI” te noemen, aangezien grote taalmodellen krachtige hulpmiddelen werden en mijn voorstelling van wat er mogelijk was met hen groeide.

Uw vorige startup, Visualead, die zich richtte op computerzicht, werd uiteindelijk overgenomen door de Alibaba Group. Wat was deze startup en wat waren enkele van uw belangrijkste inzichten uit deze ervaring?

Visualead specialiseerde zich in het scannen van logo’s, QR-codes en alles daartussenin, inclusief het beveiligen en verbergen van informatie in afbeeldingen om veilige peer-to-peer-transacties en -interactie mogelijk te maken. Bij Visualead hebben we sinds 2012 algoritmen op mobiele apparaten uitgevoerd, inclusief modellen. Het was een uitdaging en een beetje tricky om dat te doen in die tijd, en we leerden veel over het bouwen van efficiënte modellen en het creëren van beveiligingsmaatregelen rond deze statistische wezens.

Tot op de dag van vandaag pas ik nog steeds de lessen toe die ik in die tijd heb geleerd aan de huidige projecten die ik ondernem – bijvoorbeeld toen we de open-source oplossing generatie-tool AlphaCodium bouwden, introduceerden we het concept van Flow Engineering en pasten dit concept toe om een flow te creëren om LLM-modellenoutput te beveiligen.

Kunt u het verhaal vertellen over de lancering van CodiumAI?

Bij Alibaba zag ik met eigen ogen hoe een bug in de code kon leiden tot een miljoen-dollar-probleem en de uitdagingen waarmee ontwikkelaars werden geconfronteerd om de codegeneratie bij te houden zonder de kwaliteit of integriteit te offeren. Dit probleem bestaat nog steeds, en vandaag de dag wordt laagwaardige code toegeschreven aan een triljoen-dollar-probleem dat blijft groeien.

Het team van CodiumAI specialiseert zich in het bouwen van AI-geëmpowerde tools op grote schaal en is gedreven om de pijn punten aan te pakken waarmee ontwikkelaars worden geconfronteerd. Met de geboorte van nieuwe LLM- en AI-mogelijkheden, begrepen we dat dit onze kans was om een holistische code-integriteitsplatform te bouwen om drukke teams zoals onszelf te helpen om bugs en andere integriteitsproblemen te verminderen. Naarmate meer en meer code werd gegenereerd door AI, werd het probleem van het benchmarken van deze code en ervoor zorgen dat het werkte zoals bedoeld een kritiek pijn punt en een dat wij ons wilden aanpakken. Het bouwen van AI-geëmpowerde tools op grote schaal en dus benchmarken is een essentieel concept voor ons.

Als een groep ervaren ontwikkelaars begrijpen we het; omgaan met saaie taken zoals testen en codebeoordeling kan frustrerend zijn. Wij zijn zeer missie-gedreven om eindelijk drukke teams in staat te stellen hun code-integriteit te verhogen en te beheren.

Kunt u beschrijven welke soorten niet-triviale analyses CodiumAI uitvoert op code en hoe dit ontwikkelaars helpt bij het verbeteren van de codekwaliteit?

Tot voor kort boden de bestaande tools voor ontwikkelaars weinig waarde – maar met de komst van LLM’s (ChatGPT, Copilot, enz.) beginnen de mogelijkheden de verwachtingen te overtreffen, en de ondersteuning die beschikbaar is voor ontwikkelaars is niet langer triviaal.

De Codiumate Coding-Agent, ontwikkeld door CodiumAI, biedt ontwikkelaars unieke tools om hun workflow te verbeteren en de codegeneratie te verhogen. Codiumate stroomlijnt het ontwikkelproces door geautomatiseerde ondersteuning te bieden bij de codetaak. Met behulp van de bestaande codefragmenten die een menselijke ontwikkelaar in hun omgeving heeft gemarkeerd, kan de agent automatisch een ontwikkelplan opstellen, code schrijven volgens dat plan, identieke code detecteren die de ontwikkelaar mogelijk wil gebruiken of verwijderen, documentatie opstellen en tests suggereren om ervoor te zorgen dat de code werkt zoals bedoeld voordat deze in een live-omgeving wordt geïmplementeerd.

Codiumate biedt ontwikkelaars in-depth gedragsanalyse – het verlicht mogelijke gedragingen en takken die de code omvat. Dit stelt de ontwikkelaar in staat om de gegenereerde code te onderzoeken en tests te maken die (tak) alle gedragingen omvatten, waardoor de code meer wordt verbeterd dan wanneer de ontwikkelaar alle mogelijke gevallen zelf had overwogen.

Wat zijn de specifieke functionaliteiten van de PR-Agent voor pull request-analyse en hoe stroomlijnt het de beoordelingsproces op platforms zoals GitHub en GitLab (GTLB )?

De PR-Agent biedt een reeks functionaliteiten om de pull request (PR) analyse en beoordelingsproces te verbeteren en te stroomlijnen op verschillende git-providers.

Automatische PR-beschrijving generatie genereert automatisch uitgebreide en gedetailleerde beschrijvingen voor pull requests. Deze functie lost een veelvoorkomend probleem op waarbij ontwikkelaars mogelijk gedetailleerde PR-beschrijvingen overslaan vanwege tijdsbeperkingen of nalatigheid. Met geautomatiseerde beschrijvingen is elke PR uitgerust met voldoende context, waardoor het voor beoordelaars gemakkelijker wordt om de wijzigingen te begrijpen zonder de code diffs uitgebreid te hoeven doorzoeken. We hebben ook geautomatiseerde PR-beoordeling ingebouwd om ontwikkelaars een uitgebreid overzicht van de PR te geven, waardoor ze potentiële problemen zoals bugs, beveiligingslekken of codegeuren proactief kunnen identificeren. Deze voorafgaande feedback stelt ontwikkelaars in staat om correcties aan te brengen voordat de beoordelingsproces begint, waardoor de kwaliteit van de code die de beoordelaars bereikt wordt verbeterd.

Met behulp van AI kunnen geautomatiseerde code-suggesties ook suggesties doen voor verbeteringen of alternatieve implementaties rechtstreeks binnen de PR-interface. Deze suggesties kunnen optimalisaties, naleving van coderingsstandaarden of zelfs architectonische verbeteringen zijn, waardoor de kwaliteit van de codebasis stap voor stap wordt verhoogd.

De PR-Agent ondersteunt verschillende opties voor het aanpassen van de opdrachten die het biedt. Een van de meest nuttige aanpassingsmogelijkheden is het gebruik van aangepaste labels om de organisatie en het beheer van pull requests op platforms zoals GitHub en GitLab te verbeteren. Deze functionaliteit draagt bij aan de operationele efficiëntie en duidelijkheid van de ontwikkel- en beoordelingsprocessen.

Hoe genereert CodiumAI betekenisvolle tests en wat maakt deze tests effectiever dan standaard eenheidstests?

We verbeteren testgeneratie door code-repositories te scannen op relevante codefragmenten die verband houden met de code die getest wordt. Met behulp van chain-of-thought-prompts om alle mogelijke codegedragingen in kaart te brengen, inclusief typische paden en randgevallen, gebruiken we contextspecifieke fetching en aangepaste prompts die zijn afgestemd op de unieke syntaxis en semantiek van elke programmeertaal. Bovendien stellen we specifieke runtime-omgevingen in om beter bugs te detecteren en zelfherstellende tests te genereren. Deze mogelijkheden maken CodiumAI-generate tests meer omvattend dan standaard eenheidstests, die vaak onbedoelde gedragingen missen vanwege de inherente vooroordelen van ontwikkelaars en de beperkingen in het voorzien van alle mogelijke scenario’s. Dit resulteert in tests die niet alleen grondig zijn, maar ook effectiever zijn in het opsporen van subtiele bugs en randgevallen.

Op basis van gebruikersfeedback, wat zijn de meest gewaardeerde functies van CodiumAI en hoe hebben deze functies de productiviteit van ontwikkelaars beïnvloed?

Op basis van de gebruikersfeedback die we hebben ontvangen, zien we dat de /vraag met codeblokkcontext en /testgeneratie functies van de Codiumate-agent zeer gewild zijn en de workflow van ontwikkelaars verbeteren.

Met /vraag met codeblokkcontext (zie documentatie hier: /vraag) kunnen ontwikkelaars open vragen stellen over hun code of verzoeken om codeverbeteringen of -beoordelingen tijdens een gratis chatsessie. Deze functie is vooral nuttig voor het verkrijgen van een dieper inzicht in de codebasis, aangezien het model de volledige context van het project onthoudt, waardoor het in staat is om zeer gedetailleerde en specifieke vragen te beantwoorden.

De /testgeneratie (zie documentatie hier: /test) tool stelt ontwikkelaars in staat om uitgebreide test suites voor hun code te genereren met slechts één klik. Het verkennen van codegedrag, het identificeren en oplossen van bugs, en het snel uitbreiden van codecoverage is een enorm pluspunt voor de productiviteit.

De PR Agent /beoordeling (zie documentatie hier – /beoordeling) scant PR-code wijzigingen en genereert automatisch een PR-beoordeling om problemen te detecteren voordat ontwikkelaars naar productie pushen. De

/beschrijf (zie documentatie hier – /beschrijf) functie scant de PR-code wijzigingen en genereert een beschrijving voor de PR – titel, type, samenvatting, walkthrough en labels, waardoor ontwikkelaars tijd en energie besparen die ze beter kunnen besteden aan meer veeleisende of creatieve taken.

Hoe identificeert CodiumAI randgevallen en verdachte gedragingen in de code?

Onze tools scannen de repository van de ontwikkelaar op relevante codefragmenten die verband houden met de code die getest wordt, en met behulp van chain-of-thought-prompts brengen we alle mogelijke codegedragingen in kaart en presenteren deze aan de ontwikkelaar. CodiumAI kan verdachte gedragingen rechtstreeks identificeren (ongeacht de testgeneratie), door inconsistenties of inconsistenties tussen verschillende codefragmenten of codefragmenten en de bijbehorende documentatie te detecteren.

CodiumAI ondersteunt belangrijke programmeertalen; kunt u uitleggen hoe het taalspecifieke nuances in codeanalyse en testgeneratie behandelt?

Voor belangrijke programmeertalen gaat ons platform verder dan basisondersteuning door gespecialiseerde technieken te implementeren. Deze omvatten contextspecifieke fetching en aangepaste prompts die zijn afgestemd op de unieke syntaxis en semantiek van elke taal. Deze aangepaste prompts incorporeren taaldomein-expertkennis om industrieniveau-resultaten te bereiken. Bovendien bieden we de mogelijkheid om een runtime-omgeving specifiek voor deze talen in te stellen, waardoor onze tool beter in staat is om bugs te detecteren en zelfherstellende tests te genereren. Voor minder courante talen gebruiken we grote taalmodellen (LLM’s) die inherent meerdere programmeertalen begrijpen. Dit wordt aangevuld door onze algemene context-infrastructuur en adaptieve promptsysteem, die samen accurate codeanalyse en testgeneratie mogelijk maken in diverse programmeeromgevingen. Door een tweeledige aanpak te hanteren, kunnen we ervoor zorgen dat we uitgebreide ondersteuning bieden, ongeacht de programmeertaal die wordt gebruikt.

Wat zijn de toekomstige verbeteringen die gepland zijn voor CodiumAI om ontwikkelaars nog verder te ondersteunen en te vereenvoudigen?

CodiumAI’s toekomstige ontwikkelingsstrategie ligt in het verbeteren van de beschikbare reeks AI-hulpmiddelen om deze naadloos te integreren in alle fasen van de software-ontwikkelingscyclus. Door geavanceerde flow-engineering-principes toe te passen om de workflow van ontwikkelaars te stroomlijnen en te vereenvoudigen, zullen onze agents significant waarde bieden in verschillende fasen van de ontwikkeling. Bovendien is CodiumAI toegewijd om ervoor te zorgen dat deze tools uitstekend presteren bij het omgaan met complexe, real-world code en tekstscenario’s, waardoor ze onmisbaar worden in dagelijkse programmeertaken. Deze holistische aanpak heeft tot doel ons aanbod te verheffen tot een robuust, dagelijks gebruikt hulpmiddel voor ontwikkelaars, waardoor de productiviteit en efficiëntie in het software-ontwikkelingsproces worden verbeterd.

Bedankt voor het geweldige interview, lezers die meer willen leren, moeten CodiumAI bezoeken.

Antoine is een visionaire leider en medeoprichter van Unite.AI, gedreven door een onwankelbare passie voor het vormgeven en promoten van de toekomst van AI en robotica. Een serieondernemer, hij gelooft dat AI net zo disruptief voor de samenleving zal zijn als elektriciteit, en wordt vaak betrapt op het prijzen van de potentie van disruptieve technologieën en AGI.

Als een futurist, hij is toegewijd aan het onderzoeken van hoe deze innovaties onze wereld zullen vormgeven. Bovendien is hij de oprichter van Securities.io, een platform dat zich richt op het investeren in cutting-edge technologieën die de toekomst herdefiniëren en hele sectoren herschikken.