Learn AI with Python · บทเรียน

การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้

sklearn Pipeline การบันทึกกระบวนการด้วย joblib และการรันแบบกำหนดพารามิเตอร์ด้วยไฟล์การตั้งค่า

บทเรียน 3 จาก 413 ขั้นตอน

การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดการสร้างซ้ำได้จึงสำคัญ

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

ไปป์ไลน์ของ sklearn

ไปป์ไลน์ ของ scikit-learn เชื่อมการประมวลผลเบื้องต้นกับโมเดลไว้ในออบเจ็กต์เดียวกัน ดังนั้นการแปลงข้อมูลแบบเดียวกับที่ใช้ในการฝึกสอนจะถูกใช้ในขั้นอนุมานด้วย จึงขจัดความคลาดเคลื่อนระหว่างการฝึกสอนกับการให้บริการ

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("model", RandomForestClassifier(n_estimators=200))
])
pipe.fit(X_train, y_train)

การคงไปป์ไลน์ไว้เป็นอาร์ติแฟกต์

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

joblib.dump และ load

joblib จัดเก็บออบเจ็กต์ของ scikit-learn ในรูปแบบอนุกรมได้อย่างมีประสิทธิภาพ (รองรับอาร์เรย์ NumPy ขนาดใหญ่ได้ดีกว่า pickle) ให้บันทึกไปป์ไลน์ที่ปรับพอดีแล้ว จากนั้นโหลดกลับมาเพื่อให้บริการ

import joblib

joblib.dump(pipe, "pipeline.joblib")        # save
loaded = joblib.load("pipeline.joblib")    # reload
preds = loaded.predict(X_new)

การกำหนดค่า YAML สำหรับไฮเปอร์พารามิเตอร์

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

# config.yaml
model:
  n_estimators: 200
  max_depth: 8
data:
  test_size: 0.2
  random_state: 42

การโหลดการกำหนดค่า

อ่าน YAML หนึ่งครั้งเมื่อเริ่มต้นระบบ แล้วส่งค่าเข้าไปในไปป์ไลน์ เพื่อให้ไฟล์เดียวควบคุมรอบการทำงานทั้งหมด

import yaml

with open("config.yaml") as f:
    cfg = yaml.safe_load(f)

model = RandomForestClassifier(
    n_estimators=cfg["model"]["n_estimators"],
    max_depth=cfg["model"]["max_depth"]
)

กำหนดค่าเมล็ดสุ่มให้ตายตัว

การสร้างซ้ำได้ยังต้องใช้เมล็ดสุ่มที่กำหนดตายตัวในทุกจุด ได้แก่ การแบ่งข้อมูลฝึกสอน/ทดสอบ การเริ่มต้นโมเดล และการสับเปลี่ยนข้อมูล ให้จัดเก็บเมล็ดสุ่มไว้ในการกำหนดค่า YAML เพื่อให้ชัดเจนและสอดคล้องกัน

from sklearn.model_selection import train_test_split

X_tr, X_te, y_tr, y_te = train_test_split(
    X, y, test_size=cfg["data"]["test_size"],
    random_state=cfg["data"]["random_state"]
)

Makefile สำหรับขั้นตอนที่ทำซ้ำได้

Makefile เปลี่ยนแต่ละขั้นของไปป์ไลน์ให้เป็นเป้าหมายที่มีชื่อ ดังนั้นทุกคนจึงเรียกใช้ make train ได้แทนการจดจำคำสั่งยาว ๆ วิธีนี้ทำให้กระบวนการทำงานของทั้งทีมเป็นมาตรฐานเดียวกัน

การกำหนดเป้าหมายของ Make

เป้าหมายทั่วไปคือ make data make train และ make evaluate โดยแต่ละเป้าหมายจะเรียกใช้สคริปต์ที่ตรงกัน

# Makefile
data:
	python src/prepare_data.py

train:
	python src/train.py --config config.yaml

evaluate:
	python src/evaluate.py --config config.yaml

การเชื่อมโยงการพึ่งพา

เป้าหมายของ Make สามารถพึ่งพากันได้ ดังนั้น make train จะเรียกใช้ data ก่อนหากจำเป็น เพื่อรับประกันว่าไปป์ไลน์จะทำงานตามลำดับที่ถูกต้องเสมอ

train: data
	python src/train.py --config config.yaml

นำทุกอย่างมารวมกัน

การตั้งค่าที่สร้างซ้ำได้ประกอบด้วย ไปป์ไลน์ ที่คงไว้ด้วย joblib ไฮเปอร์พารามิเตอร์ทั้งหมดใน YAML เมล็ดสุ่มที่กำหนดตายตัว และ Makefile ที่เปิดให้ใช้ make data / train / evaluate ทุกคนสามารถโคลนที่เก็บโค้ดและสร้างโมเดลเดียวกับของคุณซ้ำได้

ตรวจสอบความเข้าใจ

ทดสอบความรู้เกี่ยวกับไปป์ไลน์ที่สร้างซ้ำได้ของคุณ

สรุปทบทวน

คุณสร้างไปป์ไลน์ที่สร้างซ้ำได้: ไปป์ไลน์ของ sklearn ที่คงไว้ด้วย joblib.dump/load ไฮเปอร์พารามิเตอร์ทั้งหมดในไฟล์กำหนดค่า YAML เมล็ดสุ่มที่กำหนดตายตัว และ Makefile ที่มีเป้าหมาย make data / train / evaluate บทถัดไป: การติดตามโมเดลในระบบที่ใช้งานจริง

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
53
บทเรียน
225

คำถามที่พบบ่อย

บทเรียน “การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้”

sklearn Pipeline การบันทึกกระบวนการด้วย joblib และการรันแบบกำหนดพารามิเตอร์ด้วยไฟล์การตั้งค่า คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การติดตามการทดลองด้วย MLflow
  2. การลงทะเบียนและการกำหนดเวอร์ชันแบบจำลอง
  3. การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้
  4. การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง
← กลับไปที่ Learn AI with Python