ระบบ ML เวอร์ชันที่ใช้งานจริง: การทดสอบการติดตั้งใช้งาน

คุณพร้อมที่จะปรับใช้โมเดลยูนิคอร์นที่คาดคะเนการปรากฏตัวของยูนิคอร์นแล้ว! ขณะทำให้ใช้งานได้ ไปป์ไลน์แมชชีนเลิร์นนิง (ML) ควรเรียกใช้ อัปเดต และ แสดงโดยไม่มีปัญหา หากเพียงแค่การทำให้โมเดลใช้งานได้นั้นง่ายเหมือนการกด ปุ่มทำให้ใช้งานได้ขนาดใหญ่ น่าเสียดายที่ ระบบแมชชีนเลิร์นนิงเต็มรูปแบบ ต้องมีการทดสอบสำหรับ:

  • กำลังตรวจสอบข้อมูลอินพุต
  • กำลังตรวจสอบฟีเจอร์ด้านวิศวกรรม
  • กำลังตรวจสอบคุณภาพของโมเดลเวอร์ชันใหม่
  • กำลังตรวจสอบโครงสร้างพื้นฐานด้านการแสดงผล
  • การทดสอบการผสานรวมระหว่างคอมโพเนนต์ไปป์ไลน์

วิศวกรซอฟต์แวร์หลายคนชอบการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ (TDD) มากกว่า ใน TDD ซอฟต์แวร์ จะเขียนการทดสอบก่อนที่จะเขียนคำว่า "จริง" ซอร์สโค้ด อย่างไรก็ตาม TDD อาจเป็นเรื่องยากสำหรับแมชชีนเลิร์นนิง ตัวอย่างเช่น ก่อนการฝึกโมเดล คุณจะเขียนการทดสอบเพื่อตรวจสอบความถูกต้องไม่ได้ ความสูญเสีย แต่คุณต้องค้นพบการสูญหายที่ทำได้ระหว่างการสร้างรูปแบบก่อน และจากนั้นทดสอบเวอร์ชันโมเดลใหม่ๆ กับความสูญเสียที่เป็นไปได้

เกี่ยวกับโมเดลยูนิคอร์น

ส่วนนี้จะพูดถึงโมเดลยูนิคอร์น สิ่งที่จำเป็นต้องทราบมีดังนี้

คุณกำลังใช้แมชชีนเลิร์นนิงเพื่อสร้างโมเดลการจัดประเภทที่คาดคะเน การปรากฏตัวของยูนิคอร์น ชุดข้อมูลแสดงรายละเอียดการปรากฏตัวของยูนิคอร์น 10,000 ตัวและ ยูนิคอร์น 10,000 ตัวที่ปรากฏตัว ชุดข้อมูลจะมีสถานที่ ช่วงเวลาของวัน ระดับความสูง อุณหภูมิ ความชื้น ร่มไม้ การปรากฏ สายรุ้ง และฟีเจอร์อื่นๆ อีกมากมาย

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

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

  • ตั้งต้นตัวสร้างตัวเลขสุ่มอย่างมีการตัดสินใจ โปรดดูรายละเอียดที่หัวข้อการสุ่มในข้อมูล รุ่นใหม่

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

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

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

แม้จะปฏิบัติตามหลักเกณฑ์เหล่านี้แล้ว แต่แหล่งที่มาอื่นๆ ของความไม่แน่นอนอาจมี ยังคงมีอยู่

ทดสอบการเรียกไปยัง API ของแมชชีนเลิร์นนิง

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

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

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

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

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

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

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

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

ตรวจสอบความเข้ากันได้ของโมเดลกับโครงสร้างพื้นฐานก่อนแสดง

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