ทำความเข้าใจกับส่วนประกอบที่กำหนดเองของ TFX

ไปป์ไลน์ TFX ช่วยให้คุณจัดการเวิร์กโฟลว์แมชชีนเลิร์นนิง (ML) บนออเคสตราเตอร์ เช่น Apache Airflow, Apache Beam และ Kubeflow Pipelines ไปป์ไลน์จัดระเบียบเวิร์กโฟลว์ของคุณเป็นลำดับของส่วนประกอบ โดยที่แต่ละส่วนประกอบจะดำเนินการขั้นตอนหนึ่งในเวิร์กโฟลว์ ML ของคุณ ส่วนประกอบมาตรฐาน TFX มอบฟังก์ชันการทำงานที่ได้รับการพิสูจน์แล้วเพื่อช่วยให้คุณเริ่มต้นสร้างเวิร์กโฟลว์ ML ได้อย่างง่ายดาย คุณยังสามารถรวมส่วนประกอบที่กำหนดเองไว้ในเวิร์กโฟลว์ของคุณได้ ส่วนประกอบที่กำหนดเองช่วยให้คุณขยายเวิร์กโฟลว์ ML ได้โดย:

  • การสร้างส่วนประกอบที่ได้รับการปรับแต่งให้ตรงตามความต้องการของคุณ เช่น การนำเข้าข้อมูลจากระบบที่เป็นกรรมสิทธิ์
  • การใช้การเพิ่มข้อมูล การสุ่มตัวอย่างหรือการสุ่มตัวอย่าง
  • ดำเนินการตรวจจับความผิดปกติตามช่วงความเชื่อมั่นหรือข้อผิดพลาดในการสร้างรหัสอัตโนมัติ
  • การเชื่อมต่อกับระบบภายนอก เช่น Help Desk เพื่อแจ้งเตือนและติดตาม
  • การใช้ป้ายกำกับกับตัวอย่างที่ไม่มีป้ายกำกับ
  • การรวมเครื่องมือที่สร้างด้วยภาษาอื่นที่ไม่ใช่ Python เข้ากับเวิร์กโฟลว์ ML ของคุณ เช่น การวิเคราะห์ข้อมูลโดยใช้ R

การผสมผสานส่วนประกอบมาตรฐานและส่วนประกอบแบบกำหนดเองเข้าด้วยกัน คุณสามารถสร้างเวิร์กโฟลว์ ML ที่ตรงกับความต้องการของคุณ พร้อมทั้งใช้ประโยชน์จากแนวทางปฏิบัติที่ดีที่สุดที่มีอยู่ในส่วนประกอบมาตรฐาน TFX

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

กายวิภาคของส่วนประกอบ TFX

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

ส่วนประกอบ TFX ประกอบด้วยข้อกำหนดส่วนประกอบและคลาสตัวดำเนินการซึ่งบรรจุอยู่ในคลาสอินเทอร์เฟซส่วนประกอบ

ข้อกำหนดส่วนประกอบ จะกำหนดสัญญาอินพุตและเอาท์พุตของส่วนประกอบ สัญญานี้ระบุส่วนอินพุตและเอาท์พุตของส่วนประกอบ และพารามิเตอร์ที่ใช้สำหรับการดำเนินการส่วนประกอบ

คลาส ตัวดำเนินการ ของส่วนประกอบจัดเตรียมการใช้งานสำหรับงานที่ดำเนินการโดยส่วนประกอบ

คลาส อินเทอร์เฟซส่วนประกอบ จะรวมข้อกำหนดส่วนประกอบเข้ากับตัวดำเนินการเพื่อใช้เป็นส่วนประกอบในไปป์ไลน์ TFX

ส่วนประกอบ TFX ณ รันไทม์

เมื่อไปป์ไลน์รันส่วนประกอบ TFX ส่วนประกอบจะถูกดำเนินการในสามเฟส:

  1. ขั้นแรก ไดรเวอร์ใช้ข้อกำหนดส่วนประกอบเพื่อดึงส่วนที่จำเป็นจากที่เก็บข้อมูลเมตาและส่งผ่านไปยังส่วนประกอบ
  2. จากนั้น Executor จะดำเนินงานของส่วนประกอบ
  3. จากนั้นผู้เผยแพร่จะใช้ข้อกำหนดส่วนประกอบและผลลัพธ์จากตัวดำเนินการเพื่อจัดเก็บเอาต์พุตของส่วนประกอบในการจัดเก็บข้อมูลเมตา

ส่วนประกอบกายวิภาคศาสตร์

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

ประเภทของส่วนประกอบที่กำหนดเอง

ส่วนประกอบแบบกำหนดเองมีสามประเภท: ส่วนประกอบตามฟังก์ชัน Python ส่วนประกอบตามคอนเทนเนอร์ และส่วนประกอบแบบกำหนดเองทั้งหมด ส่วนต่อไปนี้จะอธิบายส่วนประกอบประเภทต่างๆ และกรณีที่คุณควรใช้แต่ละวิธี

ส่วนประกอบตามฟังก์ชัน Python

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

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

เรียนรู้วิธี สร้างส่วนประกอบตามฟังก์ชัน Python

ส่วนประกอบที่ใช้คอนเทนเนอร์

ส่วนประกอบที่ใช้คอนเทนเนอร์ให้ความยืดหยุ่นในการรวมโค้ดที่เขียนในภาษาใดๆ ลงในไปป์ไลน์ของคุณ ตราบใดที่คุณสามารถรันโค้ดนั้นในคอนเทนเนอร์ Docker ได้ หากต้องการสร้างส่วนประกอบตามคอนเทนเนอร์ คุณต้องสร้างอิมเมจคอนเทนเนอร์ Docker ที่มีโค้ดปฏิบัติการของส่วนประกอบของคุณ จากนั้นคุณต้องเรียกใช้ ฟังก์ชัน create_container_component เพื่อกำหนด:

  • อินพุต เอาต์พุต และพารามิเตอร์ของข้อกำหนดส่วนประกอบของคุณ
  • อิมเมจคอนเทนเนอร์และคำสั่งที่ตัวดำเนินการคอมโพเนนต์ทำงาน

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

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

เรียนรู้วิธี สร้างส่วนประกอบตามคอนเทนเนอร์

ส่วนประกอบที่กำหนดเองอย่างเต็มที่

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

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

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

วิธีนี้เหมาะที่สุดสำหรับการนำข้อกำหนดเฉพาะของส่วนประกอบและตัวดำเนินการที่มีอยู่กลับมาใช้ใหม่

เรียนรู้วิธี สร้างส่วนประกอบที่กำหนดเองโดยสมบูรณ์