Свържете се с нас

Интервюта

Итамар Фридман, главен изпълнителен директор и съосновател на CodiumAI – Серия интервюта

mm

Публикуван

 on

Итамар Фридман е главен изпълнителен директор и съосновател на CodiumAI. Codium се фокусира върху страната на „интегритета на кода“ при генерирането на код – генериране на автоматизирани тестове, обяснения на кодове и прегледи. Те публикуваха изследвания за генериране на кодови решения за конкурентни предизвикателства в програмирането, които превъзхождат Google DeepMind.

Кога и как първоначално се заинтересувахте от AI?

През 2009 г. работих в Mellanox (Acq. by NVIDIA) и учих електроинженерство. Осъзнавайки, че много от досадните процеси на разработка в Mellanox могат да бъдат автоматизирани чрез алгоритми за машинно обучение, смених специалностите си с оптимизация и машинно обучение и завърших магистърска степен по космоса. До 2010 г. вече работех върху проект за задълбочено обучение (с 3 слоя дълбока невронна мрежа), полагайки основите за времето си в Alibaba, където ръководех изследователска група, специализирана в търсене на невронна архитектура, модели за обучение и изграждане на AutoML инструменти за разработчици. Около 2021 г. не се срамувах да нарека нашата работа „AI“, тъй като големите езикови модели се превърнаха в мощни инструменти и въображението ми какво може да се постигне с тях се разрасна.

Вашият предишен стартиращ бизнес Visualead, фокусиран върху компютърното зрение, в крайна сметка беше придобит от Alibaba Group, какво беше това стартиране и какви бяха някои от вашите ключови изводи от този опит?

Visualead се специализира в сканиране на лога, QR кодове и всичко между тях, включително защита и скриване на информация в изображения, за да позволи безопасни P2P транзакции и ангажираност. Във Visualead работихме с алгоритми на мобилни устройства от 2012 г., включително модели. Навремето беше предизвикателство и трудно да се направи това и научихме много за изграждането на ефективни модели и парапети около тези статистически създания.

И до ден днешен все още прилагам уроците, научени от онова време, към настоящите проекти, които предприемам – например, когато създадохме инструмента за генериране на решения с отворен код АлфаКодиум ние въведохме концепцията за Инженеринг на потока и приложихме тази концепция, за да изградим поток към изхода на моделите на LLMs за парапети.

Бихте ли споделили историята на генезиса зад стартирането на CodiumAI?

В Alibaba видях от първа ръка как грешка в кода може да доведе до проблем за милиони долари и предизвикателствата, пред които са изправени разработчиците, за да поддържат генерирането на код, без да жертват качеството или целостта. Този проблем продължава и днес нискокачественият код се приписва на проблем за трилиони долари, който продължава да расте.

Екипът на CodiumAI е специализиран в изграждането на инструменти, упълномощени от AI, в мащаб и се стреми да се справи с болките, пред които са изправени разработчиците. С раждането на нови възможности за LLM и AI разбрахме, че това е нашата възможност да изградим холистична платформа за цялост на кода, за да помогнем на натоварени екипи като нас да намалят грешките и да смекчат други проблеми с целостта. Тъй като все повече и повече код се генерираше от AI, проблемът с бенчмаркинга на този код и гарантирането, че той работи по предназначение, се превърна в критична болезнена точка, която бяхме принудени да разрешим. Изграждането на упълномощени от AI инструменти в мащаб и следователно сравнителният анализ е основна концепция за нас.

Като група опитни разработчици, ние го разбираме; справянето с досадни задачи като тестване и преглед на код може да бъде разочароващо. Ние сме силно ориентирани към мисията най-накрая да позволим на натоварените екипи да увеличат и управляват целостта на своя код.

Можете ли да опишете какви типове нетривиален анализ извършва CodiumAI върху кода и как това помага на разработчиците да подобрят качеството на кода?

Доскоро съществуващите инструменти, достъпни за разработчиците, предлагаха малка стойност, но с пристигането на LLM (ChatGPT, Copilot и т.н.) възможностите започват да надхвърлят очакванията и поддръжката, налична за разработчиците, вече не е тривиална.

