Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для машинного обучения в рабочей среде требуется больше, чем обучение хорошей модели. Вам нужны надежные рабочие процессы для перемещения моделей из разработки с помощью проверки в рабочую среду. Ведение журнала между рабочими областями в Microsoft Fabric включает два ключевых сценария:
Создание комплексных рабочих процессов MLOps. Обучайтесь и проводите эксперименты в среде разработки, проверяйте в тестовой среде и развертывайте в продукционной среде с использованием стандартных API MLflow. Это разделение сред помогает командам применять шлюзы качества и поддерживать четкие следы аудита от экспериментирования до рабочей среды.
Переносите существующие активы машинного обучения в Fabric. Если вы уже обучены модели в Azure Databricks, Машинное обучение Azure, локальной среде или любой другой платформе, поддерживающей MLflow, вы можете записывать эти эксперименты и модели непосредственно в рабочую область Fabric. Вы можете легко объединить артефакты машинного обучения в одном месте, без необходимости перестраивать конвейеры обучения.
Ведение журнала между рабочими областями осуществляется через пакет synapseml-mlflow, который предоставляет модуль отслеживания MLflow, совместимый с Fabric. Вы выполняете проверку подлинности в целевой рабочей области, задаете URI отслеживания и используете стандартные команды MLflow.
Замечание
Ведение журнала между рабочими областями ориентировано на ориентированность на код. Интеграция пользовательского интерфейса для сценариев между рабочими областями будет проработана в будущем выпуске.
Необходимые условия
- Подписка Microsoft Fabric или бесплатная пробная версия Microsoft Fabric.
- Разрешение на запись в целевой рабочей области Fabric.
- Система отслеживания машинного обучения , обновленная как для исходных, так и целевых рабочих областей.
Для сценариев, связанных с блокнотами Fabric, создайте новый блокнот и подключите Lakehouse перед выполнением любого кода.
Подсказка
Ведение журнала между рабочими областями поддерживается в рабочих областях с включенной защитой исходящего доступа . Для записи логов в другой рабочей области требуется управляемая частная конечная точка. Ведение журналов в пределах одной рабочей области и доступ к ним из внешних систем Fabric работает без дополнительной настройки.
Установка подключаемого модуля MLflow
Пакет synapseml-mlflow позволяет ведение журнала между рабочими областями, предоставляя модуль отслеживания Fabric MLflow. Выберите команду установки в зависимости от среды.
Это важно
MLflow 3 в настоящее время не поддерживается. Необходимо зафиксировать mlflow-skinny на версии 2.22.2 или ранее.
- записная книжка Fabric
- Вне рабочей области Fabric
Для записной книжки Fabric используйте эту команду, чтобы установить пакет с онлайн-зависимостями записной книжки.
%pip install -U "synapseml-mlflow[online-notebook]" "mlflow-skinny<=2.22.2"
После установки перезапустите ядро перед выполнением оставшегося кода.
Логирование объектов MLflow в другую рабочую область Fabric
В этом сценарии вы запускаете записную книжку в одной рабочей области Fabric (источник) и регистрируете эксперименты и модели в другой рабочей области Fabric (целевой).
Настройка целевой рабочей области
Наведите указатель на целевую рабочую MLFLOW_TRACKING_URI область, задав переменную среды:
import os
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
Записывать эксперименты и модели
Создайте эксперимент и запишите выполнение с параметрами, метриками и моделью.
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
# Create or set the experiment in the target workspace
EXP_NAME = "my-cross-workspace-experiment"
MODEL_NAME = "my-cross-workspace-model"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
score = lr.score(X, y)
signature = infer_signature(X, y)
mlflow.log_params({
"objective": "classification",
"learning_rate": 0.05,
})
mlflow.log_metric("score", score)
mlflow.sklearn.log_model(lr, "model", signature=signature)
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
MODEL_NAME
)
После завершения выполнения эксперимент и зарегистрированная модель отображаются в целевой рабочей области.
Перемещение объектов MLflow между рабочими областями Fabric
В этом сценарии вы сначала регистрируете объекты в исходной рабочей области, затем скачиваете артефакты и повторно регистрируете их в целевой рабочей области. Этот метод полезен, если необходимо перенести обученную модель из рабочего пространства разработки в рабочее пространство эксплуатации.
Шаг 1. Регистрация объектов в исходной рабочей области
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
# Log to the current (source) workspace
EXP_NAME = "source-experiment"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
signature = infer_signature(X, y)
mlflow.sklearn.log_model(lr, "model", signature=signature)
source_run_id = run.info.run_id
Шаг 2. Скачивание артефактов из исходного запуска
import mlflow.artifacts
# Download the model artifacts locally
local_artifact_path = mlflow.artifacts.download_artifacts(
run_id=source_run_id,
artifact_path="model"
)
Шаг 3: Повторная регистрация артефактов в целевую рабочую область
import os
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
TARGET_EXP_NAME = "promoted-experiment"
TARGET_MODEL_NAME = "promoted-model"
mlflow.set_experiment(TARGET_EXP_NAME)
with mlflow.start_run() as run:
mlflow.log_artifacts(local_artifact_path, "model")
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
TARGET_MODEL_NAME
)
Логирование объектов MLflow изне Fabric
Вы можете регистрировать эксперименты и модели MLflow в рабочую область Fabric из любой среды, в которой вы создаете модели, в том числе:
- Локальные компьютеры. VS Code, записные книжки Jupyter или любая локальная среда Python.
- Azure Databricks. Azure Databricks блокноты и задания.
- Машинное обучение Azure. Машинное обучение Azure вычислительных экземпляров и конвейеров.
- Любая другая платформа. Любая среда, поддерживающая Python и MLflow.
Шаг 1. Установка пакета
synapseml-mlflow Установите пакет в вашей среде:
pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"
Шаг 2. Проверка подлинности с помощью Fabric
Выберите метод проверки подлинности в зависимости от среды:
Используйте этот метод для локальных сред разработки с доступом к браузеру, например VS Code или Jupyter.
from fabric.analytics.environment.credentials import SetFabricAnalyticsDefaultTokenCredentialsGlobally
from azure.identity import DefaultAzureCredential
SetFabricAnalyticsDefaultTokenCredentialsGlobally(
credential=DefaultAzureCredential(exclude_interactive_browser_credential=False)
)
Шаг 3. Установите целевую рабочую область и выполните запись объектов MLflow
После проверки подлинности установите URI для отслеживания, чтобы указать целевую рабочую область Fabric, и ведите журнал экспериментов и моделей, используя стандартные API MLflow.
import os
import mlflow
import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature
target_workspace_id = "<your-target-workspace-id>"
target_uri = f"sds://api.fabric.microsoft.com/v1/workspaces/{target_workspace_id}/mlflow"
os.environ["MLFLOW_TRACKING_URI"] = target_uri
EXP_NAME = "external-experiment"
MODEL_NAME = "external-model"
mlflow.set_experiment(EXP_NAME)
with mlflow.start_run() as run:
lr = LogisticRegression()
X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1, 0])
lr.fit(X, y)
signature = infer_signature(X, y)
mlflow.log_metric("score", lr.score(X, y))
mlflow.sklearn.log_model(lr, "model", signature=signature)
mlflow.register_model(
f"runs:/{run.info.run_id}/model",
MODEL_NAME
)
Использование ведения журнала между рабочими областями с защитой исходящего доступа
Если в рабочей области включена защита исходящего доступа, для ведения журнала между рабочими областями требуется управляемая межрабочей областью частная конечная точка от исходной рабочей области к целевой рабочей области.
Ведение журнала в одной рабочей области и ведение журнала вне Fabric (локальные компьютеры, Azure Databricks, Машинное обучение Azure) работает без дополнительной настройки.
Дополнительные сведения о поддерживаемых сценариях и требуемой конфигурации см. в статье Workspace outbound access protection for Fabric Data Science.
Установка пакета в рабочей области с поддержкой OAP
Для стандартной %pip install команды требуется исходящий доступ к Интернету, который заблокирован в рабочих областях с включенной защитой от исходящего доступа (OAP). Чтобы установить пакет synapseml-mlflow, сначала скачайте его из среды, не являющейся OAP, а затем загрузите его в Lakehouse.
synapseml-mlflowСкачайте пакет с компьютера с доступом к Интернету.pip download synapseml-mlflow[online-notebook]Загрузите скачанные файлы в Lakehouse в вашей рабочей области с поддержкой OAP. Отправьте все
.whlфайлы в раздел "Файлы" раздела lakehouse (например,/lakehouse/default/Files).Установите по пути Lakehouse в блокноте Fabric.
%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --preЗадайте URI отслеживания для использования управляемой частной конечной точки. Если в вашей текущей рабочей области включен ОАП, необходимо настроить управляемую частную конечную точку между рабочими областями из исходной рабочей области в целевую рабочую область. Затем перенаправьте URI отслеживания через частную конечную точку.
import os from fabric.analytics.environment.context import FabricContext, InternalContext context = FabricContext(workspace_id=target_workspace_id, internal_context=InternalContext(is_wspl_enabled=True)) print(context.pbi_shared_host) # You need to set up and use this private endpoint if your current workspace has OAP enabled os.environ["MLFLOW_TRACKING_URI"] = f"sds://{context.pbi_shared_host}/v1/workspaces/{target_workspace_id}/mlflow"
Известные ограничения
- Требуется разрешение на запись. Необходимо иметь разрешение на запись в целевой рабочей области.
- Взаимосвязанность между рабочими пространствами не поддерживается. Невозможно просматривать связи между записными книжками, экспериментами и моделями, когда эти объекты регистрируются из разных рабочих областей.
- Исходная записная книжка не отображается в целевой рабочей области. Исходная записная книжка не отображается в целевой рабочей области. На страницах сведений и списка артефактов ссылка на исходную записную книжку пуста.
- Моментальные снимки элементов не поддерживаются. Эксперименты или модели машинного обучения, зарегистрированные в другой рабочей области, не отображаются в снимке состояния элемента записной книжки, запущенного из исходного источника.
- Большие языковые модели не поддерживаются. Ведение журнала между рабочими областями не поддерживает большие языковые модели (LLM).
Связанный контент
- Эксперименты по машинному обучению в Microsoft Fabric
- Отслеживание моделей машинного обучения и управление ими
- Обновление системы отслеживания машинного обучения
- Autolog в Microsoft Fabric
- Конвейеры интеграции и развертывания Git для экспериментов и моделей машинного обучения
- Защита исходящего доступа среды обработки данных для науки о данных