В новом эпизоде подкаста The Cognitive Revolution Натан Лабенц обсуждает будущее разработки программного обеспечения с Итамаром Фридманом, сооснователем и CEO компании Codium AI. В центре дискуссии — переход от простой генерации кода к обеспечению его «целостности» (integrity), а также революционный подход «Flow Engineering», который позволил небольшому стартапу превзойти результаты DeepMind и OpenAI в решении сложнейших задач по программированию.
🚀 Путь от генерации к целостности кода 5:46
История Codium AI началась в конце 2022 года, в период, который Итамар Фридман иронично называет «BC» (Before ChatGPT — до появления ChatGPT) . На тот момент мир уже видел первые успехи GitHub Copilot, но Итамар и его команда осознали, что простая дописка строк кода — это лишь «минимально желаемый жизнеспособный продукт» (MPVP) в сфере ИИ-инструментов для разработчиков .
По мнению гостя, простая генерация кода скоро станет товаром широкого потребления (commoditized), доступным в любой IDE или даже локально . Настоящая ценность кроется в том, что разработчики обычно ненавидят больше всего: тестировании, проверке соответствия спецификациям и код-ревью.
Именно поэтому компания сфокусировалась на концепции «Code Integrity» (целостность кода). В отличие от простого тестирования, целостность подразумевает:
- Автоматическое создание спецификаций для существующего кода.
- Проверку соответствия кода бизнес-логике (например, тикетам в Jira).
- Соблюдение лучших практик и внутренней культуры разработки конкретной компании .
📉 Проблема «30%»: почему написание кода — лишь верхушка айсберга 10:19
Одним из ключевых инсайтов Итамара стало понимание того, на что на самом деле тратят время программисты. В крупных компаниях (от 50 до 500+ разработчиков) непосредственное написание «чистого» кода занимает не более 30% рабочего времени . Остальные 70% уходят на:
- Проектирование архитектуры и обдумывание дизайна системы.
- Поддержку legacy-кода и его рефакторинг .
- Интеграцию в производственные среды и исправление багов.
- Коммуникацию с командой для уточнения требований .
Итамар Фридман утверждает, что существующие ИИ-ассистенты (coding agents) часто фокусируются на создании новых проектов с нуля — например, простых сайтов с формой регистрации . Однако в реальной индустрии код становится «наследием» уже через неделю после написания, и основные усилия направлены на его изменение и развитие без потери надежности.
🛠️ Codium AI: продукт для реальной разработки 18:29
На текущем этапе Codium AI уже обслуживает сотни тысяч разработчиков . Продукт представлен в виде расширений для VS Code и IDE от JetBrains (последние, по словам Итамара, показывают даже более быстрый рост в корпоративном сегменте ).
Среди ключевых функций продукта участники обсудили:
- Generate Tests: Система анализирует код и предлагает десятки сценариев поведения, на основе которых строятся тесты .
- Enhance / Improve: Инструмент предлагает улучшения кода, которые можно настраивать под конкретные правила репозитория. Например, можно задать правило запрета использования старого API, и ИИ будет автоматически предлагать замену на новое при каждой попытке вызова устаревших функций .
- PR Agent: Инструмент для работы с pull-запросами в Git, который помогает описывать изменения, находить баги и автоматизировать рутинную проверку кода перед слиянием .
Итамар подчеркивает важность концепции «DRY by AI» (Don't Repeat Yourself — не повторяйся). Идея в том, чтобы ИИ помогал синхронизировать описание задачи в Jira, сам код и тесты к нему, избавляя человека от необходимости трижды прописывать одну и ту же логику в разных форматах .
🧠 Исследование AlphaCodium: как победить DeepMind и OpenAI 52:19
В начале 2024 года команда Codium AI опубликовала исследование AlphaCodium, которое вызвало резонанс в сообществе (его отметил даже Андрей Карпатый ). Используя бенчмарк CodeContests от Google DeepMind, стартап смог значительно превзойти результаты оригинального AlphaCode и модели GPT-4 от OpenAI .
Основные достижения AlphaCodium:
- Эффективность: В то время как оригинальный AlphaCode требовал до 1 миллиона вызовов модели (inference) для решения одной задачи, AlphaCodium обходится примерно 100 вызовами .
- Результативность: На задачах платформы CodeForces система достигла точности, сопоставимой с 90-м перцентилем участников-людей в валидационной выборке .
- Универсальность: В отличие от AlphaCode 2, модель для AlphaCodium не дообучалась (fine-tuning) специально под условия конкурса, что делает подход применимым к реальным бизнес-задачам .
🌊 Flow Engineering: новая парадигма работы с LLM 1:01:05
Главный секрет успеха AlphaCodium заключается не в «промпт-инжиниринге» (написании идеального запроса), а во «Flow Engineering» (инжиниринге рабочих процессов) .
Итамар Фридман сравнивает этот подход с концепцией Дэниела Канемана «Система 1 и Система 2». Большинство современных ИИ-инструментов работают в режиме «Системы 1» (быстрое, интуитивное дополнение текста). Flow Engineering переводит ИИ в режим «Системы 2» — медленного, поэтапного рассуждения .
Процесс AlphaCodium разбит на четкие этапы:
- Рефлексия над задачей: ИИ переформулирует задачу на техническом языке, прежде чем писать код .
- Генерация стратегий: Поиск нескольких концептуальных подходов к решению без реализации .
- Создание тестов: Генерация дополнительных граничных случаев (edge cases), которые не были указаны в условии .
- Итеративная разработка: Написание кода, его запуск в реальной среде, получение ошибок и самокритика до тех пор, пока тесты не будут пройдены .
Важный урок AlphaCodium: ИИ часто ошибается в тестах так же, как и в коде. Система учится отличать ошибку в коде от ошибки в самом тесте, создавая «якоря» из проверенных, достоверных утверждений .
🔮 Будущее: ИИ как виртуальный член команды 1:20:49
Заглядывая в будущее, Итамар прогнозирует, что ИИ перестанет быть просто «умным поиском» внутри редактора . Цель Codium AI — создать «виртуального члена команды» .
Основные черты такого будущего:
- Глубокий контекст: ИИ должен понимать не только один файл, но и весь репозиторий (иногда это 10 миллионов строк кода), учитывая зависимости и историю изменений .
- Безопасность: Переход к модели «Zero Data Retention» (нулевое хранение данных), когда контекст вычисляется «на лету» без индексации и сохранения кода клиента в облачных базах данных ИИ-провайдеров .
- Активная роль: Вместо того чтобы ждать запроса от разработчика, ИИ будет проактивно предупреждать: «Твой текущий код нарушает логику, описанную в тикете Jira вчера вечером» .
В завершение Итамар отметил, что даже если качество кода, генерируемого ИИ, сейчас вызывает споры (некоторые исследования говорят о росте технического долга), переход к «Системе 2» и глубокой проверке целостности решит эти проблемы уже к концу 2024 года .