درک اجزای سفارشی TFX

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

خطوط لوله TFX به شما امکان می دهد گردش کار یادگیری ماشینی (ML) خود را روی ارکستراتورها تنظیم کنید، مانند: Apache Airflow، Apache Beam، و Kubeflow Pipelines. Pipelines گردش کار شما را به دنباله ای از مؤلفه ها سازماندهی می کند، جایی که هر مؤلفه یک مرحله از گردش کار ML شما را انجام می دهد. اجزای استاندارد TFX عملکرد ثابت شده ای را ارائه می دهند تا به شما کمک کنند تا به راحتی یک گردش کار ML را شروع کنید. شما همچنین می توانید اجزای سفارشی را در گردش کار خود قرار دهید. اجزای سفارشی به شما امکان می دهند گردش کار ML خود را با موارد زیر گسترش دهید:

  • ساخت اجزایی که برای رفع نیازهای شما طراحی شده اند، مانند دریافت داده ها از یک سیستم اختصاصی.
  • اعمال افزایش، نمونه‌برداری یا پایین‌نمونه‌سازی داده‌ها.
  • تشخیص ناهنجاری را بر اساس فواصل اطمینان یا خطای بازتولید رمزگذار خودکار انجام دهید.
  • ارتباط با سیستم های خارجی مانند میز کمک برای هشدار و نظارت.
  • اعمال برچسب برای نمونه های بدون برچسب.
  • ادغام ابزارهای ساخته شده با زبان های غیر از پایتون در گردش کار ML شما، مانند انجام تجزیه و تحلیل داده ها با استفاده از R.

با ترکیب مؤلفه‌های استاندارد و مؤلفه‌های سفارشی، می‌توانید یک گردش کار ML ایجاد کنید که نیازهای شما را برآورده کند و در عین حال از بهترین شیوه‌های تعبیه‌شده در مؤلفه‌های استاندارد TFX استفاده کنید.

این راهنما مفاهیم مورد نیاز برای درک مولفه های سفارشی TFX و راه های مختلفی را که می توانید اجزای سفارشی بسازید را شرح می دهد.

آناتومی یک جزء TFX

این بخش یک نمای کلی در سطح بالا از ترکیب یک جزء TFX ارائه می دهد. اگر با خطوط لوله TFX تازه کار هستید، با خواندن راهنمای درک خطوط لوله TFX، مفاهیم اصلی را بیاموزید .

اجزای TFX از مشخصات کامپوننت و کلاس اجرایی تشکیل شده اند که در کلاس رابط کامپوننت بسته بندی شده اند.

مشخصات جزء، قرارداد ورودی و خروجی جزء را تعریف می کند. این قرارداد مصنوعات ورودی و خروجی کامپوننت و پارامترهایی را که برای اجرای کامپوننت استفاده می شود، مشخص می کند.

کلاس اجرایی یک جزء، اجرای کار انجام شده توسط کامپوننت را فراهم می کند.

یک کلاس رابط کامپوننت، مشخصات کامپوننت را با مجری برای استفاده به عنوان یک جزء در خط لوله TFX ترکیب می کند.

اجزای TFX در زمان اجرا

هنگامی که خط لوله یک جزء TFX را اجرا می کند، جزء در سه مرحله اجرا می شود:

  1. ابتدا، درایور از مشخصات کامپوننت برای بازیابی مصنوعات مورد نیاز از فروشگاه ابرداده و ارسال آنها به کامپوننت استفاده می کند.
  2. سپس، Executor کار کامپوننت را انجام می دهد.
  3. سپس Publisher از مشخصات مؤلفه و نتایج حاصل از اجراکننده برای ذخیره خروجی های مؤلفه در ذخیره سازی ابرداده استفاده می کند.

آناتومی کامپوننت

اکثر پیاده سازی های کامپوننت سفارشی نیازی به شخصی سازی درایور یا Publisher ندارند. به طور معمول، اصلاحات در Driver و Publisher فقط در صورتی لازم است که بخواهید تعامل بین اجزای خط لوله خود و ذخیره ابرداده را تغییر دهید. اگر فقط می‌خواهید ورودی‌ها، خروجی‌ها یا پارامترهای مؤلفه خود را تغییر دهید، فقط باید مشخصات مؤلفه را تغییر دهید.

