การวางแผนโครงการ ML

การวางแผนโปรเจ็กต์ ML แตกต่างจากการวางแผนโปรเจ็กต์วิศวกรรมซอฟต์แวร์ทั่วไป โปรเจ็กต์ ML มีลักษณะที่ไม่เป็นเส้นตรงและมีความไม่แน่นอนในระดับต่างๆ แนวทางนี้ต้องใช้วิธีการแบบซ้ำๆ และแนวคิดแบบทดลอง

ความไม่แน่นอนของโปรเจ็กต์

การวางแผนในระยะเริ่มต้นอาจเป็นเรื่องยาก เนื่องจากโดยทั่วไปแล้ว แนวทางที่ดีที่สุดมักไม่ชัดเจนเมื่อเริ่มโครงการ ความไม่แน่นอนที่มีอยู่นี้ทําให้การประมาณลําดับเวลาเป็นเรื่องยาก

การแข่งขัน Kaggle เมื่อเร็วๆ นี้แสดงให้เห็นถึงความไม่แน่นอนของโปรเจ็กต์ ML ในช่วง 2-3 สัปดาห์แรกของการแข่งขัน มีทีมเข้าร่วม 350 ทีม ทีมที่มีประสิทธิภาพสูงสุดสามารถเพิ่มคุณภาพการคาดการณ์ตามการเปรียบเทียบจาก 35% เป็น 65% ในช่วง 2 สัปดาห์ต่อมา จำนวนทีมที่ทำงานแก้ปัญหานี้เพิ่มขึ้นจาก 350 เป็น 1, 400 ทีม อย่างไรก็ตาม โมเดลที่ดีที่สุดมีคุณภาพการคาดการณ์เพียง 68%

รูปที่ 3 แสดงถึงความไม่แน่นอนในการพัฒนา ML โดยแสดงให้เห็นถึงความพยายามที่เพิ่มขึ้นอย่างมาก แต่คุณภาพของโมเดลเพิ่มขึ้นเพียงเล็กน้อย

รูปภาพแสดงจํานวนทีมที่เพิ่มขึ้นจาก 350 เป็น 1, 400 ทีมใน 2 สัปดาห์ แต่คุณภาพของโมเดลเพิ่มขึ้นเพียง 3 เปอร์เซ็นต์

รูปที่ 3 ในช่วง 2 สัปดาห์ จำนวนทีมที่ทำงานเกี่ยวกับปัญหานี้เพิ่มขึ้น 4 เท่า แต่คุณภาพของโมเดลแทบไม่เปลี่ยนแปลง ซึ่งแสดงให้เห็นถึงความยากในการประมาณความพยายามของโซลูชัน ML

กล่าวคือ ทีมกว่าพันทีมที่แต่ละทีมทำการเปลี่ยนรูปแบบข้อมูล สถาปัตยกรรม และไฮเปอร์พารามิเตอร์ที่หลากหลาย ทำได้เพียงสร้างโมเดลที่มีคุณภาพการคาดการณ์ 68%

ตัวอย่างจากอุตสาหกรรมแสดงให้เห็นถึงความไม่เป็นเชิงเส้นของโปรเจ็กต์ ML ซึ่งเอาต์พุตไม่สัดส่วนกับอินพุต ทีม 2 ทีมใช้เวลาหลายเดือนในการฝึกโมเดลให้มีคุณภาพการคาดการณ์ 90% อย่างไรก็ตาม ทีมต่างๆ ต้องใช้เวลากว่า 5 ปีเพื่อให้โมเดลพร้อมใช้งานจริงโดยมีคุณภาพการคาดการณ์ 99.9%

ตัวอย่างเหล่านี้แสดงให้เห็นว่า ML ที่พร้อมใช้งานจริงเป็นกระบวนการสํารวจ ซึ่งต้องใช้ทั้งแนวคิดทางวิทยาศาสตร์และวิศวกรรม

แนวทางการทดสอบ

