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