ความต้องการ MLOps

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

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

หากปฏิบัติตาม CI/CD อย่างถูกต้อง ทันทีที่มีการเปลี่ยนแปลงในโค้ดเบส แอปพลิเคชันจะถูกปรับใช้ในสภาพแวดล้อมชั่วคราวซึ่งมีการทดสอบทันที หากมีปัญหาใดๆ ระบบจะแจ้งและแก้ไขทันที การแก้ไขจะถูกปรับใช้ทันทีและเวอร์ชันที่ปรับปรุงแล้วของแอปพลิเคชันจะได้รับการทดสอบอีกครั้ง

แล้วรุ่น ML ล่ะ?

เช่นเดียวกับที่เราทำตามจังหวะเพื่อสร้าง บำรุงรักษา และปรับขนาดแอปพลิเคชันซอฟต์แวร์ เราควรทำตามจังหวะสำหรับโมเดล ML นั่นคือสิ่งที่ MLOps เป็นเรื่องเกี่ยวกับ

MLOps ที่ NeuralSpace

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

มาแจกแจงกระบวนการทั้งหมดให้คุณ:

สมมติว่าคุณมีแพลตฟอร์มโซเชียลมีเดีย และคุณใช้โมเดล ML เพื่อกลั่นกรองเนื้อหาข้อความโดยจำแนกเนื้อหาออกเป็นสองประเภท (ไม่เหมาะสมหรือไม่เป็นการละเมิด) คุณฝึกโมเดลและทดสอบกับชุดทดสอบที่แสดงถึงเนื้อหาที่ผู้ใช้สร้างขึ้น เมื่อโมเดลของคุณให้ผลลัพธ์ที่ดีแล้ว คุณวางแผนที่จะปรับใช้เป็นไมโครเซอร์วิส เมื่อคุณทำเสร็จแล้ว คุณจะพบว่าในช่วงเวลาเร่งด่วน บริการของคุณมีการใช้งานมากเกินไป ในการจัดการกับคุณจะต้องปรับขนาดไมโครเซอร์วิสโมเดลของคุณ และปรับใช้แบบจำลองหลายรายการเพื่อรองรับโหลดที่มากขึ้น ตอนนี้คุณต้องการตรวจสอบทุกสิ่งที่ส่งผ่านโมเดลของคุณ เช่น การทำนายแบบจำลองทั้งหมด ดังนั้น คุณจึงตั้งค่ากลไกการบันทึกและสร้าง UI เพื่อดูและแก้ไขการคาดการณ์โมเดล ตอนนี้คุณแก้ไขข้อผิดพลาดที่โมเดลสร้างขึ้นและเพิ่มข้อมูลเพิ่มเติมให้กับชุดการฝึกและการทดสอบของคุณ คุณทำเช่นนี้เพื่อให้คุณสามารถฝึกโมเดลของคุณใหม่ในภายหลังและทดสอบว่ามีการปรับปรุงหรือไม่ ตอนนี้คุณฝึกโมเดลใหม่และเห็นว่ามีการปรับปรุงมากกว่ารุ่นก่อนหน้า ถึงเวลาอัพเดตโมเดลที่ใช้งานจริงแล้ว แต่เนื่องจากคุณไม่สามารถมีเวลาหยุดทำงานได้ คุณต้องจัดแพคเกจ/บรรจุโมเดลของคุณอีกครั้ง กำหนดเวอร์ชัน และเปิดตัวเวอร์ชันใหม่โดยใช้เทคนิค DevOps มาตรฐานเพื่อรักษาเวลาทำงาน 100%

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

ตอนนี้มีคำถามที่ต้องคิดเกี่ยวกับ:

  • คุณจะทำให้กระบวนการนี้มีโครงสร้างมากขึ้นโดยปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดได้อย่างไร
  • คุณสามารถใช้การพัฒนาซอฟต์แวร์และหลักการ CI/CD เพื่อฝึกอบรมและปรับใช้โมเดลในลักษณะ "Agile" ได้หรือไม่

แน่นอนคำตอบคือใช่!

วิธีสร้างกระบวนการ MLOps ที่มั่นคง

ขั้นตอนในการสร้างกระบวนการ MLOps ที่มั่นคง

ต่อไปนี้เป็นขั้นตอนบางส่วนที่คุณสามารถปฏิบัติตามเพื่อสร้างกระบวนการที่มั่นคงสำหรับ MLOps

ขั้นตอนที่ 1: ทำให้ไปป์ไลน์การฝึกโมเดลของคุณเป็นแบบอัตโนมัติ

มีโซลูชัน AutoML มากมายให้เลือกใช้ สำหรับ NLP คุณสามารถใช้ NeuralSpace Google AutoML, Huggingface ฯลฯ เป็นผู้ให้บริการรายอื่นๆ

ขั้นตอนที่ 2: จัดการข้อมูลของคุณ

จัดการข้อมูลของคุณในที่เก็บข้อมูลบนคลาวด์ หากผู้ให้บริการ AutoML ยังไม่ได้จัดเตรียมไว้ให้ NeuralSpace มี Data Studio สำหรับสร้าง อัปเดต และจัดการข้อมูลของคุณสำหรับงาน NLP ต่างๆ

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

ขั้นตอนที่ 3: การบูรณาการอย่างต่อเนื่อง

