การทดสอบการทําให้โมเดลแมชชีนเลิร์นนิงใช้งานได้

คุณพร้อมที่จะนําไปใช้แล้ว! ถ้าการทําให้โมเดลใช้งานได้อย่างเดียวก็ง่ายพอๆ กับการกดปุ่มสีแดง เมื่อทําให้ใช้งานได้ ไปป์ไลน์จะทํางาน อัปเดต และแสดงได้โดยไม่มีข้อจํากัด ความต้องการดังกล่าวทําให้เกิดข้อกําหนดและวิธีแก้ปัญหาที่กล่าวถึงในหน้านี้

ทดสอบการอัปเดตโมเดลด้วยการฝึกอบรมที่ทําให้เกิดซ้ําได้

ไม่ต้องสงสัยเลยว่าจะปรับปรุงการคาดการณ์ลักษณะยูนิคอร์นต่อไป สมมติว่าคุณเปลี่ยนโครงสร้างโค้ดวิศวกรรมฟีเจอร์สําหรับฟีเจอร์ "เวลาของวัน" คุณจะทดสอบได้อย่างไรว่ารหัสถูกต้อง คุณจึงตัดสินใจฝึกโมเดลอีกครั้งและรอดูผลลัพธ์เดียวกัน ขออภัย คุณพบว่าการฝึกโมเดลทําซ้ําไม่ได้ เรามุ่งมั่นที่จะทํานายลักษณะยูนิคอร์นที่ปรากฏตัว คุณต้องตรวจสอบเพิ่มเติม คุณพบว่าสามารถทําซ้ําได้โดยการทําตามขั้นตอนต่อไปนี้

  • โปรแกรมสร้างตัวเลขแบบสุ่ม (RNG) ดูรายละเอียดได้ที่การสุ่มในการสร้างข้อมูลจากหลักสูตรเตรียมความพร้อมและวิศวกรรมฟีเจอร์ในหลักสูตร ML

  • เริ่มต้นคอมโพเนนต์ของโมเดลตามลําดับคงที่เพื่อให้คอมโพเนนต์ได้รับหมายเลขสุ่มเดียวกันจาก RNG ในการเรียกใช้ทุกครั้ง โดยทั่วไปไลบรารี ML จะจัดการข้อกําหนดนี้โดยอัตโนมัติ

  • ค่าเฉลี่ยของการเรียกใช้โมเดลหลายครั้ง

  • ใช้การควบคุมเวอร์ชัน แม้กระทั่งสําหรับการปรับปรุงเบื้องต้น เพื่อให้คุณกําหนดโค้ดและพารามิเตอร์สําหรับตรวจสอบโมเดลหรือไปป์ไลน์ได้

แม้ว่าจะทําตามขั้นตอนเหล่านี้แล้ว คุณก็ยังอาจจะมีแหล่งที่มาอื่นๆ ที่ไม่อาจกําหนดได้

การทดสอบการอัปเดตโมเดลไปยังข้อมูลจําเพาะและการเรียก API

หลังจากอัปเดตโมเดลเป็น Uni Corn Predictionor 2.0 แล้ว คุณต้องทดสอบโมเดลใหม่เพื่อดูความถูกต้องตามอัลกอริทึม รวมถึงการเปลี่ยนแปลงที่เรียกใช้ API มาพูดถึงกันว่า

การทดสอบการเรียก API

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

การทดสอบความถูกต้องของอัลกอริทึม

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

  • ฝึกโมเดลให้ทําซ้ํา 2-3 ครั้งแล้วตรวจสอบว่าการสูญเสียลดลง
  • ฝึกอัลกอริทึมโดยไม่ใช้การปรับตามปกติ หากโมเดลของคุณมีความซับซ้อนมากพอ โมเดลจะจดจําข้อมูลการฝึกและการสูญเสียการฝึกของคุณจะใกล้ 0
  • ทดสอบการคํานวณย่อยที่เฉพาะเจาะจงของอัลกอริทึม เช่น คุณอาจทดสอบว่าส่วนหนึ่งของ RNN จะทํางาน 1 ครั้งต่อองค์ประกอบของข้อมูลอินพุต

เขียนการทดสอบการผสานรวมสําหรับคอมโพเนนต์ไปป์ไลน์

ในไปป์ไลน์ของ ML การเปลี่ยนแปลงของคอมโพเนนต์หนึ่งอาจทําให้เกิดข้อผิดพลาดในคอมโพเนนต์อื่นๆ ตรวจสอบว่าคอมโพเนนต์ต่างๆ ทํางานร่วมกันด้วยการเขียนการทดสอบที่เรียกใช้ไปป์ไลน์ทั้งหมดตั้งแต่ต้นจนจบ การทดสอบนี้เรียกว่าการทดสอบการผสานรวม

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

ตรวจสอบคุณภาพของโมเดลก่อนแสดงผล

ก่อนที่จะพุชเวอร์ชันใหม่ไปยังเวอร์ชันที่ใช้งานจริง ให้ทดสอบการลดคุณภาพใน 2 ประเภทนี้

  • การเสื่อมสภาพอย่างกะทันหัน: ข้อบกพร่องในเวอร์ชันใหม่อาจทําให้คุณภาพลดลงอย่างมาก ตรวจสอบเวอร์ชันใหม่ด้วยการตรวจสอบคุณภาพ เทียบกับเวอร์ชันก่อนหน้านี้

  • การเสื่อมสภาพอย่างช้า: การทดสอบการลดคุณภาพอย่างฉับพลันอาจตรวจหาคุณภาพของรูปแบบที่ลดลงช้าในหลายเวอร์ชัน โปรดตรวจสอบว่าการคาดการณ์ของโมเดลในชุดข้อมูลการตรวจสอบเป็นไปตามเกณฑ์คงที่ หากชุดข้อมูลการตรวจสอบของคุณต่างจากข้อมูลจริง ให้อัปเดตชุดข้อมูลการตรวจสอบและตรวจสอบว่าโมเดลยังคงมีเกณฑ์คุณภาพเหมือนกัน

ตรวจสอบความเข้ากันได้กับรุ่น Infra ก่อนที่จะแสดง

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