แชร์ผ่าน


การทดลองการเรียนรู้ของเครื่องใน Microsoft Fabric

การเรียนรู้ของเครื่อง การทดลอง เป็นหน่วยหลักขององค์กรและการควบคุมสําหรับการเรียกใช้การเรียนรู้ของเครื่องที่เกี่ยวข้องทั้งหมด เรียกใช้ สอดคล้องกับการดําเนินการเดียวของรหัสแบบจําลอง ในMLflow การติดตามจะขึ้นอยู่กับการทดลองและการเรียกใช้

การทดลองการเรียนรู้ของเครื่องช่วยให้นักวิทยาศาสตร์ข้อมูลสามารถบันทึกพารามิเตอร์ เวอร์ชันโค้ด เมตริก และไฟล์ผลลัพธ์เมื่อเรียกใช้โค้ดการเรียนรู้ของเครื่อง นอกจากนี้ การทดลองยังช่วยให้คุณสามารถแสดงภาพ ค้นหา และการเปรียบเทียบการเรียกใช้ รวมถึงดาวน์โหลดไฟล์เรียกใช้และเมตาดาต้าสําหรับการวิเคราะห์ในเครื่องมืออื่น ๆ ได้

ในบทความนี้ คุณจะได้เรียนรู้เพิ่มเติมว่านักวิทยาศาสตร์ข้อมูลสามารถโต้ตอบและใช้การทดลองการเรียนรู้ของเครื่องเพื่อจัดระเบียบกระบวนการพัฒนาของพวกเขาได้อย่างไร และเพื่อติดตามการเรียกใช้หลายรายการ

ข้อกําหนดเบื้องต้น

  • การสมัครใช้งาน Power BI Premium ถ้าคุณยังไม่มี ให้ดู วิธีการซื้อ Power BI Premium
  • พื้นที่ทํางาน Power BI ที่มีความจุพรีเมียมที่กําหนด

สร้างการทดลอง

คุณสามารถสร้างการทดลองการเรียนรู้ของเครื่องได้โดยตรงจากอินเทอร์เฟซผู้ใช้แบบแฟบริค (UI) หรือโดยการเขียนโค้ดที่ใช้ MLflow API

สร้างการทดลองโดยใช้ UI

วิธีการสร้างการทดลองการเรียนรู้ของเครื่องจาก UI:

  1. สร้างพื้นที่ทํางานใหม่หรือเลือกพื้นที่ทํางานที่มีอยู่
  2. คุณสามารถสร้างรายการใหม่ผ่านพื้นที่ทํางาน หรือโดยใช้ สร้าง ได้
    1. พื้นที่:
      1. เลือกพื้นที่ทํางานของคุณ
      2. เลือก รายการใหม่
      3. เลือก ทดลอง ภายใต้ วิเคราะห์และฝึกข้อมูล สกรีนช็อตที่แสดงตําแหน่งที่จะเลือกการทดลองในพื้นที่ทํางานของคุณ
    2. สร้างปุ่ม:
      1. เลือก สร้างซึ่งสามารถพบได้ใน ... จากเมนูแนวตั้ง สกรีนช็อตของปุ่มสร้าง
      2. เลือก ทดลอง ภายใต้ วิทยาศาสตร์ข้อมูล สกรีนช็อตที่แสดงตําแหน่งที่จะเลือกการทดลองหลังจากเลือกสร้าง
  3. ระบุชื่อการทดสอบ และเลือก สร้าง การดําเนินการนี้จะสร้างการทดลองที่ว่างเปล่าภายในพื้นที่ทํางานของคุณ

หลังจากสร้างการทดลอง คุณสามารถเริ่มเพิ่มการเรียกใช้เพื่อติดตามเมตริกและพารามิเตอร์การเรียกใช้ได้

สร้างการทดลองโดยใช้ MLflow API

คุณยังสามารถสร้างการทดลองการเรียนรู้ของเครื่องได้โดยตรงจากประสบการณ์การเขียนของคุณโดยใช้ mlflow.create_experiment() หรือ mlflow.set_experiment() API ในโค้ดต่อไปนี้ ให้แทนที่ <EXPERIMENT_NAME> ด้วยชื่อของการทดสอบ

import mlflow
 
# This will create a new experiment with the provided name.
mlflow.create_experiment("<EXPERIMENT_NAME>")

# This will set the given experiment as the active experiment. 
# If an experiment with this name does not exist, a new experiment with this name is created.
mlflow.set_experiment("<EXPERIMENT_NAME>")

จัดการการเรียกใช้ภายในการทดลอง

