ไปป์ไลน์ 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 ส่วนประกอบจะถูกดำเนินการในสามขั้นตอน:
- ขั้นแรก ไดรเวอร์ใช้ข้อมูลจำเพาะของส่วนประกอบเพื่อดึงสิ่งประดิษฐ์ที่จำเป็นจากที่เก็บข้อมูลเมตาและส่งผ่านไปยังส่วนประกอบ
- ถัดไป Executor ทำงานของส่วนประกอบ
- จากนั้นผู้เผยแพร่จะใช้ข้อกำหนดส่วนประกอบและผลลัพธ์จากตัวดำเนินการเพื่อจัดเก็บผลลัพธ์ของส่วนประกอบในที่เก็บข้อมูลเมตา
การใช้งานส่วนประกอบแบบกำหนดเองส่วนใหญ่ไม่ต้องการให้คุณปรับแต่งไดรเวอร์หรือผู้เผยแพร่ โดยทั่วไป การปรับเปลี่ยนไดรเวอร์และผู้เผยแพร่ควรมีความจำเป็นเฉพาะในกรณีที่คุณต้องการเปลี่ยนการโต้ตอบระหว่างคอมโพเนนต์ของไปป์ไลน์และที่เก็บข้อมูลเมตา หากคุณต้องการเปลี่ยนเฉพาะอินพุต เอาต์พุต หรือพารามิเตอร์สำหรับส่วนประกอบของคุณ คุณจะต้องแก้ไข ข้อมูลจำเพาะของส่วนประกอบ เท่านั้น
ประเภทของส่วนประกอบที่กำหนดเอง
ส่วนประกอบที่กำหนดเองมีสามประเภท: ส่วนประกอบตามฟังก์ชัน Python ส่วนประกอบตามคอนเทนเนอร์ และส่วนประกอบที่กำหนดเองทั้งหมด ส่วนต่อไปนี้จะอธิบายส่วนประกอบประเภทต่างๆ และกรณีที่คุณควรใช้แต่ละแนวทาง
ส่วนประกอบตามฟังก์ชัน Python
ส่วนประกอบตามฟังก์ชันของ Python นั้นสร้างได้ง่ายกว่าส่วนประกอบที่ใช้คอนเทนเนอร์หรือส่วนประกอบที่กำหนดเองทั้งหมด ข้อกำหนดส่วนประกอบถูกกำหนดไว้ในอาร์กิวเมนต์ของฟังก์ชัน Python โดยใช้คำอธิบายประกอบประเภทที่อธิบายว่าอาร์กิวเมนต์เป็นอาร์กิวเมนต์อินพุต อาร์ติแฟกต์เอาต์พุต หรือพารามิเตอร์ ตัวฟังก์ชันกำหนดตัวดำเนินการของคอมโพเนนต์ อินเทอร์เฟซคอมโพเนนต์ถูกกำหนดโดยการเพิ่ม @component
decorator ในฟังก์ชันของคุณ
ด้วยการตกแต่งฟังก์ชันของคุณด้วย @component
decorator และกำหนดอาร์กิวเมนต์ของฟังก์ชันด้วยคำอธิบายประกอบประเภท คุณสามารถสร้างส่วนประกอบได้โดยไม่ต้องสร้างข้อกำหนดของส่วนประกอบ ตัวดำเนินการ และอินเทอร์เฟซของส่วนประกอบ
เรียนรู้วิธี สร้างส่วนประกอบตามฟังก์ชัน Python
ส่วนประกอบที่ใช้คอนเทนเนอร์
ส่วนประกอบแบบคอนเทนเนอร์ให้ความยืดหยุ่นในการรวมโค้ดที่เขียนในภาษาใดๆ ไว้ในไปป์ไลน์ของคุณ ตราบใดที่คุณสามารถรันโค้ดนั้นในคอนเทนเนอร์ Docker ในการสร้างคอมโพเนนต์แบบอิงคอนเทนเนอร์ คุณต้องสร้างอิมเมจคอนเทนเนอร์ Docker ที่มีโค้ดสั่งการของคอมโพเนนต์ จากนั้นคุณต้องเรียกใช้ ฟังก์ชัน create_container_component
เพื่อกำหนด:
- อินพุต เอาต์พุต และพารามิเตอร์ของข้อกำหนดส่วนประกอบของคุณ
- อิมเมจคอนเทนเนอร์และคำสั่งที่เรียกใช้คอมโพเนนต์
ฟังก์ชันนี้ส่งคืนอินสแตนซ์ของส่วนประกอบที่คุณสามารถรวมไว้ในข้อกำหนดไปป์ไลน์ของคุณ
วิธีการนี้ซับซ้อนกว่าการสร้างคอมโพเนนต์ตามฟังก์ชัน Python เนื่องจากต้องมีการบรรจุโค้ดของคุณเป็นอิมเมจคอนเทนเนอร์ แนวทางนี้เหมาะสมที่สุดสำหรับการรวมโค้ดที่ไม่ใช่ Python ไว้ในไปป์ไลน์ของคุณ หรือสำหรับการสร้างส่วนประกอบ Python ที่มีสภาพแวดล้อมรันไทม์ที่ซับซ้อนหรือการพึ่งพาอาศัยกัน
เรียนรู้วิธี สร้างส่วนประกอบที่ใช้คอนเทนเนอร์
ส่วนประกอบที่กำหนดเองอย่างเต็มที่
ส่วนประกอบที่กำหนดเองทั้งหมดช่วยให้คุณสร้างส่วนประกอบโดยการกำหนดข้อกำหนดส่วนประกอบ ตัวดำเนินการ และคลาสส่วนต่อประสานส่วนประกอบ วิธีนี้ช่วยให้คุณใช้ซ้ำและขยายองค์ประกอบมาตรฐานให้เหมาะกับความต้องการของคุณได้
หากองค์ประกอบที่มีอยู่ถูกกำหนดด้วยอินพุตและเอาต์พุตเดียวกันกับส่วนประกอบที่กำหนดเองที่คุณกำลังพัฒนา คุณสามารถแทนที่คลาส Executor ของส่วนประกอบที่มีอยู่ได้ ซึ่งหมายความว่าคุณสามารถใช้ข้อกำหนดของส่วนประกอบซ้ำและใช้ตัวดำเนินการใหม่ที่เกิดจากส่วนประกอบที่มีอยู่ได้ ด้วยวิธีนี้ คุณจะนำฟังก์ชันที่มีอยู่ในส่วนประกอบที่มีอยู่กลับมาใช้ใหม่และใช้เฉพาะฟังก์ชันที่จำเป็นเท่านั้น
อย่างไรก็ตาม หากอินพุตและเอาต์พุตของส่วนประกอบใหม่ของคุณไม่ซ้ำกัน คุณสามารถกำหนด ข้อมูลจำเพาะของส่วนประกอบ ใหม่ทั้งหมดได้
แนวทางนี้ดีที่สุดสำหรับการนำข้อกำหนดและตัวดำเนินการของส่วนประกอบที่มีอยู่กลับมาใช้ใหม่
เรียนรู้วิธี สร้างส่วนประกอบที่กำหนดเองอย่างสมบูรณ์