Chronon - แพลตฟอร์มฟีเจอร์ ML โอเพนซอร์สที่ Airbnb เปิดเผย
(github.com/airbnb)- แพลตฟอร์มฟีเจอร์แบบ end-to-end โอเพนซอร์สที่ช่วยให้สร้าง ปรับใช้ จัดการ และมอนิเตอร์ data pipeline สำหรับแมชชีนเลิร์นนิงได้อย่างง่ายดาย
- ปัจจุบันถูกใช้งานในแอปพลิเคชัน ML หลักทั้งหมดภายใน Airbnb และกรณีใช้งานหลักของ Stripe
ฟีเจอร์หลัก
- รองรับการเก็บข้อมูลจากแหล่งที่หลากหลาย: event stream, snapshot ของตาราง DB, change data stream, service endpoint, warehouse table เป็นต้น และสามารถนำมาโมเดลเป็น slowly changing dimensions, fact หรือ dimension table เพื่อใช้งานได้
- สร้างผลลัพธ์ได้ทั้งในบริบทออนไลน์และออฟไลน์: แบบออนไลน์ให้ผ่าน endpoint ที่ขยายขนาดได้และมี latency ต่ำ ส่วนแบบออฟไลน์ให้เป็นตาราง hive สำหรับสร้างข้อมูลฝึก
- เลือกความถูกต้องแบบเรียลไทม์หรือแบบแบตช์ได้:
- สามารถกำหนดผลลัพธ์ให้มีความถูกต้องแบบ Temporal หรือ Snapshot ได้
- Temporal หมายถึงการอัปเดตค่าฟีเจอร์แบบเรียลไทม์ในบริบทออนไลน์ และสร้างฟีเจอร์ที่สอดคล้องกับช่วงเวลาที่กำหนดในบริบทออฟไลน์
- ความถูกต้องแบบ Snapshot หมายถึงฟีเจอร์จะถูกอัปเดตวันละครั้งตอนเที่ยงคืน
- ทำ backfill ชุดข้อมูลฝึกจากข้อมูลดิบได้: ไม่ต้องรอให้มีการสะสม feature log เป็นเวลาหลายเดือนเพื่อฝึกโมเดล
- มี Python API ที่ทรงพลัง: มี abstraction ระดับ API สำหรับประเภทแหล่งข้อมูล ความสดใหม่ และบริบทต่าง ๆ พร้อมใช้องค์ประกอบพื้นฐานของ SQL ที่เข้าใจง่ายอย่าง group-by, join, select ร่วมกับความสามารถเสริมที่ทรงพลัง
- การมอนิเตอร์ฟีเจอร์แบบอัตโนมัติ: สามารถสร้าง monitoring pipeline อัตโนมัติเพื่อทำความเข้าใจคุณภาพข้อมูลฝึก วัดความไม่สอดคล้องระหว่างการฝึกกับการเสิร์ฟ และมอนิเตอร์ feature drift เป็นต้น
ที่มาของการพัฒนา
- Chronon ถูกพัฒนาขึ้นเพื่อแก้ปัญหาทั่วไปที่ผู้ปฏิบัติงานด้าน ML ต้องใช้เวลาส่วนใหญ่ไปกับการจัดการข้อมูลที่ขับเคลื่อนโมเดล มากกว่าการทำโมเดลเอง
ข้อจำกัดของแนวทางเดิม
-
วิธีทำซ้ำออฟไลน์-ออนไลน์
- ผู้ปฏิบัติงานด้าน ML ฝึกโมเดลด้วยข้อมูลจาก data warehouse แล้วจึงหาวิธีทำซ้ำฟีเจอร์เหล่านั้นในสภาพแวดล้อมออนไลน์
- ข้อดี: ใช้ประโยชน์จาก data warehouse ได้อย่างเต็มที่ ทั้งด้านแหล่งข้อมูลและเครื่องมือที่แข็งแกร่งสำหรับการแปลงข้อมูลขนาดใหญ่
- ข้อเสีย: ไม่มีวิธีที่ชัดเจนในการให้บริการฟีเจอร์ของโมเดลสำหรับ online inference ทำให้เกิดความไม่สอดคล้องและ label leakage ซึ่งส่งผลร้ายแรงต่อประสิทธิภาพของโมเดล
-
วิธีล็อกข้อมูลแล้วรอ
- ผู้ปฏิบัติงานด้าน ML เริ่มจากข้อมูลที่มีอยู่ในสภาพแวดล้อม online serving ซึ่งเป็นที่ที่ model inference จะทำงาน จากนั้นจึงล็อกฟีเจอร์ที่เกี่ยวข้องลงใน data warehouse
- เมื่อมีข้อมูลสะสมเพียงพอ ก็ฝึกโมเดลจาก log และให้บริการด้วยข้อมูลชุดเดียวกัน
- ข้อดี: รับประกันความสอดคล้องและมีโอกาสเกิด leakage ต่ำ
- ข้อเสีย: เวลารอที่ยาวนานทำให้ตอบสนองต่อพฤติกรรมผู้ใช้ที่เปลี่ยนแปลงได้ยากอย่างรวดเร็ว
แนวทางของ Chronon
- Chronon ช่วยให้ผู้ปฏิบัติงานด้าน ML นิยามฟีเจอร์เพียงครั้งเดียว แล้วสามารถใช้ขับเคลื่อนทั้ง flow แบบออฟไลน์สำหรับการฝึกโมเดลและ flow แบบออนไลน์สำหรับการอนุมานของโมเดลได้
- นอกจากนี้ยังมีเครื่องมือที่ทรงพลังสำหรับ feature chaining, observability, คุณภาพข้อมูล, การแชร์ฟีเจอร์ และการจัดการ
- ทำให้สามารถคงข้อดีของแนวทางเดิมไว้ พร้อมชดเชยข้อเสียได้
ยังไม่มีความคิดเห็น