Rozhovory

Itamar Friedman, CEO & Co-Founder of CodiumAI – Interview Series

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Itamar Friedman, je CEO a spoluzakladatel CodiumAI. Codium se zaměřuje na „integritu kódu“ generování kódu — generování automatických testů, vysvětlení kódu a recenzí. Publikovali výzkum o generování kódu pro soutěžní programovací výzvy, které překonávají Google DeepMind.

Kdy a jak jste se最初ně zajímal o AI?

V roce 2009 jsem pracoval v Mellanox (Acq. by NVIDIA (NVDA )) a studoval elektrotechniku. Když jsem si uvědomil, že mnoho z nudných vývojových procesů v Mellanox lze automatizovat pomocí algoritmů strojového učení, změnil jsem své specializace na optimalizaci a strojové učení a dokončil magisterský titul v tomto oboru. Do roku 2010 jsem již pracoval na projektu hlubokého učení (s 3 vrstvami hluboké neuronové sítě), který položil základy pro mou práci v Alibaba, kde jsem vedl výzkumnou skupinu specializující se na neuronové architektury, školení modelů a vytváření nástrojů AutoML pro vývojáře. Přibližně v roce 2021 jsem již nebyl stydět nazývat naši práci „AI“, protože velké jazykové modely se staly mocnými nástroji a moje představa o tom, co lze s nimi dosáhnout, rostla.

Vaše předchozí startup Visualead se specializoval na počítačové vidění a byl nakonec získán Alibaba Group, co to byl za startup a jaké byly některé z vašich klíčových poznatků z této zkušenosti?

Visualead se specializoval na skenování log, QR kódů a všeho mezi nimi, včetně zabezpečení a skrývání informací v obrazech pro umožnění bezpečných transakcí a interakcí. V Visualeadu jsme již od roku 2012 běželi algoritmy na mobilních zařízeních, včetně modelů. Bylo to náročné a trikové dělat to v té době, a naučili jsme se mnoho o budování efektivních modelů a ochranných mechanismů kolem těchto statistických tvorů.

Dodnes stále aplikuji poznatky získané z té doby na současné projekty, na které se zaměřuji – například, když jsme vytvořili otevřený nástroj pro generování řešení AlphaCodium, jsme zavedli koncept Flow Engineering a aplikovali tento koncept na vytvoření toku pro ochranu výstupu modelů LLM.

Můžete sdílet příběh o vzniku CodiumAI?

V Alibaba jsem viděl na vlastní oči, jak chyba v kódu mohla vést k milionovému problému a jakými výzvami čelili vývojáři, aby udrželi krok s generováním kódu bez ohrožení kvality nebo integrity. Tento problém přetrvává a dnes je nízkokvalitní kód přičítán k trillionovému problému, který dále roste.

Tým v CodiumAI se specializuje na budování nástrojů s umělou inteligencí ve velkém měřítku a je poháněn snahou řešit bolestivé body, kterým čelí vývojáři. S narozením nových LLM a AI schopností jsme pochopili, že tato je naše příležitost postavit komplexní platformu pro integritu kódu, která pomůže zaneprázdněným týmům, jako jsme my, snížit chyby a zmírnit další problémy s integritou. Když se více a více kódu generovalo pomocí AI, problém benchmarkingu tohoto kódu a zajištění toho, aby fungoval podle očekávání, se stal kritickým bolestivým bodem a jedním, který jsme byli odhodláni vyřešit. Budování nástrojů s umělou inteligencí ve velkém měřítku a benchmarking je proto pro nás zásadním konceptem.

Jako skupina zkušených vývojářů to chápeme; řešení nudných úkolů, jako jsou testy a recenze kódu, může být frustrující. Jsme vysoce motivováni umožnit zaneprázdněným týmům zvýšit a spravovat jejich integritu kódu.

Můžete popsat, jaké typy nebanálních analýz CodiumAI provádí na kódu a jak tato analýza podporuje vývojáře při zlepšování kvality kódu?

Až donedávna nabízely stávající nástroje dostupné vývojářům málo hodnoty – ale s příchodem LLM (ChatGPT, Copilot atd.) jsou schopnosti začínají překračovat očekávání a podpora dostupná vývojářům již není triviální.

