کاوش در Kubeflow: روز 18 از 50 روز سری ابزارهای DevOps

به روز 18 مجموعه “50 روز ابزار DevOps” ما خوش آمدید. امروز، ما به Kubeflow، یک ابزار جامع یادگیری ماشینی برای Kubernetes می پردازیم. Kubeflow به گونه ای طراحی شده است که استقرار گردش کار یادگیری ماشین (ML) در Kubernetes را ساده، قابل حمل و مقیاس پذیر کند.
Kubeflow چیست؟
Kubeflow یک پروژه منبع باز است که به ساده کردن استقرار گردش کار یادگیری ماشین در Kubernetes اختصاص دارد. این طراحی شده است تا از مقیاس پذیری و انعطاف پذیری Kubernetes استفاده کند و آموزش، سرویس دهی و مدیریت کارآمد مدل ML را امکان پذیر می کند.
ویژگی های کلیدی Kubeflow
مقیاس پذیری: Kubeflow با استفاده از قابلیت های بومی Kubernetes می تواند به راحتی حجم کاری ML را مقیاس کند.
قابلیت حمل: اطمینان حاصل می کند که گردش کار ML در محیط های مختلف سازگار است.
خطوط لوله ML End-to-End: ایجاد، مدیریت و استقرار خطوط لوله کامل ML را تسهیل می کند.
ادغام با چارچوب های محبوب ML: از TensorFlow، PyTorch و غیره پشتیبانی می کند.
چند اجاره ای: از چندین کاربر و تیم در یک خوشه Kubernetes پشتیبانی می کند.
معماری Kubeflow
معماری Kubeflow از چندین مؤلفه تشکیل شده است که هر کدام برای رسیدگی به بخش خاصی از گردش کار ML طراحی شده اند. اجزای کلیدی عبارتند از:
Kubernetes: پلت فرم اصلی ارکستراسیون.
خطوط لوله Kubeflow: جریان های کاری پیچیده را هماهنگ می کند.
KFServing: مدل های یادگیری ماشین را ارائه می دهد.
دبیر، منشی: تنظیم فراپارامتر
نوت بوک: نوت بوک های Jupyter برای توسعه تعاملی.
داشبورد مرکزی: یک رابط یکپارچه برای مدیریت تمام منابع Kubeflow.
نصب Kubeflow
Kubeflow را می توان به روش های مختلفی نصب کرد. اسناد رسمی استفاده از kustomize را برای استقرار Kubeflow توصیه می کند.
پیش نیازها
یک خوشه Kubernetes (نسخه 1.14 یا بالاتر).
ابزار خط فرمان kubectl.
kustomize برای مدیریت پیکربندی.
مراحل نصب
مخزن مانیفست Kubeflow را شبیه سازی کنید:
git clone https://github.com/kubeflow/manifests.git
cd manifests
Kubeflow را مستقر کنید:
while ! kustomize build example | kubectl apply -f -; do echo "Retrying to apply resources"; sleep 10; done
تأیید استقرار:
kubectl get pods -n kubeflow
دسترسی به داشبورد Kubeflow:
راه اندازی پیش فرض از Istio برای ورود استفاده می کند. می توانید با استفاده از پورت فورواردینگ به داشبورد دسترسی داشته باشید:
kubectl port-forward -n istio-system svc/istio-ingressgateway 8080:80
مرورگر خود را باز کنید و به http://localhost:8080 بروید.
راه اندازی و پیکربندی Kubeflow
پیکربندی نوت بوک های Jupyter
Kubeflow یک رابط مرکزی برای مدیریت نوت بوک های Jupyter فراهم می کند.
دسترسی به بخش نوت بوک: از داشبورد Kubeflow، به بخش Notebooks بروید.
یک نوت بوک جدید بسازید: بر روی “New Notebook” کلیک کنید و مشخصات مورد نیاز مانند نام، تصویر، CPU و محدودیت های حافظه را وارد کنید.
نوت بوک را راه اندازی کنید: پس از ایجاد نوت بوک، می توانید آن را راه اندازی کنید و به صورت تعاملی روی کد ML خود کار کنید.
ایجاد خطوط لوله ML
Kubeflow Pipelines به شما اجازه می دهد تا گردش های کاری پیچیده ML را هماهنگ کنید.
اجزای خط لوله را تعریف کنید: هر مرحله در خط لوله به عنوان یک جزء جداگانه تعریف می شود.
ایجاد یک خط لوله: از Python SDK برای ایجاد خط لوله استفاده کنید.
from kfp import dsl
@dsl.pipeline(
name="My Pipeline",
description='A simple pipeline example'
)
def my_pipeline():
step1 = dsl.ContainerOp(
name="Step 1",
image="my-image",
command=['python', 'script.py']
)
خط لوله را کامپایل و آپلود کنید:
from kfp.compiler import Compiler
Compiler().compile(my_pipeline, 'my_pipeline.yaml')
فایل my_pipeline.yaml را در رابط کاربری Kubeflow Pipelines آپلود کنید.
اجرای خط لوله: خط لوله را از رابط کاربری Kubeflow Pipelines شروع کنید و پیشرفت آن را نظارت کنید.
مزایای استفاده از Kubeflow
پلتفرم یکپارچه: یک پلت فرم واحد برای توسعه، هماهنگ سازی، استقرار و نظارت بر گردش کار ML فراهم می کند.
مقیاس پذیری: با استفاده از Kubernetes، بارهای کاری ML را به طور یکپارچه مقیاس می دهد.
قابلیت حمل: استقرار گردش کار ML سازگار در محیط های مختلف را تضمین می کند.
انعطاف پذیری: از چارچوب ها و ابزارهای مختلف ML پشتیبانی می کند.
پشتیبانی جامعه: به عنوان یک پروژه منبع باز، پشتیبانی قوی از جامعه و به روز رسانی منظم دارد.
محدودیت های Kubeflow
پیچیدگی: راه اندازی و پیکربندی اولیه می تواند برای مبتدیان پیچیده باشد.
منابع فشرده: برای اجرای کارآمد به منابع قابل توجهی نیاز دارد.
منحنی یادگیری: دارای منحنی یادگیری شیب دار است، به خصوص برای کسانی که تازه به Kubernetes و ML می پردازند.
نتیجه
Kubeflow یک جعبه ابزار قدرتمند برای استقرار گردش کار یادگیری ماشین در Kubernetes است. از مقیاسپذیری و انعطافپذیری Kubernetes استفاده میکند و راهحلی سرتاسر برای آموزش، ارائه و مدیریت مدل ML ارائه میکند. در حالی که دارای منحنی یادگیری شیب دار است و می تواند منابع فشرده باشد، مزایایی که برای مدیریت گردش کار ML به ارمغان می آورد، آن را به ابزاری ارزشمند برای مهندسان DevOps و دانشمندان داده تبدیل می کند.
منتظر پست فردا باشید که در آن به ابزارهای پیشرفته تر و صرفه جویی در زمان برای Kubernetes خواهیم پرداخت!
👉 حتما من را در لینکدین دنبال کنید تا آخرین به روز رسانی ها را دریافت کنید: Shiivam Agnihotri