به گزارش از وبسایت cncf
در بحثهای مربوط به AI infrastructure، معمولاً گفتگوها از GPU شروع میشوند. دلیلش هم روشن است؛ شتابدهندهها بخش بزرگی از پردازشهای مربوط به training و inference را بر عهده دارند. اما یک workload واقعی در محیط production، فقط به GPU محدود نمیشود و از آن هم شروع و تمام نمیشود. دادهها باید آمادهسازی و جابهجا شوند، applicationها و orchestration services باید اجرا شوند، modelها باید بارگذاری و سرویسدهی شوند و در برخی موارد، خروجیها نیاز به پردازشهای تکمیلی دارند. 🤖
به همین دلیل، platform teamها فقط با GPU workloadها سروکار ندارند؛ آنها با workloadهای ناهمگون یا heterogeneous روبهرو هستند که برای عملکرد درست، به هماهنگی CPU, GPU, memory, storage و networking نیاز دارند. برای تیمهای Kubernetes platform، چالش اصلی فقط فراهم کردن شتابدهنده نیست، بلکه انتخاب و تخصیص درست منابع برای هر مرحله از workload است.
بهجای تمرکز صرف بر GPU، باید مسیر کامل workload را دنبال کرد. یک pipeline ساده برای AI inference را در نظر بگیرید: داده → CPU preprocessing → GPU inference → CPU post-processing → application
ممکن است GPU سنگینترین بخش پردازش را انجام دهد، اما عملکرد کلی به کل این مسیر وابسته است. اگر preprocessing نتواند داده را بهموقع آماده کند، شتابدهنده بیکار میماند. اگر storage نتواند model artifactها را سریع تحویل دهد، زمان startup افزایش پیدا میکند. اگر ظرفیت CPU، memory یا network محدود شود، اضافه کردن GPU بیشتر ممکن است تأثیر چندانی بر throughput نداشته باشد. ⚙️
بنابراین، بهجای پرسیدن این سؤال که «این workload به چند GPU نیاز دارد؟»، platform teamها باید بپرسند: «هر مرحله به چه منابعی نیاز دارد و وابستگیها کجا هستند؟» این تغییر نگاه کمک میکند تیمها workload را بهعنوان یک سیستم کامل بهینه کنند، نه فقط یک بخش گرانقیمت را بهصورت جداگانه.
هر مرحله از یک AI workload نیازهای زیرساختی متفاوتی دارد. منابع CPU میتوانند برای data preparation، tokenization، retrieval، orchestration، application logic و post-processing استفاده شوند. در مقابل، GPUها و سایر شتابدهندهها برای عملیات highly parallel مانند model training و inference مناسبتر هستند. همچنین memory، storage و networking تعیین میکنند که دادهها و model artifactها با چه سرعت و کارایی بین این مراحل جابهجا شوند. 📊
حتی خود inference هم لزوماً یک workload یکنواخت نیست. در large language modelها، prompt processing و token generation ممکن است نیازهای متفاوتی از نظر compute و memory داشته باشند. این موضوع فرصتی برای platform teamها ایجاد میکند تا منابع را متناسب با کار تخصیص دهند، نه اینکه کل AI pipeline را مجبور کنند روی یک profile یکسان از زیرساخت اجرا شود.
Kubernetes یک orchestration layer مشترک برای انجام این کار فراهم میکند. برای نمونه، Dynamic Resource Allocation (DRA) مدل منابع Kubernetes را گسترش میدهد و به workloadها اجازه میدهد دستگاههای تخصصی را به شکلی انعطافپذیرتر و declarative درخواست کنند. نکته مهم خود DRA نیست، بلکه جهتگیری کلی است: specialized compute بهتدریج بخشی از همان cloud-native resource model شده که applicationهای دیگر هم از آن استفاده میکنند.
البته heterogeneous infrastructure فقط نحوه تخصیص منابع را تغییر نمیدهد، بلکه چیزی را هم که platform teamها باید مشاهده کنند، دگرگون میکند. صرفاً نگاه کردن به GPU utilization به شما نمیگوید که آیا یک AI workload واقعاً کارآمد اجرا میشود یا نه. پایین بودن GPU utilization ممکن است به معنای کم بودن تقاضا باشد، اما میتواند نشانه این هم باشد که شتابدهنده منتظر CPU preprocessing، دسترسی به داده، scheduling یا یک dependency بالادستی دیگر است. 🔍
به همین دلیل، platform teamها به visibility در کل مسیر workload نیاز دارند: CPU → data → accelerator → application
ترکیب telemetry مربوط به infrastructure و application کمک میکند راحتتر مشخص شود زمان در کجا صرف میشود و کدام resource مانع عملکرد مطلوب است. هدف این نیست که هر منبعی همیشه ۱۰۰ درصد درگیر باشد؛ هدف این است که مشخص شود آیا این منابع بهقدر کافی هماهنگ عمل میکنند تا نیازهای performance workload را برآورده کنند یا نه.
با انتقال AI workloadها به production، احتمالاً زیرساختها هم نهتنها سادهتر نمیشوند، بلکه ناهمگونتر خواهند شد. Kubernetes به platform teamها یک control plane مشترک برای مدیریت این منابع میدهد و قابلیتهایی مانند DRA هم راههای بیشتری برای حضور hardware تخصصی در این مدل ایجاد میکنند. 💡
نکته کلیدی، یک تغییر ذهنی است: AI infrastructure فقط مجموعهای از GPUها بههمراه چند service پشتیبان نیست. بلکه یک سیستم بههمپیوسته از compute، memory، storage و network است. برای platform engineerها، طراحی بر اساس همین سیستم کامل، نه یک component منفرد، همان چیزی است که ظرفیت شتابدهنده را به AI infrastructure واقعاً مفید تبدیل میکند.