В этом посте будет показано, как MLFlow можно использовать для управления жизненным циклом машинного обучения. Я расскажу об основных компонентах MLFLow и о том, как их можно использовать. Я установил MLFlow через pip и использую бэкэнд SQLite для выполнения регистрации модели.

Классификация IRIS с помощью MLFlow

Приведенный ниже сценарий классифицирует цветы из набора данных IRIS, используя функции MLFlow, которые обычно используются в жизненном цикле разработки модели.

Эксперименты и прогоны

Эксперимент — это контейнер для различных запусков, поэтому полезно иметь понятное имя для эксперимента. Кроме того, 2 эксперимента не могут иметь одинаковое имя, поэтому, как показано выше, может потребоваться получить эксперимент по имени и использовать его идентификатор для регистрации запуска, если эксперимент уже существует.

Регистрация параметров, метрик и артефактов модели

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

Регистрация модели

Чтобы сохранить происхождение модели машинного обучения и управлять моделями, развертываемыми в рабочей среде, модели должны быть зарегистрированы в MLFLow. Обратите внимание, что регистрация модели не работает с серверной частью локальной файловой системы, поэтому я использовал серверную часть SQLite, которую также легко настроить.

Оценка модели

Модели, управляемые MLFlow, можно использовать для пакетного прогнозирования во фрейме данных Pandas или использовать в качестве REST API для прогнозирования в реальном времени на основе запроса, отправляемого в API.

Пакетный режим

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

REST API через обслуживание модели MLFlow

Обслуживание модели на основе REST — это решение «под ключ» (готовое к работе) от MLFlow, в котором пользователю нужно только ввести команду CLI, которая создает среду Conda, через которую модель может обслуживаться как REST API. В случае с классификацией IRIS я использовал следующую команду:

обслуживание моделей mlflow -m mlruns/1/b6812f6de81a4e74b65cf50f9d019924/artifacts/model/

Обратите внимание, что при вводе этой команды не запускайте пользовательский интерфейс MLFlow на порту 5000, поскольку по умолчанию модели также обслуживаются на том же порту. Кроме того, строку, начинающуюся с «b6812», необходимо заменить идентификатором запуска, который создается MLFlow при выполнении запуска. В идеале это будет прогон, создающий наилучшую модель на основе показателей, определенных для конкретной бизнес-задачи.

Развернутую модель можно использовать для прогнозирования, как показано на снимке экрана ниже от Postman.

Для получения дополнительной информации, пожалуйста, прочитайте Официальную документацию MLFlow.