การกำหนดเวอร์ชันข้อมูลและโมเดล

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

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

Major & minor versioning

การกำหนดเวอร์ชันมี 2 ประเภท: major และ minor

  • Major versioning บ่งบอกถึงการเปลี่ยนแปลงครั้งใหญ่ในข้อมูลหรือโมเดล

  • Minor versioning บ่งบอกถึงการเปลี่ยนแปลงเล็กน้อย

ด้วยเวอร์ชัน major/minor เราสามารถดูได้ว่ามีการเปลี่ยนแปลงข้อมูลหรือโมเดลอย่างไรและในส่วนใดบ้าง

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

การกำหนดเวอร์ชันข้อมูล training

  • ป้ายกำกับ major/minor หรือ timestamp ที่ไม่ซ้ำกัน
  • ช่วยให้ทดลองซ้ำและติดตามผลได้
  • ย้อนกลับไปยังข้อมูลเวอร์ชันก่อนหน้าได้ง่าย
  • ดูพัฒนาการของข้อมูลตามเวลา

ตัวอย่าง:

  1. Data V 1.0 คือชุดข้อมูลเริ่มต้น
  2. Data V 1.1 เพิ่ม feature transformation เพิ่มเติม
  3. Data V 1.2 เพิ่มวิธีการคัดเลือก feature
  4. Data V 2.0 นำแหล่งข้อมูลใหม่ทั้งหมดเข้ามาใช้
การพัฒนาโมเดล Machine Learning สำหรับ Production

Feature stores

  • ที่เก็บข้อมูลกลางสำหรับจัดเก็บและจัดการ feature เวอร์ชันต่าง ๆ
  • ติดตาม feature แต่ละเวอร์ชันได้ง่าย
  • นำ feature ไปใช้กับการทดลองที่แตกต่างกันได้
  • เพิ่มประสิทธิภาพการทำงานร่วมกันและความน่าเชื่อถือของการทดลอง
  • ลดงานที่ซ้ำซ้อน
การพัฒนาโมเดล Machine Learning สำหรับ Production

การกำหนดเวอร์ชันโมเดล ML

  • ติดตามโมเดล ML แต่ละเวอร์ชัน
  • ช่วยให้ทดลองซ้ำและติดตามผลได้
  • ย้อนกลับไปยังโมเดลเวอร์ชันก่อนหน้าได้ง่าย
  • โดยทั่วไปจะตรงกับเวอร์ชันของข้อมูล training แต่ไม่เสมอไป

ตัวอย่าง:

  1. Model V 1.0 คือโมเดลเริ่มต้น (Random Forest)
  2. Model V 1.1 คือโมเดลเดิมที่ fine-tune บน Data V 1.1
  3. Model V 2.0 เปลี่ยนเป็น XGBoost Model ที่ fine-tune บน Data V 1.2
  4. Model V 2.1 คือโมเดล XGBoost ที่ fine-tune บน Data V 2.0
การพัฒนาโมเดล Machine Learning สำหรับ Production

Model stores

  • ที่เก็บข้อมูลกลางสำหรับจัดเก็บและจัดการโมเดลแต่ละเวอร์ชัน
  • ติดตามโมเดลแต่ละเวอร์ชันได้ง่าย
  • ย้อนกลับไปยังเวอร์ชันก่อนหน้าได้
การพัฒนาโมเดล Machine Learning สำหรับ Production

ตัวอย่างการกำหนดเวอร์ชันโมเดลด้วย MLflow

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
การพัฒนาโมเดล Machine Learning สำหรับ Production

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

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

Preparing Video For Download...