استفاده از سایر چارچوب های ML در TFX

TFX به عنوان یک پلتفرم فریمورک خنثی است و می تواند با سایر فریم ورک های ML، به عنوان مثال، JAX، scikit-learn استفاده شود.

برای توسعه دهندگان مدل، این بدان معناست که آنها نیازی به بازنویسی کد مدل خود که در چارچوب ML دیگری پیاده سازی شده است، ندارند، بلکه می توانند در عوض از قسمت عمده کد آموزشی همانطور که در TFX هست دوباره استفاده کنند و از سایر قابلیت های TFX و بقیه اکوسیستم TensorFlow بهره مند شوند. ارائه می دهد.

SDK خط لوله TFX و اکثر ماژول ها در TFX، به عنوان مثال، ارکستراتور خط لوله، هیچ وابستگی مستقیمی به TensorFlow ندارند، اما جنبه هایی وجود دارد که به سمت TensorFlow گرایش دارند، مانند فرمت های داده. با توجه به نیازهای یک چارچوب مدل‌سازی خاص، می‌توان از خط لوله TFX برای آموزش مدل‌ها در هر چارچوب ML مبتنی بر پایتون استفاده کرد. این شامل Scikit-learn، XGBoost، و PyTorch، در میان دیگران است. برخی از ملاحظات استفاده از مؤلفه های استاندارد TFX با سایر چارچوب ها عبارتند از:

  • ExampleGen tf.train.Example را در فایل های TFRecord خروجی می دهد. این یک نمایش عمومی برای داده‌های آموزشی است و اجزای پایین‌دست از TFXIO برای خواندن آن به‌عنوان Arrow/RecordBatch در حافظه استفاده می‌کنند که می‌تواند بیشتر به tf.dataset ، Tensors یا فرمت‌های دیگر تبدیل شود. قالب‌های Payload/File غیر از tf.train.Example/TFRecord در نظر گرفته شده‌اند، اما برای کاربران TFXIO باید یک جعبه سیاه باشد.
  • از Transform می‌توان برای تولید نمونه‌های آموزشی تبدیل‌شده صرف نظر از اینکه چه چارچوبی برای آموزش استفاده می‌شود، استفاده کرد، اما اگر قالب مدل saved_model نباشد، کاربران نمی‌توانند نمودار تبدیل را در مدل جاسازی کنند. در آن صورت، پیش‌بینی مدل باید ویژگی‌های تبدیل‌شده را به جای ویژگی‌های خام بگیرد، و کاربران می‌توانند قبل از فراخوانی پیش‌بینی مدل هنگام ارائه، تبدیل را به عنوان یک مرحله پیش پردازش اجرا کنند.
  • ترینر از GenericTraining پشتیبانی می کند تا کاربران بتوانند مدل های خود را با استفاده از هر چارچوب ML آموزش دهند.
  • Evaluator به طور پیش‌فرض فقط saved_model را پشتیبانی می‌کند، اما کاربران می‌توانند یک UDF ارائه دهند که پیش‌بینی‌هایی را برای ارزیابی مدل ایجاد می‌کند.

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

JAX

JAX Autograd و XLA است که برای تحقیقات یادگیری ماشینی با کارایی بالا گرد هم آمده اند. Flax یک کتابخانه شبکه عصبی و اکوسیستم برای JAX است که برای انعطاف‌پذیری طراحی شده است.

با jax2tf ، ما می‌توانیم مدل‌های آموزش دیده JAX/Flax را به فرمت saved_model تبدیل کنیم، که می‌تواند به‌طور یکپارچه در TFX با آموزش عمومی و ارزیابی مدل استفاده شود. برای جزئیات، این مثال را بررسی کنید.

scikit-یادگیری

Scikit-learn یک کتابخانه یادگیری ماشین برای زبان برنامه نویسی پایتون است. ما یک نمونه e2e با آموزش و ارزیابی سفارشی در TFX-Addons داریم.