csonk Itamar Friedman, a CodiumAI vezérigazgatója és társalapítója – Interjúsorozat – Unite.AI
Kapcsolatba velünk

interjúk

Itamar Friedman, a CodiumAI – Interjúsorozat vezérigazgatója és társalapítója

mm

Közzététel:

 on

Itamar Friedman, a cég vezérigazgatója és társalapítója CodiumAI. A Codium a kódgenerálás „kódintegritási” oldalára összpontosít – automatizált tesztek, kódmagyarázatok és áttekintések generálására. Kiadtak egy kutatást arról, hogy olyan kódmegoldásokat készítsenek versenyképes programozási kihívásokhoz, amelyek felülmúlják a Google DeepMind teljesítményét.

Mikor és hogyan kezdett érdeklődni az AI iránt?

2009-ben a Mellanoxnál (Acq. by NVIDIA) dolgoztam, és villamosmérnöknek tanultam. Felismerve, hogy a Mellanox unalmas fejlesztési folyamatai közül sok automatizálható gépi tanulási algoritmusokkal, a szakomat optimalizálásra és gépi tanulásra váltottam, és elvégeztem az MSc-t az űrben. 2010-ben már dolgoztam egy mélytanulási projekten (3 rétegű mély neurális hálózattal), amely megalapozta az Alibabánál töltött időmet, ahol egy neurális architektúra keresésre, képzési modellekre és fejlesztői AutoML-eszközök építésére szakosodott kutatócsoportot vezettem. 2021 körül nem szégyelltem „AI-nak” nevezni a munkánkat, hiszen a nagy nyelvi modellek erőteljes eszközökké váltak, és megnőtt a fantáziám, hogy mit lehet velük elérni.

A korábbi számítógépes látásmódra összpontosító induló Visualead-et végül az Alibaba Group vásárolta fel, mi volt ez az indulás, és melyek voltak a legfontosabb kivonatai ebből a tapasztalatból?

A Visualead a logók, QR-kódok és minden, ami a kettő között van, szkennelésére specializálódott, beleértve az információk képekben való rögzítését és elrejtését a biztonságos P2P tranzakciók és elkötelezettség érdekében. A Visualeadnél 2012 óta futtattunk algoritmusokat mobileszközökön, beleértve a modelleket is. Kihívást és trükkös volt ezt megtenni annak idején, és sokat tanultunk arról, hogyan építsünk hatékony modelleket és védőkorlátokat ezekre a statisztikai lényekre.

Az akkori tanulságokat a mai napig alkalmazom a jelenlegi projektjeimre – például amikor megépítettük a nyílt forráskódú megoldásgeneráló eszközt. AlphaCodium bevezettük a Flow Engineering koncepcióját, és ezt a koncepciót alkalmaztuk a védőkorlát LLM-modellek kimenetéhez való áramlás kialakítására.

Megosztaná a CodiumAI elindításának történetét?

Az Alibabánál saját bőrömön láttam, hogyan vezethet egy hiba a kódban millió dolláros problémához, és milyen kihívásokkal kell szembenézniük a fejlesztőknek, hogy lépést tudjanak tartani a kódgenerálással a minőség és az integritás feláldozása nélkül. Ez a probléma továbbra is fennáll, és ma az alacsony minőségű kódot egy billió dolláros problémának tulajdonítják, amely folyamatosan növekszik.

A CodiumAI csapata a mesterséges intelligencia által támogatott eszközök nagyszabású építésére specializálódott, és arra törekszik, hogy kezelje a fejlesztők előtt álló fájdalmas pontokat. Az új LLM és AI-képességek megszületésével megértettük, hogy itt a lehetőségünk egy holisztikus kódintegritási platform felépítésére, amely segít a magunkhoz hasonló elfoglalt csapatoknak csökkenteni a hibákat és enyhíteni az egyéb integritási problémákat. Ahogy egyre több kódot generált a mesterséges intelligencia, a kód összehasonlításának és a rendeltetésszerű működésének biztosításának problémája kritikus fájdalomponttá vált, amelyet meg kellett oldanunk. A mesterséges intelligencia által támogatott eszközök nagyszabású kiépítése, ezért a benchmarking elengedhetetlen fogalom számunkra.

