ทำความเข้าใจกับ TFX Custom Components

ไปป์ไลน์ 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 decorator ในฟังก์ชันของคุณ

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

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

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

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

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

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

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

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

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

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

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

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

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

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