Интервью

Итамар Фридман, генеральный директор и сооснователь CodiumAI – Интервью

mm
Добавьте Unite.AI в избранные источники в Google

Итамар Фридман является генеральным директором и сооснователем CodiumAI. Codium фокусируется на стороне “интегритета кода” генерации кода — генерации автоматических тестов, объяснений кода и обзоров. Они опубликовали исследования по генерации решений кода для конкурентных задач программирования, которые превосходят Google DeepMind.

Когда и как вы впервые заинтересовались ИИ?

В 2009 году я работал в Mellanox (приобретено NVIDIA (NVDA )) и изучал электротехнику. Осознав, что многие скучные процессы разработки в Mellanox можно автоматизировать с помощью алгоритмов машинного обучения, я сменил специальность на оптимизацию и машинное обучение и завершил магистратуру в этой области. К 2010 году я уже работал над проектом глубокого обучения (с 3-слойной нейронной сетью), закладывая основу для моей работы в Alibaba, где я возглавлял исследовательскую группу, специализирующуюся на поиске нейронной архитектуры, обучении моделей и создании инструментов AutoML для разработчиков. Около 2021 года я не стыдился называть нашу работу “ИИ”, поскольку крупные языковые модели стали мощными инструментами, и моё представление о том, что можно достичь с их помощью, расширилось.

Ваш предыдущий стартап, ориентированный на компьютерное зрение, Visualead, был в конечном итоге приобретен Alibaba Group. Что такое Visualead, и какие были некоторые из ваших ключевых выводов из этого опыта?

Visualead специализировался на сканировании логотипов, QR-кодов и всего, что находится между ними, включая защиту и сокрытие информации в изображениях для безопасных транзакций и взаимодействия. В Visualead мы запускали алгоритмы на мобильных устройствах с 2012 года, включая модели. Это было сложно и хитро делать это в те дни, и мы многое узнали о построении эффективных моделей и ограждении этих статистических существ.

До сих пор я применяю уроки, которые я выучил в то время, к текущим проектам, которые я предпринимаю – например, когда мы построили открытый инструмент генерации решений AlphaCodium, мы ввели концепцию Flow Engineering и применили эту концепцию для построения потока для ограждения моделей LLM.

Можете ли вы поделиться историей создания CodiumAI?

В Alibaba я увидел своими глазами, как ошибка в коде может привести к проблеме стоимостью миллион долларов и как разработчики сталкиваются с трудностями в поддержании генерации кода без жертвования качеством или целостностью. Эта проблема сохраняется, и сегодня код низкого качества был приписан проблеме стоимостью триллион долларов, которая продолжает расти.

Команда CodiumAI специализируется на построении инструментов, оснащенных ИИ, в масштабе и движима решить болевые точки, с которыми сталкиваются разработчики. С рождением новых возможностей LLM и ИИ мы поняли, что это наша возможность построить целостную платформу интегритета кода, чтобы помочь занятым командам, таким как мы, уменьшить ошибки и смягчить другие проблемы с целостностью. По мере того, как все больше и больше кода генерируется ИИ, проблема проверки этого кода и обеспечения его правильной работы стала критической болевой точкой и той, которую мы были движимы решить. Построение инструментов, оснащенных ИИ, в масштабе, и, следовательно, проверка является важной концепцией для нас.

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

Можете ли вы описать, какие виды не тривиального анализа CodiumAI выполняет на коде, и как это поддерживает разработчиков в улучшении качества кода?

До недавнего времени существующие инструменты, доступные разработчикам, предлагали мало ценности – но с прибытием LLM (ChatGPT, Copilot и т. д.) возможности начинают превышать ожидания, и поддержка, доступная разработчикам, больше не тривиальна.

Агент Codiumate, разработанный CodiumAI, предлагает разработчикам уникальные инструменты для улучшения их рабочего процесса и повышения генерации кода. Codiumate оптимизирует процесс разработки, предоставляя автоматическую помощь на протяжении всего процесса кодирования. Используя существующие фрагменты кода, которые человеческий разработчик выделяет в своей среде, агент может автоматически составить план разработки, простой в понимании и последовательный, написать код в соответствии с этим планом, выявить дубликат кода, который разработчик может захотеть использовать или удалить, составить документацию и предложить тесты, чтобы обеспечить правильную работу кода до его развертывания в живой среде.

Codiumate предоставляет разработчикам глубокий поведенческий анализ – освещая возможное поведение и ветки кода, который тестируется. Это позволяет разработчику изучить сгенерированный код и создать тесты, которые (ветка) охватывают все поведения, тем самым улучшая код больше, чем если бы разработчик самостоятельно учел все возможные случаи.

Какие конкретные функции предоставляет PR-Agent для анализа запросов на вытягивание, и как это оптимизирует процесс проверки на платформах, таких как GitHub и GitLab (GTLB )?

PR-Agent предлагает ряд функций, предназначенных для улучшения и оптимизации процесса анализа и проверки запросов на вытягивание на различных поставщиках Git.

Автоматическая генерация описаний запросов на вытягивание автоматически генерирует подробные описания для запросов на вытягивание. Эта функция решает распространенные проблемы, когда разработчики могут пропустить подробные описания запросов на вытягивание из-за ограничений по времени или недоразумений. С автоматическими описаниями каждый запрос на вытягивание оснащен достаточным контекстом, что делает его проще для проверяющих понять изменения без необходимости расшифровывать код-различия обширно. Мы также построили автоматическую проверку запроса на вытягивание, чтобы предоставить разработчикам всесторонний обзор запроса на вытягивание, который позволяет им выявить потенциальные проблемы, такие как ошибки, уязвимости безопасности или запахи кода, заранее. Это предварительное обратная связь позволяет разработчикам вносить исправления до процесса проверки, тем самым повышая качество кода, который достигает проверяющих.

