หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
แมชชีนเลิร์นนิงในการผลิตต้องการมากกว่าการฝึกอบรมโมเดลที่ดี คุณต้องมีเวิร์กโฟลว์ที่เชื่อถือได้เพื่อย้ายโมเดลจากการพัฒนาผ่านการตรวจสอบความถูกต้องไปสู่การผลิต การบันทึกข้ามพื้นที่ทํางานใน Microsoft Fabric เปิดใช้งานสองสถานการณ์หลัก:
สร้างเวิร์กโฟลว์ MLOps แบบครบวงจร ฝึกฝนและทดลองในพื้นที่ทํางานการพัฒนา ตรวจสอบความถูกต้องในพื้นที่ทํางานทดสอบ และปรับใช้กับพื้นที่ทํางานที่ให้บริการจริงโดยใช้ MLflow API มาตรฐาน การแยกสภาพแวดล้อมนี้ช่วยให้ทีมบังคับใช้ประตูคุณภาพและรักษาเส้นทางการตรวจสอบที่ชัดเจนตั้งแต่การทดลองไปจนถึงการผลิต
นําเนื้อหาแมชชีนเลิร์นนิงที่มีอยู่มาไว้ใน Fabric หากคุณได้ฝึกโมเดลใน Azure Databricks, Azure Machine Learning, สภาพแวดล้อมภายในเครื่อง หรือแพลตฟอร์มอื่นๆ ที่รองรับ MLflow แล้ว คุณสามารถบันทึกการทดลองและโมเดลเหล่านั้นลงในพื้นที่ทํางาน Fabric ได้โดยตรง คุณสามารถรวมสิ่งประดิษฐ์แมชชีนเลิร์นนิงของคุณไว้ในที่เดียวได้อย่างง่ายดายโดยไม่ต้องสร้างไปป์ไลน์การฝึกอบรมใหม่
การบันทึกข้ามพื้นที่ทํางานทํางานผ่านแพ็คเกจ synapseml-mlflow ซึ่งมีปลั๊กอินการติดตาม MLflow ที่เข้ากันได้กับ Fabric คุณรับรองความถูกต้องกับพื้นที่ทํางานเป้าหมาย ตั้งค่า URI การติดตาม และใช้คําสั่ง MLflow มาตรฐาน
Note
การบันทึกข้ามพื้นที่ทํางานมุ่งเน้นไปที่ประสบการณ์การใช้งานโค้ดเป็นอันดับแรก การรวม UI สําหรับสถานการณ์ข้ามพื้นที่ทํางานจะได้รับการแก้ไขในรุ่นต่อๆ ไป
ข้อกำหนดเบื้องต้น
- การสมัครใช้งาน Microsoft Fabric หรือการทดลองใช้ Microsoft Fabric ฟรี
- เขียนสิทธิ์บนพื้นที่ทํางาน Fabric เป้าหมาย
- ระบบติดตามแมชชีนเลิร์นนิง ที่อัปเกรดสําหรับทั้งพื้นที่ทํางานต้นทางและปลายทาง
สําหรับสถานการณ์สมุดบันทึก Fabric ให้สร้างสมุดบันทึกใหม่และแนบเลคเฮาส์ก่อนที่คุณจะเรียกใช้โค้ดใดๆ
เคล็ดลับ
การบันทึกข้ามพื้นที่ทํางานได้รับการสนับสนุนในพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก การบันทึกข้ามพื้นที่ทํางานไปยังพื้นที่ทํางานอื่นจําเป็นต้องมีปลายทางส่วนตัวที่มีการจัดการ การบันทึกภายในพื้นที่ทํางานเดียวกันและจากภายนอก Fabric ทํางานได้โดยไม่ต้องกําหนดค่าเพิ่มเติม
ติดตั้งปลั๊กอิน MLflow
แพ็คเกจ synapseml-mlflow ช่วยให้สามารถบันทึกข้ามพื้นที่ทํางานได้โดยจัดเตรียมปลั๊กอินการติดตาม MLflow ของ Fabric เลือกคําสั่งติดตั้งตามสภาพแวดล้อมของคุณ
สำคัญ
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 ในเครื่อง
- <ค 0>Azure Databricks สมุดบันทึกและงาน Azure Databricks
- Azure Machine Learning อินสแตนซ์การคํานวณและไปป์ไลน์ของ Azure Machine Learning
- แพลตฟอร์มอื่น ๆ สภาพแวดล้อมใดๆ ที่รองรับ Python และ MLflow
ขั้นตอนที่ 1: ติดตั้งแพ็คเกจ
ติดตั้ง synapseml-mlflow แพ็คเกจในสภาพแวดล้อมของคุณ:
pip install -U "synapseml-mlflow" "mlflow-skinny<=2.22.2"
ขั้นตอนที่ 2: ตรวจสอบสิทธิ์ด้วย Fabric
เลือกวิธีการรับรองความถูกต้องตามสภาพแวดล้อมของคุณ:
-
แบบโต้ตอบ (
DefaultAzureCredential) - รหัสอุปกรณ์
-
บริการหลัก
ใช้วิธีนี้สําหรับสภาพแวดล้อมการพัฒนาภายในเครื่องที่มีการเข้าถึงเบราว์เซอร์ เช่น 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 เป้าหมายของคุณ และบันทึกการทดลองและแบบจําลองโดยใช้ MLflow API มาตรฐาน:
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 Machine Learning) จะทํางานได้โดยไม่ต้องกําหนดค่าเพิ่มเติม
สําหรับรายละเอียดเกี่ยวกับสถานการณ์ที่รองรับและการกําหนดค่าที่จําเป็น โปรดดู การป้องกันการเข้าถึงขาออกของพื้นที่ทํางานสําหรับ Fabric Data Science
ติดตั้งแพคเกจในพื้นที่ทํางานที่เปิดใช้งาน OAP
คําสั่งมาตรฐาน %pip install ต้องการการเข้าถึงอินเทอร์เน็ตขาออก ซึ่งถูกบล็อกในพื้นที่ทํางานที่เปิดใช้งานการป้องกันการเข้าถึงขาออก (OAP) ในการติดตั้ง synapseml-mlflow แพ็คเกจ ก่อนอื่นให้ดาวน์โหลดจากสภาพแวดล้อมที่ไม่ใช่ OAP จากนั้นอัปโหลดไปยังเลคเฮาส์
ดาวน์โหลดแพคเกจ
synapseml-mlflowจากเครื่องที่มีการเข้าถึงอินเทอร์เน็ตpip download synapseml-mlflow[online-notebook]อัปโหลดไฟล์ที่ดาวน์โหลดไปยังเลคเฮาส์ในพื้นที่ทํางานที่เปิดใช้งาน OAP ของคุณ อัปโหลดไฟล์ทั้งหมด
.whlไปยังส่วน ไฟล์ ของเลคเฮาส์ (เช่น/lakehouse/default/Files)ติดตั้งจากทางเดินเลคเฮาส์ในสมุดบันทึก Fabric ของคุณ:
%pip install --no-index --find-links=/lakehouse/default/Files "synapseml-mlflow[online-notebook]>2.0.0" "mlflow-skinny<=2.22.2" --preตั้งค่า URI การติดตามเพื่อใช้ปลายทางส่วนตัวที่มีการจัดการ หากพื้นที่ทํางานปัจจุบันของคุณเปิดใช้งาน OAP คุณต้องกําหนดค่า ปลายทางส่วนตัวที่มีการจัดการข้ามพื้นที่ทํางาน จากพื้นที่ทํางานต้นทางไปยังพื้นที่ทํางานเป้าหมาย จากนั้นกําหนดเส้นทาง 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
- ติดตามและจัดการแบบจําลองการเรียนรู้ของเครื่อง
- อัปเกรดระบบติดตามแมชชีนเลิร์นนิ่งของคุณ
- เข้าสู่ระบบอัตโนมัติ Microsoft Fabric
- ไปป์ไลน์การรวมและการปรับใช้ Git สําหรับการทดลองและโมเดลแมชชีนเลิร์นนิ่ง
- การป้องกันการเข้าถึงขาออกของพื้นที่ทํางานสําหรับวิทยาศาสตร์ข้อมูล