6 новых библиотек Machine Learning (ML), которые стоит изучить, чтобы улучшить свои навыки в 2023
Немного мотивации
На дворе только начался 2023 год, а это значит, что пришло время открыть для себя новые тенденции в области Data Science и машинного обучения. Хотя старые материалы по-прежнему актуальны, знаний Pandas, NumPy, Matplotlib и Scikit-learn уже недостаточно.
Данная статья посвящена шести восходящим звёздам экосистемы MLOps; инструментам, ориентированным на создание наиболее эффективных моделей и последующее внедрение их в продакшен. Давайте начнём!
1. BentoML
Одна из лучших библиотек, которые я нашел в прошлом году для развёртывания моделей – это BentoML. BentoML – это универсальная библиотека для поддержки, упаковки и развёртывания моделей любого фреймворка любому облачному провайдеру в качестве API-сервисов.
Она поддерживает сохранение / загрузку моделей в унифицированном формате (с версиями и тегами), что позволяет создавать организованный реестр моделей.
Оттуда вы можете создать образ Docker вашей модели с помощью одной команды и обслуживать его локально:
$ bentoml containerize my_classifier:latest
$ docker run -it --rm -p 3000:3000 my_classifier:6otbsmxzq6lwbgxi serve --production
Или разверните его на любом облачном провайдере с помощью нескольких команд, не выходя из CLI. Вот пример для AWS Sagemaker:
$ pip install bentoctl terraform
$ bentoctl operator install aws-sagemaker
$ export AWS_ACCESS_KEY_ID=REPLACE_WITH_YOUR_ACCESS_KEY
$ export AWS_SECRET_ACCESS_KEY=REPLACE_WITH_YOUR_SECRET_KEY
$ bentoctl init
$ bentoctl build -b model_name:latest -f deployment_config.yaml
$ terraform init
$ terraform apply -var-file=bentoctl.tfvars -auto-approve
Статистика и ссылки:
2. MLFlow
Прежде чем запустить вашу модель в работу, вы должны создать её, постоянно тестируя ее. Как правило, это может занять десятки или даже сотни итераций.
По мере роста числа итераций становится всё труднее и труднее отслеживать, какие конфигурации вы уже пробовали и какие из прошлых экспериментов выглядят многообещающими.
Чтобы помочь вам в этом процессе, вам нужна надёжная платформа для одновременного отслеживания кода, данных, моделей, гиперпараметров и метрик.
Создание этого фреймворка вручную (или с помощью Excel) – худшая идея в мире, поскольку для этой работы существует много превосходных библиотек Python.
Одна из них – MLflow, мой личный фаворит. Добавив следующую строку кода в сценарий, который обучает модель scikit-learn, MLflow захватит всё — саму модель, ее гиперпараметры и любую метрику, которую вы вычисляете с помощью функций sklearn.metrics
:
mlflow.sklearn.autolog()
Как только вы закончите данный процесс, вы запустите mlflow ui на терминале, и он откроет панель мониторинга экспериментов с элементами управления для сортировки и визуализации ваших экспериментов:
MLflow имеет функцию mlflow.framework.autolog()
для большего количества фреймворков, чем вы можете назвать. Это настолько просто и полезно, что вы не можете им не воспользоваться.
Статистика и ссылки:
3. DVC
Если говорить вкратце, то DVC – это Git для данных.
DVC (Data Version Control) становится общедоступной библиотекой управления версиями данных и моделей. Она может:
- Отслеживать наборы данных или модели размером в гигабайт, как Git отслеживает облегчённые скрипты.
- Создавать ветви основной базы кода для безопасного экспериментирования без дублирования больших файлов.
Когда вы отслеживаете большой файл или каталог с помощью dvc add directory
, создаётся облегченный файл метаданных directory.dvc
. Затем DVC управляет этими лёгкими файлами в качестве заполнителей для исходных файлов с большим весом.
Следует заметить, что вместе они, DVC и Git, составляют идеальный дуэт.
Ещё одним преимуществом DVC являются интеллектуальные конвейеры рабочего процесса. Типичный рабочий процесс машинного обучения включает в себя такие этапы, как сбор данных, их очистка, разработка функций и обучение модели.
DVC может создать интеллектуальный конвейер из всех этих шагов, чтобы вы могли запускать их все с помощью двух ключевых слов — dvc repro
.
DVC выполняет только необходимые этапы конвейера, экономя вам часы времени и вычислительные ресурсы.
Добавьте ML Flow в свои обучающие скрипты, отслеживайте артефакты модели с помощью DVC, и у вас получится идеальное трио (Git, DVC, ML Flow).
Статистика и ссылки:
4. Weights & Biases
Ещё одна платформа отслеживания экспериментов с полностью открытым исходным кодом – Weights & Biases (wandb.ai ). Она предоставляется компанией с финансированием более 200 миллионов долларов и клиентской базой, включающей OpenAI, NVIDIA, Lyft, BMW, Samsung и так далее.
Её основными преимуществами являются:
- Отличная интеграция с остальной экосистемой ML, как и MLflow
- Самый красивый пользовательский интерфейс для отслеживания и сравнения экспериментов
- Совместные отчеты и информационные панели
- Оптимизация гиперпараметров (отсутствует в MLflow)
И самое приятное, что все вышеперечисленные функции доступны прямо через Jupyter. Это означает, что вам не нужно отказываться от своей любимой IDE и переходить к скриптам только для отслеживания экспериментов.
Итак, вашим идеальным трио, на самом деле, могут быть Git, DVC и Weights & Biases.
Статистика и ссылки:
5. NannyML
Развёртывание моделей – это только часть истории. Чтобы поддерживать успешный продукт на базе ML, вы должны постоянно контролировать его производительность.
Проблема с мониторингом заключается в том, что у вас не будет заметных, жирных, красных ошибок на мониторе, когда модели выходят из строя. С течением времени прогнозы ваших моделей могут становиться всё хуже и хуже, что приводит к отказу модели.
Например, вы развернули модель, которая распознаёт одежду Nike по изображениям. Мода быстро меняется, поэтому Nike постоянно совершенствует свой дизайн.
NannyML и разработанный ими новый алгоритм оценки производительности на основе достоверности и нескольких других надёжных статистических тестов, поможет обнаруживать снижение производительности или тихие сбои модели в производстве.
NannyML также поддерживает интеллектуальное оповещение, чтобы вы всегда могли быть в курсе того, что происходит в вашей рабочей среде мо.
Статистика и ссылки
6. Poetry
Вы, наверное, уже тысячу раз слышали, как программисты на Python жалуются на pip и его проблемы с зависимостями. Я тоже был одним из таких нытиков, пока не увидел Poetry.
Poetry – это изменяющая правила игры платформа для упаковки Python с открытым исходным кодом. В простейшем случае Poetry может обнаруживать конфликты зависимостей до установки библиотек, чтобы вы могли полностью избежать возможных ошибок.
Вы также можете настроить свои проекты на Python в виде пакетов с файлами pyproject.toml
, и Poetry позаботится о виртуальных средах, создавая и публикуя репозиторий в PyPI с помощью простых команд.
Статистика и ссылки:
Заключение
Область Data Science постоянно развивается, и новые инструменты и библиотеки разрабатываются молниеносными темпами. Давление, чтобы не отставать, стало сильнее, чем когда-либо. В этой статье я сделал всё возможное, чтобы сузить ваше внимание до одной области машинного обучения, которая обещает стремительно вырасти в 2023 году. Спасибо вам за прочтение!
@machinelearning_ru – еще больше материалов по машинному обучению