Искусственный интеллект и создание компилятора: прорыв от Anthropic

Компания Anthropic провела увлекательный эксперимент, в ходе которого группа из 16 ИИ-агентов Claude смогла самостоятельно разработать компилятор языка Си. Несмотря на то, что получившаяся программа ещё далеки от идеала, данный проект подчеркивает потенциал современных технологий искусственного интеллекта. В этой статье мы разберём ключевые аспекты эксперимента, его результаты и ограничения, а также их влияние на будущее программирования с использованием ИИ.

Эксперимент и его цели

Исследователь Николас Карлини запустил 16 экземпляров Claude Opus 4.6 в облачном окружении для создания компилятора языка Си. Основные моменты эксперимента:

  • Запуск агентов: Каждый экземпляр работал в своём контейнере Docker, что позволяло им взаимодействовать с общей кодовой базой.
  • Задачи и координация: Агенты определяли задачи самостоятельно и отправляли готовый код обратно в репозиторий без центрального координирующего агента.
  • Финансовые затраты: Проект обошёлся примерно в $20 000 за доступ к ИИ по API, не включая дополнительные затраты на обучение модели и тестирование.

Результаты работы ИИ-агентов

В результате двухнедельной работы агенты написали компилятор на языке Rust объёмом 100 000 строк кода. Основные достижения включают:

  • Совместимость: Компилятор способен собирать загружаемое ядро Linux 6.19 для архитектур x86, Arm и RISC-V.
  • Тестирование: Он успешно компилирует код открытых проектов, таких как PostgreSQL и FFmpeg, проходя 99 % тестов GCC.
  • Проблемы с производительностью: Скомпилированный код менее эффективен по сравнению с аналогами от GCC.

Ограничения разработки

Несмотря на достигнутые успехи, эксперимент выявил ряд серьёзных ограничений:

  • Качество кода: Исходный код компилятора оказался ниже уровня профессионального программиста.
  • Управление сложностью: При росте кодовой базы до 100 000 строк возникли проблемы с пониманием её структуры агентами.
  • Отсутствие доступа к интернету: ИИ-агенты работали без онлайн-ресурсов, что ограничивало их возможности для поиска решений.

Выводы и перспективы

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

  • Новые подходы к параллельному запуску агентов: Координация действий через Git может изменить подходы к командной работе в разработке ПО.
  • Инженерные приёмы повышения производительности: Разработанные методы могут повлиять на будущее ИИ-программирования.
  • Сложности масштабирования проектов: Необходимость тщательной работы с кодом при увеличении его объёма может стать вызовом для последующих исследований.

This groundbreaking experiment показывает, как далеко продвинулся искусственный интеллект в области программирования. Ожидается, что дальнейшие исследования помогут преодолеть существующие ограничения и откроют новые горизонты для использования ИИ в разработке программного обеспечения.