MLOps
การสำรวจวงจรการเรียนรู้ของเครื่อง
วิวัฒนาการของวงจรชีวิต ML จากการขุดข้อมูลแบบแบตช์ที่จำกัดทรัพยากรไปจนถึง MLOps ในระดับคลาวด์
ทุกคนพูดถึง MLOps มานานกว่าหนึ่งปีแล้ว ฉันมองไปรอบๆ เพื่อดูว่าวงจรชีวิตและกระบวนการต่างๆ มีการพัฒนาอย่างไร
วินัยในการแสวงหาข้อมูลเชิงลึกจากข้อมูลมีมานานกว่า 25 ปีแล้ว สมัยนั้นเรียกว่าการขุดข้อมูล ในบทความนี้ ฉันนำเสนอแบบสำรวจเกี่ยวกับกระบวนการวงจรชีวิต ML และสรุปพร้อมความคิดเห็นของฉัน ดังนั้นหากคุณรีบ ให้ข้ามไปที่ส่วนสุดท้ายของ TL;DR
ขั้นตอนกว้างๆ ในการทำเหมืองข้อมูล/วิทยาศาสตร์ยังคงเหมือนเดิมไม่มากก็น้อย:
- ทำความเข้าใจโดเมนหรือปัญหาทางธุรกิจ
- รวบรวมข้อมูลที่จำเป็นจากแหล่งต่างๆ
- ดูแลจัดการข้อมูล ทำความสะอาด และติดป้ายกำกับ
- แปลงข้อมูล ประสาน และจัดรูปแบบ
- สำรวจและแสดงภาพข้อมูล
- ฝึก โมเดล ตรวจสอบความถูกต้อง และปรับแต่งไฮเปอร์พารามิเตอร์
- ใช้หรือปรับใช้โมเดล
แต่ลักษณะของข้อมูล การประมวลผล และแอปพลิเคชันมีการเปลี่ยนแปลงไปอย่างมาก:
- ขนาด: ปริมาณข้อมูลที่วิเคราะห์เพิ่มขึ้นมากมาย
- การใช้งานอย่างแพร่หลาย: แอปพลิเคชันที่ขับเคลื่อนด้วย ML เป็นส่วนหนึ่งของชีวิตประจำวันของเรา และเราต้องพึ่งพาแอปพลิเคชันเหล่านี้เป็นอย่างยิ่ง
- แบทช์เทียบกับออนไลน์: โมเดลเหล่านี้ถูกใช้ก่อนหน้านี้ในโหมดแบทช์เพื่อดึงข้อมูลเชิงลึกและเป็นแนวทางในการตัดสินใจทางธุรกิจ ปัจจุบันมีการใช้โมเดลมากขึ้นเพื่อรองรับการอนุมานในวงกว้าง
วิวัฒนาการสามารถแบ่งคร่าวๆ ได้เป็น 3 ยุค (ไทม์ไลน์ซ้อนทับกัน):
- ยุคแบทช์: ไปป์ไลน์ ETL นำข้อมูลจากระบบปฏิบัติการไปยังคลังข้อมูลและศูนย์ข้อมูล และหลังจากนั้นข้อมูลก็ถูกขุดขึ้นมา
- ยุคข้อมูลขนาดใหญ่: ข้อมูลมีขนาดใหญ่เกินไปสำหรับคลังสินค้าในยุคนั้น ข้อมูลที่สตรีมใน Data Lake ซึ่งมักจะกลายเป็นหนองน้ำ มีองค์กรเพียงไม่กี่แห่งเท่านั้นที่ปรับใช้โมเดลออนไลน์
- ยุค MLOps: ทำให้ทุกคนปรับใช้โมเดลออนไลน์อย่างต่อเนื่องได้อย่างง่ายดาย
ทีโอซี
- ยุคแบทช์
- KDD: การค้นพบความรู้ในฐานข้อมูล (KDD)
- CRISP-DM: กระบวนการมาตรฐานอุตสาหกรรม CRoss สำหรับการขุดข้อมูล
- SEMMA: ตัวอย่าง สำรวจ , ปรับเปลี่ยน, สร้างแบบจำลอง และประเมิน - ยุค Big Data
- OSEMN: รับ ขัดเกลา สำรวจ สร้างโมเดล iNterpret
- TDSP: วงจรชีวิตกระบวนการวิทยาศาสตร์ข้อมูลของทีม Microsoft - ยุค MLOps
- ML พบกับ DevOps
- Data-ML-Dev-Ops Loop
- Google Cloud
- Amazon Web Services
- ไมโครซอฟต์ Azure - มุมมองของฉันเกี่ยวกับวงจรการใช้งาน ML
- Model Development Loop
- นำทุกอย่างมารวมกัน - "สรุป"
ยุคแบตช์
คุณสามารถเรียกมันว่าสมัยโบราณ อินเทอร์เน็ตยังอยู่ในช่วงตั้งไข่ แอปพลิเคชันระดับองค์กรส่วนใหญ่สร้างและประมวลผลข้อมูลเป็นชุด
แอปพลิเคชันและข้อมูลถูกเก็บไว้ในแผนกต่างๆ ขององค์กร ความท้าทายคือการนำทุกอย่างมารวมกันเพื่อให้ส่วนรวมมีค่ามากกว่าผลรวมของส่วนต่างๆ
การสร้างแบบจำลองข้อมูล “Schema-on-Write” มีความสำคัญมาก ไปป์ไลน์ข้อมูล Batch ETL นำข้อมูลไปยังคลังข้อมูลแบบรวมศูนย์ มันถูกรวบรวมและจัดเก็บไว้ในดาต้ามาร์ท โดยแต่ละแห่งสำหรับสายธุรกิจ แผนก หรือสาขาวิชาเฉพาะ
ข้อมูลไม่ใหญ่มากนัก RDBMS พร้อมดัชนีเชิงคอลัมน์ มีประโยชน์และ OLAP Cubes ครองวันนั้น
การทำเหมืองข้อมูลส่วนใหญ่เป็นการดำเนินการในห้องลับ บทบาทของมันคือการดึงข้อมูลเชิงลึกที่จำเป็นสำหรับการตัดสินใจทางธุรกิจ ดังนั้นกระบวนการของเวลาจึงสะท้อนถึงโหมดการขุดข้อมูลแบบแบตช์นี้
KDD: การค้นพบความรู้ในฐานข้อมูล
การแยกข้อมูลเชิงลึกออกจากข้อมูลมีมาก่อน Big Data KDD Process ("Knowledge Discovery and Data Mining: Towards a Unifying Framework" โดย Fayyad et. al., 1996) เป็นหนึ่งในกลุ่มแรกๆ ที่กำหนดกรอบการทำงานสำหรับ data mining ในฐานข้อมูล กระบวนการ KDD มี 5 ขั้นตอนพร้อมข้อเสนอแนะ:
- การเลือก: การเลือกชุดข้อมูล ชุดย่อยของตัวแปร หรือตัวอย่างข้อมูล
- การประมวลผลล่วงหน้า: ล้างข้อมูล จัดการค่าที่หายไป ฯลฯ
- การเปลี่ยนแปลง: การเลือกคุณลักษณะและการฉายภาพมิติเพื่อลดจำนวนตัวแปรที่มีประสิทธิผล
- การขุดข้อมูล: ใช้วิธีการขุดเจาะจง เช่น การสรุป การจัดหมวดหมู่ การถดถอย การจัดกลุ่ม
- การตีความและการประเมินผล: แยกรูปแบบ/แบบจำลอง รายงานพร้อมกับการแสดงภาพข้อมูล
ไปป์ไลน์ข้อมูล สมัยใหม่มีขั้นตอนเดียวกันค่อนข้างมาก
CRISP-DM: กระบวนการมาตรฐานอุตสาหกรรมข้ามสำหรับการขุดข้อมูล
จากนั้นกระบวนการ CRISP-DM ก็มาถึง ("แบบจำลอง CRISP-DM: พิมพ์เขียวใหม่สำหรับการทำเหมืองข้อมูล" โดย Colin Shearer, 2000) ซึ่งยังคงมีอิทธิพลมาจวบจนทุกวันนี้ ("CRISP-ML(Q)") โดยอธิบายว่า “นักวิเคราะห์ข้อมูล” ควรเริ่มต้นจากความต้องการทางธุรกิจ ขุดข้อมูล และ “ปรับใช้” โมเดลอย่างไร โดยแบ่งกระบวนการขุดข้อมูลออกเป็น 6 ขั้นตอนหลัก:
- ความเข้าใจทางธุรกิจ: กำหนดวัตถุประสงค์ทางธุรกิจ ประเมินทรัพยากร ข้อกำหนด ข้อจำกัด ความเสี่ยง และเหตุฉุกเฉิน กำหนดเป้าหมายการทำเหมืองข้อมูลและจัดทำแผนโครงการ
- ความเข้าใจข้อมูล: รวบรวมข้อมูลเริ่มต้น สำรวจข้อมูล และตรวจสอบคุณภาพของข้อมูล
- การเตรียมข้อมูล: เลือกและล้างข้อมูล เพิ่มแอตทริบิวต์ที่ได้รับและบันทึกที่สร้างขึ้น ผสานข้อมูลและจัดรูปแบบตามสคีมาที่ต้องการ
- การสร้างแบบจำลอง: สร้างแบบจำลองและประเมินคุณภาพ
- การประเมิน: ตรวจสอบโครงสร้างของแบบจำลองเพื่อให้แน่ใจว่าบรรลุวัตถุประสงค์ทางธุรกิจที่ระบุไว้
- การใช้งาน: สร้างรายงาน หรือใช้กระบวนการขุดข้อมูลที่ทำซ้ำได้ทั่วทั้งองค์กร วางแผนการติดตามผลการขุดข้อมูล และการบำรุงรักษากระบวนการกำหนดเวลาข้อมูล
“การปรับใช้” คือจุดที่มันมาก่อนเวลา ไม่มีวิธีใดในการปรับใช้โมเดลเป็นฟังก์ชันการอนุมาน โดยระบุไว้ (ลูกค้าในที่นี้หมายถึงลูกค้าของนักวิเคราะห์ เช่น องค์กรธุรกิจ/ผู้จัดการ):
ความรู้ที่ได้รับจะต้องได้รับการจัดระเบียบและนำเสนอในลักษณะที่ลูกค้าสามารถใช้งานได้ ซึ่งมักจะเกี่ยวข้องกับการใช้แบบจำลอง "สด" ภายในกระบวนการตัดสินใจขององค์กร เช่น การปรับหน้าเว็บเพจให้เป็นส่วนตัวแบบเรียลไทม์ หรือการให้คะแนนฐานข้อมูลการตลาดซ้ำ ๆ .
ขั้นตอนการปรับใช้อาจทำได้ง่ายเพียงแค่สร้างรายงานหรือซับซ้อนเท่ากับการใช้กระบวนการขุดข้อมูลที่ทำซ้ำได้ทั่วทั้งองค์กร ทั้งนี้ขึ้นอยู่กับข้อกำหนด แม้ว่าลูกค้ามักจะเป็นผู้ดำเนินขั้นตอนการปรับใช้ ไม่ใช่นักวิเคราะห์ข้อมูล แต่สิ่งสำคัญคือลูกค้าจะต้องเข้าใจล่วงหน้าว่าต้องดำเนินการอย่างไรเพื่อใช้งานโมเดลที่สร้างขึ้นได้จริง
SEMMA: ตัวอย่าง สำรวจ ปรับเปลี่ยน สร้างแบบจำลอง และประเมิน
SEMMA ย่อมาจาก Sample, Explore, Modify, Model และ Assess เป็นรายการขั้นตอนตามลำดับที่พัฒนาโดย SAS Institute เพื่อเป็นแนวทางในการใช้งานแอปพลิเคชันการทำเหมืองข้อมูล
- ตัวอย่าง: ตัวอย่างและเลือกข้อมูลสำหรับการสร้างแบบจำลอง
- สำรวจ: แสดงภาพข้อมูลเพื่อค้นหาความสัมพันธ์ที่คาดหวังและไม่คาดคิดระหว่างตัวแปรข้อมูล และระบุความผิดปกติ
- แก้ไข: เลือกและแปลงตัวแปรข้อมูลเพื่อเตรียมข้อมูลสำหรับการสร้างแบบจำลอง
- โมเดล: ใช้เทคนิคการสร้างแบบจำลองต่างๆ เพื่อเตรียมข้อมูล
- ประเมิน: ประเมินและเปรียบเทียบประสิทธิภาพของแบบจำลอง
ดูเหมือนว่าขั้นตอน SEMMA จะอยู่ระหว่าง KDD และ CRISP-DM
ยุคข้อมูลขนาดใหญ่
ข้อมูลมีความสามารถที่แปลกประหลาดในการพัฒนาเร็วกว่าเทคโนโลยีการจัดเก็บและการประมวลผลใดๆ ข้อมูลขนาดใหญ่มาถึงแล้วและคลังข้อมูลไม่เพียงพอสำหรับการประมวลผลกองข้อมูลที่ธุรกิจสร้างขึ้น ดังนั้นเราจึงคิดค้น Data Lake (พื้นที่เก็บข้อมูล blobs) เพื่อจัดเก็บไฟล์ข้อมูลดิบในทุกขนาด สิ่งนี้นำไปสู่การเปลี่ยนจาก "สคีมาเมื่อเขียน" เป็น "สคีมาเมื่ออ่าน"
ในไม่ช้า ทุกคนก็เริ่มทิ้งข้อมูลใดก็ตามที่พวกเขารู้สึกลงใน Data Lake ในรูปแบบ/สคีมาใดก็ตามที่พวกเขาจินตนาการ Data Lakes กลายเป็น Data Swamp ข้อมูลที่มีอยู่มากมายควบคู่ไปกับการขาดแคลนข้อมูลที่ใช้งานได้ การทำความสะอาดข้อมูลกลายเป็นเรื่องสำคัญ
คุณสามารถเรียกมันว่ายุคกลาง ขนาดของการวิเคราะห์ข้อมูลและระบบธุรกิจอัจฉริยะเติบโตขึ้นมากมาย Data Scientist กลายเป็นงานที่เซ็กซี่ที่สุด.
การรวบรวมข้อมูลและไปป์ไลน์เป็นแบบอัตโนมัติและดำเนินการตามจังหวะรายวันเป็นส่วนใหญ่ บ่อยครั้งที่แดชบอร์ดการวิเคราะห์ข้อมูลได้รับการอัปเดตในการประมวลผลข้อมูลแบบสตรีมและการสตรีมแบบเรียลไทม์ แต่องค์กรส่วนใหญ่ใช้แบบจำลองการคาดการณ์ในโหมดแบตช์เพื่อเป็นแนวทางในการตัดสินใจทางธุรกิจและผลิตภัณฑ์ของตน และมีโมเดล ML เพียงไม่กี่ตัวที่ใช้งานจริงในการผลิตเพื่อการอนุมานแบบเรียลไทม์ออนไลน์
วงจรชีวิตและกระบวนการได้รับการปรับให้รวมขั้นตอนที่ชัดเจนสำหรับไปป์ไลน์ข้อมูล การฝึกโมเดล การตรวจสอบความถูกต้อง และแม้กระทั่งการใช้งาน (ด้วยตนเอง)
OSEMN: Obtain, Scrub, Eสำรวจ, Model และ IN แข็งแกร่ง>น่ากลัว
Hilary Mason และ Chris Wiggins บรรยายกระบวนการ OSEMN ในบล็อกโพสต์ “A Taxonomy of Data Science” (ลงวันที่ 25 กันยายน 2010) มี 5 ขั้นตอน: Obtain, Scrub, Eสำรวจ, Model และ I ไม่เป็นไร
- รับ: การชี้และการคลิกไม่ได้ปรับขนาด
รวบรวมข้อมูลหรือใช้ API เพื่อรวบรวมข้อมูลโดยอัตโนมัติ - ขัดผิว: โลกเป็นสถานที่ที่ยุ่งเหยิง
โมเดลของคุณก็จะยุ่งเหยิงเช่นกัน เว้นแต่คุณจะล้างข้อมูลและกำหนดรูปแบบข้อมูลให้เป็นรูปแบบมาตรฐาน - สำรวจ: คุณสามารถมองเห็นได้มากมายจากการมอง
นี่คือสิ่งที่เราทำในการวิเคราะห์ข้อมูลเชิงสำรวจ (EDA) - โมเดล: แย่เสมอ บางครั้งน่าเกลียด
ปรับฟังก์ชันการสูญเสียที่เลือกให้เหมาะสม และเลือกสิ่งที่ดีที่สุดผ่านการตรวจสอบข้าม - ตีความ: จุดประสงค์ของการคำนวณคือความเข้าใจ ไม่ใช่ตัวเลข.
ผลลัพธ์ทางสถิติต่างจากคณิตศาสตร์ตรงที่ต้องมีการตีความที่ละเอียดถี่ถ้วน
ขณะนี้บล็อกนี้ใช้งานไม่ได้แล้ว แต่คุณสามารถ "อ่านได้จากเอกสารเก่าของเว็บ" อย่างที่คุณเห็น มันยังคงเหมือนกับ KDD/CRISP-DM มาก แต่คำอธิบายของขั้นตอนต่างๆ สะท้อนถึงความเป็นจริงของข้อมูลขนาดใหญ่ในระดับเว็บ
TDSP: วงจรชีวิตกระบวนการวิทยาศาสตร์ข้อมูลของทีม Microsoft
วงจรการใช้งาน Team Data Science Process (TDSP) ของ Microsoft มีสี่ขั้นตอน:
- ความเข้าใจทางธุรกิจ
- การได้มาและความเข้าใจข้อมูล
- การสร้างแบบจำลอง
- การปรับใช้
ขั้นตอน "การได้มาและความเข้าใจ" และ "การสร้างแบบจำลอง" จะแบ่งออกเป็นขั้นตอนที่มีรายละเอียดมากขึ้น มันถูกมองว่าเป็นโมเดลน้ำตกที่ลงท้ายด้วยการยอมรับของลูกค้า แต่ก็ไม่ต้องใช้จินตนาการมากนักในการขยายให้เป็นแบบโต้ตอบ
มันเป็นสิ่งที่บริษัทส่วนใหญ่ติดตามอยู่ในปัจจุบันทั้งโดยรู้หรือไม่รู้ตัว
ในรายงานที่ “การประชุม ICSE-SEIP 2019”, “Saleema Amershi และคณะ จาก Microsoft Research» อธิบาย 9 ขั้นตอนของเวิร์กโฟลว์การเรียนรู้ของเครื่องที่แตกต่างจาก TDSP:
บางขั้นตอนเป็นแบบเน้นข้อมูล (เช่น การรวบรวม การทำความสะอาด และการติดฉลาก) และขั้นตอนอื่นๆ เป็นแบบเน้นโมเดล (เช่น ข้อกำหนดของโมเดล วิศวกรรมคุณลักษณะ การฝึกอบรม การประเมินผล การปรับใช้ และการตรวจสอบ) มีฟีดแบ็คย้อนกลับมากมายในเวิร์กโฟลว์ ลูกศรป้อนกลับขนาดใหญ่แสดงว่าการประเมินและการตรวจสอบแบบจำลองอาจวนกลับไปยังขั้นตอนก่อนหน้า ลูกศรป้อนกลับขนาดเล็กแสดงให้เห็นว่าการฝึกโมเดลอาจวนกลับไปสู่วิศวกรรมเชิงคุณลักษณะ (เช่น ในการเรียนรู้แบบเป็นตัวแทน)
ยุค MLOps
การเพิ่มขึ้นของ DevOps บ่งบอกถึงยุคสมัยใหม่ เมื่อองค์กรปรับใช้โมเดล ML ในการผลิตเป็นประจำโดยเป็นส่วนหนึ่งของแอปพลิเคชันซอฟต์แวร์/ผลิตภัณฑ์ของตน พวกเขาต้องการกระบวนการวิทยาศาสตร์ข้อมูลที่เหมาะกับแนวทางปฏิบัติที่ดีที่สุดของ DevOps ของ Continous Integration และ Continous Delivery (CI/CD) นั่นคือสิ่งที่กระตุ้นให้เกิดกระแสความนิยมของ MLOps
บริษัทส่วนใหญ่ยังไม่มีและผมขอกล้าพูดว่าต้องการมันในปัจจุบัน ปัจจุบันมีเพียงบริษัทขนาดใหญ่อย่าง FAANG เท่านั้นที่มีธุรกิจที่ต้องปรับใช้โมเดลหลายพันโมเดลทุก ๆ ชั่วโมงเพื่อให้บริการผู้ใช้ปลายทางหลายล้านคน แต่เมื่อ ML ซึมเข้าไปในแอปพลิเคชันต่างๆ มากขึ้น บริษัทต่างๆ จะเริ่มนำกระบวนการที่มีการฝึกอบรม การบูรณาการ และการส่งมอบโมเดล ML อย่างต่อเนื่อง
ML พบกับ DevOps: 3 ลูป
วิธีที่ชัดเจนในการผสมผสาน ML เข้ากับ DevOps คือการสร้าง "MLOps loop" โดยการเพิ่ม ML ให้กับ DevOps infinite loop และปรับ Dev และ Ops ให้เหมาะกับวิทยาศาสตร์ข้อมูล
สังเกตว่าลูปนี้มีข้อมูลและโมเดลเป็นขั้นตอนเดียวที่แสดงลักษณะของการประมวลผลข้อมูลและการสร้างแบบจำลอง ในทางกลับกัน กระบวนการที่กล่าวถึงจนถึงตอนนี้เกี่ยวข้องกับสองขั้นตอนนี้ เท่านั้น IMO การครอบงำของ Ops ในกระบวนการนั้นเป็นการถอยหลังหนึ่งก้าว
มีความพยายามอื่นในการวนซ้ำ MLOps แบบ 3 ห่วงเช่นกัน ตัวอย่างเช่น ต่อไปนี้รวบรวม 3 ระยะกว้างๆ กระบวนการ MLOps แบบวนซ้ำและเพิ่มขึ้น มี 3 ระยะกว้างๆ (ซึ่งยังคงเป็น IMO แบบหยาบ):
Data-ML-Dev-Ops วนซ้ำ
โพสต์บนบล็อกโดย Danny Farah บรรยายถึง «วงจรชีวิต MLOps 4 ลูป โดยวนลูปสำหรับ Data, ML, Dev และ Ops อย่างละ 1 ลูป ฉันชอบมันด้วยเหตุผลสองประการ:
- โดยจะเก็บรายละเอียดของข้อมูลและขั้นตอน ML
- มันให้ความรู้สึกคุ้นเคยมากขึ้น DevOps วนซ้ำไม่สิ้นสุด
คล้ายกับ DevOps แต่ก็ยังให้ความรู้สึกแตกต่าง ถือเป็นโอกาสที่พลาดไปที่จะนำนักพัฒนา วิศวกรข้อมูล และนักวิทยาศาสตร์ข้อมูลมาเผชิญหน้ากัน บทเรียน 3 บทของฉันในการปรับปรุงอัตราความสำเร็จของโครงการ ML คือ "รวบรวมความเป็นเจ้าของ บูรณาการตั้งแต่เนิ่นๆ และทำซ้ำบ่อยๆ" สิ่งสำคัญคือต้องมีกระบวนการวงจรชีวิตเดียวที่ให้ความยืดหยุ่นแก่ทั้ง 3 กระบวนการในการดำเนินการในจังหวะที่แตกต่างกัน การมองเห็นโดยรวมต่อผู้มีส่วนได้ส่วนเสียทั้งหมดจะช่วยลดความประหลาดใจและด้วยเหตุนี้จึงปรับปรุงความสำเร็จ
กูเกิลคลาวด์
การอภิปรายเกี่ยวกับ MLOps จะไม่สมบูรณ์หากไม่ได้หารือเกี่ยวกับผู้ให้บริการคลาวด์รายใหญ่ 3 รายที่มีบริการ ML ขนาดใหญ่
Google ถือเป็นร้านแมชชีนเลิร์นนิงที่เก่าแก่ที่สุดและใหญ่ที่สุดด้วยแพลตฟอร์ม MLOps Vertex AI ได้เผยแพร่เอกสารไวท์เปเปอร์ชื่อ “คู่มือผู้ปฏิบัติงานเกี่ยวกับ MLOps” ในเดือนพฤษภาคม 2021 ฉันกำลังอ้างอิงส่วนวงจรชีวิต MLOps จากเอกสารไวท์เปเปอร์ที่อธิบายส่วนต่างๆ ต่อไปนี้:
- การพัฒนา ML: การทดลองและพัฒนาขั้นตอนการฝึกโมเดลที่มีประสิทธิภาพและทำซ้ำได้ (โค้ดไปป์ไลน์การฝึก) ซึ่งประกอบด้วยงานหลายอย่างตั้งแต่การเตรียมข้อมูลและการแปลงไปจนถึงการฝึกโมเดลและการประเมินผล
- การดำเนินการฝึกอบรม: ทำให้กระบวนการบรรจุ การทดสอบ และการปรับใช้ไปป์ไลน์การฝึกอบรมที่ทำซ้ำได้และเชื่อถือได้เป็นอัตโนมัติ
- การฝึกอบรมอย่างต่อเนื่อง: ดำเนินการขั้นตอนการฝึกอบรมซ้ำๆ เพื่อตอบสนองต่อข้อมูลใหม่ การเปลี่ยนแปลงโค้ด หรือตามกำหนดเวลา โดยอาจมีการตั้งค่าการฝึกอบรมใหม่
- การนำโมเดลไปใช้: จัดทำแพ็กเกจ ทดสอบ และปรับใช้โมเดลกับสภาพแวดล้อมการให้บริการสำหรับการทดลองออนไลน์และการให้บริการการผลิต
- การแสดงการคาดการณ์: ให้บริการโมเดลที่ใช้งานจริงในการผลิตเพื่อการอนุมาน
- การตรวจสอบอย่างต่อเนื่อง: การตรวจสอบประสิทธิภาพและประสิทธิภาพของแบบจำลองที่ปรับใช้
- การจัดการข้อมูลและโมเดล: ฟังก์ชันแบบตัดขวางส่วนกลางสำหรับการควบคุมอาร์ติแฟกต์ ML เพื่อสนับสนุนการตรวจสอบ ตรวจสอบย้อนกลับ และการปฏิบัติตามข้อกำหนด
อเมซอนเว็บเซอร์วิส
Amazon เป็นเจ้าแรกที่นำเสนอแพลตฟอร์ม MLOps แบบครบวงจร: SageMaker โดยเผยแพร่เอกสารไวท์เปเปอร์ “MLOps: Emerging Trends in Data, Code,
and Infrastructure, AWS Whitepaper” ในเดือนมิถุนายน 2022 ซึ่งกำหนดวงจรชีวิตที่เรียบง่ายกว่ามาก มันง่ายมากจนอธิบายได้ในตัว ดูเหมือน KDD และ CRISP-DM มากกว่า DevOps loop
ไมโครซอฟต์ อาซัวร์
Microsoft ยังเผยแพร่สมุดปกขาว MLOps “MLOps with Azure Machine Learning” ในเดือนสิงหาคม 2021 ซึ่งกำหนดวงจรชีวิต ML และเวิร์กโฟลว์ MLOps คล้ายกับ AWS: เรียบง่ายและอธิบายได้ในตัว
มุมมองของฉันเกี่ยวกับ ML Lifecycle
บทความนี้ยาวกว่าที่ฉันคิดไว้มาก ดังนั้นขอขอบคุณสำหรับความอดทนของคุณในการอ่านมัน หากกระโดดมาที่นี่เพื่อ TL; DR ก็ขอขอบคุณที่ใส่ใจอ่านเทคของฉัน
ประการแรก อะไรคือคุณลักษณะสำคัญของวงจรชีวิต ML ในยุค MLOps?
- มีวิวัฒนาการ และไม่ปฏิวัติ นักวิทยาศาสตร์ด้านข้อมูลที่ติดตาม CRISP-DM, OSEMN หรือ TDSP ควรจะรู้สึกคุ้นเคย นอกจากนี้ยังควรให้ความรู้สึกคุ้นเคยสำหรับวิศวกรที่ติดตาม DevOps infinite loop
- ปรับให้เหมาะสมเพื่อการจดจำ แทนที่จะแม่นยำ กระบวนการที่จดจำง่ายมีแนวโน้มที่จะได้รับการปฏิบัติตามและกลายเป็นส่วนหนึ่งของคำศัพท์ของทีม ตัวอย่างเช่น DevOps infinite loop นั้นไม่แม่นยำ แต่ละขั้นตอนจะมีลูกศรย้อนกลับไปยังขั้นตอนก่อนหน้าหลายจุด ไม่ใช่ทุกอย่างหลังจากการทดสอบจะนำไปสู่การเผยแพร่ ความล้มเหลวกลับไปสู่หลักจรรยาบรรณหรือแม้แต่ขั้นตอนการวางแผน
- อำนวยความสะดวกในการนำโมเดล ML ไปใช้งานจริง ควรปรับปรุงการมองเห็นและการทำงานร่วมกันระหว่างทีมนักพัฒนา นักวิทยาศาสตร์ข้อมูล และวิศวกรข้อมูล โดยเฉพาะอย่างยิ่งปรัชญาของฉันที่ว่า "รวบรวมความเป็นเจ้าของ บูรณาการตั้งแต่เนิ่นๆ และทำซ้ำบ่อยๆ"
- ยืดหยุ่น ควรอนุญาตให้บางส่วนของทีมเลือกจังหวะได้ วิทยาศาสตร์ข้อมูลและการพัฒนาซอฟต์แวร์มีความแตกต่างกันโดยเนื้อแท้ นักวิทยาศาสตร์ข้อมูลไม่สามารถสร้างผลลัพธ์ที่เพิ่มขึ้นได้ทุกวัน เป้าหมายของวงจรชีวิตและกระบวนการคือการมองเห็นและการทำงานร่วมกัน ไม่ใช่การแข่งขันแบบสามขา
ห่วงการพัฒนาโมเดล
หากคุณเพิกเฉยต่อการปรับใช้ Model Development จะมีลูปไม่สิ้นสุดเหมือนกับ DevOps
ลองนึกถึง CRISP-DM ที่ถูกหล่อหลอมเป็นวงที่ไม่มีที่สิ้นสุด ขั้นตอนในวงจรการพัฒนาโมเดลคือ:
- กำหนด ปัญหาทางธุรกิจในแง่ ML
- รวบรวมข้อมูลที่จำเป็นจากแอปพลิเคชันภายในและแหล่งที่มาภายนอก
- ดูแลจัดการข้อมูล ทำความสะอาด ลบรายการที่ซ้ำกัน เติมค่าที่หายไป ติดป้ายกำกับ ฯลฯ และสุดท้ายก็จัดทำแคตตาล็อกและจัดเก็บ
- แปลงข้อมูล คำนวณคุณสมบัติเพิ่มเติม เปลี่ยนโครงสร้าง ฯลฯ
- ตรวจสอบข้อมูล ใช้การตรวจสอบคุณภาพ การกระจายข้อมูลบันทึก ฯลฯ
- สำรวจข้อมูล การวิเคราะห์ข้อมูลเชิงสำรวจ วิศวกรรมคุณลักษณะ ฯลฯ มีแนวโน้มว่าจะนำไปสู่การเพิ่มการแปลงและการตรวจสอบความถูกต้องของข้อมูลมากขึ้น
- ฝึก โมเดล ทำการทดลอง เปรียบเทียบประสิทธิภาพของโมเดล ปรับแต่งไฮเปอร์พารามิเตอร์ ฯลฯ
- ประเมินคุณลักษณะของแบบจำลองโดยเทียบกับวัตถุประสงค์ทางธุรกิจ ข้อเสนอแนะใดๆ อาจส่งผลให้มีการปรับแต่งและกำหนดปัญหา ML แตกต่างออกไป
วางมันทั้งหมดเข้าด้วยกัน
ทั้งวิทยาศาสตร์ข้อมูลและการพัฒนาซอฟต์แวร์มีไว้เพื่อตอบสนองเป้าหมายทางธุรกิจ ในแอปพลิเคชันที่ได้รับความช่วยเหลือจาก ML การออกแบบโมเดลจะต้องคำนึงถึงว่าจะส่งผลกระทบต่อประสบการณ์ผู้ใช้และข้อจำกัดของสภาพแวดล้อมการใช้งานอย่างไร ในทำนองเดียวกัน การออกแบบซอฟต์แวร์จะต้องมีการรวบรวมความคิดเห็นของผู้ใช้ที่ไม่เด่นชัดซึ่งจำเป็นสำหรับการปรับปรุงโมเดล
ในผลิตภัณฑ์ที่ได้รับความช่วยเหลือจาก ML การออกแบบแบบจำลองและการออกแบบซอฟต์แวร์มีความสัมพันธ์ทางชีวภาพ การออกแบบผลิตภัณฑ์ ขั้นตอนการวางแผน ต้องพิจารณาทั้งสองอย่างแบบองค์รวม และนั่นคือขั้นตอนที่รวมเข้าด้วยกันเพื่อรวมสองลูปนี้เข้าด้วยกัน
วงจร “MLOps Lifecycle” วงจรเดียวช่วยให้องค์ประกอบทั้งหมดมองเห็นได้ แทนที่จะคิดว่านักพัฒนาคิดว่าแบบจำลองเป็นกล่องดำที่นักวิทยาศาสตร์ด้านข้อมูลฝึกฝนและโยนทิ้งไป และนักวิทยาศาสตร์ด้านข้อมูลก็พัฒนาแบบจำลองที่ไม่ตอบสนองวัตถุประสงค์ทางธุรกิจที่ตั้งใจไว้ในการผลิต
ลูป Data, ML, Data-ML และ DevOps สามารถทำงานในจังหวะที่แตกต่างกันได้ ฉันมักจะพยายามสร้างแอปพลิเคชันแบบ end-to-end ด้วยโมเดลตามกฎหรือแบบจำลองเสมอ โดยตัดการวนซ้ำ Data-ML ออกโดยสิ้นเชิง โดยทำหน้าที่เป็นพื้นฐาน ช่วยรวบรวมข้อมูล และยังให้บริบทสำหรับนักวิทยาศาสตร์ข้อมูลในการทราบว่าโมเดลของพวกเขาจะถูกนำไปใช้อย่างไร
สรุป
บทความนี้อธิบายวิวัฒนาการของวงจรการใช้งาน ML ในยุค Data Warehouse, Big Data Lake และ MLOps นอกจากนี้ยังอธิบายว่าจะแก้ไขได้อย่างไรโดยการเข้าร่วมการพัฒนาโมเดลและ DevOps loop และข้อดีของการทำเช่นนั้น
อ้างอิง
- Knowledge Discovery and Data Mining: Towards a Unifying Framework โดย Usama Fayyad, Gregory Piatetsky-Shapiro และ Padhraic Smyth ใน KDD'96: Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, หน้า 82–88, สิงหาคม 1996.
- โมเดล CSP-DM: พิมพ์เขียวใหม่สำหรับการขุดข้อมูล โดย Colin Shearer ใน Journal of Data Warehousing ฉบับที่ 5 ไม่ 4 หน้า 13–22, 2000
- SEMMA: ตัวอย่าง สำรวจ ปรับเปลี่ยน สร้างแบบจำลอง และประเมิน
- อนุกรมวิธานของวิทยาศาสตร์ข้อมูล (กระบวนการ OSEMN) โดย Hilary Mason และ Chris Wiggins, กันยายน 2010
- วงจรชีวิต Team Data Science Process (TDSP) ของ Microsoft
- วิศวกรรมซอฟต์แวร์สำหรับการเรียนรู้ของเครื่อง: กรณีศึกษา โดย Saleema Amershi และคณะ ใน ICSE-SEIP ’19: Proceedings of the 41st International Conference on Software Engineering: Software Engineering in Practice, พฤษภาคม 2019 (PDF)
- MLOps คืออะไร? โดย Rick Merritt ในบล็อกของ Nvidia วันที่ 3 ก.ย. 2020
- หลักการ MLOps, ml-ops.org, สืบค้นเมื่อวันที่ 8 กันยายน 2022.
- พิมพ์เขียว MLOps สมัยใหม่ โดย Danny Farah, 24 ส.ค. 2020
- คู่มือผู้ปฏิบัติงานเกี่ยวกับ MLOps: กรอบงานสำหรับการส่งมอบอย่างต่อเนื่องและเป็นอัตโนมัติของการเรียนรู้ของเครื่อง เอกสารไวท์เปเปอร์ของ Google Cloud พฤษภาคม 2021.
- “MLOps: การส่งมอบอย่างต่อเนื่องสำหรับ Machine Learning บน AWS” เอกสารรายงาน AWS ธ.ค. 2020.
- MLOps: แนวโน้มใหม่ในข้อมูล โค้ด และโครงสร้างพื้นฐาน เอกสารรายงาน AWS มิถุนายน 2565
- MLOps พร้อม Azure Machine Learning เอกสารไวท์เปเปอร์ของ Microsoft ส.ค. 2021.
หากคุณชอบสิ่งนี้ โปรด:
เผยแพร่ครั้งแรกบน ML4Devs.com