การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้
sklearn Pipeline การบันทึกกระบวนการด้วย joblib และการรันแบบกำหนดพารามิเตอร์ด้วยไฟล์การตั้งค่า
การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การติดตามการทดลองด้วย MLflow
- การลงทะเบียนและการกำหนดเวอร์ชันแบบจำลอง
- การสร้างไปป์ไลน์แมชชีนเลิร์นนิงที่ทำซ้ำได้
- การตรวจสอบประสิทธิภาพแบบจำลองในระบบจริง