เจาะลึกออกแบบระบบแนะนำวิดีโอ สัมภาษณ์ ML System Design
ถอดบทเรียนการออกแบบระบบแนะนำวิดีโอจากแคตตาล็อกนับร้อยล้านรายการภายใส่งบเวลา 100 มิลลิวินาที สัมภาษณ์เชิงระบบ ML ที่ต้องใช้ทั้ง Retrieval และ Ranking

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- ระบบแนะนำวิดีโอขนาดใหญ่ไม่สามารถใช้โมเดลเดียวสโคร์ไอเทมทุกชิ้นได้ทันในงบเวลา 100 มิลลิวินาที
- โครงสร้างหลักคือ Retrieval-then-Ranking แยกการดึงแคตตาล็อกออกเป็นสองขั้นตอนเพื่อประสิทธิภาพ
- การทำงานแบ่งเป็นระบบออนไลน์ความหน่วงต่ำและระบบออฟไลน์สำหรับการเทรนโมเดลด้วย Logged Events
- การประเมินผลแบ่งเป็น 4 มิติ ได้แก่ การแก้ปัญหา, การสื่อสาร, การปฏิบัติทางเทคนิค และการบริหารเวลา 60 นาที
โจทย์การออกแบบระบบแนะนำวิดีโอนั้นดูผิวเผินเหมือนเป็นประโยคเดียวสั้นๆ คือการแสดงวิดีโอที่ผู้ใช้จะชอบ แต่ประโยคเดียวนั้นกลับซ่อนความซับซ้อนของการสัมภาษณ์ไว้ทั้งหมด หากทำกับแคตตาล็อกขนาดเล็ก ระบบสามารถให้คะแนนทุกไอเทมสำหรับผู้ใช้ทุกคนได้ แต่หากเป็นแคตตาล็อกที่มีจำนวนนับร้อยล้านรายการ ภายใส่งบเวลาเพียง 100 มิลลิวินาที พร้อมทั้งต้องเรียนรู้จากทุกการคลิกและรองรับผู้ใช้ใหม่ที่ไม่มีประวัติ ปัญหาจะกลายเป็นเรื่องของ Retrieval, Ranking และ Data Pipeline ทันที

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
การสัมภาษณ์รอบนี้ใช้เวลาประมาณ 60 นาทีบนไวท์บอร์ดที่แชร์ร่วมกัน โดยคุณต้องวาดกล่องและลูกศรพร้อมกับอธิบายเหตุผลไปพร้อมกัน ผู้สัมภาษณ์ชื่นชอบโจทย์นี้เพราะมันเปิดประตูไปสู่ความลึกและผสานทักษะสองด้านที่มักถูกฝึกแยกกัน ได้แก่ สถาปัตยกรรมระดับสูง (High-level Design) และการสร้างโมเดลแมชชีนเลิร์นนิง (Machine Learning)
หัวใจสำคัญที่จะทำให้ผู้สมัครได้คะแนนคือความเข้าใจว่าความยากไม่ได้อยู่ที่การเลือกโมเดล แต่เป็นการเสิร์ฟรายการที่จัดอันดับแล้วภายในเวลาประมาณ 100 มิลลิวินาที จากแคตตาล็อกที่มีขนาดใหญ่เกินกว่าจะให้คะแนนทุกชิ้นต่อหนึ่งคำขอ ดังนั้น หัวใจหลักจึงเป็นไปป์ไลน์แบบสองขั้นตอน ได้แก่ การดึงข้อมูล (Retrieval) และการจัดอันดับ (Ranking) ซึ่งขับเคลื่อนด้วยลูปการเทรนแบบออฟไลน์
"The hard part isn't choosing a model, it's serving a good ranked list in ~100 ms over a catalogue too large to score per request -- so the core of the design is a two-stage retrieve-then-rank pipeline fed by an offline training loop, not a single model."
บทสัมภาษณ์เชิงระบบ Machine Learning Design
การทำความเข้าใจสถาปัตยกรรมแบบ Two-stage Pipeline (Retrieval แล้วตามด้วย Ranking) เปรียบเสมือนการคัดกรองพนักงานในบริษัทใหญ่ ขั้นตอน Retrieval ทำหน้าที่เหมือนฝ่ายทรัพยากรบุคคลที่คัดเรซูเม่นับหมื่นแผ่นให้เหลือเพียงกลุ่มสั้นๆ ที่น่าสนใจอย่างรวดเร็ว ส่วน Ranking เปรียบเสมือนผู้บริหารแผนกที่สัมภาษณ์เชิงลึกเฉพาะผู้สมัครกลุ่มสั้นนั้นอย่างพิถีพิถัน แนวคิดนี้ช่วยประหยัดทรัพยากรการประมวลผลมหาศาลและรักษาความเร็วในการตอบสนองผู้ใช้ได้ตามเป้าหมาย
ในการประมาณการและการออกแบบ API ระบบภายนอกจะถูกออกแบบให้เรียบง่ายผ่านการเรียกใช้งานเพียงครั้งเดียวเพื่อรับรายการที่จัดอันดับแล้ว โดยมีระบบภายในสองขั้นตอนรองรับอยู่เบื้องหลัง พร้อมด้วยโมเดลข้อมูลที่เก็บสถานะทั้งสองระยะและถูกเขียนโดยไปป์ไลน์ออฟไลน์
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น