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