MLOps

การสำรวจวงจรการเรียนรู้ของเครื่อง

วิวัฒนาการของวงจรชีวิต ML จากการขุดข้อมูลแบบแบตช์ที่จำกัดทรัพยากรไปจนถึง MLOps ในระดับคลาวด์

ทุกคนพูดถึง MLOps มานานกว่าหนึ่งปีแล้ว ฉันมองไปรอบๆ เพื่อดูว่าวงจรชีวิตและกระบวนการต่างๆ มีการพัฒนาอย่างไร

วินัยในการแสวงหาข้อมูลเชิงลึกจากข้อมูลมีมานานกว่า 25 ปีแล้ว สมัยนั้นเรียกว่าการขุดข้อมูล ในบทความนี้ ฉันนำเสนอแบบสำรวจเกี่ยวกับกระบวนการวงจรชีวิต ML และสรุปพร้อมความคิดเห็นของฉัน ดังนั้นหากคุณรีบ ให้ข้ามไปที่ส่วนสุดท้ายของ TL;DR

ขั้นตอนกว้างๆ ในการทำเหมืองข้อมูล/วิทยาศาสตร์ยังคงเหมือนเดิมไม่มากก็น้อย:

  1. ทำความเข้าใจโดเมนหรือปัญหาทางธุรกิจ
  2. รวบรวมข้อมูลที่จำเป็นจากแหล่งต่างๆ
  3. ดูแลจัดการข้อมูล ทำความสะอาด และติดป้ายกำกับ
  4. แปลงข้อมูล ประสาน และจัดรูปแบบ
  5. สำรวจและแสดงภาพข้อมูล
  6. ฝึก โมเดล ตรวจสอบความถูกต้อง และปรับแต่งไฮเปอร์พารามิเตอร์
  7. ใช้หรือปรับใช้โมเดล

แต่ลักษณะของข้อมูล การประมวลผล และแอปพลิเคชันมีการเปลี่ยนแปลงไปอย่างมาก:

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

วิวัฒนาการสามารถแบ่งคร่าวๆ ได้เป็น 3 ยุค (ไทม์ไลน์ซ้อนทับกัน):

  • ยุคแบทช์: ไปป์ไลน์ ETL นำข้อมูลจากระบบปฏิบัติการไปยังคลังข้อมูลและศูนย์ข้อมูล และหลังจากนั้นข้อมูลก็ถูกขุดขึ้นมา
  • ยุคข้อมูลขนาดใหญ่: ข้อมูลมีขนาดใหญ่เกินไปสำหรับคลังสินค้าในยุคนั้น ข้อมูลที่สตรีมใน Data Lake ซึ่งมักจะกลายเป็นหนองน้ำ มีองค์กรเพียงไม่กี่แห่งเท่านั้นที่ปรับใช้โมเดลออนไลน์
  • ยุค MLOps: ทำให้ทุกคนปรับใช้โมเดลออนไลน์อย่างต่อเนื่องได้อย่างง่ายดาย

ทีโอซี

ยุคแบตช์

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

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

การสร้างแบบจำลองข้อมูล “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 ขั้นตอนพร้อมข้อเสนอแนะ:

  1. การเลือก: การเลือกชุดข้อมูล ชุดย่อยของตัวแปร หรือตัวอย่างข้อมูล
  2. การประมวลผลล่วงหน้า: ล้างข้อมูล จัดการค่าที่หายไป ฯลฯ
  3. การเปลี่ยนแปลง: การเลือกคุณลักษณะและการฉายภาพมิติเพื่อลดจำนวนตัวแปรที่มีประสิทธิผล
  4. การขุดข้อมูล: ใช้วิธีการขุดเจาะจง เช่น การสรุป การจัดหมวดหมู่ การถดถอย การจัดกลุ่ม
  5. การตีความและการประเมินผล: แยกรูปแบบ/แบบจำลอง รายงานพร้อมกับการแสดงภาพข้อมูล

ไปป์ไลน์ข้อมูล สมัยใหม่มีขั้นตอนเดียวกันค่อนข้างมาก

CRISP-DM: กระบวนการมาตรฐานอุตสาหกรรมข้ามสำหรับการขุดข้อมูล

จากนั้นกระบวนการ CRISP-DM ก็มาถึง ("แบบจำลอง CRISP-DM: พิมพ์เขียวใหม่สำหรับการทำเหมืองข้อมูล" โดย Colin Shearer, 2000) ซึ่งยังคงมีอิทธิพลมาจวบจนทุกวันนี้ ("CRISP-ML(Q)") โดยอธิบายว่า “นักวิเคราะห์ข้อมูล” ควรเริ่มต้นจากความต้องการทางธุรกิจ ขุดข้อมูล และ “ปรับใช้” โมเดลอย่างไร โดยแบ่งกระบวนการขุดข้อมูลออกเป็น 6 ขั้นตอนหลัก:

  1. ความเข้าใจทางธุรกิจ: กำหนดวัตถุประสงค์ทางธุรกิจ ประเมินทรัพยากร ข้อกำหนด ข้อจำกัด ความเสี่ยง และเหตุฉุกเฉิน กำหนดเป้าหมายการทำเหมืองข้อมูลและจัดทำแผนโครงการ
  2. ความเข้าใจข้อมูล: รวบรวมข้อมูลเริ่มต้น สำรวจข้อมูล และตรวจสอบคุณภาพของข้อมูล
  3. การเตรียมข้อมูล: เลือกและล้างข้อมูล เพิ่มแอตทริบิวต์ที่ได้รับและบันทึกที่สร้างขึ้น ผสานข้อมูลและจัดรูปแบบตามสคีมาที่ต้องการ
  4. การสร้างแบบจำลอง: สร้างแบบจำลองและประเมินคุณภาพ
  5. การประเมิน: ตรวจสอบโครงสร้างของแบบจำลองเพื่อให้แน่ใจว่าบรรลุวัตถุประสงค์ทางธุรกิจที่ระบุไว้
  6. การใช้งาน: สร้างรายงาน หรือใช้กระบวนการขุดข้อมูลที่ทำซ้ำได้ทั่วทั้งองค์กร วางแผนการติดตามผลการขุดข้อมูล และการบำรุงรักษากระบวนการกำหนดเวลาข้อมูล