ในกรณีส่วนใหญ่ การพัฒนา ML นั้นคล้ายกับการทําการทดสอบมากกว่าการฝึกฝนวิศวกรรมซอฟต์แวร์แบบดั้งเดิม แมชชีนเลิร์นนิงจําเป็นต้องทดสอบฟีเจอร์ต่างๆ ลองใช้สถาปัตยกรรมหลายแบบ และปรับแต่งไฮเปอร์พารามิเตอร์ให้เหมาะสม ตามคำจำกัดความแล้ว การทดสอบไม่ได้รับประกันว่าจะประสบความสำเร็จ ด้วยเหตุนี้ เราขอแนะนําให้วางแผนโดยใช้เฟรมเวิร์กการทดสอบ

มาดูแผนวิศวกรซอฟต์แวร์ทั่วไปเพื่อดูว่าแตกต่างจากแผนโปรเจ็กต์ ML อย่างไร

การวางแผนโปรเจ็กต์วิศวกรรมซอฟต์แวร์

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

เมื่อคาดการณ์เวลาที่จะใช้ในการทํางานให้เสร็จสมบูรณ์ ผู้ใช้จะประมาณงานได้โดยอิงตามโปรเจ็กต์ที่คล้ายกัน แม้ว่าจะพบปัญหาอยู่เสมอ เช่น ข้อมูลที่ต้องพึ่งพาที่ไม่รู้จักหรือข้อกำหนดที่เปลี่ยนแปลงไป ซึ่งอาจทำให้การประมาณทำได้ยากในบางครั้ง แต่โดยทั่วไปแล้วก็มีเส้นทางที่ชัดเจนในการแก้ปัญหา

ในทางตรงกันข้าม โปรเจ็กต์ ML มักจะไม่มีเส้นทางที่ชัดเจนเพียงเส้นทางเดียวที่จะนำไปสู่ความสําเร็จ

การวางแผนโปรเจ็กต์ ML

สําหรับโปรเจ็กต์ ML ส่วนใหญ่ คุณจะพบวิธีแก้ปัญหาที่ดีที่สุดได้ด้วยการทดลองใช้แนวทางต่างๆ ในกระบวนการลองผิดลองถูก โดยทั่วไปแล้ว คุณจะไม่ทราบว่าวิธีใดเหมาะที่สุดในการแก้ปัญหาก่อนที่จะลองแก้ปัญหา เช่น สถาปัตยกรรมของโซลูชันที่ดีที่สุดอาจเป็นรูปแบบเชิงเส้นอย่างง่าย หรืออาจเป็นเครือข่ายประสาท หรืออาจเป็นแผนภูมิการตัดสินใจ คุณจะค้นพบวิธีแก้ปัญหาที่ดีที่สุดได้ก็ต่อเมื่อลองใช้แนวทางแต่ละวิธี

ความไม่ชัดเจนนี้ทําให้การวางแผนเป็นเรื่องยาก ดังที่ได้กล่าวไปก่อนหน้านี้ การคาดการณ์ความพยายามที่โปรเจ็กต์ ML จะต้องใช้นั้นเป็นเรื่องยาก การพยายามแก้ปัญหาเท่านั้นที่จะทำให้คุณทราบระยะเวลาและทรัพยากรที่ต้องใช้เพื่อหาวิธีแก้ปัญหา