Tapasztalt fejlesztők csoportjaként megkapjuk; unalmas feladatokkal, például teszteléssel és kódellenőrzéssel foglalkozni frusztráló lehet. Erősen küldetésünkre törekszünk, hogy végre lehetővé tegyük az elfoglalt csapatok számára, hogy növeljék és kezeljék kódjuk integritását.

Le tudná írni, hogy a CodiumAI milyen típusú nem triviális elemzést végez a kódon, és ez hogyan támogatja a fejlesztőket a kódminőség javításában?

Egészen a közelmúltig a fejlesztők rendelkezésére álló eszközök csekély értéket kínáltak – de az LLM-ek (ChatGPT, Copilot stb.) megjelenésével a képességek kezdik felülmúlni a várakozásokat, és a fejlesztők rendelkezésére álló támogatás sem triviális.

A CodiumAI által kifejlesztett Codiumate Coding-Agent egyedi eszközöket kínál a fejlesztőknek munkafolyamatuk javításához és a kódgenerálás javításához. A Codiumate leegyszerűsíti a fejlesztési folyamatot azáltal, hogy automatizált segítséget nyújt a kódolási feladat során. A meglévő kódrészletek felhasználásával, amelyeket az emberi fejlesztő kiemel a környezetében, az ügynök automatikusan elkészíthet egy könnyen követhető és összefüggő fejlesztési tervet, kódot írhat a tervnek megfelelően, azonosíthatja a duplikált kódot, amelyet a fejlesztő esetleg szeretne használni vagy eltávolítani, dokumentációt készíthet. , és teszteket javasol a kód megfelelő működésének biztosítására, mielőtt éles környezetben üzembe helyezné.

A Codiumate mélyreható viselkedéselemzést biztosít a fejlesztők számára – megvilágítja a lehetséges viselkedéseket és ágakat, amelyeket a tesztelés alatt álló kód magában foglal. Ez lehetővé teszi a fejlesztő számára, hogy megvizsgálja a generált kódot, és olyan teszteket hozzon létre, amelyek (elágazás) minden viselkedést lefednek, ezáltal jobban javítják a kódot, mintha a fejlesztő minden lehetséges esetet önállóan figyelembe vett volna.

Milyen konkrét funkciókat biztosít a PR-Agent a lekérési kérések elemzéséhez, és hogyan egyszerűsíti a felülvizsgálati folyamatot olyan platformokon, mint a GitHub és a GitLab?

A PR-Agent számos olyan funkciót kínál, amelyek javítják és egyszerűsítik a lekérési kérések (PR) elemzési és felülvizsgálati folyamatait a különböző git-szolgáltatóknál.

Az automatikus PR-leírások generálása automatikusan átfogó és részletes leírásokat készít a lekérési kérésekhez. Ez a funkció olyan gyakori problémákat orvosol, amelyeknél a fejlesztők időkorlát vagy felügyelet miatt kihagyhatják a részletes PR-leírásokat. Az automatizált leírások révén minden PR megfelelő kontextussal van felszerelve, ami megkönnyíti a bírálók számára a változtatások megértését anélkül, hogy a kódkülönbségeket alaposan meg kellene fejteniük. Beépítettük az automatikus PR-ellenőrzést is, hogy a fejlesztők átfogó áttekintést kapjanak a PR-ról, amely lehetővé teszi számukra, hogy proaktívan észleljék a lehetséges problémákat, például a hibákat, a biztonsági réseket vagy a kódszagokat. Ez a megelőző visszajelzés lehetővé teszi a fejlesztők számára, hogy a felülvizsgálati folyamat előtt korrekciókat hajtsanak végre, így javítva a véleményezőkhöz eljutó kód minőségét.

