Обучение и отслеживание моделей в записных книжках
В качестве ученого по обработке и анализу данных вы используете записные книжки для экспериментов и обучения моделей. Для группирования результатов обучения модели вы будете использовать эксперименты. Чтобы отслеживать метрики модели с помощью MLflow при обучении модели в записной книжке, можно использовать возможности ведения журнала MLflow.
Создание эксперимента MLflow
Вы можете создать эксперимент MLflow, который позволяет группировать запуски. Если вы не создаете эксперимент, MLflow предполагает, что эксперимент по умолчанию с именем Default
.
Чтобы создать эксперимент, выполните следующую команду в записной книжке:
import mlflow
mlflow.set_experiment(experiment_name="heart-condition-classifier")
Результаты журнала с помощью MLflow
Теперь вы готовы обучить модель. Чтобы запустить запуск, отслеживаемый MLflow, вы будете использовать start_run()
. Далее, чтобы отслеживать модель, можно:
- Включите автологирование.
- Используйте настраиваемое ведение журнала.
Включение автоматического ведения журнала
MLflow поддерживает автоматическое ведение журнала для популярных библиотек машинного обучения. Если вы используете библиотеку, поддерживаемую автологом, MLflow сообщает платформе, которую вы используете для регистрации всех метрик, параметров, артефактов и моделей, которые платформа считает релевантной.
Вы можете включить автологирование с помощью autolog
метода для используемой платформы. Например, чтобы включить автологирование для моделей XGBoost, можно использовать mlflow.xgboost.autolog()
.
Совет
Найдите список всех поддерживаемых платформ для автологирования в официальной документации по MLflow.
Ячейка записной книжки, которая обучает и отслеживает модель классификации с помощью автологирования, может быть похожа на следующий пример кода:
from xgboost import XGBClassifier
with mlflow.start_run():
mlflow.xgboost.autolog()
model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
Как только mlflow.xgboost.autolog()
вызывается, MLflow запустит выполнение в эксперименте в Машинное обучение Azure, чтобы начать отслеживание выполнения эксперимента.
После завершения задания можно просмотреть все зарегистрированные метрики в студии.
Использование пользовательского ведения журнала
Кроме того, можно вручную записать модель с помощью MLflow. Модели ведения журнала вручную полезны, если требуется регистрировать дополнительные или пользовательские сведения, которые не регистрируются с помощью автоматической записи.
Примечание.
Вы можете использовать только настраиваемое ведение журнала или использовать настраиваемые журналы в сочетании с автологированием.
Распространенные функции, используемые с пользовательским ведением журнала:
mlflow.log_param()
: регистрирует один параметр key-value. Используйте эту функцию для входного параметра, который нужно сохранять в журнал.mlflow.log_metric()
: регистрирует одну метрику "ключ-значение". Значение должно быть числом. Используйте эту функцию для всех выходных данных, которые нужно сохранить при запуске.mlflow.log_artifact()
: записывает файл. Используйте эту функцию для всех графиков, которые нужно сохранять в журнале, предварительно сохранив их в файл изображения.mlflow.log_model()
: регистрирует модель. Эта функция используется для создания модели MLflow, которая может включать в себя настраиваемые сигнатуры, среды и примеры ввода.
Совет
Дополнительные сведения о том, как отслеживать модели с помощью MLflow, изучите официальную документацию по MLflow или документацию по Машинное обучение Azure
Чтобы использовать пользовательский вход в записную книжку, запустите и зайдите в журнал любую нужную метрику:
from xgboost import XGBClassifier
from sklearn.metrics import accuracy_score
with mlflow.start_run():
model = XGBClassifier(use_label_encoder=False, eval_metric="logloss")
model.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
mlflow.log_metric("accuracy", accuracy)
Настраиваемое ведение журнала обеспечивает большую гибкость, но также создает больше работы, так как вам придется определить любой параметр, метрику или артефакт, который вы хотите регистрировать.
После завершения задания можно просмотреть все зарегистрированные метрики в студии.