กลยุทธ์ที่แนะนําสําหรับการวางแผนงาน ML มีดังนี้

  • กำหนดเวลาทำงาน กำหนดกรอบเวลาที่ชัดเจนเพื่อทำงานให้เสร็จหรือลองใช้วิธีแก้ปัญหาหนึ่งๆ เช่น คุณอาจจัดสรรเวลา 2 สัปดาห์เพื่อพิจารณาว่าคุณเข้าถึงข้อมูลประเภทที่เหมาะสมได้หรือไม่ หากได้รับข้อมูลแล้ว คุณอาจใช้เวลาอีก 2 สัปดาห์เพื่อดูว่าโมเดลแบบง่ายบ่งชี้ว่าโซลูชัน ML ใช้งานได้จริงหรือไม่ หากโมเดลแบบง่ายไม่ประสบความสําเร็จ คุณอาจกําหนดเวลาอีก 2 สัปดาห์เพื่อลองใช้โครงข่ายประสาท เมื่อสิ้นสุดกรอบเวลาแต่ละกรอบเวลา คุณจะมีข้อมูลเพิ่มเติมเพื่อพิจารณาว่าการใช้ทรัพยากรกับปัญหาต่อไปนั้นคุ้มค่าหรือไม่

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

  • โปรเจ็กต์สำหรับนักศึกษาฝึกงานหรือพนักงานใหม่ การให้คําแนะนําและชี้แนะผู้ฝึกงานหรือผู้ที่เพิ่งมาร่วมงานให้ลองใช้โซลูชัน ML เป็นวิธีที่ดีในการเริ่มสํารวจพื้นที่ใหม่ที่มีผลลัพธ์ที่ไม่รู้จัก หลังจากโครงการสิ้นสุดลงแล้ว คุณจะเห็นภาพความพยายามที่ต้องใช้กับโซลูชัน ML และแนวทางที่อาจเป็นไปได้ในการดําเนินการ หรือควรใช้ทรัพยากรไปกับสิ่งอื่นหรือไม่

ไม่ว่าจะใช้กลยุทธ์ใดก็ตาม การทำผิดพลาดอย่างรวดเร็วถือเป็นแนวทางที่ฉลาด ลองใช้แนวทางที่มีต้นทุนต่ำที่สุดก่อน แต่อาจให้ผลตอบแทนสูงสุด หากวิธีการนี้ได้ผล แสดงว่าคุณพบวิธีแก้ปัญหาที่ดีแล้ว หากไม่สำเร็จ คุณก็จะไม่เสียเวลาและทรัพยากรไปมาก

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

แนวทางการวางแผนที่มีแนวคิดแบบทดลองจะช่วยให้ทีมของคุณมุ่งสู่ความสําเร็จ เมื่อแนวทางหนึ่งๆ ไม่ได้ผล สมาชิกในทีมจะไม่ท้อถอย แต่เข้าใจว่านั่นเป็นส่วนหนึ่งของกระบวนการค้นหาโซลูชัน ML และที่สำคัญกว่านั้น การสนทนาเกี่ยวกับความไม่แน่นอนที่หลีกเลี่ยงไม่ได้ในการพัฒนา ML กับผู้มีส่วนเกี่ยวข้องจะช่วยให้คุณตั้งความคาดหวังที่สมจริงมากขึ้นได้

ทดสอบความเข้าใจ

ประโยชน์ของการวางแผนการพัฒนา ML โดยใช้แนวคิดแบบทดลองมีอะไรบ้าง เลือกได้มากกว่า 1 ข้อ
เพื่อระบุแนวทางที่ดีที่สุดและแก้ปัญหาก่อน
เพื่อลดเวลาและทรัพยากรที่ใช้ไปกับแนวทางที่ไม่ประสบความสำเร็จ
เพื่อระบุและจัดการความเสี่ยงที่อาจเกิดขึ้น
สื่อสารกับผู้มีส่วนเกี่ยวข้องถึงความไม่แน่นอนที่เกิดจากการพัฒนา ML

โปรดทราบ

การเรียนรู้วิธีวางแผนแนวทาง ML หลายแนวทางต้องใช้ทั้งเวลาและประสบการณ์ แผนโปรเจ็กต์อาจต้องมีการอัปเดตบ่อยครั้ง โปรดทราบว่าแผนนี้เป็นเอกสารแบบไดนามิกที่พัฒนาอยู่ตลอดเวลาเมื่อทีมของคุณทดสอบแนวทางต่างๆ การมุ่งเน้นที่แนวคิดหลักต่อไปนี้จะช่วยเพิ่มโอกาสในการประสบความสําเร็จ

  • ประมาณค่าใช้จ่ายและโอกาสในการประสบความสําเร็จของแต่ละแนวทาง
  • ลองใช้แนวทางต่างๆ
  • ระบุบทเรียนที่ได้รับและพยายามปรับปรุงระบบทีละอย่าง
  • วางแผนเพื่อรับมือกับความล้มเหลว

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