Codiumate Coding-Agent, разработен от CodiumAI, предлага на разработчиците уникални инструменти за подобряване на техния работен процес и подобряване на генерирането на код. Codiumate рационализира процеса на разработка, като предоставя автоматизирана помощ по време на задачата за кодиране. Използвайки съществуващите кодови фрагменти, които човешкият разработчик подчертава в своята среда, агентът може автоматично да състави лесен за следване и сплотен план за разработка, да напише код според този план, да идентифицира дублиран код, който разработчикът може да иска да използва или премахне, да изготви проект на документация и предлага тестове, за да се гарантира, че кодът работи правилно, преди да бъде внедрен в среда на живо.

Codiumate предоставя на разработчиците задълбочен анализ на поведението - осветлявайки възможните поведения и разклонения, които обхваща тестваният код. Това позволява на разработчика да изследва генерирания код и да създава тестове, които (клонове) покриват всички поведения, като по този начин подобряват кода повече, отколкото ако разработчикът сам е отчел всички възможни случаи.

Какви специфични функции предоставя PR-агентът за анализ на заявка за изтегляне и как рационализира процеса на преглед на платформи като GitHub и GitLab?

PR-агентът предлага разнообразие от функционалности, предназначени да подобрят и рационализират процеса на анализ и преглед на заявка за изтегляне (PR) в различни доставчици на git.

Автоматично генериране на PR описание автоматично генерира изчерпателни и подробни описания за заявки за изтегляне. Тази функция адресира общи проблеми, при които разработчиците могат да пропуснат подробни PR описания поради времеви ограничения или пропуск. С автоматизираните описания всеки PR е снабден с достатъчен контекст, което улеснява рецензентите да разберат промените, без да е необходимо да дешифрират широко разликите в кода. Ние също така вградихме автоматичен преглед на PR, за да предоставим на разработчиците изчерпателен преглед на PR, който им позволява да откриват потенциални проблеми като грешки, уязвимости в сигурността или миришещи кодове проактивно. Тази превантивна обратна връзка позволява на разработчиците да правят корекции преди процеса на преглед, като по този начин подобряват качеството на кода, който достига до проверяващите.

Използвайки AI, автоматизираните предложения за код могат също да предложат подобрения или алтернативни реализации директно в PR интерфейса. Тези предложения могат да бъдат оптимизации, придържане към стандартите за кодиране или дори архитектурни подобрения, помагащи за постепенно повишаване на качеството на кодовата база.

PR-агентът поддържа множество опции за персонализиране на командите, които предлага. Една от най-полезните опции за персонализиране е използването на персонализирани етикети за подобряване на организацията и управлението на заявки за изтегляне на платформи като GitHub и GitLab. Тази функционалност допринася за оперативната ефективност и яснота на процесите на разработка и преглед.

Как CodiumAI генерира смислени тестове и какво прави тези тестове по-ефективни от стандартните единични тестове?

Ние подобряваме генерирането на тестове, като сканираме хранилищата на кодове за подходящи фрагменти, свързани с тествания код. Използвайки подкани за верига от мисли, за да начертаем всички потенциални поведения на кода, включително типични пътища и крайни случаи, нашият подход използва специфично за контекста извличане и персонализирани подкани, пригодени за различни езици за програмиране, вграждайки експертни знания, за да гарантираме, че тестовете отговарят на индустриалните стандарти. Освен това CodiumAI настройва специфични среди за изпълнение за по-добро откриване на грешки и генериране на тестове за самовъзстановяване. Тези възможности правят тестовете, генерирани от CodiumAI, по-всеобхватни от стандартните единични тестове, които често пропускат нежелано поведение поради присъщите пристрастия на разработчиците и ограниченията при предвиждането на всички възможни сценарии. Това води до тестове, които са не само задълбочени, но и по-ефективни при разкриването на фини грешки и крайни случаи.

Въз основа на отзивите на потребителите, кои са най-ценните функции на CodiumAI и как тези функции са повлияли на продуктивността на разработчиците?

Въз основа на отзивите на потребителите, които получихме, виждаме, че /ask с контекст на блок код намлява /генериране на тестове функциите на агента Codiumate са много търсени и подобряват работния процес на разработчиците.

