สัมภาษณ์ System Design สำหรับ AI Engineer: คู่มือฉบับปฏิบัติจริง

โดย Aaron Cao · อัปเดตเมื่อ

คุณจะต้องออกแบบระบบแมชชีนเลิร์นนิงแบบ end-to-end ทั้งหมด ตั้งแต่ข้อมูลและฟีเจอร์ การฝึกโมเดลและการประเมินผล การให้บริการโมเดล (serving) และเวลาแฝง (latency) ไปจนถึงการมอนิเตอร์และ drift รอบสัมภาษณ์ล่าสุดมักเน้นหนักไปที่ retrieval augmented generation และ model serving การให้คะแนนจะดูที่ trade-off ที่คุณอธิบายและปกป้องได้ ไม่ใช่สถาปัตยกรรมที่ถูกต้องเพียงหนึ่งเดียว

รอบสัมภาษณ์นี้ทดสอบอะไรกันแน่

โจทย์นี้ฟังดูกว้างจนแทบเป็นไปไม่ได้ในครั้งแรกที่คุณได้ยิน: ออกแบบระบบแนะนำสินค้า (recommendation system) หรือออกแบบแชทบอทที่ทำงานบนเอกสารภายในบริษัท ส่วนนี้จะอธิบายว่าผู้สัมภาษณ์กำลังให้คะแนนอะไรอยู่ เพื่อให้ความกว้างของโจทย์เลิกเป็นปัญหา พูดสั้น ๆ คือ พวกเขาให้คะแนนว่าคุณสามารถแปลงคำขอผลิตภัณฑ์ที่คลุมเครือให้กลายเป็นระบบที่มีตัวเลขกำกับได้หรือไม่

สี่สิ่งนี้คือส่วนใหญ่ของคะแนน:

  • Scoping. คุณถามหรือไม่ว่าใครคือผู้ใช้ มีกี่ queries ต่อวินาที และเกณฑ์คุณภาพแบบไหนที่นับว่าสำเร็จ ก่อนที่จะเริ่มวาดอะไรเลย
  • Data judgment. ข้อมูลสำหรับฝึกโมเดลมาจากไหน ติดป้ายกำกับอย่างไร และมีอะไรรั่วไหลระหว่างขั้นตอนการฝึกกับการให้บริการ (serving) หรือไม่
  • Evaluation. offline metrics ควบคู่กับ online guardrail คำตอบที่ไม่มีแผนการประเมินผลจะดูเหมือนเป็นระดับจูเนียร์ ไม่ว่าสถาปัตยกรรมจะดีแค่ไหนก็ตาม
  • Production sense. งบประมาณ latency ต้นทุนต่อคำขอ รอบการฝึกโมเดลใหม่ (retraining cadence) และสิ่งที่เกิดขึ้นเมื่อโมเดลทำนายผิด

โจทย์ที่มักถูกถามซ้ำ ๆ

มีโจทย์หลักห้าแบบที่ครอบคลุมรอบสัมภาษณ์ System Design สำหรับ AI Engineer ส่วนใหญ่:

  • Retrieval augmented generation บนเอกสารส่วนตัว (private documents). กลยุทธ์การแบ่งชิ้นข้อมูล (chunking) การเลือก embedding model, vector index, การ rerank และสิ่งที่คุณจะทำเมื่อการค้นคืน (retrieval) ไม่คืนผลลัพธ์ที่เกี่ยวข้องเลย
  • Model serving ในระดับสเกลใหญ่. การทำ batching, quantization, การทำให้ GPU ทำงานไม่ว่าง, การแคช และเป้าหมาย latency ที่ p99 ที่คุณตกลงไว้ตั้งแต่ขั้น scoping
  • Recommendation หรือ ranking. การสร้าง candidate แล้วจึงจัดอันดับ, feature store, ความเบี่ยงเบนระหว่างการฝึกกับการให้บริการ (training and serving skew), cold start
  • Feature pipeline. Streaming เทียบกับ batch, point-in-time correctness, การ backfill
  • Agentic workflow. การเรียกใช้ tool (tool calling), การจำกัดจำนวนขั้นตอน, เพดานต้นทุน และวิธีที่มนุษย์เข้ามาแทรกแซง คลังคำถามที่ครบถ้วนกว่านี้อยู่ในหมวด ประเภทการสัมภาษณ์

แต่ละข้อมีจุดยากหนึ่งจุดที่ผู้สัมภาษณ์กำลังรอฟัง สำหรับ retrieval คือการประเมินผล เพราะใครก็บอกชื่อ vector database ได้ แต่มีน้อยคนที่บอกได้ว่าจะวัดอย่างไรว่า retrieval ดีขึ้นจริงหรือไม่ สำหรับ serving คือการแลกเปลี่ยนระหว่างต้นทุนกับ latency เทียบกับขนาดโมเดล

โครงสร้างที่ใช้ได้ตลอด 45 นาที

ใช้เวลาห้านาทีแรกไปกับการทำความเข้าใจข้อกำหนดและตัวเลข แล้วเขียนมันไว้ในที่ที่ผู้สัมภาษณ์มองเห็นได้: queries ต่อวินาที, latency ที่ยอมรับได้, เกณฑ์คุณภาพ, งบประมาณ ทุกอย่างหลังจากนั้นจะอ้างอิงกลับไปที่ตัวเลขทั้งสี่ตัวนี้ ซึ่งเป็นสิ่งที่ทำให้คำตอบฟังดูเหมือนวิศวกรรมจริง ไม่ใช่การไล่ชื่อเครื่องมือ

