Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модель машинного обучения — это файл, обученный распознавать определенные типы шаблонов. Вы обучаете модель на наборе данных и предоставляете модели алгоритм, который используется для анализа и обучения на этом наборе данных. После обучения модели его можно использовать для анализа данных, которые он никогда не видел раньше, и делать прогнозы об этом данных.
В MLflow модель машинного обучения может включать несколько версий модели. Здесь каждая версия может представлять итерацию модели. В этой статье вы узнаете, как взаимодействовать с моделями машинного обучения для отслеживания и сравнения итерации моделей.
В этой статье описано, как:
- Создание моделей машинного обучения в Microsoft Fabric
- Управление и отслеживание версий модели
- Сравнение производительности модели в разных версиях
- Применение моделей для оценки и вывода
Создание модели машинного обучения
Модель машинного обучения можно создать из пользовательского интерфейса Fabric или программно с помощью API MLflow. В MLflow модели используют стандартный формат упаковки, который работает с различными вспомогательными инструментами, включая пакетное выполнение в Apache Spark. Формат сохраняет модель в различных вариантах, которые могут быть поняты различными инструментами для последующей обработки.
Чтобы создать модель машинного обучения из пользовательского интерфейса, выполните следующие действия.
- Выберите существующую рабочую область для обработки и анализа данных или создайте новую рабочую область.
- Создайте новый элемент в рабочей области или с помощью кнопки "Создать":
- Рабочее пространство
- Кнопка "Создать":
- После создания модели можно приступить к добавлению версий модели для отслеживания метрик и параметров. Регистрация или сохранение экспериментов выполняется в существующей модели.
Вы также можете создать модель машинного обучения непосредственно из интерфейса разработки через 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))
Управление версиями в модели машинного обучения
Модель машинного обучения содержит коллекцию версий моделей для упрощенного отслеживания и сравнения. В модели специалист по обработке и анализу данных может перемещаться по различным версиям модели для изучения базовых параметров и метрик. Специалисты по обработке и анализу данных также могут выполнять сравнения между версиями моделей, чтобы определить, могут ли новые модели получить лучшие результаты.
Note
Благодаря поддержке MLflow 3 в Fabric каждая модель, которая регистрируется с помощью mlflow.<flavor>.log_model(model, name="...") создает сущность LoggedModel, связанную с исходным запуском, параметрами, метриками, наборами данных и средой. Вы можете открыть LoggedModel на странице эксперимента и зарегистрировать его в качестве новой модели машинного обучения или новой версии существующей модели. Дополнительные сведения см. в разделе MLflow 3 в Fabric для обработки и анализа данных.
Отслеживание моделей машинного обучения
Версия модели машинного обучения представляет отдельную модель, зарегистрированную для отслеживания.
Каждая версия модели содержит следующие сведения:
| Недвижимость | Description |
|---|---|
| Время создания | Дата и время создания модели. |
| Имя запуска | Идентификатор запуска эксперимента, используемого для создания конкретной версии модели. |
| Гиперпараметры | Сохранены в виде пар "ключ-значение". Оба ключа и значения являются строками. |
| Метрики | Метрики сохраняются в формате пар ключ-значение. Значение является числовым. |
| Схема и подпись модели | Описание входных и выходных данных модели. |
| Записанные файлы | Зарегистрированные файлы в любом формате. Например, можно записывать изображения, среды, модели и файлы данных. |
| Теги | Пользовательские метаданные в виде пар "ключ-значение", связанных с запусками. Узнайте, как применять теги. |
Применение тегов к моделям машинного обучения
Тег 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
from mlflow import MlflowClient
client = MlflowClient()
for rm in client.search_registered_models():
pprint(dict(rm), indent=4)
Применение моделей машинного обучения
После обучения модели на наборе данных можно применить эту модель к данным, которые она никогда не видела, для создания прогнозов. Мы называем эту модель методом оценки или вывода.
Fabric поддерживает несколько подходов к применению обученных моделей:
- Пакетная оценка — примените свою модель в крупном масштабе для больших наборов данных с помощью Apache Spark. Это идеально подходит для создания прогнозов по историческим или запланированным данным.
- Оценка в режиме реального времени — разверните модель на конечной точке для выполнения прогнозов по запросу, что полезно для приложений, которым требуются немедленные результаты.
Чтобы приступить к применению моделей, выберите подход, соответствующий вашему сценарию: