กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ
เมื่อข้อมูลขณะให้บริการไม่ตรงกับข้อมูลที่ใช้ฝึกโมเดลอีกต่อไป
กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ เป็นบทเรียน MLOps Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MLOps Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน
ความหมายของความคลาดเคลื่อน
ความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการเกิดขึ้นเมื่อข้อมูลที่โมเดลเห็นในระบบจริงไม่ตรงกับข้อมูลที่โมเดลเรียนรู้ระหว่างการฝึก 📉
เหตุใดจึงสร้างปัญหา
โมเดลของคุณตั้งสมมติฐานว่าข้อมูลที่ใช้ให้บริการมีลักษณะเหมือนข้อมูลฝึก เมื่อสมมติฐานนี้ไม่เป็นจริง การพยากรณ์ก็จะแย่ลงอย่างเงียบ ๆ แม้ไม่มีสิ่งใดหยุดทำงาน นี่คือความคลาดเคลื่อน
เส้นทางโค้ดที่แตกต่างกัน
สาเหตุคลาสสิกคือเส้นทางโค้ดสองเส้นทาง: สคริปต์หนึ่งเตรียมข้อมูลฝึก แต่อีกสคริปต์เตรียมคำขอที่ใช้งานจริง ความแตกต่างเพียงเล็กน้อยระหว่างสองเส้นทางทำให้เกิดความคลาดเคลื่อนได้
ความไม่ตรงกันที่มองเห็นได้
ในกรณีนี้ การฝึกปรับขนาดด้วยค่าเฉลี่ยหนึ่งค่า แต่การให้บริการใช้ค่าเฉลี่ยอีกค่าหนึ่ง ขณะนี้โมเดลได้รับตัวเลขที่ไม่เคยใช้ฝึก ดังนั้นการปรับขนาดจึงผิดพลาด
# training
x = (raw - 50.0) / 10.0
# serving (wrong!)
x = (raw - 0.0) / 10.0คุณลักษณะที่ล้าสมัย
ความคลาดเคลื่อนยังเกิดขึ้นเมื่อคุณลักษณะหนึ่งใหม่ในตอนฝึก แต่ล้าสมัยตอนให้บริการ เช่น ค่าเฉลี่ยที่คำนวณจากเมื่อวานแทนที่จะเป็นตอนนี้
ข้อผิดพลาดเดียวกันทั้งสองฝั่ง
วิธีแก้ที่ปลอดภัยที่สุดคือใช้ฟังก์ชันเดียวกันสำหรับทั้งสองเส้นทาง หากมีข้อผิดพลาด อย่างน้อยข้อผิดพลาดนั้นก็จะเกิดขึ้นเหมือนกันทุกประการในการฝึกและการให้บริการ จึงไม่เกิดความคลาดเคลื่อนแทรกเข้ามา
def make_features(raw):
return (raw - 50.0) / 10.0
# call from training AND servingความคลาดเคลื่อนของโครงสร้างข้อมูล
ความคลาดเคลื่อนของโครงสร้างข้อมูลเกิดขึ้นเมื่อชนิดหรือชื่อคอลัมน์เปลี่ยนไประหว่างการฝึกกับการให้บริการ เช่น จำนวนเต็มเปลี่ยนเป็นข้อความ โมเดลจะตีความข้อมูลผิดโดยไม่มีการแจ้งเตือน
ลำดับคุณลักษณะมีความสำคัญ
โมเดลจำนวนมากอ่านคุณลักษณะตามตำแหน่ง ไม่ใช่ตามชื่อ หากสลับคอลัมน์สองคอลัมน์ตอนให้บริการ คุณจะได้ลำดับที่ไม่ตรงกันอย่างเงียบ ๆ และเป็นอันตราย
ตรวจจับด้วยการตรวจสอบ
วิธีป้องกันง่าย ๆ คือยืนยันว่าข้อมูลนำเข้าตอนให้บริการมีคอลัมน์เดียวกับที่ใช้ฝึกโมเดล ตรวจจับความคลาดเคลื่อนตั้งแต่หน้าประตู ไม่ใช่รอพบในแผงควบคุม
assert list(request.columns) == model.feature_names_in_.tolist()คลังคุณลักษณะช่วยได้
คลังคุณลักษณะคำนวณคุณลักษณะเพียงครั้งเดียวแล้วส่งให้ทั้งการฝึกและการอนุมาน ซึ่งช่วยกำจัดข้อผิดพลาดจากความคลาดเคลื่อนได้ทั้งกลุ่มตั้งแต่ระดับการออกแบบ
บันทึกและเปรียบเทียบ
บันทึกตัวอย่างข้อมูลนำเข้าจริงที่ใช้ให้บริการ แล้วเปรียบเทียบสถิติกับชุดข้อมูลฝึก หากค่าเฉลี่ยหรือช่วงมีช่องว่าง นั่นคือสัญญาณเตือนความคลาดเคลื่อนระยะแรก
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ตัวเลือกใดช่วยกำจัดความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการได้ดีที่สุด
สรุปทบทวน
ความคลาดเคลื่อนคือความไม่ตรงกันอย่างเงียบ ๆ ระหว่างข้อมูลฝึกกับข้อมูลที่ใช้ให้บริการ ใช้โค้ดคุณลักษณะร่วมกัน ตรวจสอบโครงสร้างข้อมูล และบันทึกข้อมูลนำเข้าจริง เพื่อให้โมเดลของคุณทำงานได้อย่างถูกต้อง ✅
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MLOps Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MLOps Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ”
เมื่อข้อมูลขณะให้บริการไม่ตรงกับข้อมูลที่ใช้ฝึกโมเดลอีกต่อไป คุณปฏิบัติ MLOps Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MLOps Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MLOps Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MLOps Academy นี้ได้ไหม
ได้ บทเรียน MLOps Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- กับดักความคลาดเคลื่อนระหว่างการฝึกกับการให้บริการ
- ความล้มเหลวเงียบ: ไม่ล่มแต่ให้คำตอบผิด
- เมื่อโลกเปลี่ยนไปภายใต้โมเดลของคุณ
- ปัญหาการทำซ้ำผลลัพธ์