กำหนดลายเซ็นและสคีมาของโมเดล
ประกาศอินพุตและเอาต์พุตที่คาดหวังไว้อย่างชัดเจน
กำหนดลายเซ็นและสคีมาของโมเดล เป็นบทเรียน MLOps Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MLOps Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน
สิ่งที่รับเข้าและส่งออก
ลายเซ็นของโมเดลจะประกาศอย่างชัดเจนว่าโมเดลคาดว่าจะรับอินพุตอะไรและส่งคืนเอาต์พุตอะไร ลายเซ็นคือสัญญาของโมเดล 📜
เหตุใดลายเซ็นจึงสำคัญ
เมื่อมีแผนผังข้อมูลที่ชัดเจน ผู้เรียกจะทราบว่าควรส่งคอลัมน์และชนิดข้อมูลใด อินพุตที่ไม่ถูกต้องจะถูกตรวจพบตั้งแต่เนิ่น ๆ แทนที่จะทำให้เกิดข้อผิดพลาดตอนทำนาย
อินพุตและเอาต์พุต
ลายเซ็นมีสองส่วน ได้แก่แผนผังอินพุตที่อธิบายคุณลักษณะแต่ละรายการ และแผนผังเอาต์พุตที่อธิบายรูปร่างของผลการทำนาย
แผนผังคอลัมน์เทียบกับเทนเซอร์
โมเดลข้อมูลตารางใช้แผนผังคอลัมน์ที่มีฟิลด์ระบุชื่อและชนิดข้อมูล ส่วนโมเดลรูปภาพหรือข้อความมักใช้แผนผังเทนเซอร์ที่ระบุรูปร่างและชนิดข้อมูล
อนุมานโดยอัตโนมัติ
วิธีที่ง่ายที่สุดคือinfer_signature โดยส่งอินพุตและเอาต์พุตตัวอย่างให้ แล้ว MLflow จะอนุมานแผนผังให้คุณ
from mlflow.models import infer_signature
sig = infer_signature(X, model.predict(X))แนบขณะบันทึก
ส่งลายเซ็นที่อนุมานได้ไปยังlog_model เพื่อให้ลายเซ็นถูกบันทึกไว้ในไฟล์ MLmodel ของโมเดลโดยตรง
mlflow.sklearn.log_model(model, name='m', signature=sig)เพิ่มตัวอย่างอินพุต
การบันทึกinput_exampleไว้ด้วยจะทำให้เพื่อนร่วมทีมมีตัวอย่างอินพุตที่ถูกต้องสำหรับคัดลอกไปใช้ และช่วยให้เครื่องมือสร้างคำขอที่ถูกต้อง
mlflow.sklearn.log_model(model, name='m',
input_example=X[:1])การบังคับใช้ขณะให้บริการ
เมื่อคุณให้บริการโมเดล MLflow จะตรวจสอบแต่ละคำขอกับแผนผัง และปฏิเสธอินพุตที่มีชนิดข้อมูลไม่ถูกต้องหรือขาดฟิลด์ที่จำเป็น 🛡️
การแปลงชนิดข้อมูลอย่างปลอดภัย
MLflow สามารถเลื่อนชนิดข้อมูลให้กว้างขึ้นอย่างปลอดภัย เช่น จาก int เป็น long แต่จะป้องกันการเปลี่ยนแปลงที่ทำให้ข้อมูลสูญหาย เพื่อไม่ให้โมเดลได้รับข้อมูลที่เสียหาย
คอลัมน์เสริมและคอลัมน์เพิ่มเติม
คุณสามารถทำเครื่องหมายฟิลด์ว่าไม่จำเป็นได้ และคอลัมน์เพิ่มเติมที่ไม่คาดคิดจะถูกตัดออก ดังนั้นการเปลี่ยนแปลงอินพุตเล็กน้อยจะไม่ทำให้การให้บริการล้มเหลว
เอกสารที่ปรับปรุงอยู่เสมอ
ลายเซ็นทำหน้าที่เป็นเอกสารประกอบด้วย เปิดไฟล์ MLmodel แล้วคุณจะเห็นสัญญาอินพุตและเอาต์พุตทั้งหมดของโมเดลได้ทันที
ตรวจสอบอย่างรวดเร็ว
ตรวจสอบขั้นสุดท้ายเกี่ยวกับลายเซ็นและแผนผังของโมเดล
สรุป
ลายเซ็นคือสัญญาอินพุตและเอาต์พุตของโมเดล ให้อนุมานลายเซ็น บันทึกพร้อมตัวอย่าง และให้ MLflow บังคับใช้ขณะให้บริการ 🎉
คำถามที่พบบ่อย
บทเรียน “กำหนดลายเซ็นและสคีมาของโมเดล” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กำหนดลายเซ็นและสคีมาของโมเดล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MLOps Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กำหนดลายเซ็นและสคีมาของโมเดล”
ประกาศอินพุตและเอาต์พุตที่คาดหวังไว้อย่างชัดเจน คุณปฏิบัติ MLOps Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MLOps Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MLOps Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “กำหนดลายเซ็นและสคีมาของโมเดล” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MLOps Academy นี้ได้ไหม
ได้ บทเรียน MLOps Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ทำซีเรียลไลซ์ด้วย Pickle และ Joblib
- รูปแบบโมเดลของ MLflow
- ส่งออกเป็น ONNX เพื่อการใช้งานข้ามระบบ
- กำหนดลายเซ็นและสคีมาของโมเดล