ใช้ไปป์ไลน์ CI เพื่อเริ่มการฝึกและการเปรียบเทียบด้วยเวอร์ชันชุดข้อมูลเฉพาะ หากงบประมาณเป็นปัญหา ให้เลือกใช้ “Azure ACI”, “OVH Cloud” หรือผู้ให้บริการระบบคลาวด์อื่นๆ ที่มีตัวเลือกตามความต้องการสำหรับอินสแตนซ์ GPU เฉพาะจุด คุณสามารถเรียกใช้การค้นหาไฮเปอร์พารามิเตอร์ทุกครั้งได้เช่นกัน แต่ขึ้นอยู่กับจำนวนเงินที่คุณยินดีจ่าย หากคุณพบสถาปัตยกรรมโมเดลที่ดีที่สุดแล้ว คุณสามารถใช้การกำหนดค่าเดียวกันได้

ขั้นตอนที่ 4: ตรวจสอบประสิทธิภาพของโมเดล

ตรวจสอบประสิทธิภาพของโมเดลอย่างต่อเนื่อง ที่ NeuralSpace คุณจะได้รับโมเดลเมตริกทุกครั้งที่คุณเรียกใช้ AutoNLP มิฉะนั้น คุณสามารถใช้แพลตฟอร์ม เช่น "น้ำหนักและอคติ" เพื่อบันทึกการวัดโมเดลและข้อมูลเมตาเพื่อติดตามกระบวนการฝึกอบรมได้

ขั้นตอนที่ 5: การปรับใช้อย่างต่อเนื่อง

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

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

ทดสอบ A/B โมเดลใหม่ของคุณโดยค่อยๆ เพิ่มการเข้าชมโมเดลใหม่ เช่น 10% จากนั้น 20% จากนั้น 30% และในที่สุด 100%

ขั้นตอนที่ 6: จังหวะเป็นกุญแจสำคัญ

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

AutoMLOps ที่ NeuralSpace

ตอนนี้คำถามคือเราจะปรับใช้โมเดลอย่างไรเพื่อให้สามารถรองรับคำขอ API นับพันรายการได้ทุกนาที

AutoMLOps คือคำตอบ

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

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

มีหลายสิ่งที่คุณต้องมีเพื่อปรับใช้โมเดลในการใช้งานจริง สำหรับแอปพลิเคชันซอฟต์แวร์ใดๆ เป็นเรื่องปกติที่จะโฮสต์หลายอินสแตนซ์ (หรือแบบจำลอง) ของอัลกอริธึมเดียวกัน เพื่อให้แอปพลิเคชันสามารถรองรับปริมาณการรับส่งข้อมูลสูงและลดอัตราความล้มเหลวได้ AutoMLOps ของ NeuralSpace ช่วยให้แน่ใจว่าโมเดลของคุณพร้อมใช้งานตลอด 25/7/365 และสามารถประมวลผลคำขอ API จำนวนมากต่อวินาที เมื่อใช้งาน นักพัฒนามีตัวเลือกในการเลือกแบบจำลองหลายรายการ ซึ่งร่วมกันมีเวลาแฝงต่ำเมื่อใดก็ตามที่ผู้ใช้ร้องขอโมเดลของคุณ นอกจากนี้ ในกรณีที่เกิดขึ้นไม่บ่อยนักเมื่อแบบจำลองหนึ่งล้มเหลว นักพัฒนาก็ยังมีอีกแบบจำลองหนึ่งที่ต้องถอยกลับ ซึ่งทำได้โดยการให้บริการแบบจำลองแบบจำลองของคุณในสภาพแวดล้อมการปรับขนาดอัตโนมัติ ตัวจำลองแบบจำลองใช้โมเดลหลักที่ได้รับการฝึกล่วงหน้าของเราเช่นกัน ดังนั้นหากคำขอในแบบจำลองของคุณเพิ่มขึ้นอย่างมาก บริการแบ็กเอนด์ของเราจะเริ่มต้นการปรับขนาดอัตโนมัติ เรพลิกาถูกปรับใช้เป็นโมเดลอิสระโดยมีผู้จัดการบริการอิสระ ดังนั้นในขณะที่แยกวิเคราะห์ มิดเดิลแวร์ของเราเรียกแบบจำลองโดยตรงเพื่อให้เวลาแฝงน้อยที่สุดตลอดเวลา หากการจำลองล้มเหลวหรือขัดข้องในบางกรณีที่หายากมาก เราได้รวมการหมุนอัตโนมัติของแบบจำลองที่แทนที่ซึ่งจะใช้งานได้ในเวลาไม่ถึงสิบวินาที

ลองชม วิดีโออธิบายฉบับย่อ นี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ AutoMLOps

เข้าร่วม NeuralSpace ชุมชน Slack เพื่อเชื่อมต่อกับเรา รับการอัปเดตและหารือหัวข้อใน NLP สำหรับภาษาที่มีทรัพยากรต่ำกับเพื่อนนักพัฒนาและนักวิจัย

ตรวจสอบ "เอกสารประกอบ" ของเราเพื่ออ่านเพิ่มเติมเกี่ยวกับแพลตฟอร์ม NeuralSpace และแอพต่างๆ

ลงทะเบียนบนแพลตฟอร์ม NeuralSpace

สุขสันต์วัน NLP!