จากนั้นให้ไปแบบกว้างก่อน (breadth first): วาดไดอะแกรมที่มีแหล่งข้อมูล, การฝึกโมเดลแบบออฟไลน์, artifact store, เส้นทางการให้บริการ (serving path) และ feedback loop ต่อเมื่อภาพรวมทั้งหมดปรากฏครบแล้วเท่านั้นจึงค่อยลงลึก และปล่อยให้ผู้สัมภาษณ์เป็นคนเลือกส่วนประกอบ ปิดท้ายด้วยการระบุ failure mode สองรูปแบบ และสิ่งที่คุณจะมอนิเตอร์เพื่อจับแต่ละกรณี

วิศวกร ML คนหนึ่งที่สัมภาษณ์ตำแหน่งซีเนียร์ที่บริษัทด้านการค้นหาถูกขอให้ออกแบบ semantic search บนตั๋วซัพพอร์ต (support tickets) เธอใช้เวลาสี่นาทีไปกับการทำ scoping กำหนดเป้าหมายไว้ที่ 200 มิลลิวินาทีที่ p95 และงบประมาณสำหรับ inference รายเดือนที่ตายตัว จากนั้นใช้ตัวเลขทั้งสองนี้ปฏิเสธ reranker ขนาดใหญ่ แล้วเลือก cross-encoder ขนาดเล็กที่ทำงานบน candidate 50 อันดับแรกแทน สิ่งที่ถูกให้คะแนนคือ trade-off ไม่ใช่การเลือกโมเดล

จุดที่ผู้ช่วยแบบสด (live assistant) ช่วยได้ในรอบสัมภาษณ์ design

System design เป็นรอบที่เน้นการพูดและการมองเห็น (visual) ดังนั้นผู้ช่วยจะช่วยได้น้อยกว่ารอบอื่น สิ่งที่มันทำได้คือคอยเตือนเช็คลิสต์ให้อยู่ตรงหน้าคุณ SubcueAI จะฟังเสียงจากการประชุมและแสดงโครงสร้างบน overlay ในเครื่อง: คำถาม scoping ที่คุณยังไม่ได้ถาม ส่วนการประเมินผลที่คุณข้ามไป และ failure mode ที่ควรพูดถึง แอปเดสก์ท็อปบน macOS และ Windows จะจับเสียงระบบ (system audio) รวมถึงไมโครโฟนของคุณ ส่วน side panel ของส่วนขยายเบราว์เซอร์ (browser extension) จะจับเฉพาะเสียงจากแท็บการประชุมเท่านั้น จึงได้ยินเสียงผู้สัมภาษณ์โดยไม่ถอดเสียงคุณ ไม่มีบอทเข้าร่วมการประชุม

ข้อจำกัดมีความสำคัญในรอบนี้มากกว่ารอบอื่น ๆ ส่วนใหญ่ ถ้าคุณแชร์หน้าจอเพื่อวาดไดอะแกรม overlay ก็อยู่ในสิ่งที่คุณแชร์ด้วย การสอบแบบมีผู้คุมสอบ (proctored assessments) และเครื่องที่บริษัทควบคุมอยู่นอกขอบเขตการใช้งาน และไม่มีเครื่องมือใดที่ตรวจจับไม่ได้อย่างสมบูรณ์แบบในทุกกรณี ผู้ช่วยยังไม่สามารถสร้างวิจารณญาณด้านสถาปัตยกรรมที่ถูกให้คะแนนแทนคุณได้ การฝึกโจทย์เหล่านี้กับผู้สัมภาษณ์ AI บนหน้า mock interview ช่วยสร้างสิ่งนั้นได้ ส่วน overlay ทำหน้าที่แค่กันไม่ให้คุณลืมการประเมินผลตอนนาทีที่ 30

คำถามที่พบบ่อย

ผมจำเป็นต้องรู้จักชื่อ vector database ตัวใดตัวหนึ่งโดยเฉพาะหรือไม่

การบอกชื่อตัวใดตัวหนึ่งก็ไม่มีปัญหา แต่การปกป้องเหตุผลของการเลือกสำคัญกว่า ผู้สัมภาษณ์จะถามว่าทำไมถึงเลือก index นั้น trade-off ด้าน recall เป็นอย่างไร และคุณจะทำ reindex โดยไม่มี downtime ได้อย่างไร

รอบสัมภาษณ์เหล่านี้คาดหวังคณิตศาสตร์มากแค่ไหน

แค่พอสำหรับการประมาณขนาด เช่น มิติของ embedding เทียบกับหน่วยความจำของ index, จำนวน token เทียบกับต้นทุน, ขนาด batch เทียบกับ latency การพิสูจน์สูตรทางคณิตศาสตร์นั้นพบได้น้อย แต่การคำนวณเลขง่าย ๆ ที่พูดออกมาได้เป็นเรื่องปกติ

รอบสัมภาษณ์ System Design สำหรับ AI Engineer แตกต่างจากรอบสัมภาษณ์ System Design แบบดั้งเดิมหรือไม่

กรอบแนวคิด (framework) เหมือนกัน ความแตกต่างอยู่ที่ข้อมูล การประเมินผล และ model lifecycle เป็นสิ่งที่มีน้ำหนักมากในรอบนี้ เทียบเท่ากับที่รอบแบบดั้งเดิมให้น้ำหนักกับ sharding และ consistency

SubcueAI ช่วยได้ไหมขณะที่ผมกำลังวาดไดอะแกรม

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

คำถามที่เกี่ยวข้อง

← เพิ่มเติมเกี่ยวกับ ประเภทการสัมภาษณ์