การทดลองการเรียนรู้ของเครื่องประกอบด้วยคอลเลกชันของการเรียกใช้เพื่อการติดตามและการเปรียบเทียบที่ง่ายดาย ภายในการทดลอง นักวิทยาศาสตร์ข้อมูลสามารถนําทางในการทํางานต่าง ๆ และสํารวจพารามิเตอร์และเมตริกพื้นฐานได้ นักวิทยาศาสตร์ข้อมูลยังสามารถเปรียบเทียบการทํางานภายในการทดลองการเรียนรู้ของเครื่องเพื่อระบุชุดย่อยของพารามิเตอร์ที่ให้ประสิทธิภาพของแบบจําลองที่ต้องการได้

ติดตามการทํางาน

การเรียกใช้การเรียนรู้ของเครื่องสอดคล้องกับการดําเนินการรหัสแบบจําลองเดียว

สกรีนช็อตของการเรียนรู้ของเครื่องเรียกใช้หน้ารายละเอียด

แต่ละการเรียกใช้ประกอบด้วยข้อมูลต่อไปนี้:

  • แหล่ง: ชื่อของสมุดบันทึกที่สร้างการเรียกใช้
  • เวอร์ชันที่ลงทะเบียน : ระบุว่าการเรียกใช้ถูกบันทึกเป็นแบบจําลองการเรียนรู้ของเครื่องหรือไม่
  • วันที่เริ่มต้น : เวลาเริ่มต้นของการเรียกใช้
  • สถานะ : ความคืบหน้าของการเรียกใช้
  • Hyperparameters: Hyperparameters ที่บันทึกเป็นคู่ค่าคีย์ ทั้งคีย์และค่าเป็นสตริง
  • เมตริก: เรียกใช้เมตริกที่บันทึกไว้เป็นคู่ค่าคีย์ ค่าเป็นตัวเลข
  • ไฟล์เอาต์พุต: ไฟล์เอาต์พุตในรูปแบบใด ๆ ตัวอย่างเช่น คุณสามารถบันทึกรูปภาพ สภาพแวดล้อม แบบจําลอง และไฟล์ข้อมูล
  • Tags: เมตาดาต้าเป็นคู่ค่าคีย์ที่จะเรียกใช้

ดูการเรียกใช้ล่าสุด

คุณยังสามารถดูการทํางานล่าสุดสําหรับการทดสอบโดยการเลือก เรียกใช้รายการ มุมมองนี้ช่วยให้คุณสามารถติดตามกิจกรรมล่าสุดข้ามไปยังแอปพลิเคชัน Spark ที่เกี่ยวข้องและใช้ตัวกรองตามสถานะการเรียกใช้ได้อย่างรวดเร็ว

สกรีนช็อตของการเรียกใช้ล่าสุดของการเรียนรู้ของเครื่อง

การเปรียบเทียบและการใช้งานตัวกรอง

เพื่อเปรียบเทียบและประเมินคุณภาพของการเรียกใช้การเรียนรู้ของเครื่องของคุณ คุณสามารถเปรียบเทียบพารามิเตอร์ เมตริก และเมตาดาต้าระหว่างการทํางานที่เลือกภายในการทดลองได้

นําแท็กไปใช้กับการเรียกใช้

การแท็ก MLflow สําหรับการเรียกใช้การทดสอบช่วยให้ผู้ใช้สามารถเพิ่มเมตาดาต้าแบบกําหนดเองในรูปแบบของคู่ค่าคีย์ไปยังการทํางานของตนได้ แท็กเหล่านี้ช่วยจัดประเภท กรอง และค้นหาการเรียกใช้ตามแอตทริบิวต์เฉพาะ ทําให้ง่ายต่อการจัดการและวิเคราะห์การทดลองภายในแพลตฟอร์ม MLflow ผู้ใช้สามารถใช้ประโยชน์จากแท็กเพื่อการเรียกใช้ป้ายชื่อด้วยข้อมูล เช่น ชนิดแบบจําลอง พารามิเตอร์ หรือตัวระบุที่เกี่ยวข้องใด ๆ ที่ช่วยเพิ่มองค์กรโดยรวมและความสามารถในการตรวจสอบย้อนกลับของการทดลอง

ส่วนย่อยของโค้ดนี้จะเริ่มต้นการเรียกใช้ MLflow บันทึกพารามิเตอร์และเมตริกบางอย่าง และเพิ่มแท็กเพื่อจัดประเภทและให้บริบทเพิ่มเติมสําหรับการเรียกใช้

import mlflow
import mlflow.sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.datasets import fetch_california_housing

# Autologging
mlflow.autolog()

# Load the California housing dataset
data = fetch_california_housing(as_frame=True)
X = data.data
y = data.target

# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Start an MLflow run
with mlflow.start_run() as run:

    # Train the model
    model = LinearRegression()
    model.fit(X_train, y_train)

    # Predict and evaluate
    y_pred = model.predict(X_test)
    
    # Add tags
    mlflow.set_tag("model_type", "Linear Regression")
    mlflow.set_tag("dataset", "California Housing")
    mlflow.set_tag("developer", "Bob")

เมื่อแท็กถูกนําไปใช้ แล้วคุณสามารถดูผลลัพธ์ได้โดยตรงจากวิดเจ็ต MLflow แบบอินไลน์หรือจากหน้ารายละเอียดการเรียกใช้

สกรีนช็อตที่แสดงแท็กที่นําไปใช้กับการเรียกใช้ในหน้ารายละเอียด

คำเตือน

คําเตือน : ข้อจํากัดเกี่ยวกับการใช้แท็กกับการเรียกใช้การทดลอง MLflow ใน Fabric

  • แท็กที่ไม่ว่าง: ชื่อแท็กหรือค่าไม่สามารถว่างเปล่าได้ ถ้าคุณพยายามที่จะนําแท็กที่มีชื่อหรือค่าว่างมาใช้ การดําเนินการดังกล่าวจะล้มเหลว
  • ชื่อแท็ก: ชื่อแท็กสามารถมีความยาวได้สูงสุด 250 อักขระ
  • Tag Values: ค่าแท็กสามารถมีความยาวได้ถึง 5,000 อักขระ
  • ชื่อแท็กที่ถูกจํากัด: ชื่อแท็กที่ขึ้นต้นด้วยคํานําหน้าไม่ได้รับการรองรับ โดยเฉพาะชื่อแท็กที่ขึ้นต้นด้วย synapseml, mlflow, หรือ trident จะถูกจํากัดและจะไม่ได้รับการยอมรับ

เปรียบเทียบการเรียกใช้ด้วยภาพ

คุณสามารถเปรียบเทียบและเรียกใช้ตัวกรองแบบมองเห็นได้ภายในการทดลองที่มีอยู่ การเปรียบเทียบวิชวลช่วยให้คุณสามารถนําทางระหว่างการเรียกใช้หลายรายการและเรียงลําดับได้อย่างง่ายดาย

สกรีนช็อตที่แสดงรายการของการเรียกใช้และมุมมองแผนภูมิ

เพื่อเปรียบเทียบการเรียกใช้:

  1. เลือกการทดสอบการเรียนรู้ของเครื่องที่มีอยู่ซึ่งมีการเรียกใช้หลายรายการ
  2. เลือกแท็บ ดู จากนั้นไปที่รายการ เรียกใช้ มุมมอง อีกวิธีหนึ่งคือ คุณสามารถเลือกตัวเลือก รายการเรียกใช้มุมมอง โดยตรงจากมุมมอง รายละเอียดการเรียกใช้
  3. กําหนดคอลัมน์ภายในตารางโดยขยาย กําหนดคอลัมน์เอง บานหน้าต่าง ที่นี่ คุณสามารถเลือกคุณสมบัติ เมตริก แท็ก และ hyperparameters ที่คุณต้องการดู
  4. ขยายบานหน้าต่าง ตัวกรอง เพื่อจํากัดผลลัพธ์ให้แคบลงตามเกณฑ์ที่เลือก
  5. เลือกการเรียกใช้หลายรายการเพื่อเปรียบเทียบผลลัพธ์ในบานหน้าต่างการเปรียบเทียบเมตริก จากบานหน้าต่างนี้ คุณสามารถกําหนดแผนภูมิโดยเปลี่ยนชื่อแผนภูมิ ชนิดการแสดงภาพ แกน X แกน Y และอื่น ๆ ได้

เปรียบเทียบการทํางานโดยใช้ MLflow API

นักวิทยาศาสตร์ข้อมูลยังสามารถใช้ MLflow เพื่อคิวรีและค้นหาระหว่างการเรียกใช้ภายในการทดลองได้ คุณสามารถสํารวจ MLflow API เพิ่มเติมสําหรับการค้นหา การกรอง และการเปรียบเทียบการทํางานได้โดยไปที่เอกสารประกอบ MLflow

รับการเรียกใช้ทั้งหมด

คุณสามารถใช้ mlflow.search_runs()mlflow.search_runs() ของการค้นหา MLflow ในการทดลองโดยแทนที่ <EXPERIMENT_NAME> ด้วยชื่อการทดลองของคุณหรือ <EXPERIMENT_ID> ด้วย ID การทดลองของคุณในโค้ดต่อไปนี้:

import mlflow

# Get runs by experiment name: 
mlflow.search_runs(experiment_names=["<EXPERIMENT_NAME>"])

