Sematic + Ray: بهترین ارکستراسیون و محاسبات توزیع شده در نوک انگشتان شما

یافتن ترکیب های پویا
درست کردن زیرساخت یادگیری ماشین (ML) واقعاً سخت است. یکی از چالشهای پیش روی هر پروژه ML، یافتن ابزار مناسب برای کار است. تعداد ابزارهایی که بخشهای مختلف چرخه حیات ML را هدف قرار میدهند، میتوانند به راحتی احساس کنند.
گاهی اوقات، به نظر میرسد که دو ابزار «فقط با هم جا میشوند» و فراموش میکنید که حتی با چندین ابزار کار میکنید زیرا خطوط به یک تجربه منسجم تبدیل میشوند. یکی از مثالهایی که هر مهندس ML یا دانشمند داده با آن آشنا است، ناپخت و پانداها هستند. Numpy محاسبات ریاضی سریع و قدرتمند را با آرایه ها/ماتریس ها در پایتون فعال می کند. Pandas ساختارهای داده سطح بالاتری را برای دستکاری داده های جدولی ارائه می دهد. در حالی که البته میتوانید یکی را بدون استفاده از دیگری (بهصراحت) استفاده کنید، اما آنها به خوبی یکدیگر را تکمیل میکنند که اغلب با هم استفاده میشوند. پانداها به عنوان یک لایه قابلیت استفاده کار می کنند، در حالی که numpy آن را با راندمان محاسباتی سوپرشارژ می کند.
ما در Sematic اهمیت می دهیم زیاد در مورد قابلیت استفاده هدف ما این است که گردشهای کاری ML شما را تا حد امکان ساده و شهودی کنیم، در حالی که بهترین ردیابی نسل، تضمینهای تکرارپذیری، برابری محلی/ابر و موارد دیگر را برای شما فراهم میکنیم. میتوانید با استفاده از Sematic بخشهای مختلف خطوط لوله ML خود را به هم متصل کنید و مشخص کنید به چه نوع منابعی در ابر نیاز دارید. اما بسیاری از بخشهای چرخه حیات ML مدرن به بیش از یک گره محاسباتی نیاز دارند – شما به یک خوشه نیاز دارید. به عنوان مثال، آموزش ResNet-50 اصلی روی یک GPU 14 روز طول می کشد. استفاده از محاسبات خوشه ای می تواند این زمان را به شدت کاهش دهد. Sematic به ابزاری برای کمک به سوپرشارژ کردن آن با منابع محاسباتی خوشهای نیاز داشت، در حالت ایدهآل به روشی که «فقط با ابزار دیگری متناسب باشد».
اشعه
Ray خود را بهعنوان یک چارچوب محاسباتی یکپارچه منبع باز معرفی میکند که مقیاسگذاری حجمهای کاری هوش مصنوعی و پایتون را آسان میکند. پرتو را می توان به سه بخش عمده تقسیم کرد:
- ری کور: برخی از اصول اولیه برای ارتباطات توزیع شده، تعریف حجم کاری و منطقی که باید توسط لایه محاسباتی توزیع شده اجرا شود و منابع محاسباتی اولیه برای تعامل با سیستم.
- کتابخانه های دامنه بومی Ray: کتابخانهها «خارج از جعبه» با Ray برای بخشهای مختلف توسعه ML، مانند تنظیم فراپارامتر، پردازش دادهها، و آموزش ارائه کردند.
- اکوسیستم ادغام ها: Ray با بسیاری از ابزارها و فریم ورکهای محبوب در چشمانداز وسیعتر ML، مانند Hugging Face، Spark، PyTorch و بسیاری دیگر ادغام میشود.
با این قطعات، Ray به راحتی به عنوان یک نیروگاه برای محاسبات توزیع شده در ML می ایستد.
Sematic + Ray
Sematic به گونه ای طراحی شده است که به شما امکان می دهد خطوط لوله ML سرتاسری را با حداقل هزینه توسعه ایجاد کنید، در حالی که تجسم، ردیابی نسل، تکرارپذیری و موارد دیگر را اضافه می کند. به زبان Sematic، مراحل خط لوله شما عبارتند از توابع معنایی – شاید یکی برای پردازش داده، یکی برای آموزش، یکی برای ارزیابی و غیره. سپس، در این توابع معنایی، می توانید از Ray برای مقیاس کارآمد پردازش داده ها فراتر از یک گره محاسباتی استفاده کنید.
این به عنوان یک مدل مفهومی عالی است، اما Sematic چگونه در عمل با Ray ادغام می شود؟
هنگامی که در حال نوشتن یک خط لوله هستید، استفاده از Ray در یک تابع Sematic به آسانی استفاده از مدیر زمینه RayCluster در داخل تابع است. این یک خوشه Ray را بر حسب تقاضا می چرخاند و تنها زمانی که خوشه برای استفاده آماده شد وارد زمینه “با” می شود. سپس کد شما می تواند از Ray درست مانند هر موقعیت دیگری استفاده کند. هنگامی که اجرای کد شما (چه با موفقیت یا ناموفق) به پایان رسید، کلاستر Ray برای شما پاک می شود. خوشه Ray از تصویر محفظه مشابه با خط لوله شما استفاده می کند، به طوری که کد و وابستگی های یکسان در هر گره تضمین می شود.
اگر با Ray یا Sematic آشنا هستید، احتمالاً می دانید که هر دو می توانند به صورت محلی و همچنین در فضای ابری استفاده شوند. ادغام Sematic’s Ray نیز از این قاعده مستثنی نیست! هنگامی که کد بالا را به صورت محلی اجرا می کنید، به جای اجرای یک خوشه در Kubernetes، یک خوشه Ray مبتنی بر فرآیند محلی ایجاد می شود. این امکان توسعه سریع محلی را فراهم میکند، جایی که میتوانید از تمام اشکالزدای مورد علاقه خود و سایر ابزارها استفاده کنید تا زمانی که برای انتقال اجرا به ابر آماده شوید.
باز کردن موارد استفاده جدید
این ترکیب Sematic + Ray می تواند سفر شما را به یک پلتفرم ML در سطح جهانی آغاز کند. با استفاده از این ابزارها با هم، توابع Sematic شما اکنون می توانند کارهایی مانند:
و شما می توانید همه این کارها را در حالی که از قابلیت های ردیابی، تجسم و ارکستراسیون Sematic بهره می برید، انجام دهید.
نگاهی به پشت پرده
وقتی از RayCluster مانند بالا استفاده می کنید، پشت صحنه اتفاقات زیادی می افتد. Sematic از KubeRay استفاده می کند، ابزاری که توسط نگهبانان Ray برای مدیریت خوشه های Ray در Kubernetes ایجاد شده است. اجرای کد شما منجر به تماس هایی با سرور Sematic می شود که به نوبه خود اطلاعات مربوط به خوشه مورد نیاز را در KubeRay منتشر می کند. سپس KubeRay خوشه جدید Ray را برای شما ایجاد و مدیریت خواهد کرد.
از آنجایی که Sematic همه چیز را در مورد کد شما و تصویر کانتینری که استفاده می کند می داند، می تواند اطمینان حاصل کند که KubeRay از همان تصویر برای هد و کارگران Ray استفاده می کند. این به این معنی است که هنگام استفاده از Ray از Sematic نیازی به نگرانی در مورد مدیریت وابستگی جدید ندارید – هر کدی که می تواند از توابع Sematic شما استفاده شود را می توان از Ray استفاده کرد، حتی بدون استفاده از محیط های Ray’s Runtime!
یادگیری بیشتر
اگر می خواهید در مورد ادغام Sematic’s Ray بیشتر بدانید، می توانید اسناد ما را بررسی کنید. اگر به دنبال چیز دیگری هستید، یکی از نمونههای ما را بررسی کنید که آموزش و ارزیابی توزیع شده را با استفاده از Ray از Sematic انجام میدهد. یکی از PyTorch Lightning برای انجام آموزش توزیع شده یک مدل ResNet و دیگری از AIR APIهای Ray (از جمله Ray Datasets) برای انجام آموزش توزیع شده یک طبقهبندی کننده تصویر ساده در مجموعه داده CIFAR10 استفاده میکند. همچنین اگر میخواهید سؤالی بپرسید، میتوانید به Discord ما بپیوندید. ما همیشه خوشحالیم که کمک کنیم!
ادغام Sematic’s Ray بخشی از “نسخه Enterprise Edition” پولی Sematic است. اگر مایل به استفاده از آن هستید تماس بگیرید! بهتر است ابتدا با Sematic به صورت رایگان بازی کنید؟ بیشتر آن رایگان و منبع باز است!