Інтерв’ю
Ітамар Фрідман, CEO та співзасновник CodiumAI – Серія інтерв’ю

Ітамар Фрідман – CEO та співзасновник CodiumAI. Codium зосереджується на стороні “інтегритету коду” генерації коду – генерації автоматичних тестів, пояснень коду та оглядів. Вони опублікували дослідження щодо генерації рішень коду для конкурентних програмних завдань, які перевершують Google DeepMind.
Коли і як ви спочатку зацікавились штучним інтелектом?
У 2009 році я працював у Mellanox (придбано NVIDIA (NVDA )) і вивчав електротехніку. Зрозумівши, що багато рутинних процесів розробки в Mellanox можна автоматизувати за допомогою алгоритмів машинного навчання, я змінив свою спеціальність на оптимізацію та машинне навчання і закінчив магістратуру в цій галузі. До 2010 року я вже працював над проектом глибокого навчання (з 3-шарової нейронної мережі), закладючи основу для моєї роботи в Alibaba, де я очолював дослідницьку групу, що спеціалізувалась на пошуку архітектури нейронної мережі, навчанні моделей та створенні інструментів AutoML для розробників. Близько 2021 року я не соромився назвати нашу роботу “штучним інтелектом”, оскільки великі мовні моделі стали потужними інструментами, а моя уява про те, що можна досягти з їх допомогою, зростала.
Ваш попередній стартап Visualead, орієнтований на комп’ютерне бачення, був згодом придбаний Alibaba Group, що це був за стартап, і які були деякі з ваших ключових висновків з цього досвіду?
Visualead спеціалізувався на скануванні логотипів, QR-кодів та всього, що знаходиться між ними, включаючи захист та приховування інформації в зображеннях для забезпечення безпечних транзакцій та взаємодії. У Visualead ми запускали алгоритми на мобільних пристроях з 2012 року, включаючи моделі. Це було складно та хитро робити це в той час, і ми багато чого навчились про будівництво ефективних моделей та захист від цих статистичних створінь.
До цього дня я все ще застосовую уроки, вивчені в той час, до поточних проектів, які я здійснюю – наприклад, коли ми будували відкритий інструмент генерації рішень AlphaCodium, ми ввели концепцію інженерії потоку та застосували цю концепцію для побудови потоку захисту виходу моделей LLM.
Чи можете ви поділитися історією походження запуску CodiumAI?
У Alibaba я бачив на власні очі, як помилка в коді могла привести до проблеми вартістю мільйон доларів, і які проблеми розробники зіштовхнулись з підтримкою генерації коду без жертвування якістю чи інтегритетом. Ця проблема зберігається, і сьогодні низькоякісний код був віднесений до проблеми вартістю трильйон доларів, яка продовжує зростати.
Команда CodiumAI спеціалізується на будівництві інструментів, потужних за допомогою штучного інтелекту, та спрямована на вирішення болісних моментів, з якими зіштовхуються розробники. З народженням нових можливостей LLM та штучного інтелекту ми зрозуміли, що це була наша можливість побудувати холістичну платформу інтегритету коду для допомоги зайнятим командам, таким як ми, зменшити помилки та пом’якшити інші проблеми інтегритету. Коли все більше коду генерувалось штучним інтелектом, проблема перевірки цього коду та забезпечення його роботи так, як передбачено, стала критичною болісною точкою та тією, яку ми були спрямовані вирішити. Будівництво інструментів, потужних за допомогою штучного інтелекту, та, отже, перевірка є важливою концепцією для нас.
Як група досвідчених розробників, ми розуміємо; справляння з рутинними завданнями, такими як тестування та огляд коду, може бути розчарувальним. Ми високо мотивовані нарешті дозволити зайнятим командам збільшити та керувати своїм інтегритетом коду.
Чи можете ви описати, які види нетривіальної аналітики CodiumAI виконує над кодом, і як це підтримує розробників у покращенні якості коду?
До недавнього часу існуючі інструменти, доступні розробникам, пропонували мало цінності – але з появою можливостей LLM (ChatGPT, Copilot тощо) можливості починають перевершувати очікування, а підтримка, доступна розробникам, вже не є тривіальною.
Агент Codiumate, розроблений CodiumAI, пропонує розробникам унікальні інструменти для покращення їхнього робочого процесу та підвищення генерації коду. Codiumate оптимізує процес розробки, надаючи автоматичну допомогу протягом завдання кодування. Використовуючи існуючі фрагменти коду, які розробник виділяє в своєму середовищі, агент може автоматично створити легкий для виконання та узгоджений план розробки, написати код згідно з цим планом, виявити дублікат коду, який розробник може бажати використовувати або видалити, створити документацію та запропонувати тести для забезпечення того, що код працює правильно до його розгортання в робочому середовищі.
Codiumate забезпечує розробникам глибоку поведінкову аналітику – освітлення можливих поведінок та гілок коду, який підлягає тестуванню. Це дозволяє розробнику вивчити згенерований код та створити тести, які покривають всі поведінки, тим самим покращуючи код більше, ніж якщо б розробник сам врахував усі можливі випадки.
Які конкретні функції надає агент PR для аналізу запитів на витяг, і як це оптимізує процес огляду на платформах, таких як GitHub та GitLab (GTLB )?
Агент PR пропонує ряд функцій, призначених для покращення та оптимізації процесу аналізу та огляду запитів на витяг на різних постачальниках Git.
Автоматична генерація опису запитів на витяг автоматично створює повні та детальні описи для запитів на витяг. Ця функція вирішує спільні проблеми, коли розробники можуть пропустити детальні описи запитів на витяг через обмеження часу або недогляд. З автоматичними описами кожен запит на витяг оснащений достатнім контекстом, що робить його легшим для оглядачів зрозуміти зміни без необхідності розшифрувати кодові зміни.
Відповідно до вимог розробників, ми також побудували автоматичний огляд запитів на витяг, щоб надати розробникам повний огляд запитів на витяг, який дозволяє їм виявити потенційні проблеми, такі як помилки, уразливості безпеки чи запахи коду, до того, як вони будуть відправлені на огляд. Це попередня відгук дозволяє розробникам виправити помилки до процесу огляду, тим самим підвищуючи якість коду, який досягає оглядачів.
Агент PR підтримує численні варіанти налаштування команд, які він пропонує. Одним з найкорисніших варіантів налаштування є використання користувальницьких міток для покращення організації та керування запитами на витяг на платформах, таких як GitHub та GitLab. Ця функція сприяє операційній ефективності та ясності процесів розробки та огляду.
Як CodiumAI генерує значимі тести, і що робить ці тести більш ефективними, ніж стандартні юніт-тести?
Ми покращуємо генерацію тестів, скануючи репозиторії коду на відповідні фрагменти коду, пов’язані з кодом, який підлягає тестуванню. Використовуючи ланцюгові підказки для картування усіх можливих поведінок коду, включаючи типові шляхи та крайні випадки, наш підхід використовує контекстно-специфічне отримання та налаштовані підказки, адаптовані до різних мов програмування, впроваджуючи експертні знання для забезпечення того, що тести відповідають промисловим стандартам. Крім того, CodiumAI встановлює спеціальне середовище виконання для lepší виявлення помилок та генерації самозцілювальних тестів. Ці можливості роблять тести, згенеровані CodiumAI, більш повними, ніж стандартні юніт-тести, які часто пропускають непередбачені поведінки через вбудовані упередження розробників та обмеження у передбаченні всіх можливих сценаріїв. Це призводить до тестів, які не тільки повні, але й більш ефективні у виявленні тонких помилок та крайніх випадків.
На основі відгуку користувачів, які функції CodiumAI найбільш цінні, і як ці функції вплинули на продуктивність розробників?
На основі відгуку користувачів, який ми отримали, ми бачимо, що функції /ask з контекстом кодового блоку та /генерація тестів агента Codiumate високо оцінюються та підвищують робочий процес розробників.
З /ask з контекстом кодового блоку (див. документацію тут: /ask) розробники можуть ставити відкриті питання про свій код або запитувати покращення коду чи огляди під час безкоштовної сесії чату. Ця функція особливо корисна для отримання глибокого розуміння кодової бази, оскільки модель зберігає повний контекст проекту, що дозволяє їй відповісти на дуже детальні та конкретні питання.
Функція /генерація тестів (див. документацію тут: /test) дозволяє розробникам генерувати повні тести для свого коду за один клік. Дослідження поведінки коду, виявлення та виправлення помилок оперативно та швидке розширення покриття коду є великим активом для продуктивності.
/огляд (див. документацію тут – /review) функція сканує зміни коду в запиті на витяг та автоматично генерує огляд запиту на витяг, щоб виявити проблеми до того, як розробники відправлять код у виробництво. Функція
/опис (див. документацію тут – /describe) сканує зміни коду в запиті на витяг та генерує опис для запиту на витяг – назву, тип, підсумок, роз’яснення та мітки, що економить час та енергію розробників, які можуть бути краще застосовані до більш складних або творчих завдань.
Як CodiumAI визначає крайні випадки та підозрілі поведінки в коді?
Наші інструменти сканують репозиторій розробника на відповідні фрагменти коду, пов’язані з кодом, який підлягає тестуванню, та використовують ланцюгові підказки для картування усіх можливих поведінок коду та відображення їх розробнику. CodiumAI може виявити підозрілі поведінки безпосередньо (незалежно від генерації тестів), виявляючи розбіжності чи несумісності між різними фрагментами коду або між фрагментами коду та супровідною документацією.
CodiumAI підтримує основні мови програмування; чи можете ви розповісти, як він справляється з мовно-специфічними нюансами в аналізі коду та генерації тестів?
Для основних мов програмування наша платформа виходить за рамки базової підтримки шляхом реалізації спеціалізованих технік. Це включає контекстно-специфічне отримання та налаштовані підказки, адаптовані до унікальної синтаксики та семантики кожної мови. Ці налаштовані підказки впроваджують знання експертів у галузі мови для досягнення промислових результатів. Крім того, ми надаємо можливості для створення середовища виконання спеціально для цих мов, що підвищує здатність нашого інструменту виявляти помилки та генерувати самозцілювальні тести ефективно.
Для менш поширених мов ми використовуємо великі мовні моделі (LLM), які природно розуміють декілька мов програмування. Це доповнюється нашою загальною інфраструктурою контексту та адаптивною системою підказок, які разом забезпечують точну аналітику коду та генерацію тестів у різних середовищах програмування. Використовуючи дворівневий підхід, ми можемо забезпечити повну підтримку незалежно від мови програмування, яка використовується.
Які майбутні покращення заплановані для CodiumAI, щоб ще більше підтримувати та спрощувати завдання розробників?
Стратегія майбутнього розвитку CodiumAI підкреслює покращення наявного набору інструментів, потужних за допомогою штучного інтелекту, для безшовної інтеграції на всіх етапах життєвого циклу розробки програмного забезпечення. Застосовуючи передові принципи інженерії потоку для оптимізації та спрощення робочого процесу розробників, наші агенти будуть надавати значну цінність на різних етапах розробки. Крім того, CodiumAI зобов’язується забезпечити, щоб ці інструменти були найкращими у справі керування складним, реальним кодом та текстовими сценаріями, роблячи їх незамінними в щоденних завданнях програмування. Цей холістичний підхід спрямований на підвищення нашої пропозиції як міцного, щоденного інструменту для розробників, підвищення продуктивності та ефективності у процесі розробки програмного забезпечення.
Дякуємо за велике інтерв’ю, читачам, які бажають дізнатися більше, слід відвідати CodiumAI.












