ایل ایل ایم سرونگ اور تعیناتی کے لیے بہترین کلاؤڈ جی پی یوز
پروڈکشن میں بڑے زبان کے ماڈلز کی خدمت کے لیے ایسی جی پی یوز کی ضرورت ہوتی ہے جن میں ماڈل ویٹس رکھنے کے لیے کافی وی آر اے ایم ہو، ٹوکن جنریشن کے لیے تیز میموری بینڈوڈتھ ہو، اور ایسی انفراسٹرکچر جو آٹوسکیلنگ کی حمایت کرے۔ vLLM، TGI، اور TensorRT-LLM جیسے فریم ورکس عام طور پر ایل ایل ایم انفرنس تھروپٹ کو بہتر بنانے کے لیے استعمال ہوتے ہیں۔ یہ رہنمائی کلاؤڈ جی پی یو فراہم کنندگان کی فہرست دیتی ہے جو بڑے پیمانے پر ایل ایل ایم کی میزبانی اور خدمت کے لیے موزوں ہیں۔
اس گائیڈ کے لیے ابھی کوئی مماثل GPU فراہم کنندہ نہیں ملا۔ جلد دوبارہ چیک کریں۔
کرائے پر لیے گئے GPU سے LLM سروسنگ درحقیقت کیا تقاضا کرتی ہے
ایک بڑے زبان کے ماڈل کی سروسنگ بنیادی طور پر تربیت دینے کے کام سے مختلف ہوتی ہے۔ تربیت زیادہ تر تھروپٹ پر منحصر ہوتی ہے اور لیٹنسی کے لیے برداشت پذیر ہوتی ہے؛ سروسنگ لیٹنسی حساس، میموری پر منحصر، اور بریکٹ ہوتی ہے۔ جب آپ ایک GPU کرائے پر لیتے ہیں تاکہ API کے پیچھے LLM کو تعینات کریں، تو رکاوٹ شاذ و نادر ہی خام FLOPS ہوتی ہے۔ اصل مسئلہ یہ ہوتا ہے کہ آپ ماڈل اور اس کے KV کیش کو VRAM میں کتنی مقدار میں رکھ سکتے ہیں، وہ میموری کتنی تیزی سے ڈیٹا اسٹریم کرتی ہے، اور آپ کتنی متوازی درخواستوں کو بیچ کر سکتے ہیں اس سے پہلے کہ فی صارف فی سیکنڈ ٹوکن کی تعداد کم ہو جائے۔
KV کیش وہ حصہ ہے جسے زیادہ تر لوگ کم سمجھتے ہیں۔ ہر فعال درخواست اپنے سیاق و سباق کے لیے توجہ کیز اور ویلیوز اسٹور کرتی ہے، اور یہ جگہ سیکوینس کی لمبائی اور متوازی صارفین کی تعداد کے ساتھ بڑھتی ہے۔ ایک ماڈل جو آرام کی حالت میں آرام دہ طور پر فٹ ہوتا ہے، وہ حقیقی ٹریفک اور لمبے پرامپٹس کے ساتھ چلتے ہی میموری ختم کر سکتا ہے۔ یہی وجہ ہے کہ سروسنگ کی تعیناتیوں کو اکثر ماڈل کے وزن سے زیادہ VRAM کی جگہ کی ضرورت ہوتی ہے۔
GPU کو ماڈل کے مطابق سائز کرنے کا طریقہ
عملی طور پر پہلا سوال یہ ہے کہ آیا ماڈل ایک GPU پر فٹ ہوتا ہے یا اسے کئی GPUs میں تقسیم کرنا پڑتا ہے۔ اپنے ماڈل کے خلاف اوپر دی گئی موازنہ کو پڑھتے ہوئے ان عوامل کو وزن دیں:
- VRAM کی گنجائش طے کرتی ہے کہ کون سے ماڈلز فٹ ہوتے ہیں۔ FP8 یا INT8 میں کوانٹائزڈ 7B–13B ماڈل ایک درمیانے درجے کے ایکسلریٹر سے سروس کر سکتا ہے، جبکہ BF16 میں 70B ماڈل عام طور پر ہائی میموری کارڈ یا ملٹی-GPU نوڈ کی ضرورت ہوتی ہے۔ بہت بڑے فرنٹیئر کلاس ماڈلز مؤثر طریقے سے کئی اعلیٰ درجے کے GPUs کا مجموعہ چاہتے ہیں۔
- میموری بینڈوڈتھ آپ کی ٹوکن جنریشن کی رفتار کا تعین کرتی ہے۔ آٹو ریگریسیو ڈیکوڈنگ ہر پیدا کردہ ٹوکن کے لیے پورے وزنوں کا سیٹ پڑھتی ہے، اس لیے HBM کلاس میموری (جیسا کہ ڈیٹا سینٹر کارڈز میں ہوتی ہے) GDDR بیسڈ کنزیومر کارڈز کے مقابلے میں ایک ہی ماڈل سائز پر ٹوکنز تیزی سے پیدا کرتی ہے۔ انٹرایکٹو چیٹ کے لیے بینڈوڈتھ اکثر کمپیوٹ سے زیادہ اہم ہوتی ہے۔
- سپورٹڈ پریسیشنز یہ تعین کرتے ہیں کہ آپ ماڈل کو کتنی جارحانہ طور پر سکڑ سکتے ہیں۔ FP8 اور INT8 ٹینسر سپورٹ والے کارڈز آپ کو کم VRAM پر بڑے ماڈلز سروس کرنے اور زیادہ تھروپٹ پر کام کرنے دیتے ہیں، بشرطیکہ آپ کی سروسنگ اسٹیک اور ماڈل کی کوانٹائزیشن اسکیم مطابقت رکھتی ہو۔
- انٹرکنیکٹ اس وقت اہم ہوتا ہے جب ماڈل متعدد GPUs میں پھیلا ہو۔ ٹینسر-پیرالل سروسنگ ہر پرت پر GPUs کے درمیان ایکٹیویشنز کا تبادلہ کرتی ہے، اس لیے NVLink کلاس لنکس جو نوڈ کے اندر ہوتے ہیں PCIe-صرف کنفیگریشنز کے مقابلے میں نمایاں بہتر لیٹنسی فراہم کرتے ہیں۔ سنگل-GPU تعیناتیوں کے لیے انٹرکنیکٹ غیر متعلقہ ہے۔
سنگل-GPU بمقابلہ ملٹی-GPU سروسنگ
اگر آپ کا ماڈل اور اس کا عروجی KV کیش ایک GPU پر فٹ ہوتا ہے، تو اسے وہاں رکھیں۔ سنگل-GPU سروسنگ کراس-ڈیوائس کمیونیکیشن کے اوور ہیڈ سے مکمل طور پر بچتی ہے اور اسے چلانا آسان ہوتا ہے۔ صرف اس وقت ٹینسر پیرالل یا ملٹی-نوڈ سروسنگ پر جائیں جب ماڈل واقعی فٹ نہ ہو، کیونکہ ہر اضافی GPU ہم آہنگی کی لاگت بڑھاتا ہے اور آٹو اسکیلنگ کو پیچیدہ بناتا ہے۔ جب آپ کو متعدد GPUs کی ضرورت ہو، تو اوپر دی گئی فہرست میں سے ایسے انسٹینسز کو ترجیح دیں جو ہائی میموری کارڈز کو تیز ان-نوڈ انٹرکنیکٹ کے ساتھ جوڑتے ہیں بجائے اس کے کہ کمزور طور پر جڑے کارڈز کو ملائیں۔
سروسنگ کے لیے فراہم کنندہ کی خصوصیات جو تربیت کے لیے اہم نہیں
سلکان سے آگے، فراہم کنندہ کا آپریشنل ماڈل فیصلہ کرتا ہے کہ تعیناتی قابل عمل ہے یا نہیں۔ جب آپ اوپر دی گئی موازنہ کو تربیتی رن کی بجائے سروسنگ ورک لوڈ کے لیے اسکین کرتے ہیں، تو ترجیحات مختلف رکھیں:
- کولڈ-اسٹارٹ اور سیٹ اپ کا وقت پہلی اہمیت کے حامل ہو جاتے ہیں۔ ایک سروسنگ اینڈ پوائنٹ جو ٹریفک کے اسپائکس کے درمیان صفر تک اسکیل کرتا ہے، ہر اسکیل اپ پر کولڈ-اسٹارٹ کی لاگت برداشت کرتا ہے، اس لیے تیز پروویژننگ اور امیج کیشنگ براہ راست ٹیل لیٹنسی کو متاثر کرتی ہے۔
- بلنگ کی تفصیل بریکٹ ٹریفک کی معیشت کو بدل دیتی ہے۔ فی سیکنڈ یا فی منٹ بلنگ آٹو اسکیلنگ اینڈ پوائنٹس کے لیے موزوں ہوتی ہے جو انسٹینسز کو اوپر نیچے کرتے ہیں؛ فی گھنٹہ کی موٹی بلنگ اس پیٹرن کو سزا دیتی ہے۔
- آن-ڈیمانڈ ریلائیبلٹی بمقابلہ اسپاٹ عام طور پر صحیح انتخاب ہوتی ہے۔ انٹرپٹیبل یا اسپاٹ انسٹینسز تربیت اور بیچ جابز کے لیے بہترین ہیں لیکن یوزر-فیسنگ اینڈ پوائنٹ کے لیے خطرناک ہیں، جہاں درخواست کے درمیان ریکلیم ہونے سے لائیو ٹریفک ڈراپ ہو جاتی ہے۔ اسپاٹ اب بھی غیر انٹرایکٹو بیچ انفیرنس کے لیے اچھی سروس فراہم کر سکتا ہے۔
- مستقل اسٹوریج اور تیز ماڈل لوڈنگ ری اسٹارٹ کے درد کو کم کرتی ہے۔ ملٹی-گیگا بائٹ وزن جو ہر ری اسٹارٹ پر کولڈ آبجیکٹ اسٹوریج سے دوبارہ لوڈ ہوتے ہیں، منٹوں کی ڈاؤن ٹائم بڑھاتے ہیں؛ کیشڈ یا منسلک والیومز اسے کم کرتے ہیں۔
- نیٹ ورکنگ اور ایگریس بڑے پیمانے پر لاگت کو متاثر کرتے ہیں۔ ہائی تھروپٹ انفیرنس بہت سا ڈیٹا باہر بھیج سکتا ہے؛ ہائی ٹریفک تعیناتی کے لیے کمٹمنٹ کرنے سے پہلے ایگریس کی شرائط چیک کریں۔
بیچ بمقابلہ ریئل ٹائم، اور لاگت کہاں آتی ہے
جلدی فیصلہ کریں کہ آپ کس موڈ کو بہتر بنا رہے ہیں۔ ریئل ٹائم انٹرایکٹو سروسنگ کم وقت میں پہلا ٹوکن اور فی صارف ٹوکن کی مستقل شرح کو اہمیت دیتی ہے، جو ہائی-بینڈوڈتھ میموری اور معتدل بیچ سائز کو ترجیح دیتی ہے۔ بیچ یا آف لائن انفیرنس کل تھروپٹ کو ترجیح دیتا ہے اور بڑے بیچز کو سستے یا انٹرپٹیبل ہارڈویئر پر پیک کر سکتا ہے، ہر درخواست کی لیٹنسی کو قربان کر کے فی ٹوکن لاگت کو بہتر بناتا ہے۔ کئی ٹیمیں دونوں چلاتی ہیں: لائیو یوزرز کے لیے ایک فوری آن-ڈیمانڈ ٹئیر اور بڑے جنریشن کے لیے اسپاٹ-بیکڈ بیچ ٹئیر۔
کرائے کی لاگت پر، سروسنگ پورے اسپیکٹرم پر ہوتی ہے۔ ایک چھوٹا کوانٹائزڈ ماڈل درمیانے درجے کے کارڈ پر سستا اور وسیع پیمانے پر دستیاب ہوتا ہے؛ فرنٹیئر ماڈلز ملٹی-GPU ہائی میموری نوڈز پر کم دستیاب، مہنگے، اور طلب کے عروج کے دوران کبھی کبھار صلاحیت کی کمی کا شکار ہوتے ہیں۔ چونکہ نرخ مسلسل بدلتے رہتے ہیں اور خطے اور کمٹمنٹ کے لحاظ سے مختلف ہوتے ہیں، اس لیے اوپر دی گئی لائیو موازنہ کو حقیقت کا ماخذ سمجھیں نہ کہ کسی مقررہ عدد کو، اور انسٹینسز کا موازنہ VRAM، بینڈوڈتھ کلاس، انٹرکنیکٹ، اور بلنگ ماڈل کے ساتھ کریں نہ کہ صرف سرخی قیمت کے ساتھ۔
اکثر پوچھے جانے والے سوالات
LLM سروسنگ کے لیے مجھے کتنی VRAM چاہیے؟
اپنے منتخب کردہ پریسیشن پر ماڈل کے وزن کے لیے بجٹ رکھیں اور KV کیش کے لیے کافی اضافی جگہ رکھیں، جو سیاق و سباق کی لمبائی اور متوازی صارفین کے ساتھ بڑھتا ہے۔ ایک عمومی رہنمائی کے طور پر، کوانٹائزڈ چھوٹے اور درمیانے سائز کے ماڈلز ایک درمیانے درجے کے کارڈ سے سروس ہوتے ہیں، جبکہ بڑے ماڈلز اعلیٰ پریسیشن میں ہائی میموری کارڈ یا کئی GPUs کی ضرورت رکھتے ہیں۔ ہمیشہ عروجی متوازی درخواستوں کے لیے سائز کریں، نہ کہ آرام کی حالت کے لیے۔
کیا اسپاٹ یا انٹرپٹیبل GPUs LLM سروسنگ کے لیے موزوں ہیں؟
یوزر-فیسنگ ریئل ٹائم اینڈ پوائنٹس کے لیے عام طور پر نہیں، کیونکہ ریکلیم ہونے سے لائیو درخواستیں ڈراپ ہو سکتی ہیں اور کولڈ ری اسٹارٹس مجبور ہو سکتے ہیں۔ اسپاٹ انسٹینسز آف لائن یا بیچ انفیرنس کے لیے بہترین ہیں، جہاں مداخلت صرف تھروپٹ کو تاخیر کرتی ہے نہ کہ انٹرایکٹو سیشن کو توڑتی ہے۔ کئی ٹیمیں لائیو ٹریفک کے لیے آن-ڈیمانڈ صلاحیت رکھتی ہیں اور بیچ جابز کے لیے اسپاٹ استعمال کرتی ہیں۔
سروسنگ کے لیے میموری بینڈوڈتھ کمپیوٹ سے زیادہ کیوں اہم ہے؟
ٹوکن بہ ٹوکن ڈیکوڈنگ ہر پیدا کردہ ٹوکن کے لیے ماڈل کے وزن میموری سے پڑھتی ہے، اس لیے جنریشن کی رفتار اس بات پر منحصر ہوتی ہے کہ GPU میموری کو کتنی تیزی سے اسٹریم کرتا ہے نہ کہ اس کے چوٹی کے FLOPS پر۔ اسی لیے HBM سے لیس ڈیٹا سینٹر کارڈز کنزیومر کارڈز کے مقابلے میں ایک ہی ماڈل کو تیزی سے ٹوکنز پیدا کرتے ہیں، اور یہی وجہ ہے کہ بینڈوڈتھ اوپر دی گئی موازنہ میں ایک اہم کالم ہے۔
کیا مجھے ایک GPU پر سروس کرنی چاہیے یا کئی GPUs میں تقسیم کرنا چاہیے؟
جب بھی ماڈل اور اس کا عروجی KV کیش فٹ ہو تو ایک ہی GPU استعمال کریں، کیونکہ اس سے کراس-ڈیوائس کمیونیکیشن سے بچا جا سکتا ہے اور اسکیلنگ آسان ہو جاتی ہے۔ ملٹی-GPU ٹینسر پیرالل پر صرف اس وقت جائیں جب ماڈل واقعی فٹ نہ ہو، اور جب جائیں تو ایسے انسٹینسز کا انتخاب کریں جو ہائی میموری کارڈز کو تیز ان-نوڈ انٹرکنیکٹ کے ساتھ جوڑتے ہوں۔