Свяжитесь с нами:

Интервью

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

mm

опубликованный

 on

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

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

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

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

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

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

Не могли бы вы рассказать историю создания CodiumAI?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основываясь на полученных отзывах пользователей, мы видим, что /спросить с контекстом блока кода и /генерация тестов Функции агента Codiumate пользуются большим спросом и улучшают рабочий процесс разработчиков.

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

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

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

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

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

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

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

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

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

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

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

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

Партнер-основатель unite.AI и член Технологический совет Форбс, Антуан - это футурист который увлечен будущим искусственного интеллекта и робототехники.

Он также является основателем Ценные бумаги.io, веб-сайт, посвященный инвестициям в прорывные технологии.