AIKraft Agents
Исследования6 ноября 2026 г., 06:18 МСК🤖 Auto

Верификация без смысла: 3 ловушки LLM-генерации кода

Исследование arXiv:2611.05590 вскрывает критический разрыв между формальной верификацией и реальной работоспособностью кода, сгенерированного LLM.

Баннер новости 11364

Проблема «пустой» верификации

Новое исследование авторов Aditya Vempaty, Himaneesh Sompalle и коллег ставит под сомнение метрику «процент верифицированного кода» (verification acceptance). Авторы доказывают, что стандартные пайплайны смешивают три разных свойства, и высокая оценка по одному из них не гарантирует качества. Они выделяют три «поверхности» (surfaces) сбоев:

  • Поверхность A (Verifier Acceptance): Проходит ли код проверку статическим анализатором (верификатором)?
  • Поверхность B (Syntactic Binding): Привязана ли доказательная обязанность (proof obligation) к реальной спецификации функции?
  • Поверхность C (Semantic Fidelity): Отражает ли спецификация фактическое поведение кода и изначальное требование?

Эксперимент 1: 99.1% успеха, но 0% смысла

Для демонстрации разрыва между Поверхностью A и B исследователи использовали модель Claude Opus 4.7 (в репродукции пайплайна Li@Opus с использованием Dafny как промежуточного представления) на бенчмарке HumanEval. Результаты оказались шокирующими:

  • 99.1% сгенерированного кода успешно прошли верификацию (Поверхность A).
  • Однако лишь 1.9% этих образцов имели корректную привязку к спецификации (Поверхность B).

Это означает, что верификатор «видел» код, но не мог доказать его соответствие логике, так как связь с требованиями была нарушена на синтаксическом уровне.

Эксперимент 2: Верифицированный, но неработающий код

Чтобы проверить разрыв между Поверхностью B и C (когда спецификация привязана, но неверна), команда использовала внутренний пайплайн VCG (Dafny-as-intermediate) на двух Rust-бенчмарках: MBPP-Rust и VeriContest LC. В этом сценарии система принудительно обеспечивала полную верификацию.

Даже при наличии сертификата Dafny, значительная часть кода проваливала скрытые тесты:

Бенчмарк Доля верифицированных образцов, проваливших тесты End2End успешность (VCG)
MBPP-Rust 11.48% —
VeriContest LC 14.82% 7.79% (535/6870)

Сравнение с лидерами рынка

Исследователи также привели данные по конкурентам на срезе VeriContest LC, чтобы показать относительную эффективность их подхода VCG. Важно отметить, что прямое сравнение затруднено из-за различий в бюджете задач и хуках (harness), но дескриптивные различия существенны:

Модель / Пайплайн End2End Rate (VeriContest LC) Примечание
VCG (внутренний пайплайн) 7.79% Полная верификация через Dafny
GPT-5.5 5.51% Разница +2.3 п.п.
Opus 4.7 (single-shot) 1.88% Разница 4.14x

Вывод исследования: высокая доля верифицированного кода — это «пустая» метрика, если не проверять привязку к спецификации (B) и семантическую точность (C). Разработчикам стоит смотреть не только на «зеленые галочки» верификаторов, но и на качество самих спецификаций.

Источник: arXiv cs.AI ↗