# Get runs by experiment ID:
mlflow.search_runs(experiment_ids=["<EXPERIMENT_ID>"])

ปลาย

คุณสามารถค้นหาการทดลองหลายรายการได้โดยการให้รายการรหัสการทดลองกับพารามิเตอร์ experiment_ids ในทํานองเดียวกัน การให้รายการชื่อการทดลองกับพารามิเตอร์ experiment_names จะอนุญาตให้ MLflow ค้นหาข้ามการทดลองหลายรายการได้ ซึ่งจะเป็นประโยชน์ถ้าคุณต้องการเปรียบเทียบการทํางานในแบบต่างๆ ภายในการทดลองที่แตกต่างกัน

การเรียกใช้คําสั่งซื้อและขีดจํากัด

ใช้พารามิเตอร์ max_results จาก search_runs เพื่อจํากัดจํานวนการเรียกใช้ที่ส่งกลับ พารามิเตอร์ order_by ช่วยให้คุณสามารถแสดงรายการคอลัมน์ที่จะเรียงลําดับตาม และสามารถมีค่า DESC หรือ ASC ที่เลือกได้ ตัวอย่างเช่น ตัวอย่างต่อไปนี้จะแสดงการเรียกใช้ครั้งล่าสุดของการทดสอบ

mlflow.search_runs(experiment_ids=[ "1234-5678-90AB-CDEFG" ], max_results=1, order_by=["start_time DESC"])

เปรียบเทียบการเรียกใช้ภายในโน้ตบุ๊ค Fabric

คุณสามารถใช้วิดเจ็ตการเขียน MLFlow ภายในสมุดบันทึกสําหรับ Fabric เพื่อติดตามการเรียกใช้ MLflow ที่สร้างขึ้นภายในเซลล์ของสมุดบันทึกแต่ละเซลล์ได้ วิดเจ็ตช่วยให้คุณสามารถติดตามการทํางาน เมตริก พารามิเตอร์ และคุณสมบัติที่เกี่ยวข้องไปจนถึงระดับเซลล์แต่ละเซลล์

เพื่อรับการเปรียบเทียบวิชวล คุณยังสามารถสลับไปยังมุมมอง เรียกใช้การเปรียบเทียบ มุมมองนี้นําเสนอข้อมูลแบบกราฟิก ซึ่งช่วยในการระบุแบบด่วนของรูปแบบหรือค่าเบี่ยงเบนในการใช้งานที่แตกต่างกัน

สกรีนช็อตที่แสดงวิธีการใช้วิดเจ็ตการเขียน MLFlow

บันทึกการเรียกใช้เป็นแบบจําลองการเรียนรู้ของเครื่อง

เมื่อเรียกใช้จะให้ผลลัพธ์ที่ต้องการแล้ว คุณสามารถบันทึกการเรียกใช้เป็นแบบจําลองสําหรับการติดตามแบบจําลองที่ได้รับการปรับปรุงและสําหรับการปรับใช้แบบจําลองโดยการเลือก บันทึกเป็นแบบจําลอง ML

สกรีนช็อตที่แสดงตําแหน่งที่จะเลือกสร้างแบบจําลองใหม่

ตรวจสอบการทดลอง ML (ตัวอย่าง)

การทดลอง ML จะรวมลงในการตรวจสอบโดยตรง ฟังก์ชันนี้ได้รับการออกแบบมาเพื่อให้ข้อมูลเชิงลึกมากขึ้นในแอปพลิเคชัน Spark ของคุณ และการทดลอง ML ที่สร้างขึ้น ทําให้ง่ายต่อการจัดการและดีบักกระบวนการเหล่านี้

ติดตามการทํางานจากจอภาพ

ผู้ใช้สามารถติดตามการเรียกใช้การทดสอบได้โดยตรงจากจอภาพ ให้มุมมองแบบครบวงจรของกิจกรรมทั้งหมดของพวกเขา การรวมนี้รวมถึงตัวเลือกการกรอง ช่วยให้ผู้ใช้สามารถมุ่งเน้นไปที่การทดลองหรือการเรียกใช้ที่สร้างขึ้นภายใน 30 วันที่ผ่านมาหรือช่วงเวลาที่ระบุอื่นๆ

สกรีนช็อตที่แสดงตําแหน่งที่มุมมองทํางานในแท็บจอภาพ

การทดลอง ML จะรวมเข้ากับตัวตรวจสอบโดยตรง ซึ่งคุณสามารถเลือกแอปพลิเคชัน Spark เฉพาะและเข้าถึงสแนปช็อตรายการได้ ที่นี่คุณจะพบรายการของการทดลองและการเรียกใช้ทั้งหมดที่สร้างขึ้นโดยแอปพลิเคชันนั้น