اجرای هوش مصنوعی روی چند دیتاسنتر با k0smos
خلاصهٔ کاملتر
این پست که توسط تیمی از Mirantis و Logsight.ai نوشته شده، با یه نقد ساده شروع میکنه: معماریهای امروزی هوش مصنوعی فرض رو گذاشتن روی دیتاسنترهای متمرکز و یکدست، ولی واقعیت زیرساخت آشفتهست. منابع محاسباتی بین ابرهای خصوصی، محیطهای تحقیقاتی و نسلهای مختلف سختافزار on-prem و edge پخش شدن. به گفتهٔ نویسندهها، استفادهٔ بهینه از GPU دیگه فقط یه مسئلهٔ محاسباتی نیست، یه چالش زیرساختیه.
اونا میگن وقتی بازیگرهایی مثل OpenAI پایهٔ کارشون رو روی Kubernetes گذاشتن، این ابزار عملاً به لایهٔ ارکستریشن پیشفرض برای بارهای کاری هوش مصنوعی تبدیل شده. پس هوش مصنوعی توزیعشدهٔ جغرافیایی هم یه مسئلهٔ cloud-native میشه: باید چرخهٔ عمر خوشهها رو تو مناطق مختلف مدیریت کنی، اتصال بین سایتها رو نگه داری و سختافزار دائماً در حال تغییر رو یکپارچه کنی. اینجاست که ارکستریشن چندخوشهای از انتخاب به ضرورت تبدیل میشه.
راهحل پیشنهادی استک متنباز k0smos هست که مسئولیتها رو بین سه لایه تقسیم میکنه. هستهٔ کار k0s هست؛ یه توزیع Kubernetes سازگار با CNCF که به شکل یه باینری بدون وابستگی بستهبندی شده و تقریباً روی هر محیط لینوکسی اجرا میشه. روی این، k0smotron کنترلپلینها رو بهصورت پادهای ایزوله و نسخهبندیشده داخل یه خوشهٔ مدیریتی مرکزی اجرا میکنه و کنترلپلین رو از worker nodeها جدا میکنه. لایهٔ سوم k0rdent هست که مدیریت اعلانی (declarative) و GitOps چرخهٔ عمر چند خوشه رو فراهم میکنه.
برای اثبات این رویکرد، تو پروژهٔ مشترک exalsius با آژانس نوآوری آلمان (SPRIND) یه محیط واقعی ساختن: نودهای Nvidia A100 تو کبک کانادا، نودهای AMD MI300X تو آتلانتا و کنترلپلین روی نودهای فقط-CPU تو فرانکفورت آلمان. برای اتصال بین سایتها از پروژهٔ CNCF به اسم Cilium بهعنوان CNI استفاده کردن و تونلهای امن WireGuard نقطهبهنقطه با تأخیر حدود ۳۵ میلیثانیه برقرار کردن، طوری که ترافیک داده اصلاً از گیتوی متمرکز رد نمیشه.
روی این بستر چند فریمورک مثل PyTorch Elastic، Ray و vLLM رو سوار کردن و چند مدل مرجع متنوع (GPT-NeoX برای LLM، ResNet برای بینایی، PPO برای یادگیری تقویتی و Wav2Vec2 برای صوت) رو مستقیم روی نودهای AMD و انویدیا آموزش دادن. نکتهٔ کلیدی موفقیتشون همطراحی زیرساخت و روش آموزش بود: برای اینکه لینکهای دوربرد گلوگاه نشن، از یه روش آموزش کمارتباط با بهینهسازی decoupled momentum استفاده کردن تا حجم ارتباط بین سایتها رو خیلی کم کنن.
تو آزمایش دوم فرض محیط ثابت رو کنار گذاشتن و سراغ یه حالت پویاتر رفتن: GPUها بر اساس فراوانی برق ارزون وارد یا خارج میشن. برای این کار از یه پارادایم federated learning استفاده کردن، با سیگنالهای انرژی از شریکشون WattTime و یه اپراتور سفارشی Kubernetes برای فریمورک Flower AI. نویسندهها در نهایت میگن سختی اصلی تو این محیطهای پراکنده، مدیریت چرخهٔ عمر GPU و شبکهٔ بینسایتیه، ولی اجرای هوش مصنوعی روی سختافزار ناهمگن و توزیعشده امروز کاملاً شدنیه.
نکات کلیدی:
- استک k0smos از سه لایه تشکیل شده: k0s (توزیع سبک Kubernetes)، k0smotron (کنترلپلین میزبانیشده) و k0rdent (مدیریت اعلانی چندخوشه).
- تو آزمایش واقعی، GPUهای انویدیا تو کانادا و AMD تو آمریکا زیر یه کنترلپلین تو آلمان قرار گرفتن و باهم کار کردن.
- اتصال بین سایتها با Cilium و تونلهای WireGuard نقطهبهنقطه با تأخیر حدود ۳۵ میلیثانیه انجام شد.
- یه روش آموزش کمارتباط حجم تبادل داده بین سایتها رو کم کرد تا فاصلهٔ جغرافیایی گلوگاه نشه.
- آزمایش دوم نشون داد میشه GPUها رو بر اساس فراوانی برق ارزون بهصورت پویا وارد و خارج کرد.