Az AI kihasználásával az automatizált kódjavaslatok fejlesztéseket vagy alternatív megvalósításokat is javasolhatnak közvetlenül a PR felületen belül. Ezek a javaslatok lehetnek az optimalizálás, a kódolási szabványok betartása, vagy akár az építészeti fejlesztések, amelyek elősegítik a kódbázis minőségének fokozatos emelését.

A PR-Agent számos lehetőséget támogat az általa kínált parancsok testreszabásához. Az egyik leghasznosabb testreszabási lehetőség az egyéni címkék használata a lekérési kérelmek szervezésének és kezelésének javítására olyan platformokon, mint a GitHub és a GitLab. Ez a funkció hozzájárul a működési hatékonysághoz és a fejlesztési és felülvizsgálati folyamatok átláthatóságához.

Hogyan generál értelmes teszteket a CodiumAI, és mi teszi ezeket a teszteket hatékonyabbá, mint a szabványos egységtesztek?

Javítjuk a tesztgenerálást azáltal, hogy átkutatjuk a kódtárakat a tesztelés alatt álló kódhoz kapcsolódó releváns részletekért. Az összes lehetséges kódviselkedés feltérképezéséhez gondolatlánc-promptokat alkalmazva, beleértve a tipikus útvonalakat és szélső eseteket, megközelítésünk kontextus-specifikus lekérést és testreszabott promptokat használ, amelyek a különböző programozási nyelvekhez vannak szabva, beágyazva a szakértői tudást annak biztosítására, hogy a tesztek megfeleljenek az iparági szabványoknak. Ezenkívül a CodiumAI speciális futási környezeteket állít be a hibák jobb észlelése és öngyógyító tesztek generálása érdekében. Ezek a képességek átfogóbbá teszik a CodiumAI által generált teszteket, mint a szabványos egységtesztek, amelyek gyakran figyelmen kívül hagyják a nem kívánt viselkedést a fejlesztők belső elfogultsága és az összes lehetséges forgatókönyv előrejelzésének korlátai miatt. Ez olyan teszteket eredményez, amelyek nemcsak alaposak, hanem hatékonyabbak is a finom hibák és szélsőséges esetek feltárásában.

A felhasználói visszajelzések alapján melyek a CodiumAI legértékesebb funkciói, és hogyan befolyásolták ezek a funkciók a fejlesztők produktivitását?

A kapott felhasználói visszajelzések alapján azt látjuk, hogy a /ask kódblokk kontextussal és a /tesztgeneráció a Codiumate ügynök funkciói nagyon keresettek, és javítják a fejlesztői munkafolyamatot.

A /ask kódblokk kontextussal (lásd a dokumentációt itt: /kérdez) a fejlesztők nyitott kérdéseket tehetnek fel kódjukkal kapcsolatban, vagy kérhetnek kódjavítást vagy felülvizsgálatot egy ingyenes csevegés során. Ez a funkció különösen előnyös a kódbázis mélyebb megértéséhez, mivel a modell megtartja a projekt teljes kontextusát, lehetővé téve a rendkívül részletes és specifikus kérdések megválaszolását.

A /tesztgeneráció (lásd a dokumentációt itt: /teszt) eszköz lehetővé teszi a fejlesztők számára, hogy egyetlen kattintással átfogó tesztcsomagokat hozzanak létre a kódjukhoz. A kód viselkedésének feltárása, a hibák azonnali azonosítása és megoldása, valamint a kódlefedettség gyorsan bővülése óriási előnyt jelent a termelékenység szempontjából.

A PR-ügynök /felülvizsgálat (lásd a dokumentációt itt - /felülvizsgálat) funkció ellenőrzi a PR-kód változásait, és automatikusan PR-ellenőrzést készít a problémák felderítésére, mielőtt a fejlesztők élesre állítanák. A

