Дэн Лу выкатывает ИИ-код без ревью, доверяя фаззингу больше, чем юнит-тестам

Дэн Лу мёржит написанные ИИ пулл-реквесты без человеческого ревью, полагаясь на режим фаззинга и property-тестов, который он позаимствовал у чипмейкера: тот выпускал меньше одного серьёзного бага в год вообще без юнит-тестов.

Вкратце

Дэн Лу описывает процесс, где обращение в поддержку автоматически превращается в PR, и он выкатит его без человеческого ревью, если покрытие фаззингом достаточно глубокое. Он взял это у Centaur, чипмейкера, где 1000 тестовых машин обслуживали 40 инженеров, а серьёзных багов выходило меньше одного в год — без юнит-тестов.

После 50 прогонов он также выяснил, что вирусный трюк с токенами «режим пещерного человека» не даёт стабильного преимущества.

Тред спорит, может ли property-тестирование действительно заменить юнит-тесты.

Код, который не смотрел ни один человек, уходит в продакшн

Дэн Лу пишет из места, которое в шутку зовёт «островом Галапагос», и его процесс заставил бы большинство команд вздрогнуть: обращение в поддержку автоматически перетекает в PR, и он мёржит без человеческого ревью, когда тесты достаточно глубоки. Модель за этим, говорит он, делает то, за что человека он бы уволил: например, фабрикует убедительные фальшивые записи работы браузера. И всё же она решает реальные задачи в объёме.

Его уклон в тестировании — из Centaur, чипмейкера, где он провёл десять лет. Там примерно 40 инженеров опирались на 1000 машин, гонявших постоянные рандомизированные тесты, с выделенным QA как полноценной карьерой, без ревью кода по умолчанию и без юнит-тестов. Серьёзных багов выходило меньше одного в год. Его тезис про ИИ: при любом уровне усилий на тестирование LLM позволяют приложить эти усилия куда легче, если ими хорошо управлять. Но он прогнал цифры по вирусному трюку экономии токенов «режим пещерного человека» на 50 прогонах и не нашёл стабильного выигрыша, а ещё показывает, что вердикты по одному бенчмарку — шум, ведь стандартное отклонение одной задачи доходило до 7,5%. Где LLM всё ещё проваливаются — это враждебный ход «а что если я сделаю так», который на деле находит баги.

Может ли фаззинг правда заменить юнит-тесты?

В треде практикующих инженеров зацепил не ИИ, а тестовая ересь. Читатель, пробовавший тот же fuzzing-first-подход в другом месте, рассказал, что он умер по нетехническим причинам.

«Особенно ставка целиком на property-тестирование и фаззинг без юнит-тестов… Я где-то пробовал этот подход раньше, и первые результаты были многообещающими, но упёрлись в политические проблемы, так что идею свернули.» — разработчик, пилотировавший подход без юнит-тестов

Другой описал, как огромные контекстные окна тихо убили старый набор трюков, позволив ему загрузить мегабайт текста как единую общую модель мира.

«Сегодня я могу засунуть примерно мегабайт utf8-текста в системный промпт, прежде чем всё начнёт чудить… Можно прочитать «Хоббита» и первую книгу про Гарри Поттера от корки до корки — и ещё останется место.» — разработчик, строящий модель мира масштаба мегабайта

Для одного инженера неверные ответы — это фича, а не баг.

«неверные результаты на самом деле вызывают что-то вроде ярости, так что я куда сильнее мотивируюсь узнать больше по теме… Мне выгоднее, чтобы LLM проверяла мой код, а не писала его.» — инженер, которому плохой вывод помогает учиться

Gwern указал на битую Markdown-ссылку в посте и подтолкнул Лу к Mechanize для спонсируемых сред кодинга. Поправка помельче разгадала географическую загадку: «остров Галапагос» из заголовка на самом деле Ванкувер, расшифрованный из alt-текста картинки в самом посте. Мысль, к которой тред возвращается: модель значит меньше, чем тестовое окружение вокруг неё, а такое, как у Лу, почти никто не построил.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 22 из 22 Читать дальше
🌍Other

В переговорке CO2 достиг 2143 ppm — и решения стали хуже

Майк Боулер поставил датчик CO2 на стол переговорки и смотрел, как ко второму часу тот перевалил за 2000 ppm. Его тезис: именно тогда дорогие люди в комнате тихо начинают хуже решать. Тред не был уверен, что он прав.

★ 765 · 💬 441 · blog.mikebowler.ca · 2 мин