MLOps คือแนวทางปฏิบัติในการใช้แนวทางปฏิบัติ DevOps เพื่อช่วยทำให้เวิร์กโฟลว์การเรียนรู้ของเครื่อง (ML) เป็นอัตโนมัติ จัดการ และตรวจสอบ เวิร์กโฟลว์ ML มีขั้นตอนในการ:
- จัดเตรียม วิเคราะห์ และแปลงข้อมูล
- ฝึกอบรมและประเมินแบบจำลอง
- ปรับใช้โมเดลที่ผ่านการฝึกอบรมเพื่อการใช้งานจริง
- ติดตามอาร์ติแฟกต์ ML และทำความเข้าใจการพึ่งพา
การจัดการขั้นตอนเหล่านี้ในลักษณะเฉพาะกิจอาจเป็นเรื่องยากและใช้เวลานาน
TFX ทำให้การนำ MLOps ไปใช้ได้ง่ายขึ้นโดยการจัดหาชุดเครื่องมือที่ช่วยคุณประสานกระบวนการ ML บนตัวจัดการต่างๆ เช่น Apache Airflow, Apache Beam และ Kubeflow Pipelines ด้วยการใช้เวิร์กโฟลว์ของคุณเป็นไปป์ไลน์ TFX คุณสามารถ:
- ทำให้กระบวนการ ML ของคุณเป็นแบบอัตโนมัติ ซึ่งช่วยให้คุณฝึกฝน ประเมิน และปรับใช้โมเดลของคุณเป็นประจำ
- ใช้ทรัพยากรการคำนวณแบบกระจายเพื่อประมวลผลชุดข้อมูลและปริมาณงานขนาดใหญ่
- เพิ่มความเร็วของการทดลองโดยการรันไปป์ไลน์ด้วยชุดไฮเปอร์พารามิเตอร์ที่แตกต่างกัน
คู่มือนี้จะอธิบายแนวคิดหลักที่จำเป็นในการทำความเข้าใจไปป์ไลน์ TFX
สิ่งประดิษฐ์
ผลลัพธ์ของขั้นตอนในไปป์ไลน์ TFX เรียกว่า สิ่งประดิษฐ์ ขั้นตอนต่อมาในเวิร์กโฟลว์ของคุณอาจใช้ส่วนเหล่านี้เป็นอินพุต ด้วยวิธีนี้ TFX ช่วยให้คุณสามารถถ่ายโอนข้อมูลระหว่างขั้นตอนเวิร์กโฟลว์ได้
ตัวอย่างเช่น ส่วนประกอบมาตรฐาน ExampleGen
ปล่อยตัวอย่างที่ต่อเนื่องกัน ซึ่งส่วนประกอบต่างๆ เช่น ส่วนประกอบมาตรฐาน StatisticsGen
ใช้เป็นอินพุต
อาร์ติแฟกต์ต้องพิมพ์อย่างชัดเจนด้วย ประเภทอาร์ติแฟกต์ ที่ลงทะเบียนไว้ในที่เก็บ ข้อมูลเมตา ML เรียนรู้เพิ่มเติมเกี่ยวกับ แนวคิดที่ใช้ใน ML Metadata
ประเภทอาร์ติแฟกต์มีชื่อและกำหนดสคีมาของคุณสมบัติ ชื่อประเภทอาร์ติแฟกต์ต้องไม่ซ้ำกันในที่เก็บข้อมูลเมตา ML ของคุณ TFX มี ประเภทวัตถุมาตรฐาน หลายประเภทที่อธิบายประเภทข้อมูลที่ซับซ้อนและประเภทค่า เช่น สตริง จำนวนเต็ม และจำนวนทศนิยม คุณสามารถ ใช้ประเภทอาร์ติแฟกต์เหล่านี้ซ้ำ หรือกำหนดประเภทอาร์ติแฟกต์ที่กำหนดเองซึ่งได้มาจาก Artifact
พารามิเตอร์
พารามิเตอร์คืออินพุตของไปป์ไลน์ที่ทราบก่อนที่ไปป์ไลน์ของคุณจะถูกดำเนินการ พารามิเตอร์ช่วยให้คุณเปลี่ยนลักษณะการทำงานของไปป์ไลน์หรือส่วนหนึ่งของไปป์ไลน์ได้ผ่านการกำหนดค่าแทนโค้ด
ตัวอย่างเช่น คุณสามารถใช้พารามิเตอร์เพื่อเรียกใช้ไปป์ไลน์ด้วยชุดไฮเปอร์พารามิเตอร์ที่แตกต่างกันโดยไม่ต้องเปลี่ยนโค้ดของไปป์ไลน์
การใช้พารามิเตอร์ช่วยให้คุณเพิ่มความเร็วของการทดลองได้โดยทำให้การรันไปป์ไลน์ด้วยชุดพารามิเตอร์ต่างๆ ง่ายขึ้น
เรียนรู้เพิ่มเติมเกี่ยวกับ คลาส RuntimeParameter
ส่วนประกอบ
ส่วนประกอบ คือการใช้งาน ML ที่คุณสามารถใช้เป็นขั้นตอนในไปป์ไลน์ TFX ของคุณได้ ส่วนประกอบประกอบด้วย:
- ข้อมูลจำเพาะส่วนประกอบ ซึ่งกำหนดส่วนอินพุตและเอาต์พุตของส่วนประกอบ และพารามิเตอร์ที่จำเป็นของส่วนประกอบ
- ผู้ดำเนินการซึ่งใช้โค้ดเพื่อดำเนินการขั้นตอนในเวิร์กโฟลว์ ML ของคุณ เช่น การนำเข้าและการแปลงข้อมูลหรือการฝึกอบรมและการประเมินโมเดล
- อินเทอร์เฟซส่วนประกอบซึ่งจัดทำแพ็คเกจข้อกำหนดส่วนประกอบและตัวดำเนินการเพื่อใช้ในไปป์ไลน์
TFX มี ส่วนประกอบมาตรฐาน หลายประการที่คุณสามารถใช้ในไปป์ไลน์ของคุณได้ หากส่วนประกอบเหล่านี้ไม่ตรงตามความต้องการของคุณ คุณสามารถสร้างส่วนประกอบแบบกำหนดเองได้ เรียนรู้เพิ่มเติมเกี่ยวกับส่วนประกอบที่กำหนดเอง
ไปป์ไลน์
ไปป์ไลน์ TFX เป็นการใช้งานเวิร์กโฟลว์ ML แบบพกพาที่สามารถเรียกใช้บนตัวจัดการต่างๆ เช่น Apache Airflow, Apache Beam และ Kubeflow Pipelines ไปป์ไลน์ประกอบด้วยอินสแตนซ์ส่วนประกอบและพารามิเตอร์อินพุต
อินสแตนซ์คอมโพเนนต์สร้างอาร์ติแฟกต์เป็นเอาต์พุต และโดยทั่วไปจะขึ้นอยู่กับอาร์ติแฟกต์ที่สร้างโดยอินสแตนซ์คอมโพเนนต์อัปสตรีมเป็นอินพุต ลำดับการดำเนินการสำหรับอินสแตนซ์ส่วนประกอบถูกกำหนดโดยการสร้างกราฟอะไซคลิกโดยตรงของการขึ้นต่อกันของอาร์ติแฟกต์
ตัวอย่างเช่น พิจารณาไปป์ไลน์ที่ทำสิ่งต่อไปนี้:
- นำเข้าข้อมูลโดยตรงจากระบบที่เป็นกรรมสิทธิ์โดยใช้ส่วนประกอบที่กำหนดเอง
- คำนวณสถิติสำหรับข้อมูลการฝึกโดยใช้ส่วนประกอบมาตรฐาน StatisticsGen
- สร้างสคีมาข้อมูลโดยใช้คอมโพเนนต์มาตรฐาน SchemaGen
- ตรวจสอบข้อมูลการฝึกเพื่อหาความผิดปกติโดยใช้ส่วนประกอบมาตรฐานของ ExampleValidator
- ดำเนินการวิศวกรรมฟีเจอร์บนชุดข้อมูลโดยใช้คอมโพเนนต์มาตรฐาน Transform
- ฝึกโมเดลโดยใช้ส่วนประกอบมาตรฐานของ Trainer
- ประเมินแบบจำลองที่ผ่านการฝึกอบรมโดยใช้ส่วนประกอบ Evaluator
- หากโมเดลผ่านการประเมิน ไปป์ไลน์จะจัดคิวโมเดลที่ผ่านการฝึกอบรมไปยังระบบการปรับใช้งานที่เป็นกรรมสิทธิ์โดยใช้ส่วนประกอบแบบกำหนดเอง
ในการกำหนดลำดับการดำเนินการสำหรับอินสแตนซ์ส่วนประกอบ TFX จะวิเคราะห์การขึ้นต่อกันของสิ่งประดิษฐ์
- องค์ประกอบการนำเข้าข้อมูลไม่มีการพึ่งพาส่วนใดๆ ดังนั้นจึงอาจเป็นโหนดแรกในกราฟได้
- StatisticsGen ขึ้นอยู่กับ ตัวอย่าง ที่สร้างขึ้นโดยการนำเข้าข้อมูล ดังนั้นจึงต้องดำเนินการหลังจากการนำเข้าข้อมูล
- SchemaGen ขึ้นอยู่กับ สถิติ ที่สร้างโดย StatisticsGen ดังนั้นจึงต้องดำเนินการหลังจาก StatisticsGen
- ExampleValidator ขึ้นอยู่กับ สถิติ ที่สร้างโดย StatisticsGen และ สคีมา ที่สร้างโดย SchemaGen ดังนั้นจึงต้องดำเนินการหลังจาก StatisticsGen และ SchemaGen
- การแปลงขึ้นอยู่กับ ตัวอย่าง ที่สร้างขึ้นโดยการนำเข้าข้อมูลและ สคีมา ที่สร้างโดย SchemaGen ดังนั้นจึงต้องดำเนินการหลังจากการนำเข้าข้อมูลและ SchemaGen
- ผู้ฝึกสอนขึ้นอยู่กับ ตัวอย่าง ที่สร้างขึ้นโดยการนำเข้าข้อมูล สคีมา ที่สร้างโดย SchemaGen และ โมเดลที่บันทึกไว้ ที่สร้างโดย Transform Trainer สามารถดำเนินการได้หลังจากการนำเข้าข้อมูล, SchemaGen และ Transform เท่านั้น
- ผู้ประเมินขึ้นอยู่กับ ตัวอย่าง ที่สร้างขึ้นโดยการนำเข้าข้อมูลและ แบบจำลองที่บันทึกไว้ ซึ่งจัดทำโดยเทรนเนอร์ ดังนั้นจะต้องดำเนินการหลังจากการนำเข้าข้อมูลและเทรนเนอร์
- โปรแกรมปรับใช้แบบกำหนดเองนั้นขึ้นอยู่กับ โมเดลที่บันทึกไว้ ซึ่งสร้างโดยเทรนเนอร์และ ผลการวิเคราะห์ ที่สร้างโดย Service Checker ดังนั้นผู้ปรับใช้จะต้องถูกดำเนินการหลังจาก Trainer และผู้ประเมิน
จากการวิเคราะห์นี้ ผู้เรียบเรียงจะดำเนินการ:
- การนำเข้าข้อมูล, อินสแตนซ์ของคอมโพเนนต์ StatisticsGen, SchemaGen ตามลำดับ
- คอมโพเนนต์ ExampleValidator และ Transform สามารถทำงานแบบขนานได้ เนื่องจากคอมโพเนนต์ใช้การพึ่งพาอาร์ติแฟกต์อินพุตร่วมกัน และไม่ขึ้นอยู่กับเอาต์พุตของกันและกัน
- หลังจากที่คอมโพเนนต์ Transform เสร็จสมบูรณ์แล้ว อินสแตนซ์ของ Trainer, Evaluator และคอมโพเนนต์ของ Deployer แบบกำหนดเองจะทำงานตามลำดับ
เรียนรู้เพิ่มเติมเกี่ยวกับ การสร้างไปป์ไลน์ TFX
เทมเพลตไปป์ไลน์ TFX
เทมเพลตไปป์ไลน์ TFX ช่วยให้เริ่มต้นการพัฒนาไปป์ไลน์ได้ง่ายขึ้นโดยจัดเตรียมไปป์ไลน์ที่สร้างไว้ล่วงหน้าซึ่งคุณสามารถปรับแต่งให้เหมาะกับกรณีการใช้งานของคุณได้
เรียนรู้เพิ่มเติมเกี่ยวกับ การปรับแต่งเทมเพลตไปป์ไลน์ TFX
การเรียกใช้ไปป์ไลน์
การรันคือการดำเนินการครั้งเดียวของไปป์ไลน์
ออร์เคสตรา
Orchestrator คือระบบที่คุณสามารถดำเนินการไปป์ไลน์ได้ TFX รองรับออเคสตราเช่น: Apache Airflow , Apache Beam และ Kubeflow Pipelines TFX ยังใช้คำว่า DagRunner เพื่ออ้างถึงการใช้งานที่รองรับ orchestrator