Применение MLflow к существующему проекту машинного обучения

Что такое MLflow?

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

  • Отслеживание Млфлоу
  • Млфлов проекты
  • Модели MLflow
  • Реестр Млфлов

В этом примере мы собираемся использовать существующий пример Keras Tensorflow и добавить к нему поддержку MLflow.

Пример: Совместная фильтрация для рекомендаций фильмов с Keras и Tensorflow 2.0.0.

Мы выбрали пример Совместная фильтрация для рекомендаций фильмов с Keras и Tensorflow 2.0.0. Этот пример создан Siddhartha Banerjee, и исходный URL-адрес примера выглядит следующим образом: https://keras.io/examples/structured_data/collaborative_filtering_movielens/

Источник GitHub для примера примера находится здесь:

https://github.com/keras-team/keras-io/blob/master/examples/structured_data/collaborative_filtering_movielens.py

Создание необходимых файлов для MLflow:

  • Загрузите исходный код на свой локальный компьютер. Запустите код локально, чтобы убедиться, что он работает и вы его понимаете.

$ Python Collaborative_filtering_movielens.py

  • Создайте conda.yaml, как показано ниже:

название: tf_keras_recom_example
каналы:
— значения по умолчанию
— anaconda
— conda-forge
зависимости:
— python=3.6
— numpy= 1.14.2
— pandas
— pip:
— mlflow
— tensorflow==2.0.0

  • Создайте MLProject, как показано ниже:

имя: Movielens-recommendations-keras-tf2
conda_env: conda.yaml

entry_points:
main:
команда: «python collaborative_filtering_movielens.py»

Теперь у вас должно быть 3 файла, как показано ниже:

Редактирование файла кода для MLflow:

  • Добавьте следующие модули Python

импортировать mlflow.tensorflow
mlflow.tensorflow.autolog()

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

# импортировать matplotlib.pyplot как plt
# plt.plot(history.history["потеря"])
# plt.plot(history.history["val_loss"])
# plt. title("потеря модели")
# plt.ylabel("потеря")
# plt.xlabel("эпоха")
# plt.legend(["train", "test" ], loc="верхний левый")
# plt.show()

Это все. Теперь мы запустим код в двух отдельных терминальных средах.

Среда 1: откройте пользовательский интерфейс MLflow

Пользовательский интерфейс $ mlflow

Примечание. Откройте веб-браузер с URL-адресом http://localhost:5000, чтобы увидеть пользовательский интерфейс MLflow.

Среда 2: вы можете запустить код с помощью MLflow, как показано ниже, чтобы запустить проект:

$ mlflow run .

Как только код запустится, пользовательский интерфейс MLflow покажет ход выполнения, как показано ниже:

Исходный код для этого проекта:

https://github.com/Avkash/300seconds/tree/master/tf2-keras-recommendations



Прохождение проекта и обучающее видео @ YouTube

https://www.youtube.com/watch?v=RFtorfGDtJM

Это все. Пожалуйста, берегите себя и будьте здоровы.

Авкаш Чаухан