Neptune.ai - это хранилище метаданных MLOps, реестр моделей и организация экспериментов.
Что означает термин "хранилище метаданных"?
Хранилище метаданных машинного обучения является важной частью стека MLOps, которое занимается управлением метаданными построения модели. Оно позволяет легко регистрировать, хранить, отображать, упорядочивать, сравнивать и запрашивать все метаданные, созданные в течение жизненного цикла модели машинного обучения.
О каких метаданных идет речь?
- Метаданные эксперимента и обучения модели
Можно регистрировать все, что происходит во время запуска ML, в том числе:
- Метрики
- Гиперпараметры
- Кривые обучения
- Исходный код экспериментов и файлы конфигурации
- Результаты (изображения, таблицы и т. д.)
- Диагностические диаграммы (матрица ошибок, кривая ROC и т. д.)
- Лог консоли
- Лог оборудования
- Метаданные артефактов
Для наборов данных, результатов или моделей можно регистрировать:
- Ссылки на источники данных или модели (облачное хранилище, файловая система)
- Хэш набора данных
- Предварительный просмотр набора данных/результатов (заголовок таблицы, скриншоты папки с изображениями)
- Описание
- Имена столбцов признаков (для табличных данных)
- Кто создал/изменил
- Дата последнего изменения
- Размер набора данных
- Метаданные моделей
- Бинарный файл модели или местоположение модели
- Версии данных
- Ссылки на записанные эксперименты по обучению моделей
- Кто обучал модель
- Описания моделей и примечания
- Ссылки на информационные панели наблюдения (Grafana)
Подробнее о том, что ещё можно хранить можно посмотреть
здесь.
Для чего можно использовать хранилище метаданных?
- Для систематизации экспериментов - отслеживать, систематизировать и сравнивать все, что нужно, в экспериментах по машинному обучению.
- Для реестра моделей - вести прозрачный учёт моделей, получать доступ в любой момент к модели и её метаданным
Как начать работу?
- Первый шаг - бесплатная регистрация по ссылке: https://neptune.ai/register
- Далее нужно установить библиотеку на локальном компьютере:
! pip install neptune-client
- Затем создать эксперимент и передать учетные данные:
import [[[neptune.new](http://neptune.new)]([http://neptune.new](http://neptune.new))]([[http://neptune.new](http://neptune.new)]([http://neptune.new](http://neptune.new))) as neptune
run = neptune.init(project="common/colab-test-run", api_token="ANONYMOUS")
- После этого можно журналировать всё, что связано с моделями машинного обучения, экспериментами и данными, в том числе:
- исходный код и файлы конфигурации;
- параметры и показатели;
- использование оборудования и журналы консоли;
- графики производительности и интерактивные визуализации;
- веса моделей;
- и многое другое.
Как всё сделать ещё проще?
Не писать код для журналирования самостоятельно. В библиотеке фреймворка
Neptune.ai уже реализовано более 25 интеграций со всеми основными платформами машинного обучения, чтобы сделать работу еще проще:
- PyTorch и PyTorch Lightning;
- TensorFlow/Keras и TensorBoard;
- Scikit-Learn, LightGBM и XGBoost;
- Optuna, Scikit Optiimize и Keras Tuner;
- Bokeh, Altair, Plotly и Matplotlib;
- и др
Рассмотрим эту возможность на примере модели регрессора RandomForestRegressor из библиотеки Scikit-Learn. Добавив в свой код всего одну строчку (не считая импорт библиотеки neptune и регистрацию эксперимента) можно получить:
- журналирование параметров регрессора,
- сохранение и журналирование модели,
- сохранение и журналирование результатов тестирования модели,
- сохранение и журналирование метрик эксперимента,
- создание и сохранение пяти графиков - график расстояние Кука, график важности признаков, график кривой обучения, график ошибок предсказаний, график остатков,
- сохранение и журналирование метаданных,
- сохранение и журналирование исходного кода эксперимента и метаданных git.
Полезные ссылки: