คุณพร้อมที่จะทําให้โมเดลยูนิคอร์นที่คาดการณ์การปรากฏตัวของยูนิคอร์นใช้งานได้แล้ว เมื่อทําการนําไปใช้งานไปป์ไลน์แมชชีนเลิร์นนิง (ML) ควรทํางาน อัปเดต และให้บริการได้โดยไม่มีปัญหา หากการทําให้โมเดลใช้งานได้ง่ายเหมือนการกดปุ่มทําให้ใช้งานได้ ขออภัย ระบบแมชชีนเลิร์นนิงแบบสมบูรณ์จำเป็นต้องมีการทดสอบสิ่งต่อไปนี้
- การตรวจสอบข้อมูลอินพุต
- การตรวจสอบการสร้างฟีเจอร์
- ตรวจสอบคุณภาพของโมเดลเวอร์ชันใหม่
- กำลังตรวจสอบโครงสร้างพื้นฐานการแสดงโฆษณา
- การทดสอบการผสานรวมระหว่างคอมโพเนนต์ของไปป์ไลน์
วิศวกรซอฟต์แวร์จํานวนมากชอบการพัฒนาที่ขับเคลื่อนโดยทดสอบ (TDD) ใน TDD วิศวกรซอฟต์แวร์จะเขียนการทดสอบก่อนเขียนซอร์สโค้ด "จริง" อย่างไรก็ตาม TDD อาจใช้ยากในแมชชีนเลิร์นนิง ตัวอย่างเช่น คุณจะเขียนการทดสอบเพื่อตรวจสอบการสูญเสียไม่ได้ก่อนที่จะฝึกโมเดล แต่คุณต้องค้นหาการสูญเสียที่ทำได้ในระหว่างการพัฒนาโมเดลก่อน แล้วจากนั้นทดสอบโมเดลเวอร์ชันใหม่เทียบกับการสูญเสียที่ทำได้
เกี่ยวกับรูปแบบยูนิคอร์น
ส่วนนี้กล่าวถึงโมเดลยูนิคอร์น สิ่งที่จำเป็นต้องทราบมีดังนี้
คุณกำลังใช้แมชชีนเลิร์นนิงเพื่อสร้างโมเดลการจัดประเภทที่คาดการณ์ลักษณะของยูนิคอร์น ชุดข้อมูลของคุณมีรายละเอียดเกี่ยวกับ Unicorn ที่ปรากฏ 10,000 รายการและ Unicorn ที่ไม่ปรากฏ 10,000 รายการ ชุดข้อมูลประกอบด้วยสถานที่ เวลาของวัน ความสูง อุณหภูมิ ความชื้น ต้นไม้ ปรากฏการณ์รุ้ง และองค์ประกอบอื่นๆ อีกมากมาย
ทดสอบการอัปเดตโมเดลด้วยการฝึกที่ทําซ้ำได้
หรือคุณอาจต้องการปรับปรุงโมเดล Unicorn ต่อไป ตัวอย่างเช่น สมมติว่าคุณทําวิศวกรรมด้านฟีเจอร์เพิ่มเติมในฟีเจอร์หนึ่ง แล้วฝึกโมเดลอีกครั้งโดยหวังว่าจะได้ผลลัพธ์ที่ดีขึ้น (หรืออย่างน้อยก็เหมือนเดิม) ขออภัย บางครั้งการฝึกโมเดลอาจทำซ้ำได้ยาก ทําตามคําแนะนําต่อไปนี้เพื่อปรับปรุงความสามารถในการทำซ้ำ
กำหนดค่าเริ่มต้นให้กับโปรแกรมสร้างตัวเลขสุ่มอย่างมีเหตุผล โปรดดูรายละเอียดที่หัวข้อการสุ่มตัวอย่างในการสร้างข้อมูล
เริ่มต้นคอมโพเนนต์ของโมเดลตามลําดับที่กําหนดเพื่อให้คอมโพเนนต์ได้รับตัวเลขสุ่มเดียวกันจากเครื่องสร้างตัวเลขสุ่มทุกครั้งที่เรียกใช้ โดยปกติแล้วไลบรารี ML จะจัดการข้อกําหนดนี้โดยอัตโนมัติ
นำค่าเฉลี่ยของการเรียกใช้โมเดลหลายครั้ง
ใช้การควบคุมเวอร์ชันแม้กระทั่งกับการทำซ้ำขั้นต้น เพื่อให้คุณระบุโค้ดและพารามิเตอร์ได้เมื่อตรวจสอบรูปแบบหรือไปป์ไลน์
แม้ว่าจะปฏิบัติตามหลักเกณฑ์เหล่านี้แล้ว แต่แหล่งที่มาอื่นๆ ของความไม่แน่นอนก็อาจยังคงอยู่
ทดสอบการเรียก API การเรียนรู้ของเครื่อง
คุณทดสอบการอัปเดตการเรียก API อย่างไร คุณสามารถฝึกโมเดลใหม่ได้ แต่วิธีนี้ใช้เวลานาน แต่ให้เขียนการทดสอบหน่วยเพื่อสร้างข้อมูลอินพุตแบบสุ่มและเรียกใช้ขั้นตอนเดียวของการลดเชิงลาดแทน หากขั้นตอนนี้เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด การอัปเดต API ใดๆ ก็ไม่น่าจะทำลายโมเดลของคุณ
เขียนการทดสอบการผสานรวมสําหรับคอมโพเนนต์ไปป์ไลน์
ในไปป์ไลน์ ML การเปลี่ยนแปลงในคอมโพเนนต์หนึ่งอาจทำให้เกิดข้อผิดพลาดในคอมโพเนนต์อื่นๆ ตรวจสอบว่าคอมโพเนนต์ทํางานร่วมกันโดยเขียนการทดสอบการผสานรวมที่เรียกใช้ไปป์ไลน์ทั้งหมดตั้งแต่ต้นจนจบ
นอกจากการทดสอบการผสานรวมอย่างต่อเนื่องแล้ว คุณควรทำการทดสอบการผสานรวมเมื่อมีการพุชโมเดลใหม่และซอฟต์แวร์เวอร์ชันใหม่ การทำงานที่ช้าของไปป์ไลน์ทั้งระบบทำให้การทดสอบการผสานรวมอย่างต่อเนื่องทำได้ยากขึ้น หากต้องการเรียกใช้การทดสอบการผสานรวมได้เร็วขึ้น ให้ฝึกโมเดลด้วยชุดข้อมูลย่อยหรือโมเดลที่ง่ายขึ้น โดยรายละเอียดจะขึ้นอยู่กับโมเดลและข้อมูลของคุณ หากต้องการให้ครอบคลุมอย่างต่อเนื่อง คุณจะต้องปรับการทดสอบที่เร็วขึ้นเพื่อให้ทํางานกับโมเดลหรือซอฟต์แวร์เวอร์ชันใหม่ทุกเวอร์ชัน ในระหว่างนี้ การทดสอบที่ช้าจะทำงานอย่างต่อเนื่องในเบื้องหลัง
ตรวจสอบคุณภาพโมเดลก่อนแสดง
ก่อนพุชโมเดลเวอร์ชันใหม่ไปยังเวอร์ชันที่ใช้งานจริง ให้ทดสอบการลดลงของคุณภาพ 2 ประเภทต่อไปนี้
คุณภาพลดลงอย่างฉับพลัน ข้อบกพร่องในเวอร์ชันใหม่อาจทำให้คุณภาพลดลงอย่างมาก ตรวจสอบเวอร์ชันใหม่โดยตรวจสอบคุณภาพเทียบกับเวอร์ชันก่อนหน้า
การเสื่อมสภาพช้า การทดสอบการลดลงอย่างฉับพลันอาจไม่ตรวจพบการลดลงอย่างช้าๆ ในคุณภาพของโมเดลในหลายเวอร์ชัน แต่ให้ตรวจสอบว่าการคาดการณ์ของรูปแบบในชุดข้อมูลที่ใช้ตรวจสอบเป็นไปตามเกณฑ์ที่กำหนดไว้ หากชุดข้อมูลที่ใช้ตรวจสอบเบี่ยงเบนจากข้อมูลจริง ให้อัปเดตชุดข้อมูลที่ใช้ตรวจสอบและตรวจสอบว่าโมเดลยังคงเป็นไปตามเกณฑ์คุณภาพเดิม
ตรวจสอบความเข้ากันได้ของโมเดลกับโครงสร้างพื้นฐานก่อนแสดง
หากโมเดลอัปเดตเร็วกว่าเซิร์ฟเวอร์ โมเดลอาจมีการพึ่งพาซอฟต์แวร์แตกต่างจากเซิร์ฟเวอร์ ซึ่งอาจทําให้ใช้งานร่วมกันไม่ได้ ตรวจสอบว่าการดำเนินการที่โมเดลใช้มีอยู่ในเซิร์ฟเวอร์โดยการจัดเตรียมโมเดลในเซิร์ฟเวอร์เวอร์ชันที่ใช้แซนด์บ็อกซ์