هزینهٔ سرو مدلهای هوش مصنوعی با ریاضی سرانگشتی
خلاصهٔ کاملتر
نویسنده میگه اگه مدل هوش مصنوعی بخشی از محصولت باشه (که تو ۲۰۲۶ تقریباً همیشه هست)، باید بدونی از یه GPU مثل A100 یا H100 یا B200 چقدر کار میکشی، چون این مستقیم روی قیمت اشتراک محصولت اثر میذاره. ادعای اصلی مقاله اینه که هرچقدر هم مدلها و سختافزار عوض بشن، تخمین هزینه به ازای هر کاربر روی کاغذ ساده میمونه.
به گفتهٔ نویسنده برای این حساب فقط چند تا عدد لازم داری: دو مشخصهٔ کلیدی GPU یعنی پهنای باند حافظه (چقدر داده از VRAM به رجیستر منتقل میشه) و توان پردازشی (چند عملیات ممیز شناور در ثانیه)، طول کانتکست، و تعداد پارامترهای فعال مدل. نکتهٔ جالب اینه که جزئیات دقیق معماری مدل تأثیر کمی داره، مگه چیزی کاملاً متفاوت مثل مدلهای diffusion باشه.
قلب بحث محاسبهٔ هزینهٔ ضرب ماتریسیـه. نویسنده توضیح میده که برای تولید یه توکن برای یه کاربر با کانتکست ۲۰۰ هزار توکنی، چیزی حدود ۲۶ تریلیون عملیات و ۱.۷ میلیارد دسترسی به حافظه لازمه؛ یعنی چهار مرتبهٔ بزرگی بیشتر پردازش نسبت به خوندن حافظه. مشکل اینه که داریم بارها برای توکنهایی که قبلاً پردازش شدن، دوباره ماتریسها رو حساب میکنیم.
راهحل KV-Cache ـه. چون مدلها auto-regressive هستن و توکنها رو یکییکی تولید میکنن، میشه ماتریسهای K و V هر مرحله رو تو بخشی از VRAM ذخیره کرد. اونوقت تو هر forward pass فقط جدیدترین توکن پردازش میشه نه کل تاریخچه. به گفتهٔ نویسنده این کار باعث میشه به ازای هر دسترسی به حافظه فقط حدود ۲×B عملیات لازم باشه که B تعداد گفتگوهای همزمانه.
با مثال کارت NVIDIA B200 (پهنای باند ۸ ترابایت بر ثانیه و ۴۵۰۰ ترافلاپ) نویسنده نشون میده این چیپ ۵۶۲ برابر سریعتر از خوندن داده، داده رو پردازش میکنه. پس برای پر کردن کامل ظرفیتش باید حدود ۳۳۱ کاربر همزمان سرو بشن؛ ولی این فقط سقف نظریـه، چون VRAM محدوده و باید وزنهای مدل و KV-Cache بزرگ هم توش جا بشن.
اینجا بهینهسازی Grouped-Query-Attention (GQA) وارد میشه که اندازهٔ KV-Cache رو حدود ۸ برابر کم میکنه؛ به جای ۶۴ هد جداگانه، چند Query-head یه KV-head مشترک دارن. با همهٔ اینها و تکنیکهایی مثل PagedAttention تو vLLM، نویسنده میگه واقعبینانه هر چیپ بسته به سبک اپلیکیشن چیزی حدود ۳۰۰ تا ۸۰۰ کاربر رو راحت سرو میکنه، چون بیشتر کاربرها وقت بیشتری رو صرف خوندن میکنن تا تایپ کردن (duty cycle پایین).
در آخر سراغ هزینهٔ دلاری میره: اگه B200 رو حدود ۳ دلار در ساعت اجاره کنی و ۵۰۰ کاربر سرو کنی، هزینه به ازای هر کاربر میرسه به حدود ۴.۳۲ دلار در ماه. پس تا وقتی بیشتر از این مبلغ از کاربر بگیری، هزینهٔ عملیاتیت پوشش داده میشه.
نکات کلیدی:
- هزینهٔ سرو مدل به ازای هر کاربر رو میشه فقط با چند عدد از مشخصات GPU تخمین زد
- بدون KV-Cache بیشتر توان پردازشی GPU هدر میره چون تاریخچه دوباره حساب میشه
- KV-Cache باعث میشه فقط جدیدترین توکن پردازش بشه
- GQA اندازهٔ KV-Cache رو حدود ۸ برابر کم میکنه
- یه کارت B200 واقعبینانه ۳۰۰ تا ۸۰۰ کاربر سرو میکنه، حدود ۴.۳۲ دلار در ماه برای هر کاربر