Используя ИИ, автоматические предложения кода также могут предложить улучшения или альтернативные реализации直接 в интерфейсе запроса на вытягивание. Эти предложения могут быть оптимизациями, соблюдением стандартов кодирования или даже архитектурными улучшениями, помогающими повысить качество базы кода постепенно.

PR-Agent поддерживает множество вариантов настройки команд, которые он предлагает. Одним из наиболее полезных вариантов настройки является использование пользовательских меток для улучшения организации и управления запросами на вытягивание на платформах, таких как GitHub и GitLab. Эта функциональность способствует операционной эффективности и ясности процессов разработки и проверки.

Как CodiumAI генерирует осмысленные тесты, и что делает эти тесты более эффективными, чем стандартные модульные тесты?

Мы улучшаем генерацию тестов, сканируя репозитории кода на соответствующие фрагменты, связанные с кодом, который тестируется. Используя цепочные подсказки, чтобы составить все возможные поведения кода, включая типичные пути и граничные случаи, наш подход использует контекстно-специфическую выборку и настраиваемые подсказки, адаптированные к разным языкам программирования, встраивая экспертные знания, чтобы обеспечить соответствие тестов отраслевым стандартам. Кроме того, CodiumAI устанавливает конкретные среды выполнения для обнаружения ошибок и генерации самозаживающих тестов. Эти возможности делают тесты, сгенерированные CodiumAI, более всесторонними, чем стандартные модульные тесты, которые часто пропускают непреднамеренное поведение из-за врожденных предубеждений разработчиков и ограничений в предвидении всех возможных сценариев. Это приводит к тестам, которые не только тщательны, но и более эффективны в обнаружении тонких ошибок и граничных случаев.

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

На основе обратной связи, которую мы получили, мы видим, что функции /ask with code block context и /test generation агента Codiumate очень востребованы и повышают рабочий процесс разработчиков.

С помощью /ask with code block context (см. документацию здесь: /ask) разработчики могут задавать открытые вопросы о своем коде или запрашивать улучшения или обзоры кода во время бесплатной сессии чата. Эта функция особенно полезна для более глубокого понимания базы кода, поскольку модель сохраняет полный контекст проекта, позволяя ей решать очень подробные и конкретные запросы.

Инструмент /test generation (см. документацию здесь: /test) позволяет разработчикам генерировать всесторонние наборы тестов для своего кода всего за один клик. Изучение поведения кода, выявление и решение ошибок оперативно, а также быстрое расширение покрытия кода является огромным активом для производительности.

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

/describe (см. документацию здесь – /describe) сканирует изменения кода в запросе на вытягивание и генерирует описание для запроса на вытягивание – заголовок, тип, краткое описание, пошаговое руководство и метки, экономя разработчикам время и энергию, которые они могут лучше применить к более сложным или творческим задачам.

Как CodiumAI выявляет граничные случаи и подозрительное поведение в коде?

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

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

Для основных языков программирования наша платформа идет дальше, чем базовая поддержка, реализуя специализированные методы. Эти включают контекстно-специфическую выборку и настраиваемые подсказки, адаптированные к уникальной синтаксисе и семантике каждого языка. Эти настраиваемые подсказки включают языково-доменные экспертные знания, чтобы достичь отраслевых результатов. Кроме того, мы предоставляем возможности для создания среды выполнения специально для этих языков, что повышает способность нашего инструмента обнаруживать ошибки и генерировать самозаживающие тесты эффективно.

Для менее распространенных языков мы используем крупные языковые модели (LLM), которые изначально понимают несколько языков программирования. Это дополняется нашей общей инфраструктурой контекста и адаптивной системой подсказок, которые вместе облегчают точный анализ кода и генерацию тестов в различных средах программирования. Используя двухуровневый подход, мы можем обеспечить всестороннюю поддержку независимо от используемого языка программирования.

Какие будущие улучшения запланированы для CodiumAI, чтобы еще больше поддержать и упростить задачи разработчиков?

Стратегия будущего развития CodiumAI подчеркивает улучшение доступного набора инструментов ИИ для бесшовной интеграции на всех этапах жизненного цикла разработки программного обеспечения. Используя передовые принципы потоковой инженерии для оптимизации и упрощения рабочих процессов разработчиков, наши агенты будут предоставлять значительную ценность на разных этапах разработки. Кроме того, CodiumAI привержен обеспечению того, чтобы эти инструменты превосходно справлялись с сложными, реальными сценариями кода и текста, что делает их незаменимыми в повседневных задачах программирования. Этот целостный подход направлен на повышение нашего предложения в качестве прочного, повседневного инструмента для разработчиков, повышающего производительность и эффективность в процессе разработки программного обеспечения.

Спасибо за отличное интервью, читателям, которые хотят узнать больше, следует посетить CodiumAI.

Антуан - видный лидер и сооснователь Unite.AI, движимый непоколебимой страстью к формированию и продвижению будущего ИИ и робототехники. Как серийный предприниматель, он считает, что ИИ будет столь же разрушительным для общества, как и электричество, и часто увлекается потенциалом разрушительных технологий и ИИ.

Как футуролог, он посвящен исследованию того, как эти инновации будут формировать наш мир. Кроме того, он является основателем Securities.io, платформы, ориентированной на инвестиции в передовые технологии, которые переопределяют будущее и меняют целые сектора.