ความน่าเชื่อถือของโมเดล

การพัฒนาโมเดล Machine Learning สำหรับ Production

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

การจัดแนวโมเดล ML ให้สอดคล้องกับเมตริกผลกระทบทางธุรกิจ

  • เมตริกผลกระทบทางธุรกิจวัดผลของ ML ต่อธุรกิจ
    • เช่น รายได้ การประหยัดต้นทุน คะแนนความพึงพอใจของลูกค้า (CSAT)
  • ควรสอดคล้องกับเมตริกของโมเดล
    • เช่น โมเดลทำนายการเลิกใช้งาน --> รายได้
    • เช่น โมเดลทำนายการบำรุงรักษาในโรงงาน --> การประหยัดต้นทุน
    • เช่น ความแม่นยำในการตรวจจับ intent ของ chatbot --> CSAT

กราฟที่มีแนวโน้มสูงขึ้น

การพัฒนาโมเดล Machine Learning สำหรับ Production

รูทีนการทดสอบใน ML pipelines

  • Unit tests ทดสอบแต่ละส่วนประกอบ
    • เช่น ทดสอบว่า PCA instance คืนค่าจำนวนฟีเจอร์ที่คาดไว้
  • Integration tests พิจารณา pipeline ทั้งหมด
    • เช่น ทดสอบว่าข้อมูลนำเข้าถูกประมวลผลล่วงหน้าอย่างถูกต้อง โมเดลทำนายได้แม่นยำ และผลลัพธ์ถูกประมวลผลหลังการทำนายอย่างถูกต้อง
  • Smoke tests เป็นการทดสอบด่วนเพื่อยืนยันว่าระบบทำงานได้
    • เช่น ทดสอบว่าโมเดลสามารถจำแนกภาพตัวอย่างชุดเล็กได้ถูกต้อง
  • ทดสอบแต่เนิ่น และทดสอบบ่อยๆ
    • เช่น ทดสอบโมเดลกับข้อมูลใหม่ทันทีที่มีข้อมูลพร้อม
การพัฒนาโมเดล Machine Learning สำหรับ Production

ตัวอย่าง unit test

def test_pipeline():
    # Generate mock data for testing
    X_train = pd.DataFrame({'age': [25, 30, 35, 40], 'income': [50000, 60000, 70000, 80000])
    y_train = pd.Series([0, 0, 1, 1])

    pipeline = Pipeline([('preprocessing', DataPreprocessor()),  # Set up pipeline
                         ('model', LogisticRegression())])
    pipeline.fit(X_train, y_train)  # Fit pipeline on training data

    # Generate mock data for testing
    X_test = pd.DataFrame({'age': [30, 35, 40, 45], 'income': [55000, 65000, 75000, 85000])
    y_test = pd.Series([0, 0, 1, 1])
    y_pred = pipeline.predict(X_test)  
    accuracy = accuracy_score(y_test, y_pred)  # Evaluate pipeline on test data

    assert accuracy > 0.8, "Error: pipeline accuracy is too low."
การพัฒนาโมเดล Machine Learning สำหรับ Production

การติดตาม model staleness

  • Model staleness — ประสิทธิภาพของโมเดลลดลงตามเวลา
    • เกิดจากการเปลี่ยนแปลงของข้อมูลหรือสภาพแวดล้อม
  • ต้องมีการติดตามอย่างต่อเนื่อง!

หุ่นยนต์ที่ดูสับสน

การพัฒนาโมเดล Machine Learning สำหรับ Production

การระบุและแก้ไข model staleness

การระบุปัญหา

  • ติดตามประสิทธิภาพของโมเดล
  • ติดตามการเปลี่ยนแปลงของข้อมูลและสภาพแวดล้อม

การแก้ไขปัญหา

  • ฝึกโมเดลใหม่บนข้อมูลล่าสุด
    • เช่น มีฟีเจอร์ใหม่ที่ต้องเพิ่มเข้าไปในโมเดล
  • อัปเดต data pipeline ให้รองรับการเปลี่ยนแปลงของสภาพแวดล้อม
    • เช่น การเปลี่ยนแปลงของแพลตฟอร์มวิเคราะห์ข้อมูลทำให้ pipeline ทำงานผิดพลาด
การพัฒนาโมเดล Machine Learning สำหรับ Production

มาฝึกกันเถอะ!

การพัฒนาโมเดล Machine Learning สำหรับ Production

Preparing Video For Download...