с /ask с контекст на блок код (вижте документацията тук: /питам) разработчиците могат да задават отворени въпроси относно своя код или да поискат подобрения на кода или прегледи по време на безплатна чат сесия. Тази функция е особено полезна за по-задълбочено разбиране на кодовата база, тъй като моделът запазва пълния контекст на проекта, което му позволява да адресира много подробни и специфични запитвания.

- /генериране на тестове (вижте документацията тук: /тест) позволява на разработчиците да генерират изчерпателни тестови пакети за своя код само с едно щракване. Проучването на поведението на кода, бързото идентифициране и разрешаване на грешки и бързото разширяване на покритието на кода е огромен актив за производителността.

PR агентът /преглед (вижте документацията тук – /преглед) функцията сканира промените в PR кода и автоматично генерира PR преглед, за да улови проблемите, преди разработчиците да пристъпят към производство. The

/описвам (вижте документацията тук – /описвам) сканира промените в PR кода и генерира описание за PR – заглавие, тип, резюме, упътване и етикети, спестявайки време и енергия на разработчиците, които те могат по-добре да прилагат към по-взискателни или творчески задачи.

Как CodiumAI идентифицира крайни случаи и подозрително поведение в кода?

Нашите инструменти сканират хранилището на разработчиците за подходящи кодови фрагменти, които се отнасят до тествания код, и използвайки подкани за поредица от мисли, картографираме всички възможни поведения на кода и ги показваме на разработчика. CodiumAI може да идентифицира подозрително поведение директно (независимо от тестовите поколения), като идентифицира несъответствия или несъответствия между различни кодови фрагменти или кодови фрагменти и придружаващата документация.

CodiumAI поддържа основни езици за програмиране; можете ли да разясните как се справя със специфичните за езика нюанси в анализа на кода и генерирането на тестове?

За основните езици за програмиране нашата платформа надхвърля основната поддръжка чрез прилагане на специализирани техники. Те включват специфично за контекста извличане и персонализирани подкани, съобразени с уникалния синтаксис и семантика на всеки език. Тези персонализирани подкани включват експертни познания в езикова област, за да получите резултати на ниво индустрия. В допълнение, ние предоставяме възможности за създаване на среда за изпълнение специално за тези езици, което подобрява способността на нашия инструмент да открива грешки и да генерира ефективно тестове за самовъзстановяване.

За по-рядко срещаните езици ние използваме големи езикови модели (LLM), които по своята същност разбират множество езици за програмиране. Това се допълва от нашата обща контекстна инфраструктура и адаптивна система за подсказване, които заедно улесняват прецизния анализ на кода и генерирането на тестове в различни среди за програмиране. Възприемайки подход на две нива, можем да осигурим цялостна поддръжка, независимо от използвания програмен език.

Какви бъдещи подобрения са планирани за CodiumAI за допълнителна поддръжка и опростяване на задачите на разработчиците?

Бъдещата стратегия за развитие на CodiumAI набляга на подобряването на наличния набор от инструменти за изкуствен интелект, за безпроблемно интегриране във всички етапи от жизнения цикъл на разработка на софтуер. Като използват усъвършенствани принципи за инженеринг на потока, за да рационализират и опростят работните потоци на разработчиците, нашите агенти ще осигурят значителна стойност на различни етапи на разработка. Освен това CodiumAI се ангажира да гарантира, че тези инструменти превъзхождат при обработката на сложни кодови и текстови сценарии от реалния свят, което ги прави незаменими в ежедневните програмни задачи. Този холистичен подход има за цел да издигне нашето предложение като стабилен инструмент за ежедневна употреба за разработчици, повишавайки продуктивността и ефективността в процеса на разработка на софтуер.

Благодаря ви за страхотното интервю, читателите, които искат да научат повече, трябва да го посетят CodiumAI.

Основател на unite.AI и член на Технологичен съвет на Forbes, Антоан е а футурист който е страстен за бъдещето на AI и роботиката.

Той е и основател на Ценни книжа.io, уебсайт, който се фокусира върху инвестирането в революционни технологии.