Запилить проект
ИИ помогает находить ошибки в ядре Linux 3 минуты
Новости

ИИ помогает находить ошибки в ядре Linux

Инструменты искусственного интеллекта всё активнее используются для проверки ядра Linux. Они помогают обнаруживать потенциальные ошибки в патчах, но каждое исправление по-прежнему проверяют и принимают разработчики. Разбираемся, как ИИ меняет работу над одним из важнейших open-source-проектов.

ИИ помогает искать ошибки в ядре Linux — но последнее слово остаётся за человеком

Искусственный интеллект постепенно становится частью разработки Linux. Инструменты на базе больших языковых моделей анализируют патчи, находят потенциальные ошибки и отправляют отчёты разработчикам. Результатом стал заметный рост количества исправлений, попадающих в новые версии ядра.

Во время подготовки Linux 7.2 поток исправлений оказался необычно большим. Линус Торвальдс назвал шестой релиз-кандидат одним из крупнейших за последние годы по количеству коммитов. Около 60% изменений относились к драйверам, ещё 20% — к сетевой подсистеме. Первичное сообщение Торвальдса опубликовано в архиве LWN.

Седьмой релиз-кандидат также получился крупнее, чем обычно бывает на завершающей стадии разработки. По подсчётам TechRadar, в него вошло более 400 исправлений от примерно 230 участников. Часть обнаруженных проблем была найдена при помощи различных инструментов ИИ-анализа. 

ИИ не пишет Linux самостоятельно

Заголовки о том, что ядро Linux теперь якобы создаётся искусственным интеллектом, вводят в заблуждение. В рассматриваемом случае нейросети преимущественно используются для проверки уже написанного кода.

Система анализирует патч и указывает на потенциальную утечку памяти, ошибку синхронизации, неправильную проверку значения или другой дефект. Затем человек изучает отчёт, воспроизводит проблему и готовит исправление. Патч проходит обычную процедуру обсуждения и проверки ответственными за соответствующую подсистему.

Один из обсуждаемых инструментов — Sashiko, многоступенчатая система автоматического анализа патчей ядра. По утверждению её разработчиков, во время тестирования она смогла обнаружить 53,6% ошибок, которые позднее были исправлены людьми. Однако оценить долю ложных предупреждений значительно сложнее. Кроме того, Sashiko только комментирует патчи и не может самостоятельно внести изменение в Linux.

Торвальдс занимает прагматичную позицию: ИИ является таким же инструментом, как компилятор, статический анализатор или автоматический тест. Он поддерживает применение технологии для поиска проблем, но это не означает автоматического доверия к сгенерированным результатам. Разбор позиции Торвальдса: Ars Technica.

Успех создаёт новую проблему

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

Это особенно важно для Linux: ядро используется на серверах, смартфонах, сетевом оборудовании, суперкомпьютерах и встраиваемых устройствах. Ошибочное исправление способно затронуть миллионы систем, поэтому передавать принятие решений нейросети здесь никто не собирается.

Практический вывод для команд разработки прост: наиболее полезное применение ИИ сегодня — не бесконтрольная генерация больших объёмов кода, а дополнительный уровень проверки. Нейросеть может быстрее просматривать изменения и обращать внимание человека на подозрительные участки. Но воспроизведение ошибки, оценка последствий и окончательное решение по-прежнему требуют опытного инженера.