ترفندهای کلادفلر برای جا دادن مدلهای غولپیکر تو GPU
خلاصهٔ کاملتر
کلادفلر تو بلاگش توضیح داده که Workers AI مدلهای متنباز بزرگی مثل سری Kimi K از Moonshot و GLM از Z.ai رو روی GPUهای دیتاسنترهاش اجرا میکنه. این مدلها mixture-of-experts و long-context هستن و به گفتهی نویسندهها همین باعث میشه سرو کردنشون بهخاطر محدودیت حافظه سخت باشه. سه تکنیکی که روی جداسازی فازهای prefill و decode سوار کردن، همینو حل میکنه. همهی آزمایشها و ترافیک پروداکشن هم روی فریمورک متنباز SGLang اجرا میشه.
ترفند اول کوانتایز کردن کش KV ـه. مدل موقع تولید متن، کلید و مقدار توجه رو برای هر توکنی که قبلاً دیده تو ساختاری به اسم KV cache نگه میداره و تو مدلهای long-context معمولاً همین کش زودتر از وزنها حافظهی GPU رو پر میکنه. کلادفلر بهجای BF16 از FP8 استفاده کرده و اندازهش نصف شده: روی Kimi K2.6 ظرفیت کانتکست از حدود ۶۸۶ هزار توکن رسیده به حدود ۱.۳۷ میلیون، بدون اینکه نتیجهی بنچمارکهایی مثل GSM8K و MMLU تغییر معناداری کنه.
نویسندهها تأکید میکنن که سود این کار سرعت خام نیست. تو هر سطح همزمانی، BF16 چند درصد سریعتره، ولی سر ۳۲ درخواست همزمان حافظه کم میاره؛ FP8 تا ۶۴ درخواست جلو میره و به ۲۱۹۲ توکن بر ثانیه میرسه، یعنی حدود ۴۱٪ بیشتر از سقف BF16 و با حدود ۳۰٪ هزینهی کمتر برای هر توکن. چون prefill بهجای حافظه به محاسبات وابستهست، اونجا کش رو BF16 نگه داشتن.
ترفند دوم فشردهسازی وزنهاست. برای GLM 5.2 وزنها از FP8 به INT4 اومدن و چکپوینت از ۷۰۵ گیگابایت به ۴۲۱ گیگابایت کوچیک شده. چون سرعت decode به پهنای باند حافظه گره خورده، وزن سبکتر یعنی توکن سریعتر — تو همزمانی ۱، سرعت از ۶۰ به ۹۲ توکن بر ثانیه رسیده. ولی prefill برعکس کندتر میشه، چون INT4 باید قبل از ضرب باز بشه؛ برای همین decode با INT4 و prefill با FP8 اجرا میشه. دقت مدل هم تو همهی بنچمارکها تو محدودهی ۰.۸ واحد از نسخهی FP8 مونده.
ترفند سوم بیشتر جنبهی محافظتی داره: وقتی صدها درخواست همزمان از یه کش فیزیکی مشترک میخونن و مینویسن، حتی خطای یکدرمیلیارد هم تو این حجم ترافیک مرتب پیش میاد. کلادفلر برای هر صفحهی کش یه تگ گذاشته که با هر بار تخصیص مجدد عوض میشه و قبل از خوندن، تطابقش چک میشه؛ اگه جور نبود، درخواست بهجای برگردوندن دادهی اشتباه abort میشه. هزینهش زیر ۱٪ روی throughput و تأخیر p95 اندازهگیری شده و بهصورت پیشفرض خاموشه.
نکات کلیدی:
- کش KV با FP8 بهجای BF16 ذخیره میشه و ظرفیت کانتکست Kimi K2.6 دو برابر شده
- سود اصلی تعداد درخواست همزمانه، نه سرعت هر توکن: ۴۱٪ توان بیشتر، ۳۰٪ هزینهی کمتر
- وزنهای GLM 5.2 از FP8 به INT4 فشرده شدن؛ چکپوینت از ۷۰۵ به ۴۲۱ گیگابایت رسید
- decode با INT4 و prefill با FP8 اجرا میشه، چون هر فاز گلوگاه متفاوتی داره
- بررسی سلامت کش مشترک، با هزینهی زیر ۱٪ روی throughput و تأخیر p95
- قدم بعدی: کش FP8 روی بخش بیشتری از ناوگان و اعتبارسنجی وزنهای NVFP4 روی Blackwell




