Интервью
Итамар Фридман, CEO и сооснователь CodiumAI – Интервью

Итамар Фридман является CEO и сооснователем CodiumAI. Codium фокусируется на стороне “интегритета кода” генерации кода – генерации автоматических тестов, объяснений кода и обзоров. Они выпустили исследования по генерации решений кода для конкурентных программных задач, которые превосходят Google DeepMind.
Когда и как вы впервые заинтересовались ИИ?
В 2009 году я работал в Mellanox (приобретено NVIDIA) и изучал электротехнику. Понимая, что многие скучные процессы разработки в Mellanox можно автоматизировать с помощью алгоритмов машинного обучения, я сменил специальность на оптимизацию и машинное обучение и завершил магистратуру в этой области. К 2010 году я уже работал над проектом глубокого обучения (с сетью из 3 слоев) и заложил основу для моего времени в Alibaba, где я возглавлял исследовательскую группу, специализирующуюся на поиске нейронной архитектуры, обучении моделей и создании инструментов AutoML для разработчиков. Около 2021 года я не стыдился назвать нашу работу “ИИ”, поскольку крупные языковые модели стали мощными инструментами, и моё представление о том, что можно достичь с их помощью, расширилось.
Ваш предыдущий стартап, ориентированный на компьютерное зрение, Visualead, был в конечном итоге приобретен Alibaba Group, что это был за стартап, и какие были некоторые из ваших ключевых выводов из этого опыта?
Visualead специализировался на сканировании логотипов, QR-кодов и всего, что находится между ними, включая защиту и сокрытие информации в изображениях для обеспечения безопасных транзакций между физическими лицами и вовлечения. В Visualead мы запускали алгоритмы на мобильных устройствах с 2012 года, включая модели. Это было сложно и хитро делать это в те дни, и мы многое узнали о построении эффективных моделей и ограждении этих статистических существ.
До сих пор я применяю уроки, выученные в то время, к текущим проектам, которые я предпринимаю – например, когда мы построили открытое решение генерации AlphaCodium, мы ввели понятие Flow Engineering и применили это понятие для построения потока для ограждения моделей LLM.
Можете ли вы поделиться историей происхождения запуска CodiumAI?
В Alibaba я увидел своими глазами, как ошибка в коде может привести к проблеме стоимостью миллион долларов, и挑ажи, с которыми разработчики сталкиваются, чтобы跟ать за генерацией кода без жертвования качеством или интегритетом. Эта проблема сохраняется, и сегодня код низкого качества был отнесен к проблеме стоимостью триллион долларов, которая продолжает расти.
Команда CodiumAI специализируется на построении инструментов, оснащенных ИИ, в масштабе и стремится решить болевые точки, с которыми сталкиваются разработчики. С рождением новых возможностей LLM и ИИ мы поняли, что это была наша возможность построить комплексную платформу интегритета кода, чтобы помочь занятым командам, таким как мы, уменьшить ошибки и смягчить другие проблемы интегритета. Поскольку все больше и больше кода генерируется ИИ, проблема бенчмаркинга этого кода и обеспечения его работы, как задумано, стала критической болевой точкой и той, которую мы были движимы решить. Построение инструментов, оснащенных ИИ, в масштабе, и, следовательно, бенчмаркинг является важным понятием для нас.
Как группа опытных разработчиков, мы понимаем; решение скучных задач, таких как тестирование и обзор кода, может быть раздражающим. Мы очень движимы миссией наконец-то позволить занятым командам увеличить и управлять своим интегритетом кода.
Можете ли вы описать, какие виды нетривиального анализа CodiumAI выполняет над кодом, и как это поддерживает разработчиков в улучшении качества кода?
До недавнего времени существующие инструменты, доступные разработчикам, предлагали мало ценности – но с прибытием LLM (ChatGPT, Copilot и т. д.) возможности начинают превышать ожидания, и поддержка, доступная разработчикам, больше не тривиальна.
Codiumate Кодировочный-агент, разработанный CodiumAI, предлагает разработчикам уникальные инструменты для улучшения их рабочего процесса и повышения генерации кода. Codiumate упрощает процесс разработки, предоставляя автоматическую помощь на протяжении всего процесса кодирования. Используя существующие фрагменты кода, которые человеческий разработчик выделяет в своей среде, агент может автоматически составить простой и связный план разработки, написать код в соответствии с этим планом, выявить дубликат кода, который разработчик может захотеть использовать или удалить, составить документацию и предложить тесты, чтобы убедиться, что код работает правильно, прежде чем он будет развернут в живой среде.
Codiumate предоставляет разработчикам глубокий поведенческий анализ – освещая возможные поведения и ветви кода, который тестируется. Это позволяет разработчику изучить сгенерированный код и создать тесты, которые (ветвь) охватывают все поведения, тем самым улучшая код больше, чем если бы разработчик самостоятельно учел все возможные случаи.
Какие конкретные функции предоставляет PR-Agent для анализа запросов на включение, и как он упрощает процесс обзора на платформах, таких как GitHub и GitLab?
PR-Agent предлагает ряд функций, предназначенных для улучшения и упрощения процесса анализа и обзора запросов на включение на различных поставщиках Git.
Автоматическая генерация описания PR автоматически генерирует подробные описания для запросов на включение. Эта функция решает распространенные проблемы, когда разработчики могут пропустить подробные описания PR из-за ограничений по времени или недосмотра. С автоматическими описаниями каждый PR оснащен достаточным контекстом, что делает его легче для рецензентов понять изменения без необходимости расшифровывать код-различия в подробностях. Мы также построили автоматический обзор PR, чтобы предоставить разработчикам всесторонний обзор PR, который позволяет им выявить потенциальные проблемы, такие как ошибки, уязвимости безопасности или запахи кода, заранее. Это предварительное обратная связь позволяет разработчикам вносить исправления до процесса обзора, тем самым повышая качество кода, который достигает рецензентов.
Используя ИИ, автоматические предложения кода также могут предложить улучшения или альтернативные реализации直接 в интерфейсе PR. Эти предложения могут быть оптимизациями, соблюдением стандартов кодирования или даже архитектурными улучшениями, помогающими повысить качество базы кода постепенно.
PR-Agent поддерживает многочисленные варианты настройки команд, которые он предлагает. Одним из наиболее полезных вариантов настройки является использование пользовательских меток для улучшения организации и управления запросами на включение на платформах, таких как GitHub и GitLab. Эта функциональность способствует операционной эффективности и ясности процесса разработки и обзора.
Как CodiumAI генерирует осмысленные тесты, и что делает эти тесты более эффективными, чем стандартные модульные тесты?
Мы улучшаем генерацию тестов, сканируя репозитории кода для соответствующих фрагментов, связанных с кодом, который тестируется. Используя цепные подсказки мыслей, мы картографируем все возможные поведения кода, включая типичные пути и граничные случаи, наш подход использует контекстно-специфическую выборку и настраиваемые подсказки, адаптированные к различным языкам программирования, включающие экспертные знания области для обеспечения соответствия тестов отраслевым стандартам. Кроме того, CodiumAI устанавливает конкретные среды выполнения для лучшего обнаружения ошибок и генерации самоисцеляющих тестов. Эти возможности делают тесты, сгенерированные CodiumAI, более всесторонними, чем стандартные модульные тесты, которые часто пропускают непредвиденное поведение из-за врожденных предубеждений разработчиков и ограничений в предвидении всех возможных сценариев. Это приводит к тестам, которые не только тщательны, но и более эффективны в обнаружении тонких ошибок и граничных случаев.
На основе обратной связи пользователей, какие функции CodiumAI наиболее ценны, и как эти функции повлияли на производительность разработчиков?
На основе обратной связи, которую мы получили, мы видим, что функции /ask с контекстом блока кода и /генерация тестов агента Codiumate являются высоко востребованными и улучшают рабочий процесс разработчика.
С /ask с контекстом блока кода (см. документацию здесь: /ask) разработчики могут задавать открытые вопросы о своем коде или запрашивать улучшения кода или обзоры во время бесплатной сессии чата. Эта функция особенно полезна для получения более глубокого понимания базы кода, поскольку модель сохраняет полный контекст проекта, что позволяет ей решать очень подробные и конкретные запросы.
Функция /генерация тестов (см. документацию здесь: /test) позволяет разработчикам генерировать всесторонние наборы тестов для своего кода с помощью одного клика. Изучение поведения кода, выявление и решение ошибок оперативно, и быстрое расширение покрытия кода является огромным активом для производительности.
Функция /review PR-Agent (см. документацию здесь – /review) сканирует изменения кода PR и автоматически генерирует обзор PR, чтобы обнаружить проблемы до того, как разработчики отправят код в производство. Функция
/describe (см. документацию здесь – /describe) сканирует изменения кода PR и генерирует описание для PR – заголовок, тип, сводка, пошаговое руководство и метки, экономя разработчикам время и энергию, которую они могут лучше применить к более сложным или творческим задачам.
Как CodiumAI выявляет граничные случаи и подозрительное поведение в коде?
Наши инструменты сканируют репозиторий разработчика для соответствующих фрагментов кода, связанных с кодом, который тестируется, и используя цепные подсказки мыслей, мы картографируем все возможные поведения кода и отображаем их разработчику. CodiumAI может выявить подозрительное поведение напрямую (независимо от генерации тестов), выявляя несоответствия или несоответствия между различными фрагментами кода или фрагментами кода и сопровождающей документацией.
CodiumAI поддерживает основные языки программирования; можете ли вы подробнее рассказать о том, как он обрабатывает язык-специфические нюансы в анализе кода и генерации тестов?
Для основных языков программирования наша платформа идет дальше базовой поддержки, реализуя специализированные методы. Эти методы включают контекстно-специфическую выборку и настраиваемые подсказки, адаптированные к уникальной синтаксисе и семантике каждого языка. Эти настраиваемые подсказки включают экспертные знания области для получения результатов на уровне отрасли. Кроме того, мы предоставляем возможности для создания среды выполнения специально для этих языков, что улучшает способность нашего инструмента обнаруживать ошибки и генерировать самоисцеляющиеся тесты эффективно.
Для менее распространенных языков мы используем крупные языковые модели (LLM), которые по своей сути понимают несколько языков программирования. Это дополняется нашей общей инфраструктурой контекста и адаптивной системой подсказок, которые вместе облегчают точный анализ кода и генерацию тестов в различных средах программирования. Принимая двухуровневый подход, мы можем обеспечить всестороннюю поддержку независимо от используемого языка программирования.
Какие будущие улучшения запланированы для CodiumAI, чтобы еще больше поддержать и упростить задачи разработчиков?
Будущая стратегия развития CodiumAI подчеркивает улучшение доступного набора инструментов ИИ для бесшовной интеграции на всех этапах жизненного цикла разработки программного обеспечения. Используя передовые принципы Flow Engineering для упрощения и оптимизации рабочих процессов разработчиков, наши агенты будут обеспечивать значительную ценность на различных этапах разработки. Кроме того, CodiumAI привержен обеспечению того, чтобы эти инструменты превосходили в обработке сложных, реальных кода и текстовых сценариев, что делает их незаменимыми в повседневных задачах программирования. Этот комплексный подход направлен на повышение нашего предложения в качестве прочного, повседневного инструмента для разработчиков, повышающего производительность и эффективность в процессе разработки программного обеспечения.
Спасибо за отличное интервью, читателям, которые хотят узнать больше, следует посетить CodiumAI.












