เรียนรู้แกนหลักของ MLOps — การสร้างไปป์ไลน์การเรียนรู้ของเครื่อง (ML)
เหตุใด MLOps จึงจำเป็น
เป็นที่ยอมรับค่อนข้างดีว่า เพื่อให้ AI ทำงานได้ ความท้าทายที่แท้จริงไม่ใช่การสร้างแบบจำลอง Machine Learning (ML) ความท้าทายคือการสร้างระบบ ML แบบบูรณาการ และดำเนินการอย่างต่อเนื่องในการผลิต นี่คือเหตุผลที่แนวคิดของ MLOps ได้รับการพัฒนา และกำลังได้รับแรงผลักดันอย่างรวดเร็วในหมู่นักวิทยาศาสตร์ข้อมูล วิศวกร ML และผู้ที่ชื่นชอบ AI
เนื่องจากการวิจัยที่มีประสิทธิภาพในอัลกอริทึม ML ในช่วงไม่กี่ปีที่ผ่านมา AI และ ML ได้แสดงศักยภาพที่ยอดเยี่ยมแก่องค์กรในแง่ของการสร้างโอกาสทางธุรกิจใหม่ ๆ มอบประสบการณ์ลูกค้าที่ดีขึ้น ปรับปรุงประสิทธิภาพการดำเนินงาน และอื่น ๆ อย่างไรก็ตาม มีช่องว่างทางเทคนิคขนาดใหญ่ระหว่างการฝึกโมเดล ML ใน Jupyter Notebook และการปรับใช้โมเดล ML ในระบบการผลิต ผลที่ตามมาคือ หลายบริษัทยังไม่รู้ว่าจะบรรลุเป้าหมาย ML/AI ได้อย่างไร และหันไปพึ่ง MLOps เพื่อขอความช่วยเหลือ โดยหวังว่าผ่าน MLOps จะทำให้ AI ทำงานในสภาพแวดล้อมการผลิตจริงเพื่อเก็บเกี่ยวผลประโยชน์อย่างแท้จริง ของโซลูชันที่ขับเคลื่อนด้วย AI และ ML
ดังนั้น ฉันเชื่อว่าการพัฒนาชุดคู่มือเชิงปฏิบัติที่อธิบายถึงวิธีการนำแนวปฏิบัติ MLOps ไปใช้จะเป็นประโยชน์มาก คู่มือเหล่านี้จะประกอบด้วยคำอธิบายของส่วนประกอบ MLOps ที่สำคัญ ข้อควรพิจารณาในการออกแบบ ตลอดจนโค้ดตัวอย่างสำหรับการนำไปใช้งาน
หากเรามอง MLOps เพียงอย่างเดียวจากมุมมองด้านวิศวกรรมและการนำไปใช้งาน จะมีสามส่วนหลักสำหรับโซลูชัน MLOps แบบ end-to-end:
- ส่วนแรกคือ — Data and Feature Engineering Pipeline
- ส่วนที่สองคือ — ML Model Training และ Re-training Pipeline
- ส่วนที่สามคือ — ML Model Inference and Serving Pipeline
องค์ประกอบสำคัญของการนำโซลูชัน MLOps ไปใช้
ภาพด้านล่างแสดงองค์ประกอบหลักทั้งหมดของไปป์ไลน์ทั้ง 3 รายการข้างต้นของ MLOps อย่างที่คุณเห็น การสร้างโซลูชัน MLOps แบบ end-to-end อาจค่อนข้างซับซ้อน แต่ไม่ต้องกังวล ฉันจะอธิบายทีละส่วนโดยละเอียด และสาธิตวิธีนำแต่ละส่วนประกอบไปใช้ในซีรีส์ที่กำลังจะมาถึง โพสต์
ไปป์ไลน์วิศวกรรมข้อมูลและคุณสมบัติ
ฉันจะเริ่มต้นด้วยข้อมูลและขั้นตอนวิศวกรรมคุณลักษณะ เนื่องจากข้อมูลเป็นแกนหลักของระบบ ML ใดๆ โดยทั่วไป ท่อส่งข้อมูลหมายถึงไปป์ไลน์ Extract, Transform and Load (ETL) ซึ่งวิศวกรข้อมูลจะนำเข้าข้อมูลดิบจากระบบต้นทาง จากนั้นทำความสะอาดและแปลงข้อมูลให้เป็นข้อมูลที่เชื่อถือได้และมีคุณภาพสูงสำหรับผู้ใช้ข้อมูลปลายน้ำ หากคุณสนใจที่จะทำความเข้าใจเกี่ยวกับวิธีสร้างท่อส่งข้อมูล ฉันมีบทความแยกต่างหากเกี่ยวกับเรื่องนี้ เรียนรู้แกนหลักของวิศวกรรมข้อมูล — การสร้างท่อส่งข้อมูล โปรดอย่าลังเลที่จะอ่าน
สิ่งที่ไม่เหมือนใครเกี่ยวกับ ML คือข้อมูลดิบจำเป็นต้องแปลงเป็นคุณสมบัติเพื่อให้โมเดล ML สามารถเรียนรู้รูปแบบที่เป็นประโยชน์จากข้อมูลได้อย่างมีประสิทธิภาพ กระบวนการแปลงข้อมูลดิบเป็นคุณสมบัติเรียกว่าวิศวกรรมคุณลักษณะ ดังนั้นจุดเน้นของโพสต์นี้จะอยู่ที่การนำระบบวิศวกรรมฟีเจอร์ไปใช้งานรวมถึงการแนะนำสิ่งที่จัดเก็บฟีเจอร์
มีเทคนิคทางวิศวกรรมคุณลักษณะต่างๆ รวมถึงการใส่ข้อมูล การจัดการค่าผิดปกติ binning การแปลงบันทึก การเข้ารหัสแบบ one-hot และอื่นๆ หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับพวกเขา ฉันแน่ใจว่าคุณสามารถ google ได้ และจะมีบล็อกมากมายเกี่ยวกับฟีเจอร์สโตร์ อย่างไรก็ตาม สิ่งที่ฉันต้องการเน้นย้ำก็คือ โดยทั่วไปแล้วสำหรับโครงการแมชชีนเลิร์นนิง (ML) นั้น นักวิทยาศาสตร์ข้อมูลได้ใช้เวลาและความพยายามอย่างมากไปกับวิศวกรรมฟีเจอร์เพื่อให้ได้ประสิทธิภาพที่เหมาะสมในโมเดลแมชชีนเลิร์นนิง ดังนั้นจึงมีค่าและจำเป็นในการจัดเก็บคุณสมบัติเหล่านี้เพื่อการค้นพบและนำมาใช้ใหม่ ดังนั้นแนวคิดของ "ฟีเจอร์สโตร์" จึงได้รับการพัฒนาขึ้น และมีค่อนข้างน้อยทั้งแบบโอเพ่นซอร์สและข้อเสนอเชิงพาณิชย์บนฟีเจอร์สโตร์ อย่างไรก็ตาม ที่เก็บคุณลักษณะมีมากกว่าการใช้คุณลักษณะซ้ำที่จัดเก็บคุณลักษณะคือชั้นการจัดการข้อมูลสำหรับการเรียนรู้ของเครื่องที่ช่วยให้คุณสามารถแบ่งปันและค้นพบคุณลักษณะต่างๆ และสร้างไปป์ไลน์การเรียนรู้ของเครื่องที่มีประสิทธิภาพมากขึ้น ร้านค้าคุณลักษณะสามารถใช้ประโยชน์จากสองส่วนที่สำคัญที่สุดของโซลูชัน MLOps ใดๆ ได้ นั่นคือการฝึกอบรมแบบจำลองและการให้บริการแบบจำลอง โดยสรุป ฟีเจอร์สโตร์มีฟังก์ชันและประโยชน์ดังต่อไปนี้:
- การค้นพบคุณลักษณะและการใช้ซ้ำ
- วิศวกรรมฟีเจอร์ที่สอดคล้องกันสำหรับการฝึกโมเดลและการให้บริการ
- การตรวจสอบข้อมูลและการเลื่อนคุณลักษณะ
- ความสามารถในการทำซ้ำสำหรับชุดข้อมูลการฝึกอบรม
ML Model Training และ Re-training Pipeline
เมื่อวิศวกรรมฟีเจอร์เสร็จสมบูรณ์ ขั้นตอนต่อไปคือการฝึกอบรมโมเดล ML การฝึกอบรมโมเดล ML เป็นกระบวนการที่ต้อง ทำซ้ำหลายครั้ง และนี่คือสาเหตุที่เรียกอีกอย่างว่าการทดลองโมเดล ML นักวิทยาศาสตร์ข้อมูลต้องทำการทดลองหลายอย่างด้วยพารามิเตอร์และไฮเปอร์พารามิเตอร์ที่แตกต่างกัน เพื่อค้นหาโมเดลที่มีประสิทธิภาพดีที่สุด ดังนั้น นักวิทยาศาสตร์ข้อมูลจึงต้องการวิธีการที่เป็นระบบในการบันทึกและติดตามไฮเปอร์พารามิเตอร์และเมตริกของการทดสอบทุกครั้ง เพื่อให้พวกเขาสามารถเปรียบเทียบการทดสอบแต่ละครั้ง และค้นหาสิ่งที่ดีที่สุดได้ มีไลบรารีโอเพ่นซอร์สบางตัวที่สามารถช่วยให้นักวิทยาศาสตร์ข้อมูลบันทึกและติดตามการทดลองแบบจำลองเช่นmlflow mlflow เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับจัดการวงจรชีวิต ML รวมถึงการทดลอง การทำซ้ำ การปรับใช้ และการลงทะเบียนโมเดลส่วนกลาง
นอกเหนือจากการฝึกอบรมแบบจำลองแล้ว นักวิทยาศาสตร์ข้อมูลยังต้องประเมินและทดสอบแบบจำลองก่อนที่จะคุ้นเคยกับการวางแบบจำลองในสภาพแวดล้อมการผลิตจริง พวกเขาต้องทำให้แน่ใจว่าโมเดลจะทำงานได้ดีกับข้อมูลสดในโลกแห่งความเป็นจริง เช่นเดียวกับที่ทำกับข้อมูลการฝึกอบรม ดังนั้น การเลือกชุดข้อมูลทดสอบที่เหมาะสมและการเลือกเมตริกประสิทธิภาพที่เกี่ยวข้องมากที่สุดจึงมีความสำคัญมาก ด้วย MLOps ทั้งการฝึกอบรมแบบจำลองและการประเมินแบบจำลองจำเป็นต้องทำงานโดยอัตโนมัติ
ความท้าทายที่สำคัญของระบบที่ขับเคลื่อนด้วย ML คือประสิทธิภาพของโมเดลนั้นพิจารณาจากข้อมูลที่ใช้ในการฝึก อย่างไรก็ตามข้อมูลจะเปลี่ยนแปลงอยู่เสมอ ดังนั้นการฝึกอบรมโมเดลซ้ำจึงมีความจำเป็นอย่างยิ่งสำหรับสถานการณ์ที่ขับเคลื่อนด้วย ML ส่วนใหญ่ โดยทั่วไป มีหลายวิธีในการทริกเกอร์การฝึกโมเดลซ้ำ:
- ตามกำหนดการ —แบบจำลองได้รับการฝึกอบรมซ้ำด้วยข้อมูลล่าสุดในช่วงเวลาที่กำหนดไว้ล่วงหน้า เช่น สัปดาห์ละครั้ง ขึ้นอยู่กับความเร็วของการเปลี่ยนแปลงข้อมูลและข้อกำหนดทางธุรกิจเพิ่มเติม ความถี่ของกำหนดการอาจแตกต่างกันไปอย่างมาก
- อิงตามทริกเกอร์ — โมเดลจะถูกเรียกใช้เพื่อฝึกใหม่เมื่อมีการระบุการดริฟต์ เช่น การดริฟต์ข้อมูล การดริฟต์คุณลักษณะ หรือการเสื่อมประสิทธิภาพของโมเดล เพื่อให้บรรลุวิธีอัตโนมัติในการฝึกโมเดลใหม่ จำเป็นต้องมีโซลูชันการตรวจสอบที่มีประสิทธิภาพเพื่อตรวจสอบทั้งการเปลี่ยนแปลงข้อมูลและการเปลี่ยนแปลงโมเดล
การอนุมานโมเดล ML/ไปป์ไลน์การให้บริการ
เมื่อโมเดลได้รับการฝึกอบรมและประเมินแล้ว ขั้นตอนต่อไปคือการนำโมเดลไปใช้ในสภาพแวดล้อมการผลิตจริงเพื่อใช้งาน โดยทั่วไป มี 2 วิธีในการให้บริการโมเดล ML ที่ผ่านการฝึกอบรม:
- การอนุมานแบบออฟไลน์ — แบบจำลอง ML ถูกเรียกสำหรับการคาดคะเนที่ความถี่หนึ่งๆ ความถี่อาจสูงเป็นรายวัน รายสัปดาห์ หรือนานกว่านั้น แต่ก็อาจต่ำถึงทุกนาทีได้เช่นกัน เมื่อความถี่ต่ำมาก (บ่อยมาก) คุณสามารถรวมไปป์ไลน์ข้อมูลการสตรีมเข้ากับการอนุมานโมเดล ML เมื่อปริมาณข้อมูลสำหรับการอนุมานเป็นชุดมีขนาดใหญ่มาก จำเป็นต้องมีกรอบการคำนวณแบบกระจาย ตัวอย่างเช่น คุณสามารถโหลดโมเดลเป็น Spark User Defined Function (UDF) และนำไปใช้ตามขนาดโดยใช้การคำนวณแบบกระจายสำหรับการอนุมานแบบขนาน
- การอนุมานตามเวลาจริงออนไลน์ — โมเดล ML ได้รับการบรรจุเป็นจุดสิ้นสุด REST API สำหรับการอนุมานตามเวลาจริงออนไลน์ โดยทั่วไป โมเดล ML แบบบรรจุจะฝังอยู่ในแอปพลิเคชัน ซึ่งการคาดคะเนโมเดลจะถูกสร้างขึ้นตามคำขอ เมื่อคำขอมีปริมาณมาก สามารถรวมโมเดลเข้ากับอิมเมจคอนเทนเนอร์และปรับใช้ในสภาพแวดล้อม Kubernetes เพื่อการปรับขนาดอัตโนมัติ เพื่อตอบสนองต่อคำขอการคาดการณ์จำนวนมาก
- การทำนายการดริฟท์
- การดริฟท์ข้อมูล / คุณสมบัติ
- เป้าหมายล่องลอย
- คุณภาพข้อมูล
จนถึงตอนนี้ เราได้ครอบคลุม 3 ไปป์ไลน์สำคัญของโซลูชัน MLOps ที่สมบูรณ์ — ไปป์ไลน์วิศวกรรมข้อมูลและคุณลักษณะ การฝึกอบรมโมเดล ML และไปป์ไลน์การฝึกซ้ำ และไปป์ไลน์การอนุมานโมเดล ML ตลอดจนการตรวจสอบโมเดล ML
สเกลสเปกตรัมของโซลูชัน MLOps
MLOps เป็นแนวคิดที่ค่อนข้างใหม่และคุณอาจบอกได้จากบทนำข้างต้นว่า MLOps เกี่ยวข้องกับการประกอบองค์ประกอบต่างๆ เข้าด้วยกันเพื่อให้ AI ทำงานในโลกแห่งความเป็นจริง ดังนั้น หลายคนคิดว่า MLOps นั้นน่ากลัวและซับซ้อน อย่างไรก็ตาม มีสเกลสเปกตรัมที่ต้องวาด เมื่อเราพูดถึงการใช้โซลูชัน MLOps แบบ end-to-end
ตัวอย่างเช่น หากโซลูชัน ML ของคุณมีขนาดเล็กและเป็นแบทช์ — ไปป์ไลน์ข้อมูลแบบแบตช์ การฝึกอบรมแบบแบตช์ การอนุมานแบบแบตช์ และปริมาณข้อมูลไม่ต้องการการประมวลผลแบบกระจาย ดังนั้นการนำ MLOps ไปใช้ก็ไม่ใช่เรื่องยาก และแม้แต่นักวิทยาศาสตร์ข้อมูลก็สามารถเป็น “ full-stack” และเป็นเจ้าของโซลูชันทั้งหมด อย่างไรก็ตาม หากคุณกำลังพูดถึงสเกลขนาดใหญ่ การฝึกอบรมอย่างต่อเนื่อง และการอนุมานแบบเรียลไทม์ มันอาจจะค่อนข้างซับซ้อน โดยต้องใช้หลายทีมและชุดของโครงสร้างพื้นฐานที่แตกต่างกันในการทำงานร่วมกัน
ดังนั้น ในโพสต์ถัดไป ฉันจะอธิบายสถาปัตยกรรมอ้างอิง ML บางส่วนและแนวทางปฏิบัติที่ดีที่สุดสำหรับการนำ MLOps ไปใช้ในสเกลต่างๆ เนื่องจากแต่ละสเกลอาจเกี่ยวข้องกับชุดทักษะและการตั้งค่าโครงสร้างพื้นฐานที่แตกต่างกัน คอยติดตาม.
ฉันหวังว่าคุณจะสนุกกับการอ่านบล็อกนี้ หากคุณต้องการรับการแจ้งเตือนเมื่อมีการเผยแพร่บล็อกใหม่ โปรดอย่าลังเลที่จะติดตามฉันบนสื่อ ซึ่งจะกระตุ้นให้ฉันเขียนมากขึ้นอย่างแน่นอน
หากคุณต้องการดูคำแนะนำเพิ่มเติม ข้อมูลเชิงลึก และข้อมูลเชิงลึกเกี่ยวกับสแต็ค data+AI ที่ทันสมัยและมีประสิทธิภาพ โปรดสมัครรับจดหมายข่าวฟรีของฉัน — สแต็คData+AI ที่มีประสิทธิภาพขอบคุณ!
หมายเหตุ: ในกรณีที่คุณยังไม่ได้เป็นสมาชิก Medium และต้องการเข้าถึงสื่อแบบไม่จำกัด คุณสามารถสมัครโดยใช้ลิงก์อ้างอิง ของฉัน ! ฉันจะได้รับค่าคอมมิชชั่นเล็กน้อยโดยไม่มีค่าใช้จ่ายสำหรับคุณ ขอบคุณมากสำหรับการสนับสนุนของคุณ!