TL;DR
- Back Engineering 7 مه 2025• 10 دقیقه مطالعه اگر متوجه نشده اید، بازار GPU بسیار نوسان است.
- NVIDIA بهطور مکرر معماریهای تراشههای جدیدی را منتشر میکند و هر چند سال یک بار FLOPS را دو.
- برابر میکند.
چه اتفاقی افتاد
Back Engineering 7 مه 2025• 10 دقیقه مطالعه اگر متوجه نشده اید، بازار GPU بسیار نوسان است. NVIDIA بهطور مکرر معماریهای تراشههای جدیدی را منتشر میکند و هر چند سال یک بار FLOPS را دو.
برابر میکند. همه به سمت جدیدترین کارتها حرکت میکنند، که باعث کاهش موقت عرضه و قیمتهای بالا میشود.
اما مشتریان Modal نمیخواهند به این نوسانات قیمت فکر کنند. آنها همه نوع GPU را با قیمتهای قابل پیشبینی و خوب،.
و توانایی درخواست هزاران GPU در لحظه،. بدون نگرانی در مورد قیمت،.
برنامهریزی ظرفیت یا عرضه میخواهند. در Modal،.
ما یک سیستم «حلکننده منابع» ساخته ایم که قادر به یافتن و لذت بردن از آربیتراژها در این طوفان. ابری است و تقاضای مشتریانمان را برای محاسبات مقیاسپذیر با قیمتهای خوب برآورده میکند.
آیا میدانستید که چند ماه پیش میتوانستید صدها پردازنده گرافیکی برتر H200 را با 20 درصد کمتر از. قیمت H100های پایینتر خریداری کنید؟
حل کننده انجام داد و طول کشید آن معامله در هسته خود،. حل کننده منابع Modal یک برنامهنویسی خطی یا حل کننده LP است - الگوریتمیکه میتواند.
با توجه به مجموعهای از محدودیتهای خطی،. به سرعت و بهطور قابل اعتماد یک هدف را به حداکثر برساند.
ما اطلاعات این الگوریتم را در مورد تقاضای فعلی در سیستم خود،. به علاوه قیمتهای فعلی،.
در دسترس بودن و عملکرد برای انواع مختلف سرورهای ابری تغذیه میکنیم. سپس یک دلتا را بیرون میدهد - چه نوع نمونههایی را باید به سمت بالا و پایین بچرخانیم،.
و به چه تعداد از هر کدام برای برآوردن تقاضا نیاز داریم. حلکننده منابع،.
سیستم بدون سرور ما را سرپا نگه میدارد و به مشتریان ما این امکان را میدهد تا وحشتهای. سهمیهها و رزروهای نمونه ابری را با خوشحالی فراموش کنند.
اما تخفیفهای موقت و فرصتهای آربیتراژ نیز پیدا میکند و میلیونها دلار در سال صرفهجویی میکند. درک ظرفیت مسئلهای که حل کننده حل میکند به راحتی قابل درک است و در بسیاری.
از حوزهها نشان داده میشود. سادهترین نسخه ممکن Modal را در نظر بگیرید - بگذارید آن را Modull بنامیم، زیرا ساده است.
مشتریان شما میخواهند روی پردازنده گرافیکی پرچمدار NotVidia یعنی A1 کار کنند. همانطور که مشتریان در طول یک روز با توابع Modull خود تماس میگیرند،.
تعداد کانتینرهایی دارید که دائماً در حال تغییر هستند (ما آنها را Tasks مینامیم) که به تعداد متغیری. از پردازندههای گرافیکی A1 نیاز دارند.
چگونه این همه کانتینر را سرویس میدهید؟ تنها با یک نوع منبع،.
آسان است - شما تعداد کل پردازندههای گرافیکی A1 درخواستی را اضافه میکنید. اگر در حال حاضر این تعداد GPU را اجرا میکنید، کارتان تمام شده است.
در غیر این صورت،. تعداد پردازندههای گرافیکی بیشتری را که نیاز دارید،.
دریابید،. و سپس تا جایی که میتوانید از هر ارائهدهندهی ابری که آنها را با بهترین قیمت ارائه میکند،.
دریافت کنید. اگر نمیتوانید به اندازه کافی بزرگ شوید، بهترین ارائه دهنده ابر بعدی را امتحان کنید و غیره.
میتوانید اسکریپتی بنویسید که این کار را انجام دهد. یک مشکل کلیدی:.
کاربران میخواهند کانتینرها در چند ثانیه زمانبندی شوند،. اما چند دقیقه طول میکشد تا یک سرور ابری جدید را دریافت کرده و راهاندازی کند.
بنابراین باید مقداری را حفظ کنید فضای سر برای انجام این کار نسبتاً مقرونبهصرفه،. میتوانید یک بافر (تعداد پیکربندیشدهای از پردازندههای گرافیکی غیرفعال) اضافی که کانتینرهای برنامهریزیشده جدید میتوانند در آن نفوذ.
کنند،. بدون نیاز به صبر کردن برای افزایش مقیاس نگهداری کنید.
این به صورت رایگان ارائه نمیشود، اما راهی آسان برای ارائه عملکرد خوب است. Modal این کار را کم و بیش انجام میدهد.
هنگامیکه یک مشتری بهطور ناگهانی صدها کانتینر را بهطور همزمان اجرا میکند،. ما یک بافر به اندازه کافی بزرگ برای برنامهریزی کانتینرهای آنها فوراً نگه میداریم،.
در حالی که بهطور همزمان افزایش مییابد. شما باید این بافر را در حل کننده حساب کنید.
در سادهترین نسخه این مشکل، یافتن arb (itrage) آسان است. این به سختی حتی یک ارب نیست - شما فقط به دنبال ارزانترین قیمتها برای برآورده.
کردن تقاضا هستید که پیدا کردن آن آسان است. اما وقتی محدودیتهای بیشتری را معرفی میکنید، مشکل پیچیدهتر میشود: کاربران مدال فقط به پردازندههای گرافیکی اهمیت نمیدهند.
آنها همچنین به مقادیر خاصی از CPU و RAM نیز نیاز دارند. کارهایی که فقط CPU میخواهند میتوانند در همه جا اجرا شوند،.
حتی روی ماشینهای GPU،. اما وظایف GPU باید روی ماشینهای خاصی اجرا شوند،.
اما شاید فقط در زیر مجموعهای از مناطق اجرا شوند. کاربران در صورت تمایل میتوانند بین 7 نوع GPU انتخاب کنند،.
چند نوع GPU به ترتیب اولویت یا اصلاً GPU نداشته باشند. تقاضای کاربر در سیستم ما به شدت متفاوت است زیرا مشتریان دائماً بر اساس سفارشات بزرگی بالا و.
پایین میشوند. ما نمونههایی را روی هر ابر اصلی اجرا میکنیم و قیمتها لحظه به لحظه تغییر میکنند.
این مشکل به سرعت به روش سادهای که در مورد سادهای که در بالا توضیح دادیم حل میشود. ممکن است بتوانیم یک آرب پیدا کنیم.
به احتمال زیاد ما کدهای باگی بنویسیم که پول را از بین میبرد و حتی به کاربرانمان. اجازه نمیدهد مقیاس شوند.
Simplex آسان شد اگر چالش ظرفیت خود را از طریق لنز ریاضی درست مشاهده کنیم،. میتوانیم به جای ریسک،.
فرصت را در نوسانات بیوقفه عرضه و تقاضای محاسبات ابری ببینیم. سادهترین راه ممکن را در نظر بگیرید بهعنوان مثال،.
جایی که ما فقط یک نوع GPU را در یک منطقه ارائه میدهیم،. و نمونهها هر کدام 8 پردازنده گرافیکی دارند.
میتوانیم این مسئله را بهعنوان یک مسئله برنامهنویسی خطی نشان دهیم - یک عبارت خطی برای به حداقل. رساندن،.
و مجموعهای از محدودیتهای خطی:. داستان پیچیده تقاضای Modal نیز میتواند به این شکل،.
کم و بیش نشان داده شود! خوشبختانه دانشمندان کامپیوتر و ریاضیدانان تقریباً دویست سال است که الگوریتمهایی برای حل این مسائل تولید می.
کنند. بهطور خاص، ما بر الگوریتم سیمپلکس تکیه میکنیم، ابزاری قدیمیبا تاریخچه جالب.
در اواخر دهه 1930، جورج دانزیگ، ریاضیدان آمریکایی در حال کار بر روی مدرک دکتری خود بود. مانند مت دیمون در فیلم Good Will Hunting،.
او یک روز وارد کلاس شد،. مسائل آماری را که روی تخته سیاه نوشته شده بود،.
بدون زمینه پیدا کرد،. آنها را به خانه آورد و آنها را بهعنوان بخشی از تکالیف خود حل کرد.
معلوم شد که مشکلات حل نشده است. راهحلهای دانزیگ پایه و اساس شد الگوریتم سیمپلکس،.
که او چند سال پس از تجزیه و تحلیل لجستیک برای ارتش ایالات متحده در طول جنگ جهانی. دوم اختراع کرد.
اکنون،. 80 سال بعد،.
ما از آن برای بهینهسازی قیمتهای ابری استفاده میکنیم،. مشکلی که پیامدهای بسیار کمتری دارد.
الگوریتم سیمپلکس محدودیتهای ما را بهعنوان سطوح در فضای N بعدی مدل میکند که مجموعهای. از نقاط را در بر میگیرد.
هر نقطه نشان دهنده راهحل ممکن برای محدودیتها است. سپس در میان مرزهای این فضا جستجو میکند تا یک تابع هدف را به حداقل یا حداکثر برساند.
- هزینه،. در مورد ما،.
در زمان چند جملهای در حالت متوسط،. و زمان نمایی در بدترین حالت.
اجرای الگوریتم سیمپلکس در تولید پیچیده است. اگر میخواهید مسائل برنامهنویسی خطی را بهعنوان بخشی از یک سیستم با قابلیت دسترسی بالا حل کنید،.
به میزان قابل پیشبینی و قابل اعتماد بودن عملکرد حلکننده LP خود اهمیت میدهید. شما نمیخواهید برخی از محدودیتها را به بهینه ساز خود بدهید و آن را اجرا کنید.
از طریق تعداد تصاعدی راهحلهای ممکن بدون هشدار به شما،. یا چرخش بیپایان برای حل یک مشکل غیرقابل حل.
مانند بسیاری از مشکلات سیستمی،. گوگل سالها پیش روی این دسته از مسائل با سر و صدای کمیکار کرد - ما از.
حلکننده GLOP محکم آنها استفاده میکنیم که بهعنوان بخشی از کتابخانه OR-Tools منتشر شده است. در مورد هر دو چیزی جز چیزهای خوب برای گفتن نداریم.
آنها به اندازه کافی خوب کار میکنند و با دستگیرههای مفید مناسب برای زمینه تولید مداوم. ما (چیزهایی مانند محدود کردن حداکثر مراحل بهینهسازی،.
تلورانسهای امکان سنجی یا تکرارهای داخلی - برای قابل پیش بینی نگه داشتن زمانهای حل) ارائه. میشوند.
خودشکوفایی حل کننده کاربران ما میخواهند به سرعت افزایش پیدا کنند و راضی نگه داشتن آنها قبل. از پایین نگه داشتن قیمت هاست.
بنابراین،. حلکننده و سیستمیکه پیرامون آن ساخته شده است،.
مانند فدرالرزرو،. با یک اختیار دوگانه ختم میشود - تصمیمگیریهای مقیاسبندی ما باید به سرعت گرفته شوند و انجام شوند.
هزینه بهینه مانند فدرال رزرو، متوجه میشویم که دو مأموریت ما اغلب در تضاد هستند. بهعنوان مثال،.
ما بهطور دورهای با حلهایی که خیلی طولانی میشوند،. مشکل داشته ایم،.
و برخی از حلها اصلاً تمام نمیشوند. برای پرداختن به این موضوع،.
متوجه شده ایم که میتوانیم قبل از اجرای GLOP برخی اکتشافیهای ارزان را روی ورودیهای حلکننده اجرا کنیم تا. از مشکلات غیرقابل حل جلوگیری کنیم و زمانهای حل را به کسری از ثانیه کاهش دهیم.
بهعنوان مثال،. قرار دادن نمونههای بیشمار ما در معرض حلکننده میتواند منجر به زمانهای حل بسیار طولانی شود - گاهی.
اوقات چندین دقیقه. ما میتوانیم بسیاری از انواع نمونهها را پیش از موعد هرس کنیم،.
تا سرعت حلکنندهمان را به اندازه یک مرتبه بزرگ کنیم،. به قیمت کمیدقت.
با کوتاه نگه داشتن زمان حل بهطور قابل اعتماد،. اطمینان حاصل میکنیم که میتوانیم به سرعت افزایش دهیم.
در حال حاضر ما عمدتاً به دلیل سرعتی که میتوانیم نمونههای جدید را از ارائهدهندگان ابری به دست. آوریم و شروع کنیم،.
محدود شده ایم تا هر چیز داخلی در ما. سیستم برای تکمیل بقیه جغد:.
GLOP راهحل خود را به پایگاه داده ما ارسال میکند و مجموعه جداگانهای از کارگران. پس زمینه در صورت نیاز موارد جدیدی را از ارائه دهندگان ابر درخواست میکنند.
وقتی این درخواستها با شکست مواجه میشوند،. میدانیم که به محدودیت ظرفیت اساسی در ارائهدهنده ابر رسیده ایم،.
و از محدودیت مقیاسپذیری که مشاهده کرده ایم بهعنوان ورودی برای حلکننده در اجراهای بعدی استفاده میکنیم. به این ترتیب ما اطمینان میدهیم که تلاشهای بعدی برای افزایش مقیاس،.
احتمالاً انواع نمونههایی را درخواست میکنند که ارائهدهنده ابر هنوز در دسترس است. آیا باید مقیاسکننده خودکار خود را با برنامهریزی خطی جایگزین کنید؟
شاید! متوجه شدیم که وجود حلکننده به ما امکان میدهد روی چیزهایی تمرکز کنیم که مشتریانمان مستقیماً میبینند،.
مانند راهاندازی سریع کانتینرها و ورود عمیق به زیرساختهای شبکه. ما زمان کمتری را صرف نگرانی در مورد بهینه بودن میکنیم،.
زیرا میتوانیم اعتماد کنیم که برنامهریزی خطی یک روش آزمایش شده و واقعی است که ارائه. میکند.
راهحلهای بهینه تا زمانی که ورودیهای مناسب را به آن بدهیم،. که استفاده از هرج و مرج قیمتگذاری GPU را به نفع کاربران آسان میکند.
این برای Modal منطقی است - بدون سرور پیچیده است،. و هر چه بیشتر بتوانیم پیچیدگیهای ابر را در پشت پرده ناپدید کنیم،.
بهتر است. تشکر و قدردانی با تشکر از جاناتون بلوتی برای بازخورد گسترده در طول فرآیند نوشتن این!
اگر علاقه مند به ایجاد سیستمهای قابل اعتماد و کارآمد در مقیاس برای نسل بعدی زیرساختهای. ابری هستید،.
Modal استخدام میکند.
چرا مهم است
اهمیت این خبر در این است که روی استفاده واقعی از AI و تصمیمگیری سازمانی اثر میگذارد.
منبع
لینک منبع اصلی در کارت و صفحه مقاله نمایش داده میشود.
