แชร์ผ่าน


วิธีการฝึกแบบจําลองด้วย scikit-learn ใน Microsoft Fabric

Scikit-learn (scikit-learn.org) เป็นเฟรมเวิร์กการเรียนรู้ของเครื่องแบบโอเพนซอร์สที่ได้รับความนิยม ซึ่งมักจะใช้สําหรับการเรียนรู้ที่มีการดูแลและไม่ได้ใช้งาน นอกจากนี้ยังมีเครื่องมือต่าง ๆ สําหรับการติดตั้งแบบจําลองการประมวลผลข้อมูลการเลือกแบบจําลองการประเมินผลแบบจําลองและอื่น ๆ

ในส่วนนี้ เราจะดูตัวอย่างของวิธีที่คุณสามารถฝึกและติดตามการทําซ้ําของแบบจําลอง Scikit-Learn ของคุณ

ติดตั้ง scikit-learn

เมื่อต้องการเริ่มต้นใช้งาน scikit-learn คุณต้องตรวจสอบให้แน่ใจว่ามีการติดตั้งภายในสมุดบันทึกของคุณ คุณสามารถติดตั้ง หรืออัปเกรดเวอร์ชันของ scikit-learn บนสภาพแวดล้อมของคุณโดยใช้คําสั่งต่อไปนี้:

%pip install scikit-learn

ถัดไป เราจะสร้างการทดลองการเรียนรู้ของเครื่องโดยใช้ MLFLow API MLflow set_experiment() API จะสร้างการทดลองการเรียนรู้ของเครื่องใหม่หากยังไม่มีอยู่

import mlflow

mlflow.set_experiment("sample-sklearn")

ฝึกแบบจําลอง scikit-learn

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

import mlflow.sklearn
import numpy as np
from sklearn.linear_model import LogisticRegression
from mlflow.models.signature import infer_signature

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)

    print("log_metric.")
    mlflow.log_metric("score", score)

    print("log_params.")
    mlflow.log_param("alpha", "alpha")

    print("log_model.")
    mlflow.sklearn.log_model(lr, "sklearn-model", signature=signature)
    print("Model saved in run_id=%s" % run.info.run_id)

    print("register_model.")
    mlflow.register_model(

        "runs:/{}/sklearn-model".format(run.info.run_id), "sample-sklearn"
    )
    print("All done")

โหลดและประเมินแบบจําลองบนชุดข้อมูลตัวอย่าง

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

# Inference with loading the logged model
from synapse.ml.predict import MLflowTransformer

spark.conf.set("spark.synapse.ml.predict.enabled", "true")

model = MLflowTransformer(
    inputCols=["x"],
    outputCol="prediction",
    modelName="sample-sklearn",
    modelVersion=1,
)

test_spark = spark.createDataFrame(
    data=np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1).tolist(), schema=["x"]
)

batch_predictions = model.transform(test_spark)

batch_predictions.show()