- Разработчик IBM Вячеслав Дубейко предложил создать инфраструктуру для интеграции моделей машинного обучения (ML) в ядро Linux.
- Предложение основывается на использовании лёгкого ML-прокси в ядре, который взаимодействует с ML-моделью, работающей в пользовательском пространстве.
- Проект сопровождается набором патчей и библиотекой ml-lib на C с открытым исходным кодом, и предназначен для оптимизации работы подсистем и прогнозирования состояния системы.
Инженер из IBM Вячеслав Дубейко инициировал обсуждение в сообществе разработчиков ядра Linux о возможности внедрения моделей машинного обучения (ML) в ядро операционной системы. Его предложение предусматривает создание универсальной инфраструктуры, обеспечивающей взаимодействие подсистем ядра с ML-моделями, которые при этом выполняются исключительно в пользовательском пространстве.
Основой концепции выступает легковесный ML-прокси, встроенный в ядро, который предоставит структурированные данные – такие как внутренняя статистика и показатели производительности различных подсистем. Эти данные прокси передаёт ML-модели, функционирующей вне ядра, а затем получает от неё рекомендации. Весь процесс обучения и выполнение моделей происходит за пределами ядра, что сохраняет стабильность и безопасность операционного ядра за счёт отсутствия прямого запуска ML-кода в ядре.
Для практической реализации инициативы автор подготовил набор патчей и открытый проект ml-lib на языке C, распространяемый под лицензией GNU GPL v2.0. В качестве демонстрации предложена реализация символьного драйвера, использующего данную библиотеку. По мнению Дубейко, подобная интеграция позволит динамически изменять логику работы подсистем ядра в зависимости от получаемых данных, оптимизировать конфигурацию с учётом сложности и изменчивости современных нагрузок, а также более эффективно решать задачи прогнозирования сбоев, особенно в системах хранения данных.
Серьёзным техническим вызовом является невозможность использования операций с плавающей запятой внутри ядра Linux, что необходимо для работы ML-моделей. Для обхода этого ограничения предложен подход, при котором ML-модели запускаются в пользовательском пространстве, а ядро обращается к ним через прослойку по аналогии с технологиями SPDK, DPDK и ublk. Такая архитектура облегчает сопровождение кода и снижает риск возникновения критических ошибок в ядре, изолируя проблемы выполнения моделей вне его контекста.
Взаимодействие между ядром и пользовательским пространством предлагается организовать через sysfs, что позволяет не только передавать данные, но и управлять адаптивным обучением моделей. Это значит, что подсистема ядра сможет применять рекомендации модели, анализировать результат и корректировать поведение на основе обратной связи, что повышает общую эффективность и адаптивность системы.
Таким образом, предложенная инициатива открывает перспективы для более интеллектуального управления ядром Linux с помощью современных методов машинного обучения, что обещает улучшить производительность, надёжность и адаптивность операционной системы в условиях быстро меняющихся и сложных рабочих нагрузок.
