Введён в строй AI-сервис Sashiko для рецензирования изменений в ядре Linux
https://www.opennet.ru/opennews/art.shtml?num=65022
Роман Гущин (Roman Gushchin) из команды разработчиков ядра Linux, работающий в Google, объявил о создании новой системы проверки кода с использованием больших языковых моделей. Разработка велась последние несколько месяцев и получила название Sashiko, в честь традиционного японского плетения, состоящее из небольших прямых стежков, образующих разные узоры.
Sashiko уже некоторое время используется в компании Google для выявления проблем, а теперь стал доступен для всех и запущен для автоматического рецензирования всех патчей, отправляемых в список рассылки разработчиков ядра Linux. Код Sashiko написан на языке Rust и открыт под лицензией Apache 2.0. Система самодостаточна и может использоваться на собственном оборудовании.
Sashiko был разработан для работы с моделью Google Gemini Pro 3.1, но частично протестирован с Claude и, вероятно, будет работать с другими современными большими языковыми моделями. Использованные для рецензирования промпты основаны на наборе review-prompts, подготовленном Крисом Мейсоном (Chris Mason), создателем файловой системы Btrfs. Бюджет токенов и инфраструктуру Sashiko финансирует Google. Права на проект переданы организации Linux Foundation.
Судя по проведённым тестам, при использовании модели Gemini 3.1 Pro инструментарий Sashiko смог обнаружить 53.6% ошибок из неотфильтрованного набора, включающего 1000 недавних проблем в ядре, отмеченных тегами "Fixes:". На первый взгляд 53.6% выглядит не слишком впечатляющим, но следует иметь в виду, что все из выявленных проблем вначале не были замечены при рецензировании людьми и оказались включены в основную ветку ядра. Уровень ложных срабатываний, оценённый на основе выборочной ручной проверки, составил не более 20%.
Рецензирование разделено на 9 стадий, в ходе которых выявляются архитектурные проблемы, нарушения UAPI, расхождения с заявленной функциональностью, некорректное использование API, наличие недокументированных функций, логические ошибки, отсутствия проверки возвращаемых значений и кодов ошибок, утечки памяти, обращения к памяти после освобождения, двойное освобождение памяти, некорректная работа с очередями и таймерами, возникновение взаимных блокировок, ошибки при работе с потоками, переполнения буферов, утечки информации из неинициализированной памяти, а также специфичные для драйверов проблемы, связанные с использованием регистров, маппингом DMA и доступом к памяти.
Оригинал
Google's Sashiko: Open-Source Code Review System for Linux Kernel
https://www.linkedin.com/posts/roman-gushchin-1a95658_im-happy-to-share-the-project-i-was-working-activity-7439736656360005632-M-cb/
GitHub - https://github.com/sashiko-dev/sashiko
Меня триггернул комментарий на Опёнке
> Это всё edge cases, которые зачастую нереально триггернуть. Или вообще false positive на намеренный дизайн кода.
Когда-то давно я был QA (и ручным, и автоматизацию писал, и кучу всяких штук вокруг этого делал) и с тех пор моя любимая картинка про баги вот эта