/leírni (lásd a dokumentációt itt - /leírni) funkció beolvassa a PR-kód változásait, és leírást generál a PR-hoz – címet, típust, összefoglalót, áttekintést és címkéket, így a fejlesztők időt és energiát takarítanak meg, így jobban alkalmazhatják az igényesebb vagy kreatívabb feladatokat.

Hogyan azonosítja a CodiumAI a szélső eseteket és a gyanús viselkedéseket a kódban?

Eszközeink átvizsgálják a fejlesztő tárházát a tesztelés alatt álló kódhoz kapcsolódó releváns kódrészletek után, és gondolatlánc-promptokkal feltérképezzük az összes lehetséges kódviselkedést, és megjelenítjük azokat a fejlesztőnek. A CodiumAI közvetlenül (a tesztgenerációktól függetlenül) képes azonosítani a gyanús viselkedéseket azáltal, hogy azonosítja a különböző kódrészletek vagy kódrészletek és a kísérő dokumentáció közötti eltéréseket vagy inkonzisztenciákat.

A CodiumAI támogatja a főbb programozási nyelveket; kifejtenéd, hogyan kezeli a nyelvspecifikus árnyalatokat a kódelemzés és a tesztgenerálás során?

A főbb programozási nyelvek esetében platformunk túlmutat az alapvető támogatáson azáltal, hogy speciális technikákat alkalmaz. Ezek közé tartozik a környezetfüggő lekérés és az egyes nyelvek egyedi szintaxisához és szemantikájához szabott testreszabott felszólítások. Ezek a személyre szabott promptok nyelvi tartományi szakértői ismereteket foglalnak magukban az iparági szintű eredmények elérése érdekében. Ezen kívül lehetőséget biztosítunk kifejezetten ezekre a nyelvekre futási környezet létrehozására, ami javítja eszközünk azon képességét, hogy észleli a hibákat és hatékonyan generáljon önjavító teszteket.

A kevésbé elterjedt nyelvek esetében nagy nyelvi modelleket (LLM) használunk, amelyek eleve megértenek több programozási nyelvet. Ezt egészíti ki általános kontextus-infrastruktúránk és adaptív felszólító rendszerünk, amelyek együttesen megkönnyítik a pontos kódelemzést és a tesztgenerálást különböző programozási környezetekben. A kétszintű megközelítéssel átfogó támogatást tudunk biztosítani, függetlenül a használt programozási nyelvtől.

Milyen jövőbeni fejlesztéseket terveznek a CodiumAI-nál a fejlesztők feladatainak további támogatása és egyszerűsítése érdekében?

A CodiumAI jövőbeli fejlesztési stratégiája a rendelkezésre álló mesterségesintelligencia-eszközök bővítésére helyezi a hangsúlyt, hogy zökkenőmentesen integrálódjon a szoftverfejlesztési életciklus minden szakaszába. A fejlesztők munkafolyamatainak korszerűsítése és egyszerűsítése érdekében fejlett folyamattervezési elvek alkalmazásával ügynökeink jelentős értéket képviselnek a fejlesztés különböző szakaszaiban. Ezen túlmenően a CodiumAI elkötelezett amellett, hogy ezek az eszközök kiválóak legyenek az összetett, valós kód- és szövegforgatókönyvek kezelésében, így nélkülözhetetlenek a mindennapi programozási feladatokban. Ennek a holisztikus megközelítésnek az a célja, hogy kínálatunkat robusztus, napi használatú eszközzé emelje a fejlesztők számára, növelve a termelékenységet és a hatékonyságot a szoftverfejlesztési folyamatban.

Köszönjük a remek interjút, azoknak az olvasóknak, akik többet szeretnének megtudni, látogassanak el CodiumAI.

Az unite.AI alapító partnere és tagja Forbes Technológiai Tanács, Antoine a futurista aki szenvedélyesen rajong az AI és a robotika jövőjéért.

Ő az alapítója is Értékpapír.io, egy webhely, amely a bomlasztó technológiába való befektetésre összpontosít.