انواع قطعات سفارشی

سه نوع مؤلفه سفارشی وجود دارد: مؤلفه های مبتنی بر تابع پایتون، مؤلفه های مبتنی بر کانتینر و مؤلفه های کاملاً سفارشی. بخش‌های زیر انواع مختلف مولفه‌ها و مواردی را که باید از هر رویکرد استفاده کنید، توضیح می‌دهد.

اجزای مبتنی بر تابع پایتون

ساخت مؤلفه‌های مبتنی بر تابع پایتون نسبت به مؤلفه‌های مبتنی بر کانتینر یا مؤلفه‌های کاملاً سفارشی آسان‌تر است. مشخصات مؤلفه در آرگومان های تابع پایتون با استفاده از حاشیه نویسی نوع تعریف می شود که توضیح می دهد آیا یک آرگومان مصنوع ورودی، مصنوع خروجی یا یک پارامتر است. بدنه تابع، مجری جزء را تعریف می کند. رابط کامپوننت با افزودن @component decorator به عملکرد شما تعریف می شود.

با تزئین تابع خود با تزئین @component و تعریف آرگومان های تابع با حاشیه نویسی نوع، می توانید یک کامپوننت بدون پیچیدگی ساخت مشخصات کامپوننت، یک مجری و یک رابط کامپوننت ایجاد کنید.

با نحوه ساخت اجزای مبتنی بر تابع پایتون آشنا شوید.

اجزای کانتینری

اجزای مبتنی بر کانتینر انعطاف‌پذیری را برای ادغام کد نوشته شده به هر زبانی در خط لوله شما فراهم می‌کنند، تا زمانی که بتوانید آن کد را در یک ظرف Docker اجرا کنید. برای ایجاد یک کامپوننت مبتنی بر کانتینر، باید یک تصویر ظرف Docker بسازید که حاوی کد اجرایی کامپوننت شما باشد. سپس باید تابع create_container_component را فراخوانی کنید تا تعریف کنید:

  • ورودی ها، خروجی ها و پارامترهای مشخصات جزء شما.
  • تصویر کانتینر و دستوری که مجری کامپوننت اجرا می کند.

این تابع نمونه ای از یک جزء را برمی گرداند که می توانید آن را در تعریف خط لوله خود قرار دهید.

این رویکرد پیچیده‌تر از ساخت یک مؤلفه مبتنی بر تابع پایتون است، زیرا نیاز به بسته‌بندی کد شما به عنوان یک تصویر ظرف دارد. این رویکرد برای گنجاندن کدهای غیر پایتون در خط لوله شما یا برای ساخت اجزای پایتون با محیط‌های زمان اجرا یا وابستگی‌های پیچیده بسیار مناسب است.

نحوه ساخت اجزای مبتنی بر کانتینر را بیاموزید.

اجزای کاملا سفارشی

کامپوننت های کاملا سفارشی به شما این امکان را می دهند که با تعریف مشخصات کامپوننت، مجری و کلاس های رابط کامپوننت، کامپوننت ها را بسازید. این رویکرد به شما این امکان را می‌دهد که از یک جزء استاندارد مطابق با نیازهای خود استفاده مجدد و گسترش دهید.

اگر یک مؤلفه موجود با همان ورودی ها و خروجی های مؤلفه سفارشی که در حال توسعه هستید تعریف شده باشد، می توانید به سادگی کلاس Executor مؤلفه موجود را لغو کنید. این بدان معناست که شما می توانید مجدداً از مشخصات کامپوننت استفاده کنید و یک مجری جدید که از یک جزء موجود مشتق شده است را پیاده سازی کنید. به این ترتیب، از عملکردی که در اجزای موجود تعبیه شده است استفاده مجدد می‌کنید و تنها عملکرد مورد نیاز را اجرا می‌کنید.

با این حال، اگر ورودی ها و خروجی های مؤلفه جدید شما منحصر به فرد هستند، می توانید مشخصات کامپوننت کاملاً جدیدی را تعریف کنید.

این رویکرد برای استفاده مجدد از مشخصات اجزا و مجریان موجود بهترین است.

یاد بگیرید که چگونه اجزای کاملا سفارشی بسازید .