📌
Anthropic и Theorem использовали Claude для математической верификации 123 открытых библиотек
Исследователи
применили модель для построения формальных математических доказательств надежности кода.
Основой послужили готовые фаззинг-тесты из OSS-Fuzz, сервиса Google для непрерывной проверки открытого кода случайными данными, которые сами по себе не способны дать стопроцентной гарантии отсутствия сбоев.
Claude превращал каждый такой тест в строгое утверждение и доказывал его. Всего за несколько недель нейросеть сгенерировала около 180 миллионов строк кода доказательств для 239 точек входа в 123 библиотеках из набора OSS-Fuzz.
Корректность доказательств проверяла программа Rocq, которая пересчитывает каждый шаг рассуждения, и результаты математически подтверждают, что протестированные программы гарантированно завершатся штатно при обработке любых произвольных входных данных размером до 64 МБ.
В процессе построения доказательств модель вскрыла и устранила сотни нетривиальных багов, которые практически невозможно отловить случайными тестами.
В их числе - ошибка перезаписи буфера в алгоритме декомпрессии, срабатывавшая только при строгом совпадении внутренней структуры и размера файла около 20 МБ, а также чтение за границами массива в декодере изображений, требовавшее для воспроизведения 64-мегабайтный файл и более 2 ГБ выделенной памяти.
Ранее подобная строгая верификация считалась слишком трудоемкой для реального применения - к примеру, доказательство корректности микроядра
seL4 потребовало 20 человеко-лет против всего двух человеко-лет на написание самого кода.
Авторы рассчитывают, что скоро формальная верификация станет такой же обыденной практикой, как сегодня фаззинг, почти для всего промышленного кода, хотя пока это дорого - на одно доказательство ушло сотни миллионов токенов.
К слову, совсем без людей обойтись всё еще не получается - в экспериментах следили за тем, чтобы модель не добивалась доказуемости, выхолащивая саму программу, поэтому её правки кода штрафовались и проверялись человеком.
@ai_machinelearning_big_data
#news #ai #ml