“การปรับใช้” คือจุดที่มันมาก่อนเวลา ไม่มีวิธีใดในการปรับใช้โมเดลเป็นฟังก์ชันการอนุมาน โดยระบุไว้ (ลูกค้าในที่นี้หมายถึงลูกค้าของนักวิเคราะห์ เช่น องค์กรธุรกิจ/ผู้จัดการ):

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

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

SEMMA: ตัวอย่าง สำรวจ ปรับเปลี่ยน สร้างแบบจำลอง และประเมิน

SEMMA ย่อมาจาก Sample, Explore, Modify, Model และ Assess เป็นรายการขั้นตอนตามลำดับที่พัฒนาโดย SAS Institute เพื่อเป็นแนวทางในการใช้งานแอปพลิเคชันการทำเหมืองข้อมูล

  1. ตัวอย่าง: ตัวอย่างและเลือกข้อมูลสำหรับการสร้างแบบจำลอง
  2. สำรวจ: แสดงภาพข้อมูลเพื่อค้นหาความสัมพันธ์ที่คาดหวังและไม่คาดคิดระหว่างตัวแปรข้อมูล และระบุความผิดปกติ
  3. แก้ไข: เลือกและแปลงตัวแปรข้อมูลเพื่อเตรียมข้อมูลสำหรับการสร้างแบบจำลอง
  4. โมเดล: ใช้เทคนิคการสร้างแบบจำลองต่างๆ เพื่อเตรียมข้อมูล
  5. ประเมิน: ประเมินและเปรียบเทียบประสิทธิภาพของแบบจำลอง

ดูเหมือนว่าขั้นตอน 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 ไม่เป็นไร

  1. รับ: การชี้และการคลิกไม่ได้ปรับขนาด
    รวบรวมข้อมูลหรือใช้ API เพื่อรวบรวมข้อมูลโดยอัตโนมัติ
  2. ขัดผิว: โลกเป็นสถานที่ที่ยุ่งเหยิง
    โมเดลของคุณก็จะยุ่งเหยิงเช่นกัน เว้นแต่คุณจะล้างข้อมูลและกำหนดรูปแบบข้อมูลให้เป็นรูปแบบมาตรฐาน
  3. สำรวจ: คุณสามารถมองเห็นได้มากมายจากการมอง
    นี่คือสิ่งที่เราทำในการวิเคราะห์ข้อมูลเชิงสำรวจ (EDA)
  4. โมเดล: แย่เสมอ บางครั้งน่าเกลียด
    ปรับฟังก์ชันการสูญเสียที่เลือกให้เหมาะสม และเลือกสิ่งที่ดีที่สุดผ่านการตรวจสอบข้าม
  5. ตีความ: จุดประสงค์ของการคำนวณคือความเข้าใจ ไม่ใช่ตัวเลข.
    ผลลัพธ์ทางสถิติต่างจากคณิตศาสตร์ตรงที่ต้องมีการตีความที่ละเอียดถี่ถ้วน

ขณะนี้บล็อกนี้ใช้งานไม่ได้แล้ว แต่คุณสามารถ "อ่านได้จากเอกสารเก่าของเว็บ" อย่างที่คุณเห็น มันยังคงเหมือนกับ KDD/CRISP-DM มาก แต่คำอธิบายของขั้นตอนต่างๆ สะท้อนถึงความเป็นจริงของข้อมูลขนาดใหญ่ในระดับเว็บ

TDSP: วงจรชีวิตกระบวนการวิทยาศาสตร์ข้อมูลของทีม Microsoft

วงจรการใช้งาน Team Data Science Process (TDSP) ของ Microsoft มีสี่ขั้นตอน:

  1. ความเข้าใจทางธุรกิจ
  2. การได้มาและความเข้าใจข้อมูล
  3. การสร้างแบบจำลอง
  4. การปรับใช้

ขั้นตอน "การได้มาและความเข้าใจ" และ "การสร้างแบบจำลอง" จะแบ่งออกเป็นขั้นตอนที่มีรายละเอียดมากขึ้น มันถูกมองว่าเป็นโมเดลน้ำตกที่ลงท้ายด้วยการยอมรับของลูกค้า แต่ก็ไม่ต้องใช้จินตนาการมากนักในการขยายให้เป็นแบบโต้ตอบ

มันเป็นสิ่งที่บริษัทส่วนใหญ่ติดตามอยู่ในปัจจุบันทั้งโดยรู้หรือไม่รู้ตัว

ในรายงานที่ “การประชุม 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 และข้อดีของการทำเช่นนั้น

อ้างอิง

หากคุณชอบสิ่งนี้ โปรด:

เผยแพร่ครั้งแรกบน ML4Devs.com