ทำความเข้าใจกับไปป์ไลน์ TFX

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