LLM

ИИ-генерация кода не решает проблем верификации: эксперимент с AutoProof показал важность строгого процесса

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

Иллюстрация к новости: ИИ-генерация кода не решает проблем верификации: эксперимент с AutoProof показал важность строгого процесса

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

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

Для индустрии это означает важное уточнение роли генеративного ИИ. Для повседневных, некритичных задач он может стать нивелирующей технологией, автоматизируя рутинное кодирование. Но для бизнес-критичных и жизненно важных систем - финансовых, медицинских, транспортных - ИИ выступает как усиливающая технология. Он не заменяет инженера, но требует от него более глубокого понимания принципов построения надежных систем, формальных методов и процессов верификации. Склонность моделей к галлюцинациям делает слепое доверие к сгенерированному коду неприемлемым. Почти корректные компоненты складываются в ненадежные системы.

Пользователи и компании, внедряющие ИИ-инструменты в разработку, должны осознавать эти ограничения. Внедрение ИИ не снимает ответственности за качество и безопасность продукта. Оно смещает фокус с написания кода на более тщательное проектирование спецификаций, архитектуры и создание мощных контуров проверки. Опыт эксперимента с AutoProof также указывает на возможное будущее инструментальных цепочек как федерации взаимодействующих ИИ-агентов, каждый из которых специализируется на своей задаче - от анализа требований до доказательства корректности. В конечном счете, осторожный оптимизм основан на понимании, что ИИ не упраздняет дисциплину программной инженерии, а делает её принципы, особенно касающиеся верификации, еще более актуальными. Внедрение формальных методов, как показал эксперимент, требует дисциплины и итеративного подхода, где ИИ служит помощником, а не суррогатом инженерной мысли.

Вопросы читателей по теме

Все вопросы

Как переводить тексты с помощью нейросети?

спрашивает Павел, Казань 155 просм.

Марина Соколова: Для перевода текста нейросети действительно дают более естественный результат, чем классический машинный перевод, потому что учитывают контекст всего предложения, а не переводят слово за словом. Из специализированных сервисов лучше всего с этим справляется DeepL - для европейских языков он заметно точнее старого Google Translate, особенно с идиомами и порядком слов. Если нужно перевести не разовую…

Как правильно писать промпты для нейросети?

спрашивает Станислав, Омск 177 просм.

Сергей Орлов: Схема есть, и она простая: роль, контекст, задача, формат. Модель не читает мысли, она отвечает ровно на тот запрос, который вы напечатали, поэтому чем конкретнее формулировка, тем предсказуемее результат. Роль - это кем модель должна "быть" для конкретной задачи: не "напиши текст", а "ты юрист, который проверяет договор аренды". Контекст - вводные, которые модель иначе…

Что такое ChatGPT?

спрашивает Ольга, Краснодар 197 просм.

Дмитрий Волков: ChatGPT - это чат-программа компании OpenAI, которая умеет вести диалог на естественном языке: отвечать на вопросы, писать тексты, объяснять темы, помогать с расчетами и кодом. Работает через сайт или мобильное приложение, доступ бесплатный на базовом уровне. Внутри у него языковая модель GPT - программа, обученная на огромном объеме текстов из интернета, книг и статей. Она…

Как выглядит ChatGPT?

спрашивает Павел, Тюмень 146 просм.

Марина Соколова: Внешне ChatGPT устроен проще, чем кажется: это диалоговое окно, а не программа с панелями инструментов вроде Word или Photoshop. Слева расположена узкая колонка с историей переписок - там хранятся все прошлые чаты, каждый можно переименовать или удалить. Сверху есть кнопка "новый чат" и переключатель модели: обычно указано название вроде GPT-4o или GPT-5, в платной версии…