На этой неделе язык программирования под названием Bend возглавил Hacker News, набрав 278 баллов, а дебаты на первой полосе были посвящены эпохе кодирования ИИ: языку, который делает математически невозможным для агента ИИ отправку кода, нарушающего ваши правила.
На веб-сайте проекта Bend описывается как «быстрый язык, который блокирует ошибки ИИ посредством доказательства», обещая необычное сочетание характеристик: встроенную компиляцию со скоростью C, автоматический параллелизм между ядрами ЦП и графическими процессорами с поддержкой CUDA, формальные доказательства в стиле Lean и синтаксис, подобный Python. Подробнее об этой истории — в нашем новости об ИИ.
Другими словами, Bend не пытается стать лучшим языком для письма людей. Он пытается стать лучшим языком для написания агентов ИИ — таким, на страже которого стоит сам компилятор.
Аргумент: подсказки неоднозначны, доказательства — нет
На домашней странице проекта необычайно откровенно показано, в каком направлении движется разработка программного обеспечения.
«В экономике после AGI люди в конечном итоге перестанут писать и читать код, но нам все еще нужен свободный от двусмысленности способ сообщить ИИ, строящим мир вокруг нас, что мы хотим сделать», — утверждает сайт. «Благодаря законам наши намерения могут быть гораздо точнее, чем естественный язык. Имея доказательства, мы можем убедиться, что ИИ правильно реализовал наши подсказки. И быстрый компилятор выполняет их быстро».
Этот тезис переворачивает обычные отношения между разработчиком и инструментами. Вместо того, чтобы рассматривать код, сгенерированный ИИ, как результат, который нужно просмотреть построчно, Бенд просит человека объявить свойства, которые должны всегда соблюдаться, и заставляет машину доказать свою работу, прежде чем что-либо можно будет объединить.
Как работает LAWS.bend
Центральным элементом проекта является файл LAWS.bend, в котором разработчики объявляют инварианты, которым должен удовлетворять проект. Слоган сайта для концепции: «LAWS.bend — это AGENTS.md, подкрепленный доказательствами». В то время как файлы AGENTS.md инструктируют агентов ИИ-кодирования о правилах естественного языка, которые можно спокойно игнорировать, законы Бенда применяются самим средством проверки типов.
«С этого момента ни один ИИ не сможет отправить хоть одну строку, которая их нарушит», — утверждает сайт.
Прилагаемый файл PROOF.bend содержит проверенный машиной аргумент, который справедлив для каждого закона, и, что особенно важно, доказательство пишет ИИ, а не человек. Разработчик заявляет, что должно быть правдой; агент конструирует доказательства.
Проект демонстрирует идею с помощью игрушечной игры, в которой закон гласит, что победа невозможна. В демонстрации новый запрос функции — «завернуть доску» — представляет ошибку, которая позволяет игроку выиграть. Без LAWS.bend код с ошибкой объединяется, и ошибка становится активной. При наличии LAWS.bend изменение отклоняется, и ИИ должен продолжать повторять попытки, пока не создаст реализацию, имеющую действительные доказательства. Как говорится на сайте: «Объединить ошибку математически невозможно: это теорема».
Скорость – залог успеха
Формальная проверка — старая идея. Что удерживает его от повседневной разработки программного обеспечения, так это стоимость: такие помощники по проверке, как Лин и Рок, могут потратить несколько минут на проверку кодовой базы среднего размера, что приемлемо для криптографии или ядер операционной системы, но непрактично для агента ИИ, вносящего десятки изменений в час.
Ответ Бенда состоит в том, чтобы сделать саму программу проверки типов проверкой доказательств, которая выполняется за секунду или меньше. На сайте говорится, что это означает, что «агент ИИ может проверять каждое изменение», превращая проверку из тяжелой церемонии завершения проекта в легкий контроль над каждым отдельным редактированием.
Заявления о производительности, основанные на тестах, опубликованных на собственном сайте проекта (на Apple M4 Max), амбициозны во всех отношениях:
- Bend компилируется в собственный код и работает «почти так же быстро, как C» на одном ядре.
- Один и тот же двоичный файл масштабируется на шестнадцать ядер или на графический процессор, где сайт заявляет, что скорость одного ядра может достигать 100 раз.
- Параллелизм является автоматическим — «нет потоков, нет блокировок, нет ядер для записи» — с разделением работы во время выполнения по каждому ядру, которое оно может найти, и объединению результатов.
Начало работы намеренно упрощено: однострочный сценарий установки плюс фрагмент, предназначенный для вставки в AGENTS.md, инструктирующий агента запустить «bend Guide», сохранить важные правила в LAWS.bend и запустить «bend PROOF.bend» перед фиксацией.
Почему это резонирует прямо сейчас
Ответ Hacker News — сотни сообщений в течение нескольких часов — отражает растущую тревогу в сообществе разработчиков. Агенты ИИ-кодирования сделали создание кода почти бесплатным, но его проверка не стала дешевле такими же темпами. Проверка кода, тестирование и контроль качества по-прежнему остаются процессами, выполняемыми человеком, и команды все чаще сообщают, что узкое место сместилось с написания программного обеспечения на доверие к нему.
Бенд делает ставку на то, что проблему доверия лучше решить в языке, чем в рабочем процессе. Если компилятор отказывается принимать код, который нарушает заявленный инвариант, беседа о проверке меняется: люди перестают искать ошибки, которые машина уже исключила, и начинают сосредотачиваться на том, отражают ли сами законы то, что действительно нужно бизнесу.
Предостережения
Как и в случае с любым проектом, продвигающим себя через собственные критерии, следующим очевидным вопросом является независимая проверка. Показатели производительности взяты с веб-сайта проекта, а демонстрация представляет собой намеренно простой пример. Реальные кодовые базы имеют беспорядочное состояние, внешние системы и требования, которые сопротивляются четкой формализации — самой сложной частью формальных методов никогда не было доказательство, а только спецификация.
Существует также культурное препятствие. Убедить разработчиков-людей принять новый язык чрезвычайно сложно; убедить их закодировать правила своего проекта в виде машинопроверяемых законов — все еще более сложная задача, даже если большую часть написания делают агенты ИИ.
Но основная идея — что язык, разработанный для эпохи кода, генерируемого искусственным интеллектом, должен сделать корректность свойством времени компиляции — является серьезным ответом на проблему, с которой отрасль сейчас сталкивается в масштабах. Независимо от того, выиграет ли этот спор Бенд или какой-то его преемник, направление движения кажется ясным: когда машины пишут код, ограждения должны переместиться внутрь машины.
Чтобы узнать больше об инструментах, меняющих порядок создания программного обеспечения, следите за последними новостями об искусственном интеллекте и нашими постоянными репортажами об экосистеме разработки искусственного интеллекта.
---
Будьте в курсе ИИПоследние новости, аналитика и прорывы в сфере ИИ — всё в одном месте.
Читать больше новостей об ИИ →