Nástroj Codiumate vyvinutý CodiumAI nabízí vývojářům jedinečné nástroje pro zlepšení jejich pracovního postupu a vylepšení generování kódu. Codiumate zjednodušuje vývojový proces poskytováním automatické asistence po celou dobu úkolu programování. Používá stávající kódy, které lidský vývojář zvýrazní ve svém prostředí, a může automaticky vypracovat snadno srozumitelný a koherentní vývojový plán, napsat kód podle tohoto plánu, identifikovat duplicitní kód, který vývojář může chtít použít nebo odstranit, vypracovat dokumentaci a navrhnout testy, aby se zajistilo, že kód funguje správně, než bude nasazen v živém prostředí.

Codiumate poskytuje vývojářům hlubokou behaviorální analýzu – osvětlující možné chování a větve, které kód zahrnuje. To umožňuje vývojáři prozkoumat vygenerovaný kód a vytvořit testy, které pokrývají všechny chování, a tím zlepšit kód více, než by vývojář sám zvládl.

Jaké konkrétní funkce nabízí PR-Agent pro analýzu pull requestů a jak zjednodušuje proces recenze na platformách jako GitHub a GitLab (GTLB )?

PR-Agent nabízí řadu funkcí navržených pro zlepšení a zjednodušení procesu analýzy a recenze pull requestů (PR) napříč různými poskytovateli git.

Automatická generace popisu PR automaticky generuje komplexní a podrobné popisy pro pull requesty. Tato funkce řeší běžné problémy, kdy vývojáři mohou přeskočit podrobné popisy PR z důvodu časových omezení nebo opomenutí. Díky automatickým popisům je každý PR vybaven dostatečným kontextem, což usnadňuje recenzentům pochopit změny bez nutnosti rozsáhlého procházení rozdílů v kódu.

Také jsme vyvinuli automatickou recenzi PR, která poskytuje vývojářům komplexní přehled o PR, aby mohli identifikovat potenciální problémy, jako jsou chyby, bezpečnostní zranitelnosti nebo zápachy kódu, proaktivně. Tato preventivní zpětná vazba umožňuje vývojářům provést opravy před procesem recenze, a tím zlepšit kvalitu kódu, který dosáhne recenzentů.

Pomocí AI lze také automaticky navrhnout vylepšení nebo alternativní implementace přímo v rozhraní PR. Tyto návrhy mohou být optimalizace, dodržování standardů kódování nebo dokonce architektonická vylepšení, která pomáhají zvyšovat kvalitu kódu.

PR-Agent podporuje řadu možností pro přizpůsobení příkazů, které nabízí. Jednou z nejvíce užitečných možností přizpůsobení je použití vlastních štítků pro vylepšení organizace a správy pull requestů na platformách jako GitHub a GitLab. Tato funkce přispívá k provozní efektivitě a jasnosti vývojového a recenzního procesu.

Jak CodiumAI generuje smysluplné testy a co činí tyto testy účinnější než standardní unit testy?

Zlepšujeme generování testů procházením repozitářů kódu pro relevantní kódy související s testovaným kódem. Používáme chain-of-thought promptů pro mapování všech možných chování kódu, včetně typických cest a edge případů, a naše přístup využívá kontextově specifické načítání a přizpůsobené promptů přizpůsobené pro různé programovací jazyky, vkládající odborné znalosti, aby se zajistilo, že testy splňují průmyslové standardy. Kromě toho CodiumAI nastavuje specifické runtime prostředí pro lepší detekci chyb a generování samoopravných testů. Tyto schopnosti činí testy generované CodiumAI komplexnější než standardní unit testy, které často přehlížejí neočekávaná chování kvůli vývojářským předsudkům a omezením při předvídání všech možných scénářů. To vede k testům, které jsou nejen komplexní, ale také účinnější při odhalování jemných chyb a edge případů.

Zpětná vazba uživatelů ukazuje, jaké jsou nejhodnotnější funkce CodiumAI a jak tyto funkce ovlivnily produktivitu vývojářů?

Zpětná vazba uživatelů, kterou jsme obdrželi, ukazuje, že funkce /ask with code block context a /test generation agenta Codiumate jsou vysoce požadované a zlepšují pracovní postup vývojářů.

