Применение 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 для примера примера находится здесь:
Создание необходимых файлов для 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
Это все. Пожалуйста, берегите себя и будьте здоровы.