ทุกคนที่ได้ลองใช้การพัฒนาแมชชีนเลิร์นนิงจะเข้าใจว่ามันยากแค่ไหน นอกเหนือจากปัญหามาตรฐานในการพัฒนาซอฟต์แวร์แล้ว การพัฒนาแมชชีนเลิร์นนิง (ML) ยังมีอุปสรรคเพิ่มเติมอีกมากมาย
เครื่องมือโอเพนซอร์ซนับร้อยพร้อมช่วยเหลือในทุกขั้นตอนของวงจรชีวิต ML ตั้งแต่การเตรียมข้อมูลไปจนถึงการฝึกโมเดล
ต่างจากการพัฒนาซอฟต์แวร์แบบดั้งเดิม เมื่อทีมเลือกเครื่องมือหนึ่งอย่างสำหรับแต่ละขั้นตอน โดย ML คุณต้องการสำรวจทุกเครื่องมือที่มีอยู่ (เช่น อัลกอริธึม) เพื่อดูว่าจะปรับปรุงผลลัพธ์หรือไม่
ด้วยเหตุนี้ นักพัฒนา ML จึงต้องใช้และผลิตไลบรารี่หลายร้อยแห่ง
อัลกอริธึมการเรียนรู้ของเครื่องประกอบด้วยพารามิเตอร์ที่ปรับแต่งได้หลายพันรายการ และเป็นการยากที่จะระบุว่าพารามิเตอร์ โค้ด และข้อมูลใดบ้างที่เข้าสู่แต่ละการทดสอบเพื่อสร้างแบบจำลอง ไม่ว่าคุณจะทำงานคนเดียวหรือเป็นทีม
หากไม่ได้รับการตรวจสอบอย่างเหมาะสม ทีมต่างๆ มักจะประสบปัญหาในการรับโค้ดเดิมกลับมาทำงานอีกครั้ง ไม่ว่าคุณจะเป็นนักวิทยาศาสตร์ข้อมูลที่ถ่ายโอนรหัสการฝึกอบรมของคุณไปยังวิศวกรสำหรับการใช้งานจริง หรือคุณกำลังกลับไปทำงานก่อนหน้านี้เพื่อวินิจฉัยปัญหา การถอยขั้นตอนของเวิร์กโฟลว์ ML เป็นสิ่งสำคัญ
การย้ายโมเดลไปสู่การใช้งานจริงอาจเป็นเรื่องยากเนื่องจากวิธีการปรับใช้และสภาพแวดล้อมจำนวนมากที่ต้องใช้ (เช่น การให้บริการ REST การอนุมานแบบแบตช์ หรือแอปมือถือ) ไม่มีวิธีการทั่วไปในการย้ายโมเดลจากไลบรารีใด ๆ ไปยังเครื่องมือเหล่านี้ ดังนั้นการปรับใช้ใหม่แต่ละครั้งทำให้เกิดความเสี่ยง
เนื่องจากปัญหาเหล่านี้ จึงเห็นได้ชัดว่าการพัฒนา ML ต้องปรับปรุงอย่างมากเพื่อให้มีเสถียรภาพ คาดการณ์ได้ และใช้กันอย่างแพร่หลายเหมือนกับการพัฒนาซอฟต์แวร์แบบเดิม
ML ความท้าทาย
- มีเครื่องมือที่แตกต่างกันมากมายเหลือเฟือ โซลูชันซอฟต์แวร์หลายร้อยรายการพร้อมให้ความช่วยเหลือในทุกขั้นตอนของวงจรชีวิตการเรียนรู้ของเครื่อง ตั้งแต่การเตรียมข้อมูลไปจนถึงการฝึกโมเดล นอกจากนี้ ไม่เหมือนการพัฒนาซอฟต์แวร์แบบดั้งเดิม เมื่อทีมเลือกเครื่องมือหนึ่งอย่างสำหรับแต่ละขั้นตอน ในการเรียนรู้ของเครื่อง (ML) คุณมักจะต้องการสำรวจเครื่องมือที่มีอยู่ทั้งหมด (เช่น อัลกอริธึม) เพื่อดูว่าจะปรับปรุงผลลัพธ์หรือไม่ ด้วยเหตุนี้ นักพัฒนา ML จึงต้องใช้และผลิตไลบรารี่หลายร้อยแห่ง
- เป็นการยากที่จะติดตามการทดลอง อัลกอริธึมการเรียนรู้ของเครื่องประกอบด้วยพารามิเตอร์ที่ปรับแต่งได้หลายพันรายการ และเป็นการยากที่จะระบุว่าพารามิเตอร์ โค้ด และข้อมูลใดบ้างที่เข้าสู่แต่ละการทดสอบเพื่อสร้างแบบจำลอง ไม่ว่าคุณจะทำงานคนเดียวหรือเป็นทีม
- การนำการเรียนรู้ของเครื่องไปใช้ทำได้ยาก การย้ายโมเดลไปสู่การผลิตอาจเป็นเรื่องยากเนื่องจากวิธีการปรับใช้และสภาพแวดล้อมจำนวนมากที่ต้องใช้ (เช่น การให้บริการ REST การอนุมานแบบแบตช์ หรือแอปมือถือ) ไม่มีวิธีการทั่วไปในการย้ายโมเดลจากไลบรารีใด ๆ ไปยังเครื่องมือเหล่านี้ ดังนั้น การปรับใช้ใหม่แต่ละครั้งทำให้เกิดความเสี่ยง
ความหมายของ ม.ล.โฟลว์?
MLflow เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับวงจรชีวิตการเรียนรู้ของเครื่อง โดยอิงตามแนวคิดอินเทอร์เฟซแบบเปิด โดยเสนอสิ่งที่เป็นนามธรรมที่จำเป็นหลายอย่างที่ช่วยให้โครงสร้างพื้นฐานในปัจจุบันและอัลกอริธึมการเรียนรู้ของเครื่องสามารถรวมเข้ากับระบบได้อย่างง่ายดาย
นี่หมายความว่าหากคุณเป็นนักพัฒนาที่ต้องการใช้ MLflow แต่ใช้เฟรมเวิร์กที่ไม่รองรับ การออกแบบอินเทอร์เฟซแบบเปิดทำให้ง่ายต่อการรวมเฟรมเวิร์กนั้นและเริ่มทำงานกับแพลตฟอร์ม ในทางปฏิบัติ นี่หมายความว่า MLflow มีวัตถุประสงค์เพื่อทำงานกับทุก เรียนรู้เครื่อง ห้องสมุดหรือภาษา
นอกจากนี้ MLflow ยังส่งเสริมความสามารถในการทำซ้ำ ซึ่งหมายความว่าการฝึกอบรมหรือรหัสการเรียนรู้ของเครื่องที่ใช้งานจริงนั้นตั้งใจให้ทำงานโดยให้ผลลัพธ์เดียวกันโดยไม่ขึ้นกับสภาพแวดล้อม ไม่ว่าจะในระบบคลาวด์ บนเวิร์กสเตชันในเครื่อง หรือในโน้ตบุ๊ก
สุดท้ายนี้ MLflow ถูกสร้างขึ้นเพื่อความสามารถในการปรับขนาด ดังนั้นจึงสามารถใช้ได้โดยทีมนักวิทยาศาสตร์ข้อมูลขนาดเล็กและบริษัทขนาดใหญ่ที่มีผู้ปฏิบัติงานการเรียนรู้ด้วยเครื่องหลายร้อยคน
MLflow เข้ากันได้กับไลบรารีแมชชีนเลิร์นนิง อัลกอริธึม เครื่องมือการปรับใช้ หรือภาษาใดๆ นอกจากนี้ยังมีข้อดีดังต่อไปนี้:
- ออกแบบมาเพื่อทำงานกับบริการคลาวด์ใดๆ
- ปรับขนาดเป็นข้อมูลขนาดใหญ่ด้วย Apache Spark
- MLflow เข้ากันได้กับเฟรมเวิร์กการเรียนรู้ของเครื่องโอเพนซอร์สที่หลากหลาย รวมถึง Apache Spark TensorFlowและ SciKit-เรียนรู้.
หากคุณมีรหัสอยู่แล้ว สามารถใช้ MLflow กับมันได้ คุณยังอาจแบ่งปันกรอบงานและแบบจำลองระหว่างองค์กรต่างๆ เนื่องจากเป็น โอเพนซอร์ส.
ส่วนประกอบ MLflow: ทำงานอย่างไร
MLflow เป็นแพลตฟอร์มโอเพ่นซอร์สฟรีสำหรับจัดการวงจรชีวิต ML ซึ่งรวมถึงการทดลอง การทำซ้ำ การปรับใช้ และการลงทะเบียนรุ่นเดียว ปัจจุบัน MLflow มีสี่องค์ประกอบ:
1. การติดตาม MLflow
ฉันจะเริ่มต้นด้วยการติดตาม MLflow MLflow รองรับการรวบรวมแนวคิดที่จำเป็นต่างๆ ที่เชื่อมโยงกับที่เก็บการติดตามข้อมูลเมตาการฝึกอบรมแบบรวมศูนย์ แนวคิดแรกคือชุดของไฮเปอร์พารามิเตอร์ที่สำคัญหรือปุ่มกำหนดค่าที่มีอิทธิพลต่อประสิทธิภาพของโมเดล การใช้ API ของ MLflow และบริการติดตามแบบรวมศูนย์อาจรักษาสิ่งเหล่านี้ไว้ได้
ผู้ใช้ยังสามารถบันทึกข้อมูลประสิทธิภาพเพื่อรับข้อมูลเชิงลึกเกี่ยวกับความสำเร็จของโมเดลการเรียนรู้ของเครื่อง นอกจากนี้ สำหรับการทำซ้ำ MLflow ยังอนุญาตให้ผู้ใช้บันทึกซอร์สโค้ดเฉพาะที่ใช้ในการสร้างโมเดลและเวอร์ชันโดยผสานรวมกับ Git อย่างแน่นหนาเพื่อผูกทุกโมเดลกับแฮชเฉพาะ
MLflow สามารถใช้เพื่อบันทึกสิ่งประดิษฐ์ ซึ่งเป็นไฟล์ใดๆ ก็ได้ ซึ่งรวมถึงการฝึกอบรม ข้อมูลการทดสอบ และตัวแบบเองสำหรับการทำซ้ำ
ซึ่งหมายความว่าหากฉันเป็นนักพัฒนาที่เพิ่งฝึกโมเดล ฉันสามารถยืนยันบริการติดตามจากส่วนกลางได้ และเพื่อนร่วมงานคนหนึ่งของฉันสามารถโหลดได้ในภายหลัง และฝึกฝนและทดลองหรือผลิตโมเดลนั้นต่อไปเพื่อตอบสนองความต้องการเฉพาะ .
เมื่อเรียกใช้โค้ดแมชชีนเลิร์นนิงและหลังจากนั้นดูผลลัพธ์ การติดตามคือ API ที่ช่วยให้คุณบันทึกพารามิเตอร์ เวอร์ชันของโค้ด เมตริก และไฟล์เอาต์พุต มันเขียนด้วย Python, R และ Java รวมถึงภาษาอื่นๆ นอกจากนี้ยังสามารถเข้าถึงได้เป็น REST API ซึ่งอาจใช้เพื่อสร้างแอปเพิ่มเติม
Key Features
- นักพัฒนาหลายคนใช้ MLflow บนพีซีในพื้นที่ของตน โดยที่ส่วนแบ็คเอนด์และที่เก็บข้อมูลอาร์ติแฟกต์จะแชร์ไดเร็กทอรีบนแผ่นดิสก์
- ผู้ใช้จำนวนมากยังใช้ SQLite ซึ่งเป็นฐานข้อมูลที่เข้ากันได้กับ SQLAlchemy เพื่อเรียกใช้ MLflow บนพีซีในพื้นที่ของตน
- MLflow ยังรองรับสถาปัตยกรรมแบบกระจายอีกด้วย เซิร์ฟเวอร์การติดตาม ที่เก็บแบ็กเอนด์ และที่เก็บอาร์ติแฟกต์ทั้งหมดถูกโฮสต์บนเซิร์ฟเวอร์ที่แตกต่างกันในสิ่งเหล่านี้
- หากการรันเริ่มต้นโดยโปรเจ็กต์ MLflow ระบบจะใช้แฮชคอมมิตของ git อาจใช้ MLflow Python, R, Java และ REST API เพื่อบันทึกข้อมูลการทำงาน
สำหรับข้อมูลเพิ่มเติม คุณสามารถตรวจสอบอย่างเป็นทางการ เอกสาร.
2. โครงการ MLFlow
หลังจากที่เราดูองค์ประกอบการติดตามแล้ว ฉันต้องการพูดเกี่ยวกับโปรเจ็กต์ MLflow ซึ่งเป็นโครงสร้างบรรจุภัณฑ์ที่ทำซ้ำได้สำหรับเซสชันการฝึกโมเดลโดยไม่คำนึงถึงบริบทการดำเนินการ
ธุรกิจใช้เทคโนโลยีการฝึกอบรมแมชชีนเลิร์นนิงที่หลากหลาย แต่ยังใช้เครื่องมือการฝึกอบรมเหล่านี้ในบริบทที่หลากหลาย ตัวอย่างเช่น พวกเขาอาจใช้รหัสการฝึกอบรมบนคลาวด์ บนพีซีภายในเครื่อง หรือในโน้ตบุ๊ก
สิ่งนี้นำไปสู่ปัญหาที่ผลลัพธ์การเรียนรู้ของเครื่องนั้นยากต่อการทำซ้ำ บ่อยครั้ง รหัสการฝึกที่เหมือนกันจะไม่ทำงานหรือให้ผลลัพธ์เดียวกันในสองตำแหน่งที่แยกจากกัน
โซลูชันที่ MLflow จัดหาให้คือข้อกำหนดของโปรเจ็กต์โค้ดการฝึกอบรมที่มีในตัวเอง ซึ่งรวมถึงโค้ดการฝึกการเรียนรู้ของเครื่องทั้งหมด ตลอดจนการพึ่งพาไลบรารีเวอร์ชัน การตั้งค่า ตลอดจนข้อมูลการฝึกอบรมและการทดสอบ
MLflow ช่วยให้มั่นใจได้ถึงความสามารถในการทำซ้ำในบริบทการดำเนินการโดยอธิบายข้อกำหนดทั้งชุดสำหรับกระบวนการฝึกอบรมการเรียนรู้ของเครื่องอย่างชัดเจน ทำได้โดยการติดตั้งไลบรารีทั้งหมดเหล่านั้นและทำให้สถานะระบบเดียวกันกับที่โค้ดกำลังทำงานอยู่
โปรเจ็กต์ MLflow ไม่มีอะไรมากไปกว่าไดเร็กทอรี เป็นไดเร็กทอรีที่มีโค้ดการฝึก นิยามการขึ้นต่อกันของไลบรารี และข้อมูลอื่นๆ ที่จำเป็นโดยเซสชันการฝึกอบรม ตลอดจนไฟล์คอนฟิกูเรชันทางเลือกนี้
ข้อกำหนดห้องสมุดเหล่านี้สามารถกำหนดได้หลายวิธี ตัวอย่างเช่น ผู้ใช้สามารถจัดหาข้อกำหนดเกี่ยวกับสภาพแวดล้อมอนาคอนด้าที่จัดรูปแบบ YAML เพื่อแสดงรายการข้อกำหนดของไลบรารีโค้ดการฝึกอบรม MLflow จะรันโค้ดการฝึกอบรมภายในคอนเทนเนอร์ ในกรณีเช่นนี้ พวกเขาสามารถรวมคอนเทนเนอร์ Docker ได้
สุดท้าย MLflow มีอินเตอร์เฟสบรรทัดคำสั่ง (CLI) สำหรับการรันโปรเจ็กต์เหล่านี้ เช่นเดียวกับ Python และ Java API โปรเจ็กต์เหล่านี้สามารถรันบนระบบโลคัลของผู้ใช้ได้ เช่นเดียวกับการตั้งค่าระยะไกลที่หลากหลาย เช่น ตัวจัดกำหนดการงาน Databricks และ Kubernetes โปรเจ็กต์ MLflow อนุญาตให้คุณจัดแพ็คเกจโค้ดวิทยาศาสตร์ข้อมูลในลักษณะที่ทำซ้ำได้และนำกลับมาใช้ใหม่ได้ โดยส่วนใหญ่จะอิงตามมาตรฐาน
ส่วนประกอบของโปรเจ็กต์ประกอบด้วย API และยูทิลิตีบรรทัดคำสั่งสำหรับการจัดการโปรเจ็กต์ ความสามารถเหล่านี้รับประกันว่าโครงการอาจถูกเชื่อมโยงเข้าด้วยกันเพื่อสร้างกระบวนการเรียนรู้ของเครื่อง
Key Features
- MLflow รองรับสภาพแวดล้อมของโปรเจ็กต์ รวมถึงสภาพแวดล้อมคอนเทนเนอร์ Docker สภาพแวดล้อม Conda และสภาพแวดล้อมของระบบ
- พื้นที่เก็บข้อมูล Git หรือไดเร็กทอรีในเครื่องใด ๆ อาจถือเป็นโปรเจ็กต์ MLflow โดยค่าเริ่มต้น; คุณสามารถใช้เปลือกใดก็ได้หรือ สคริปต์ Python ในไดเร็กทอรีเป็นจุดเริ่มต้นโครงการ
- การพึ่งพาที่ไม่ใช่ Python เช่นไลบรารี Java สามารถบันทึกได้โดยใช้คอนเทนเนอร์ Docker
- คุณอาจได้รับการควบคุมมากขึ้นสำหรับโปรเจ็กต์ MLflow โดยการเพิ่มไฟล์โปรเจ็กต์ไปยังไดเร็กทอรีรากของโปรเจ็กต์ ซึ่งเป็นไฟล์ข้อความในรูปแบบ YAML
สำหรับข้อมูลเพิ่มเติม คุณสามารถตรวจสอบอย่างเป็นทางการ เอกสาร.
3. MLflow รุ่น
ตอนนี้ ฉันต้องการพูดคุยเกี่ยวกับโมเดล MLflow ซึ่งเป็นรูปแบบโมเดลเอนกประสงค์ที่รองรับบริบทการผลิตที่หลากหลาย เหตุผลสำหรับโมเดล MLflow ในตอนนี้ค่อนข้างคล้ายกับของโปรเจ็กต์
อีกครั้ง เราเห็นว่าแบบจำลองอาจถูกสร้างขึ้นโดยใช้เครื่องมือที่หลากหลาย แต่ยังสามารถผลิตหรือปรับใช้ได้ในสถานการณ์ที่หลากหลาย ซึ่งต่างจากสภาพแวดล้อมการฝึกอบรม
การตั้งค่าเหล่านี้รวมถึงเครื่องมือสำหรับการให้บริการแบบเรียลไทม์ เช่น Kubernetes หรือ Amazon SageMaker รวมถึงการให้คะแนนการสตรีมและการให้คะแนนแบบกลุ่ม เช่น Spark นอกจากนี้ บางธุรกิจอาจเลือกปรับใช้โมเดลเป็นบริการเว็บ RESTful ที่ทำงานบนอินสแตนซ์ระบบคลาวด์ที่กำหนดค่าไว้ล่วงหน้า
โมเดล MLflow เช่นเดียวกับโปรเจ็กต์คือโครงสร้างไดเร็กทอรี ประกอบด้วยไฟล์คอนฟิกูเรชัน และคราวนี้ อาร์ติแฟกต์ของโมเดลที่เป็นอนุกรม แทนที่จะเป็นโค้ดการฝึกอบรม นอกจากนี้ยังรวมชุดของการพึ่งพานี้สำหรับความสามารถในการทำซ้ำเป็นโปรเจ็กต์ คราวนี้ เราจะพิจารณาการพึ่งพาการประเมินในบริบทของสภาพแวดล้อม Conda
นอกจากนี้ MLflow ยังรวมเครื่องมือสร้างโมเดลสำหรับการสร้างอนุกรมโมเดลในรูปแบบ MLflow จากเฟรมเวิร์กยอดนิยมต่างๆ สุดท้าย MLflow เพิ่มการปรับใช้ API สำหรับการผลิตและการเชื่อมต่อโมเดล MLflow ใดๆ กับบริการต่างๆ และ API เหล่านี้สามารถเข้าถึงได้ในรูปแบบ Python, Java, R และ CLI
โมเดลเป็นส่วนประกอบที่มีโครงสร้างมาตรฐานสำหรับโมเดลบรรจุภัณฑ์ที่สามารถใช้และเข้าใจได้โดยเครื่องมือดาวน์สตรีม เช่น เซิร์ฟเวอร์การอนุมานหรือ อิฐข้อมูล แพลตฟอร์มการอนุมานแบบกลุ่ม ส่วนประกอบนี้ช่วยประหยัดเวลาของรหัสตามความต้องการเมื่อบรรจุโมเดลสำหรับการผลิต
โมเดล MLflow เป็นมาตรฐานสำหรับโมเดลการเรียนรู้ของเครื่องบรรจุภัณฑ์ในรูปแบบต่างๆ ที่เรียกว่า "รสชาติ" MLflow มีเครื่องมือมากมายที่จะช่วยคุณในการปรับใช้โมเดลประเภทต่างๆ แต่ละ MLflow Model จะถูกเก็บไว้เป็นไดเร็กทอรีที่มีไฟล์โดยพลการ เช่นเดียวกับไฟล์ตัวอธิบายโมเดล ML ที่มีรายการรสชาติที่อาจนำไปใช้
Key Features
- เครื่องมือการปรับใช้ในตัวของ MLflow ทั้งหมดนำเสนอรสชาติ "มาตรฐาน" ที่หลากหลาย เช่น ฟังก์ชัน "ฟังก์ชัน Python" ที่อธิบายวิธีเรียกใช้โมเดลเป็นฟังก์ชัน Python
- แต่ละโมเดล MLflow ประกอบด้วยไดเร็กทอรีที่มีไฟล์ที่กำหนดเอง เช่นเดียวกับไฟล์โมเดล ML ที่รูทของไดเร็กทอรีที่กำหนดรสชาติต่างๆ ของโมเดล
- เมื่อจัดเก็บโมเดล MLflow อนุญาตให้คุณระบุพารามิเตอร์สภาพแวดล้อม Conda ที่มีการขึ้นต่อกันของโมเดล หากไม่ได้ระบุสภาพแวดล้อม Conda สภาพแวดล้อมเริ่มต้นตามรสชาติของโมเดลจะถูกสร้างขึ้น หลังจากนั้น สภาพแวดล้อม Conda จะถูกเก็บไว้ใน conda.yaml
สำหรับข้อมูลเพิ่มเติม คุณสามารถตรวจสอบอย่างเป็นทางการ เอกสาร.
4. การลงทะเบียนแบบจำลอง MLflow
การลงทะเบียนแบบจำลองเป็นที่เก็บข้อมูลสำหรับแบบจำลองการเรียนรู้ของเครื่อง (ML) Model Registry ประกอบด้วย API และแอปพลิเคชันบนเว็บที่ใช้ในการรักษาโมเดลในระยะต่างๆ เป็นทีม Model Lineage, Model Versioning, Easy Stage Transition และ Annotation เป็นเพียงความสามารถบางส่วนที่มีอยู่ใน Model Registry
การลงทะเบียนแบบจำลอง นอกเหนือจากตัวแบบเองแล้ว ยังมีข้อมูล (ข้อมูลเมตา) เกี่ยวกับข้อมูลและงานการฝึกอบรมที่ใช้ในการสร้างแบบจำลอง สิ่งสำคัญคือต้องติดตามอินพุตที่จำเป็นเหล่านี้เพื่อสร้างสายผลิตภัณฑ์สำหรับโมเดล ML ในเรื่องนี้ รีจิสตรีรุ่นทำงานเหมือนกับซอฟต์แวร์ทั่วไป การควบคุมเวอร์ชัน ระบบ (เช่น Git, SVN) และที่เก็บสิ่งประดิษฐ์ (เช่น Artifactory, PyPI)
Model Registry เป็นเฟรมเวิร์กที่ช่วยให้นักวิทยาศาสตร์ข้อมูลและวิศวกรแมชชีนเลิร์นนิงสามารถเผยแพร่ ทดสอบ ตรวจสอบ จัดการ และแจกจ่ายแบบจำลองของตนสำหรับความร่วมมือกับทีมอื่นๆ โดยพื้นฐานแล้ว การลงทะเบียนแบบจำลองจะถูกนำมาใช้เมื่อคุณเสร็จสิ้นขั้นตอนการทดสอบ และพร้อมที่จะแบ่งปันสิ่งที่คุณค้นพบกับทีมและผู้มีส่วนได้ส่วนเสีย
MLflow Model Registry จัดเตรียม API และอินเทอร์เฟซผู้ใช้สำหรับจัดการโมเดลของคุณและอายุการใช้งานจากตำแหน่งศูนย์กลาง ไลน์ของโมเดล การกำหนดเวอร์ชันของโมเดล คำอธิบายประกอบ และการเปลี่ยนสเตจ ทั้งหมดพร้อมใช้งานผ่านรีจิสตรี
ใน MLflow โมเดลที่ลงทะเบียนคือโมเดลที่มีชื่อเฉพาะและข้อมูลเมตา เวอร์ชันของโมเดล ระยะการเปลี่ยนผ่าน และสายผลิตภัณฑ์ของโมเดล สามารถพบได้ในแบบจำลองที่ลงทะเบียนไว้ โมเดลใหม่ถือเป็นเวอร์ชัน 1 เมื่อลงทะเบียนในรีจิสทรี เวอร์ชันต่อไปนี้ถูกเพิ่มลงในโมเดลใหม่ที่มีชื่อเดียวกัน
คุณสามารถกำหนดขั้นตอนเดียวให้กับรุ่นใดก็ได้เมื่อใดก็ได้ อย่างไรก็ตาม ขั้นต้องถูกกำหนดภายใต้เฟส MLflow ที่ได้รับการระบุอย่างเป็นทางการ เช่น การแสดงละคร การผลิต และการเก็บถาวร เวอร์ชันโมเดลสามารถเปลี่ยนจากขั้นตอนหนึ่งไปอีกขั้นได้
MLflow อนุญาตให้คุณใช้ markdown เพื่อใส่คำอธิบายประกอบทั้งโมเดลระดับบนสุดและแต่ละเวอร์ชันเฉพาะ คุณสามารถใส่คำอธิบายและข้อมูลที่เกี่ยวข้องอื่นๆ เช่น คำอธิบายอัลกอริทึม วิธีการ และชุดข้อมูลที่ใช้
Key Features
- ในการเข้าถึงรีจีสทรีโมเดลผ่าน UI หรือ API เมื่อโฮสต์เซิร์ฟเวอร์ MLflow ของคุณเอง คุณต้องใช้ที่เก็บแบ็กเอนด์ที่สำรองฐานข้อมูล
- Model Registry ยังสามารถเข้าถึงได้ผ่านทาง MLflow model flavor หรือ MLflow Client Tracking API interface ตัวอย่างเช่น คุณอาจลงทะเบียนแบบจำลองระหว่างการทดสอบ MLflow หรือหลังจากการทดสอบทั้งหมดของคุณทำงาน
- ไม่ใช่ทุกคนที่จะเริ่มฝึกโมเดลของตนโดยใช้ MLflow ด้วยเหตุนี้ คุณอาจมีบางรุ่นที่ได้รับการฝึกอบรมก่อนใช้ MLflow แทนที่จะฝึกอบรมโมเดลใหม่ คุณเพียงแค่ต้องการลงทะเบียนโมเดลที่จัดเก็บไว้กับ Model Registry
สำหรับข้อมูลเพิ่มเติม คุณสามารถตรวจสอบอย่างเป็นทางการ เอกสาร.
สรุป
MLflow เป็นเครื่องมือวงจรชีวิต ML ที่ยอดเยี่ยมและเติบโตอย่างต่อเนื่อง คุณสามารถใช้มันควบคู่ไปกับเครื่องมือและแพลตฟอร์มปัจจุบันของคุณ
รองรับภาษาการเขียนโปรแกรมหลายภาษา รวมถึง Python, Java และ R นอกจากนี้คุณยังสามารถติดตาม บันทึก และเปรียบเทียบรุ่นของรุ่นต่างๆ ได้อย่างรวดเร็วด้วยการออกแบบที่ใช้งานง่าย
ลองใช้ MLflow และแจ้งให้เราทราบประสบการณ์ของคุณ!
เขียนความเห็น