S /ask with code block context (viz dokumentace zde: /ask) mohou vývojáři položit otevřené otázky o svém kódu nebo požadovat vylepšení kódu nebo recenze během bezplatné chatovací relace. Tato funkce je besonders přínosná pro hlubší pochopení kódu, protože model uchovává plný kontext projektu, umožňující mu řešit vysoce detailní a specifické dotazy.

Nástroj /test generation (viz dokumentace zde: /test) umožňuje vývojářům generovat komplexní testovací sady pro jejich kód s jediným kliknutím. Prozkoumání chování kódu, identifikace a řešení chyb okamžitě a rychlé rozšíření pokrytí kódu je obrovským aktivem pro produktivitu.

Funkce /review (viz dokumentace zde – /review) agenta PR-Agent prochází kódové změny PR a automaticky generuje recenzi PR, aby chyby odhalil předtím, než vývojáři nasadí kód do produkčního prostředí.

Funkce /describe (viz dokumentace zde – /describe) prochází kódové změny PR a generuje popis pro PR – název, typ, souhrn, procházka a štítky, čímž vývojářům ušetří čas a energii, které mohou lépe využít pro náročnější nebo kreativnější úkoly.

Jak CodiumAI identifikuje edge případy a podezřelé chování v kódu?

Naše nástroje procházejí repozitář vývojáře pro relevantní kódy související s testovaným kódem a pomocí chain-of-thought promptů mapujeme všechna možná chování kódu a zobrazujeme je vývojáři. CodiumAI může identifikovat podezřelé chování přímo (bez ohledu na generování testů), identifikací nesrovnalostí nebo nesouladů mezi různými kódy nebo kódy a doprovodnou dokumentací.

CodiumAI podporuje hlavní programovací jazyky; můžete vysvětlit, jak zvládá jazykově specifické nuance v analýze kódu a generování testů?

Pro hlavní programovací jazyky naše platforma jde za základní podporu implementací specializovaných technik. Tyto zahrnují kontextově specifické načítání a přizpůsobené promptování přizpůsobené pro každého jazyka specifické syntaxe a sémantiky. Tyto přizpůsobené prompty vkládají znalosti odborníků z dané oblasti, aby se dosáhlo výsledků na úrovni průmyslu. Kromě toho poskytujeme schopnosti pro nastavení runtime prostředí specificky pro tyto jazyky, což zlepšuje naši schopnost detekovat chyby a generovat samoopravné testy účinně.

Pro méně běžné jazyky využíváme velké jazykové modely (LLM), které přirozeně rozumějí několika programovacím jazykům. To je doplněno naší obecnou infrastrukturou kontextu a adaptivním systémem promptů, který společně usnadňuje přesnou analýzu kódu a generování testů napříč různými programovacími prostředími. Díky dual-level přístupu můžeme zajistit komplexní podporu nezávisle na použitém programovacím jazyku.

Jaké budoucí vylepšení jsou plánovány pro CodiumAI, aby dále podporovaly a zjednodušovaly úkoly vývojářů?

Budoucí rozvojová strategie CodiumAI klade důraz na vylepšení dostupného souboru nástrojů s umělou inteligencí, aby se tyto nástroje bezproblémově integrovaly do všech fází životního cyklu softwarového vývoje. Používáním pokročilých principů flow-engineering pro zjednodušení a zefektivnění pracovního postupu vývojářů, naši agenti budou poskytovat významnou hodnotu napříč různými fázemi vývoje. Kromě toho se CodiumAI zavazuje zajistit, aby tyto nástroje excelovaly při zpracování komplexních, reálných kódů a textových scénářů, čímž se stanou nepostradatelnými v každodenních programovacích úkolech. Tento holistický přístup má za cíl povысit naši nabídku jako robustní, denní nástroj pro vývojáře, zvyšující produktivitu a efektivitu ve softwarovém vývojovém procesu.

Děkuji za skvělý rozhovor, čtenáři, kteří chtějí se dozvědět více, by měli navštívit CodiumAI.

Antoine je vizionářský líder a spoluzakladatel Unite.AI, který je poháněn neotřesitelnou vášní pro formování a propagaci budoucnosti umělé inteligence a robotiky. Jako sériový podnikatel věří, že umělá inteligence bude mít na společnost stejně disruptivní vliv jako elektřina, a často se chvála na potenciál disruptivních technologií a AGI.