Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модель машинного обучения — это файл, обученный распознавать определенные типы шаблонов. Вы обучаете модель на наборе данных и предоставляете модели алгоритм, который используется для анализа и обучения на этом наборе данных. После обучения модели его можно использовать для анализа данных, которые он никогда не видел раньше, и делать прогнозы об этом данных.
В MLflow модель машинного обучения может включать несколько версий модели. Здесь каждая версия может представлять итерацию модели.
В этой статье описано, как:
- Создание моделей машинного обучения в Microsoft Fabric
- Управление и отслеживание версий модели
- Сравнение производительности модели в разных версиях
- Применение моделей для оценки и вывода
Создание модели машинного обучения
В MLflow модели машинного обучения включают стандартный формат упаковки. Этот формат позволяет использовать эти модели в различных подчиненных инструментах, включая пакетное выводение в Apache Spark. Формат определяет соглашение о сохранении модели в разных вариантах, которые могут понять различные инструменты дальнейшей обработки.
Вы можете напрямую создать модель машинного обучения из пользовательского интерфейса Fabric. API MLflow также может напрямую создать модель.
Чтобы создать модель машинного обучения из пользовательского интерфейса, выполните следующие действия.
- Выберите существующую рабочую область для обработки и анализа данных или создайте новую рабочую область.
- Создайте новый элемент в рабочей области или с помощью кнопки "Создать":
- После создания модели можно приступить к добавлению версий модели для отслеживания метрик и параметров. Регистрация или сохранение экспериментов выполняется в существующей модели.
Вы также можете создать модель машинного обучения непосредственно из интерфейса разработки через mlflow.register_model() API. Если зарегистрированная модель машинного обучения с заданным именем не существует, API создает ее автоматически.
import mlflow
model_uri = "runs:/{}/model-uri-name".format(run.info.run_id)
mv = mlflow.register_model(model_uri, "model-name")
print("Name: {}".format(mv.name))
print("Version: {}".format(mv.version))
Управление версиями в модели машинного обучения
Модель машинного обучения содержит коллекцию версий моделей для упрощенного отслеживания и сравнения. В модели специалист по обработке и анализу данных может перемещаться по различным версиям модели для изучения базовых параметров и метрик. Специалисты по обработке и анализу данных также могут выполнять сравнения между версиями моделей, чтобы определить, могут ли новые модели получить лучшие результаты.
Отслеживание моделей машинного обучения
Версия модели машинного обучения представляет отдельную модель, зарегистрированную для отслеживания.
Каждая версия модели содержит следующие сведения:
- Время создания: дата и время создания модели.
- Имя запуска: идентификатор выполнения эксперимента, используемый для создания конкретной версии модели.
- Гиперпараметры: гиперпараметры сохраняются в виде пар "ключ-значение". Оба ключа и значения являются строками.
- Метрики: выполнение метрик, сохраненных в виде пар "ключ-значение". Значение является числовым.
- Схема и подпись модели: описание входных и выходных данных модели.
- Записанные файлы: файлы журнала в любом формате. Например, можно записывать изображения, среды, модели и файлы данных.
- Теги: метаданные в виде пар "ключ-значение" для процессов.
Применение тегов к моделям машинного обучения
Тег MLflow для версий модели позволяет пользователям присоединять пользовательские метаданные к определенным версиям зарегистрированной модели в реестре моделей MLflow. Эти теги, хранящиеся в виде пар "ключ-значение", помогают упорядочивать, отслеживать и различать версии модели, что упрощает управление жизненными циклами моделей. Теги можно использовать для обозначения цели модели, среды развертывания или любых других соответствующих сведений, упрощая более эффективное управление моделями и принятие решений в командах.
В этом коде показано, как обучить модель RandomForestRegressor с помощью Scikit-learn, записать модель и параметры с помощью MLflow, а затем зарегистрировать модель в реестре моделей MLflow с настраиваемыми тегами. Эти теги предоставляют полезные метаданные, такие как имя проекта, отдел, команда и квартал проекта, что упрощает управление и отслеживание версии модели.
import mlflow.sklearn
from mlflow.models import infer_signature
from sklearn.datasets import make_regression
from sklearn.ensemble import RandomForestRegressor
# Generate synthetic regression data
X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)
# Model parameters
params = {"n_estimators": 3, "random_state": 42}
# Model tags for MLflow
model_tags = {
"project_name": "grocery-forecasting",
"store_dept": "produce",
"team": "stores-ml",
"project_quarter": "Q3-2023"
}
# Log MLflow entities
with mlflow.start_run() as run:
# Train the model
model = RandomForestRegressor(**params).fit(X, y)
# Infer the model signature
signature = infer_signature(X, model.predict(X))
# Log parameters and the model
mlflow.log_params(params)
mlflow.sklearn.log_model(model, artifact_path="sklearn-model", signature=signature)
# Register the model with tags
model_uri = f"runs:/{run.info.run_id}/sklearn-model"
model_version = mlflow.register_model(model_uri, "RandomForestRegressionModel", tags=model_tags)
# Output model registration details
print(f"Model Name: {model_version.name}")
print(f"Model Version: {model_version.version}")
После применения тегов их можно просмотреть непосредственно на странице сведений о версии модели. Кроме того, теги можно добавлять, обновлять или удалять с этой страницы в любое время.
Сравнение и фильтрация моделей машинного обучения
Чтобы сравнить и оценить качество версий модели машинного обучения, можно сравнить параметры, метрики и метаданные между выбранными версиями.
Визуальное сравнение моделей машинного обучения
Вы можете визуально сравнить прогоны в существующей модели. Визуальное сравнение позволяет легко переходить между и сортировать по нескольким версиям.
Чтобы сравнить запуски, можно:
- Выберите существующую модель машинного обучения, содержащую несколько версий.
- Выберите вкладку "Вид " и перейдите к представлению списка моделей . Вы также можете выбрать параметр просмотра списка моделей непосредственно в представлении сведений.
- Столбцы в таблице можно настроить. Разверните область Настройка столбцов. Здесь можно выбрать свойства, метрики, теги и гиперпараметры, которые вы хотите просмотреть.
- Наконец, можно выбрать несколько версий, чтобы сравнить результаты в области сравнения метрик. На этой панели можно настроить диаграммы с изменениями заголовка диаграммы, типа визуализации, оси X, оси Y и т. д.
Сравнение моделей машинного обучения с помощью API MLflow
Специалисты по обработке и анализу данных также могут использовать MLflow для поиска среди нескольких моделей, сохраненных в рабочей области. Ознакомьтесь с документацией по MLflow , чтобы изучить другие API MLflow для взаимодействия с моделью.
from pprint import pprint
client = MlflowClient()
for rm in client.list_registered_models():
pprint(dict(rm), indent=4)
Применение моделей машинного обучения
После обучения модели на наборе данных можно применить эту модель к данным, которые она никогда не видела, для создания прогнозов. Мы называем эту модель методом оценки или вывода.
Дальнейшие действия.
- Узнайте о групповой оценке в Fabric
- Развертывание моделей для оценки в режиме реального времени
- Сведения об API-интерфейсах экспериментов MLflow