ہم مشین لرننگ (ML) کو وسیع پیمانے پر اپنانے کے ایک دلچسپ موڑ پر ہیں، اور ہمیں یقین ہے کہ زیادہ تر صارفین کے تجربات اور ایپلیکیشنز کو جنریٹیو AI کے ساتھ دوبارہ ایجاد کیا جائے گا۔ جنریٹو AI نئے مواد اور آئیڈیاز بنا سکتا ہے، بشمول گفتگو، کہانیاں، تصاویر، ویڈیوز اور موسیقی۔ زیادہ تر AI کی طرح، جنریٹو AI ML ماڈلز سے چلتا ہے—بہت بڑے ماڈلز جو کہ بہت زیادہ ڈیٹا پر تربیت یافتہ ہوتے ہیں اور عام طور پر فاؤنڈیشن ماڈل (FMs) کہلاتے ہیں۔ ایف ایم ٹرانسفارمرز پر مبنی ہیں۔ ماڈلز کے سراسر سائز کی وجہ سے ٹرانسفارمرز لمبے ٹیکسٹ سیکوینسز بنانے میں سست اور میموری سے بھوکے ہوتے ہیں۔ بڑے لینگویج ماڈلز (LLMs) جو ٹیکسٹ سیکوینس تیار کرنے کے لیے استعمال ہوتے ہیں ان کو بہت زیادہ کمپیوٹنگ پاور کی ضرورت ہوتی ہے اور دستیاب ہائی بینڈوڈتھ میموری (HBM) اور کمپیوٹ کی صلاحیت تک رسائی حاصل کرنے میں دشواری ہوتی ہے۔ اس کی وجہ یہ ہے کہ دستیاب میموری بینڈوڈتھ کا ایک بڑا حصہ ماڈل کے پیرامیٹرز کو لوڈ کرتے ہوئے اور خودکار رجعتی ضابطہ کشائی کا عمل.نتیجتاً، بڑی مقدار میں کمپیوٹ پاور کے باوجود، LLMs میموری I/O اور کمپیوٹنگ کی حدود سے محدود ہوتے ہیں، جو انہیں دستیاب ہارڈویئر وسائل سے بھرپور فائدہ اٹھانے سے روکتے ہیں۔
مجموعی طور پر، LLMs کے پیدا ہونے والے تخمینے میں تین اہم چیلنجز ہیں (کے مطابق پوپ وغیرہ۔ 2022):
- ڈی کوڈنگ کے دوران بڑے پیمانے پر ماڈل پیرامیٹرز اور عارضی حالت کی وجہ سے میموری کا ایک بڑا نشان۔ پیرامیٹرز اکثر ایک ہی ایکسلریٹر چپ کی یادداشت سے زیادہ ہوتے ہیں۔ توجہ کلیدی قدر کیچز کو بھی کافی میموری کی ضرورت ہوتی ہے۔
- کم ہم آہنگی تاخیر کو بڑھاتی ہے، خاص طور پر بڑے میموری فوٹ پرنٹ کے ساتھ، ہر قدم کو کمپیوٹ کور میں پیرامیٹرز اور کیشز کو لوڈ کرنے کے لیے خاطر خواہ ڈیٹا کی منتقلی کی ضرورت ہوتی ہے۔ اس کے نتیجے میں لیٹنسی کے اہداف کو پورا کرنے کے لیے زیادہ کل میموری بینڈوڈتھ کی ضرورت ہوتی ہے۔
- ترتیب کی لمبائی کے حساب سے توجہ کے طریقہ کار کی کواڈریٹک اسکیلنگ تاخیر اور کمپیوٹیشنل چیلنجز کو مرکب کرتی ہے۔
بیچنگ ان چیلنجوں سے نمٹنے کی تکنیکوں میں سے ایک ہے۔ بیچنگ سے مراد ایک LLM کو ایک ساتھ متعدد ان پٹ ترتیب بھیجنے اور اس طرح LLM تخمینہ کی کارکردگی کو بہتر بنانے کا عمل ہے۔ یہ نقطہ نظر تھرو پٹ کو بہتر بنانے میں مدد کرتا ہے کیونکہ ماڈل کے پیرامیٹرز کو ہر ان پٹ ترتیب کے لیے لوڈ کرنے کی ضرورت نہیں ہے۔ پیرامیٹرز کو ایک بار لوڈ کیا جا سکتا ہے اور ایک سے زیادہ ان پٹ ترتیبوں پر کارروائی کرنے کے لیے استعمال کیا جا سکتا ہے۔ بیچنگ مؤثر طریقے سے ایکسلریٹر کی HBM بینڈوتھ کا استعمال کرتی ہے، جس کے نتیجے میں زیادہ کمپیوٹ استعمال، بہتر تھرو پٹ، اور لاگت سے مؤثر اندازہ ہوتا ہے۔
یہ پوسٹ LLMs میں متوازی جنریٹو انفرنس کے لیے بیچنگ تکنیک کا استعمال کرتے ہوئے تھرو پٹ کو زیادہ سے زیادہ کرنے کی تکنیکوں کا جائزہ لیتی ہے۔ ہم میموری فوٹ پرنٹ کو کم کرنے، متوازی صلاحیت کو بڑھانے، اور تھرو پٹ کو بڑھانے کے لیے توجہ کی چوکور اسکیلنگ کو کم کرنے کے لیے بیچنگ کے مختلف طریقوں پر تبادلہ خیال کرتے ہیں۔ مقصد میموری، I/O، اور کمپیوٹیشن میں رکاوٹوں کو دور کرنے کے لیے HBM اور ایکسلریٹر جیسے ہارڈ ویئر کو مکمل طور پر استعمال کرنا ہے۔ پھر ہم روشنی ڈالتے ہیں کہ کس طرح ایمیزون سیج میکر بڑے ماڈل انفرنس (LMI) ڈیپ لرننگ کنٹینرز (DLCs) ان تکنیکوں میں مدد کر سکتے ہیں۔ آخر میں، ہم SageMaker پر ہر بیچنگ حکمت عملی کے ساتھ تھرو پٹ بہتری کا تقابلی تجزیہ پیش کرتے ہیں۔ LMI DLCs جیسے ماڈلز کے لیے تھرو پٹ کو بہتر بنانا لاما v2. آپ کو ایک ساتھ مثال نوٹ بک مل سکتی ہے۔ SageMaker مثالیں GitHub ذخیرہ.
بڑے لینگویج ماڈلز (LLMs) کے لیے اندازہ لگانا
Autoregressive decoding وہ عمل ہے جس کے ذریعے GPT جیسے زبان کے ماڈل ایک وقت میں ایک ٹوکن ٹیکسٹ آؤٹ پٹ تیار کرتے ہیں۔ اس میں بعد میں آنے والے ٹوکنز کی پیشن گوئی کرنے کے لیے ان پٹ ترتیب کے حصے کے طور پر تیار کردہ ٹوکنز کو دوبارہ ماڈل میں فیڈ کرنا شامل ہے۔ اقدامات درج ذیل ہیں:
- ماڈل ان پٹ کے طور پر ترتیب میں پچھلے ٹوکن وصول کرتا ہے۔ پہلے مرحلے کے لیے، یہ صارف کی طرف سے فراہم کردہ ابتدائی اشارہ ہے۔
- ماڈل اگلے ٹوکن کے لیے ذخیرہ الفاظ پر تقسیم کی پیش گوئی کرتا ہے۔
- سب سے زیادہ پیش گوئی شدہ امکان کے ساتھ ٹوکن کو منتخب کیا جاتا ہے اور آؤٹ پٹ کی ترتیب میں شامل کیا جاتا ہے۔ مرحلہ 2 اور 3 اس کا حصہ ہیں۔ ضابطہ کشائی اس تحریر کے مطابق، ضابطہ کشائی کے سب سے نمایاں طریقے لالچی تلاش، بیم کی تلاش، متضاد تلاش، اور نمونے لینے ہیں۔
- یہ نیا ٹوکن اگلے ضابطہ کشائی کے مرحلے کے لیے ان پٹ ترتیب میں شامل کیا گیا ہے۔
- ماڈل ان مراحل کے ذریعے اعادہ کرتا ہے، فی قدم ایک نیا ٹوکن تیار کرتا ہے، جب تک کہ ایک اختتامی ترتیب مارکر تیار نہ ہو جائے یا مطلوبہ آؤٹ پٹ لمبائی تک پہنچ جائے۔
ایل ایل ایم کے لیے ماڈل پیش کرنا
LLMs کے لیے پیش کیے جانے والے ماڈل سے مراد ٹیکسٹ جنریشن کے لیے ان پٹ کی درخواستیں وصول کرنے، قیاس آرائیاں کرنے، اور درخواست کرنے والی درخواستوں کو نتائج واپس کرنے کا عمل ہے۔ ماڈل سرونگ میں شامل کلیدی تصورات درج ذیل ہیں:
- کلائنٹ متعدد تخمینہ درخواستیں تیار کرتے ہیں، ہر درخواست میں ٹوکنز یا ان پٹ پرامپٹس کی ترتیب ہوتی ہے۔
- درخواستیں انفرنس سرور کے ذریعہ موصول ہوتی ہیں (مثال کے طور پر، DJLSserving, ٹارچ سرو, رخ، یا گلے ملتے ہوئے چہرہ TGI)
- انفرنس سرور تخمینہ کی درخواستوں کو بیچ کرتا ہے اور بیچ کو ایگزیکیوشن انجن میں شیڈول کرتا ہے جس میں ماڈل پارٹیشننگ لائبریریاں شامل ہوتی ہیں (جیسے ٹرانسفارمرز - نیورون ایکس, ڈیپ اسپیڈ, تیز، یا تیز ٹرانسفارمر) جنریٹیو لینگویج ماڈل پر فارورڈ پاس (آؤٹ پٹ ٹوکن کی ترتیب کی پیشن گوئی) چلانے کے لیے
- ایگزیکیوشن انجن ریسپانس ٹوکنز تیار کرتا ہے اور جواب کو انفرنس سرور کو واپس بھیجتا ہے۔
- انفرنس سرور کلائنٹس کو پیدا کردہ نتائج کے ساتھ جواب دیتا ہے۔
درخواست کی سطح کے نظام الاوقات میں چیلنجز ہوتے ہیں جب انفرنس سرور درخواست کی سطح پر ایگزیکیوشن انجن کے ساتھ تعامل کرتا ہے، جیسے کہ ہر ایک درخواست Python کے عمل کو استعمال کرتی ہے، جس کے لیے ماڈل کی ایک علیحدہ کاپی درکار ہوتی ہے، جو کہ میموری پر پابندی ہے۔ مثال کے طور پر، جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے، آپ مشین لرننگ (ML) مثال پر 80 GB سائز کے ماڈل کی صرف ایک کاپی لوڈ کرنے کے لیے 96 GB کل ایکسلریٹر ڈیوائس میموری کے ساتھ ایڈجسٹ کر سکتے ہیں۔ اگر آپ بیک وقت اضافی درخواستیں پیش کرنا چاہتے ہیں تو آپ کو پورے ماڈل کی ایک اضافی کاپی لوڈ کرنے کی ضرورت ہوگی۔ یہ میموری اور لاگت موثر نہیں ہے۔
اب جب کہ ہم درخواست کی سطح کے شیڈولنگ سے درپیش چیلنجوں کو سمجھتے ہیں، آئیے مختلف بیچنگ تکنیکوں کو دیکھتے ہیں جو تھرو پٹ کو بہتر بنانے میں مدد کر سکتی ہیں۔
بیچنگ کی تکنیک
اس سیکشن میں، ہم بیچنگ کی مختلف تکنیکوں کی وضاحت کرتے ہیں اور دکھاتے ہیں کہ SageMaker کا استعمال کرتے ہوئے انہیں کیسے نافذ کیا جائے۔ LMI کنٹینر.
تخمینہ کی درخواستوں کے لیے بیچنگ کی دو اہم اقسام ہیں:
- کلائنٹ سائیڈ (جامد) - عام طور پر، جب کوئی کلائنٹ کسی سرور کو درخواست بھیجتا ہے، تو سرور ہر درخواست کو ترتیب وار بطور ڈیفالٹ پروسیس کرے گا، جو تھرو پٹ کے لیے موزوں نہیں ہے۔ تھرو پٹ کو بہتر بنانے کے لیے، کلائنٹ سنگل پے لوڈ میں تخمینہ کی درخواستوں کو بیچ دیتا ہے اور سرور بیچ کو متعدد درخواستوں میں تقسیم کرنے کے لیے پری پروسیسنگ منطق کو لاگو کرتا ہے اور ہر درخواست کے لیے الگ الگ تخمینہ چلاتا ہے۔ اس اختیار میں، کلائنٹ کو بیچنگ کے لیے کوڈ کو تبدیل کرنے کی ضرورت ہے اور حل کو بیچ کے سائز کے ساتھ مضبوطی سے جوڑا جاتا ہے۔
- سرور سائیڈ (متحرک) - بیچنگ کے لیے ایک اور تکنیک سرور سائیڈ پر بیچنگ کو حاصل کرنے میں مدد کے لیے تخمینہ کا استعمال کرنا ہے۔ جیسا کہ آزادانہ استناد کی درخواستیں سرور پر پہنچتی ہیں، انفرنس سرور متحرک طور پر انہیں سرور کی طرف بڑے بیچوں میں گروپ کر سکتا ہے۔ انفرنس سرور مطلوبہ لیٹنسی رینج کے اندر رہتے ہوئے ایک مخصوص لیٹنسی ہدف کو پورا کرنے کے لیے بیچنگ کا انتظام کر سکتا ہے۔ انفرنس سرور اسے خود بخود ہینڈل کرتا ہے، اس لیے کلائنٹ سائیڈ کوڈ میں تبدیلی کی ضرورت نہیں ہے۔ سرور سائیڈ بیچنگ میں آٹو ریگریسیو ڈی کوڈنگ کی بنیاد پر جنریٹیو لینگویج ماڈلز کے لیے تھرو پٹ کو مزید بہتر بنانے کے لیے مختلف تکنیکیں شامل ہیں۔ بیچنگ کی ان تکنیکوں میں متحرک بیچنگ، مسلسل بیچنگ، اور PagedAttention (vLLM) بیچنگ شامل ہیں۔
متحرک بیچنگ
ڈائنامک بیچنگ سے مراد ان پٹ کی درخواستوں کو یکجا کرنا اور انہیں ایک بیچ کے طور پر ایک ساتھ بھیجنا ہے۔ ڈائنامک بیچنگ ایک عام سرور سائیڈ بیچنگ تکنیک ہے جو تمام کاموں کے لیے کام کرتی ہے، بشمول کمپیوٹر وژن (CV)، نیچرل لینگویج پروسیسنگ (NLP)، اور مزید۔
ایک LMI کنٹینر میں، آپ درج ذیل ترتیبات کی بنیاد پر درخواستوں کے بیچنگ کو ترتیب دے سکتے ہیں۔ serving.properties:
- بیچ_سائز - بیچ کے سائز سے مراد ہے۔
- max_batch_delay - بیچ جمع کرنے کے لیے زیادہ سے زیادہ تاخیر سے مراد
اگر ان میں سے کسی بھی حد کو پورا کیا جاتا ہے (زیادہ سے زیادہ بیچ کے سائز کو پورا کرنا یا انتظار کی مدت کی تکمیل)، تو ایک نیا بیچ تیار کیا جاتا ہے اور اندازہ لگانے کے لیے ماڈل کی طرف دھکیل دیا جاتا ہے۔ مندرجہ ذیل خاکہ مختلف ان پٹ تسلسل کی لمبائی کے ساتھ درخواستوں کی متحرک بیچنگ کو دکھاتا ہے جس پر ماڈل کے ذریعہ ایک ساتھ کارروائی کی جارہی ہے۔
آپ LMI کنٹینرز کو ترتیب دے کر SageMaker پر متحرک بیچنگ کو نافذ کر سکتے ہیں۔ serving.properties مندرجہ ذیل ہے:
اگرچہ متحرک بیچنگ بغیر بیچنگ کے مقابلے میں تھرو پٹ میں چار گنا تک اضافہ فراہم کر سکتی ہے، لیکن ہم مشاہدہ کرتے ہیں کہ اس معاملے میں GPU کا استعمال زیادہ سے زیادہ نہیں ہے کیونکہ جب تک تمام درخواستوں پر کارروائی مکمل نہیں ہو جاتی تب تک سسٹم کسی دوسرے بیچ کو قبول نہیں کر سکتا۔
مسلسل بیچنگ
مسلسل بیچنگ ٹیکسٹ جنریشن کے لیے مخصوص ایک اصلاح ہے۔ یہ تھرو پٹ کو بہتر بناتا ہے اور پہلے بائٹ لیٹینسی پر وقت کی قربانی نہیں دیتا ہے۔ مسلسل بیچنگ (جسے کہا جاتا ہے۔ تکرار کرنے والا or رولنگ بیچنگ) بیکار GPU وقت کے چیلنج کو حل کرتا ہے اور بیچ میں نئی درخواستوں کو مسلسل آگے بڑھا کر متحرک بیچنگ اپروچ کو مزید آگے بڑھاتا ہے۔ مندرجہ ذیل خاکہ درخواستوں کی مسلسل بیچنگ کو ظاہر کرتا ہے۔ جب درخواستیں 2 اور 3 کی پروسیسنگ ختم کرتی ہیں، تو درخواستوں کا ایک اور سیٹ شیڈول کیا جاتا ہے۔
مندرجہ ذیل انٹرایکٹو خاکہ اس بات کی گہرائی میں ڈوبتا ہے کہ مسلسل بیچنگ کیسے کام کرتی ہے۔
(بشکریہ: https://github.com/InternLM/lmdeploy)
آپ LLMs اور ٹیکسٹ جنریشن کو موثر بنانے کے لیے ایک طاقتور تکنیک استعمال کر سکتے ہیں: توجہ کے کچھ میٹرکس کو کیش کرنا۔ اس کا مطلب ہے کہ پرامپٹ کا پہلا پاس اس کے بعد کے فارورڈ پاسز سے مختلف ہے۔ پہلے پاس کے لیے، آپ کو پوری توجہ کے میٹرکس کی گنتی کرنی ہوگی، جب کہ فالو اپس کے لیے آپ کو صرف نئے ٹوکن توجہ کی گنتی کرنے کی ضرورت ہے۔ پہلا پاس کہا جاتا ہے۔ پہلے سے بھرنا اس پورے کوڈ بیس میں، جبکہ فالو اپس کو بلایا جاتا ہے۔ ڈوڈ آؤٹ. چونکہ پری فل ڈی کوڈ سے کہیں زیادہ مہنگا ہے، اس لیے ہم اسے ہر وقت نہیں کرنا چاہتے، لیکن فی الحال چل رہا سوال شاید ڈی کوڈ کر رہا ہے۔ اگر ہم مسلسل بیچنگ کا استعمال کرنا چاہتے ہیں جیسا کہ پہلے بیان کیا گیا ہے، ہمیں ڈی کوڈ گروپ میں شامل ہونے کے لیے ضروری توجہ کا میٹرکس بنانے کے لیے کسی وقت پری فل چلانے کی ضرورت ہے۔
یہ تکنیک بیکار GPUs کو مؤثر طریقے سے استعمال کرتے ہوئے بغیر بیچنگ کے مقابلے میں تھرو پٹ میں 20 گنا تک اضافے کی اجازت دے سکتی ہے۔
آپ درج ذیل پیرامیٹرز کو ٹھیک کر سکتے ہیں۔ serving.properties
مسلسل بیچنگ استعمال کرنے کے لیے LMI کنٹینر کا:
- انجن - کوڈ کا رن ٹائم انجن۔ اقدار شامل ہیں۔
Python
,DeepSpeed
,FasterTransformer
، اورMPI
. استعمال کریںMPI
مسلسل بیچنگ کو فعال کرنے کے لیے۔ - رولنگ_بیچ - معاون حکمت عملیوں میں سے ایک کا استعمال کرتے ہوئے تکرار کی سطح کی بیچنگ کو قابل بناتا ہے۔ اقدار شامل ہیں۔
auto
,scheduler
، اورlmi-dist
. ہم استعمال کرتے ہیںlmi-dist
لاما 2 کے لیے مسلسل بیچنگ کو آن کرنے کے لیے۔ - max_rolling_batch_size - مسلسل بیچ میں ہم آہنگی کی درخواستوں کی تعداد کو محدود کرتا ہے۔ پہلے سے طے شدہ 32۔
- max_rolling_batch_prefill_tokens - کیشنگ کے لیے ٹوکنز کی تعداد کو محدود کرتا ہے۔ GPU کو میموری سے باہر ہونے سے بچنے کے لیے اسے بیچ کے سائز اور ان پٹ تسلسل کی لمبائی کی بنیاد پر ٹیون کرنے کی ضرورت ہے۔ یہ صرف اس وقت کے لیے تعاون یافتہ ہے۔
rolling_batch=lmi-dist
. ہماری سفارش یہ ہے کہ ہم وقتی درخواستوں کی تعداد کی بنیاد پر قیمت متعین کی جائے x ان پٹ ٹوکنز اور آؤٹ پٹ ٹوکن فی درخواست کو ذخیرہ کرنے کے لیے درکار میموری۔
مندرجہ ذیل کے لیے نمونہ کوڈ ہے۔ serving.properties
مسلسل بیچنگ کو ترتیب دینے کے لیے:
PagedAttention بیچنگ
خود بخود ضابطہ کشائی کے عمل میں، LLM کے تمام ان پٹ ٹوکن اپنی توجہ کی کلید اور ویلیو ٹینسر تیار کرتے ہیں، اور یہ ٹینسر اگلے ٹوکنز بنانے کے لیے GPU میموری میں رکھے جاتے ہیں۔ ان کیشڈ کلید اور ویلیو ٹینسرز کو اکثر کہا جاتا ہے۔ KV کیشے or توجہ کیش. کاغذ کے مطابق vLLM: آسان، تیز، اور سستا LLM پیجڈ توجہ کے ساتھ پیش کرنا، KV کیشے Llama 1.7B میں ایک ہی ترتیب کے لیے 13 GB تک لیتا ہے۔ یہ متحرک بھی ہے۔ اس کا سائز ترتیب کی لمبائی پر منحصر ہے، جو انتہائی متغیر اور غیر متوقع ہے۔ نتیجے کے طور پر، KV کیش کو مؤثر طریقے سے منظم کرنا ایک اہم چیلنج پیش کرتا ہے۔ مقالے میں پتا چلا کہ موجودہ نظام 60-80% میموری کو فریگمنٹیشن اور زیادہ بکنگ کی وجہ سے ضائع کرتے ہیں۔
PagedAttention UC Berkeley کی طرف سے تیار کردہ ایک نیا آپٹیمائزیشن الگورتھم ہے جو فکسڈ سائز کے صفحات یا بلاکس میں میموری کو مختص کر کے توجہ کیش (KV کیشے) کو غیر متصل رہنے کی اجازت دے کر مسلسل بیچنگ کے عمل کو بہتر بناتا ہے۔ یہ آپریٹنگ سسٹم کے ذریعے استعمال ہونے والے ورچوئل میموری اور پیجنگ کے تصورات سے متاثر ہے۔
وی ایل ایل ایم پیپر کے مطابق، ٹوکنز کی ہر ترتیب کی توجہ کیش کو بلاکس میں تقسیم کیا جاتا ہے اور بلاک ٹیبل کے ذریعے فزیکل بلاکس میں میپ کیا جاتا ہے۔ توجہ کی گنتی کے دوران، ایک PagedAttention کرنل بلاک ٹیبل کو استعمال کر سکتا ہے تاکہ مؤثر طریقے سے بلاکس کو جسمانی میموری سے حاصل کیا جا سکے۔ اس کے نتیجے میں میموری کے فضلے میں نمایاں کمی واقع ہوتی ہے اور یہ بڑے بیچ سائز، GPU کے استعمال میں اضافہ، اور زیادہ تھرو پٹ کی اجازت دیتا ہے۔ مندرجہ ذیل تصویر توجہ کیش کو غیر متصل صفحات میں تقسیم کرنے کی وضاحت کرتی ہے۔
مندرجہ ذیل خاکہ PagedAttention کے ساتھ ایک تخمینہ مثال دکھاتا ہے۔ اہم اقدامات یہ ہیں:
- تخمینہ کی درخواست ایک ان پٹ پرامپٹ کے ساتھ موصول ہوتی ہے۔
- پہلے سے بھرنے کے مرحلے میں، توجہ کی گنتی کی جاتی ہے اور کلیدی اقدار کو غیر متصل جسمانی میموری میں محفوظ کیا جاتا ہے اور منطقی کلیدی قدر کے بلاکس میں نقشہ بنایا جاتا ہے۔ یہ میپنگ بلاک ٹیبل میں محفوظ ہے۔
- پہلا رسپانس ٹوکن بنانے کے لیے ان پٹ پرامپٹ کو ماڈل (ایک فارورڈ پاس) کے ذریعے چلایا جاتا ہے۔ رسپانس ٹوکن جنریشن کے دوران، پری فل فیز سے توجہ کا کیش استعمال کیا جاتا ہے۔
- بعد کے ٹوکن جنریشن کے دوران، اگر موجودہ فزیکل بلاک بھرا ہوا ہے تو، اضافی میموری کو غیر متصل انداز میں مختص کیا جاتا ہے، جس سے وقتی طور پر مختص کی اجازت دی جاتی ہے۔
PagedAttention میموری کے زیادہ سے زیادہ استعمال اور میموری کے ضیاع کو کم کرنے میں مدد کرتا ہے۔ یہ مزید درخواستوں کو ایک ساتھ جمع کرنے کی اجازت دیتا ہے، جس کے نتیجے میں انفرنسنگ کے تھرو پٹ میں نمایاں اضافہ ہوتا ہے۔
درج ذیل کوڈ ایک نمونہ ہے۔ serving.properties
SageMaker پر LMI کنٹینر میں PagedAttention بیچنگ کو ترتیب دینے کے لیے:
بیچنگ کی کون سی تکنیک کب استعمال کی جائے۔
مندرجہ ذیل اعداد و شمار نمونے کے ساتھ سرور سائیڈ بیچنگ تکنیک کا خلاصہ کرتا ہے۔ serving.properties
سیج میکر پر LMI میں۔
درج ذیل جدول میں بیچنگ کی مختلف تکنیکوں اور ان کے استعمال کے معاملات کا خلاصہ کیا گیا ہے۔
PagedAttention Batching | مسلسل بیچنگ | متحرک بیچنگ | کلائنٹ سائیڈ بیچنگ | کوئی بیچ نہیں۔ | |
یہ کیسے کام کرتا ہے | ہمیشہ ٹوکن کی سطح پر نئی درخواستوں کو صفحہ بند بلاکس کے ساتھ ضم کریں اور بیچ کا اندازہ لگائیں۔ | ہمیشہ ٹوکن کی سطح پر نئی درخواست کو ضم کریں اور بیچ کا اندازہ لگائیں۔ | درخواست کی سطح پر نئی درخواست کو ضم کریں۔ بیچ بنانے میں چند ملی سیکنڈ کی تاخیر کر سکتا ہے۔ | کلائنٹ انفرنس سرور کو بھیجنے سے پہلے ایک ہی پے لوڈ میں متعدد تخمینہ درخواستوں کو بیچنے کا ذمہ دار ہے۔ | جب کوئی درخواست آتی ہے، تو فوری طور پر تخمینہ چلائیں۔ |
جب یہ بہترین کام کرتا ہے۔ | کے لیے یہ تجویز کردہ طریقہ ہے۔ کی حمایت کی صرف ڈیکوڈر ماڈلز۔ یہ تھرو پٹ آپٹمائزڈ ورک بوجھ کے لیے موزوں ہے۔ یہ صرف ٹیکسٹ جنریشن ماڈلز پر لاگو ہوتا ہے۔ | ایک ہی ضابطہ کشائی کی حکمت عملی کے ساتھ مختلف اوقات میں آنے والی سمورتی درخواستیں۔ یہ تھرو پٹ آپٹمائزڈ ورک بوجھ کے لیے موزوں ہے۔ یہ صرف ٹیکسٹ جنریشن ماڈلز پر لاگو ہوتا ہے۔ | ایک ہی ضابطہ کشائی کی حکمت عملی کے ساتھ مختلف اوقات میں آنے والی سمورتی درخواستیں۔ یہ جوابی وقت کے لیے حساس کام کے بوجھ کے لیے موزوں ہے جن کو زیادہ تھرو پٹ کی ضرورت ہوتی ہے۔ یہ CV، NLP، اور دیگر قسم کے ماڈلز پر لاگو ہوتا ہے۔ | یہ آف لائن انفرنس استعمال کے کیسز کے لیے موزوں ہے جن میں تھرو پٹ کو زیادہ سے زیادہ کرنے میں تاخیر کی رکاوٹیں نہیں ہیں۔ | مختلف ضابطہ کشائی کی حکمت عملیوں کے ساتھ غیر معمولی تخمینہ کی درخواستیں یا تخمینہ کی درخواستیں۔ یہ سخت ردعمل کے وقت میں تاخیر کی ضروریات کے ساتھ کام کے بوجھ کے لیے موزوں ہے۔ |
سیج میکر پر ایک بڑے جنریٹو ماڈل کے لیے بیچنگ کی مختلف تکنیکوں کا تھرو پٹ موازنہ
ہم نے کارکردگی کی بینچ مارکنگ کو a Llama v2 7B LMI کنٹینر کا استعمال کرتے ہوئے SageMaker پر ماڈل اور اس پوسٹ میں 50 کی ایک ساتھ آنے والی درخواستوں اور 5,000 درخواستوں کی کل تعداد کے ساتھ بیچنگ کی مختلف تکنیکوں پر تبادلہ خیال کیا گیا ہے۔
ہم نے کارکردگی کے ٹیسٹ کے لیے متغیر لمبائی کے تین مختلف ان پٹ پرامپٹس کا استعمال کیا۔ مسلسل اور PagedAttention بیچنگ میں، آؤٹ پٹ ٹوکن کی لمبائی تین ان پٹ پرامپٹس کے لیے بالترتیب 64، 128، اور 256 پر سیٹ کی گئی تھی۔ متحرک بیچنگ کے لیے، ہم نے 128 ٹوکنز کی مسلسل آؤٹ پٹ ٹوکن لمبائی کا استعمال کیا۔ ہم نے ٹیسٹ کے لیے SageMaker اینڈ پوائنٹس کو ml.g5.24xlarge کی مثال کے ساتھ تعینات کیا۔ درج ذیل جدول میں کارکردگی کے بینچ مارکنگ ٹیسٹوں کے نتائج شامل ہیں۔
ماڈل | بیچنگ کی حکمت عملی | ml.g5.24xlarge پر فی سیکنڈ کی درخواستیں۔ |
LLaMA2-7b | متحرک بیچنگ | 3.24 |
LLaMA2-7b | مسلسل بیچنگ | 6.92 |
LLaMA2-7b | PagedAttention Batching | 7.41 |
LMI کنٹینر کا استعمال کرتے ہوئے SageMaker پر Llama2.3-2B ماڈل کے لیے متحرک بیچنگ کے مقابلے میں PagedAttention بیچنگ کا استعمال کرتے ہوئے ہم تھرو پٹ میں تقریباً 7 گنا اضافہ دیکھتے ہیں۔
نتیجہ
اس پوسٹ میں، ہم نے LLMs کا اندازہ لگانے کے لیے بیچنگ کی مختلف تکنیکوں کی وضاحت کی ہے اور یہ کہ یہ تھرو پٹ بڑھانے میں کس طرح مدد کرتی ہے۔ ہم نے دکھایا کہ کس طرح میموری کی اصلاح کی تکنیک مسلسل اور PagedAttention بیچنگ کا استعمال کرکے ہارڈ ویئر کی کارکردگی کو بڑھا سکتی ہے اور متحرک بیچنگ سے زیادہ تھرو پٹ ویلیوز فراہم کرتی ہے۔ ہم نے LMI کنٹینر کا استعمال کرتے ہوئے SageMaker پر Llama2.3-2B ماڈل کے لیے متحرک بیچنگ کے مقابلے میں PagedAttention بیچنگ کا استعمال کرتے ہوئے تھرو پٹ میں تقریباً 7 گنا اضافہ دیکھا۔ آپ مختلف بیچنگ تکنیکوں کی جانچ کے لیے استعمال ہونے والی نوٹ بک تلاش کر سکتے ہیں۔ GitHub کے.
مصنفین کے بارے میں
گگن سنگھ AWS میں ایک سینئر ٹیکنیکل اکاؤنٹ مینیجر ہے، جہاں وہ ڈیجیٹل مقامی سٹارٹ اپس کے ساتھ شراکت داری کرتا ہے تاکہ ان کی کاروباری کامیابی کی راہ ہموار کی جا سکے۔ مشین لرننگ کے اقدامات کو آگے بڑھانے میں ایک جگہ کے ساتھ، وہ Amazon SageMaker سے فائدہ اٹھاتا ہے، خاص طور پر ڈیپ لرننگ اور جنریٹیو AI سلوشنز پر زور دیتا ہے۔ اپنے فارغ وقت میں، گگن کو ہمالیہ کی پگڈنڈیوں پر ٹریکنگ کرنے اور موسیقی کی متنوع اصناف میں غرق ہو کر سکون ملتا ہے۔
دھول پٹیل AWS میں پرنسپل مشین لرننگ آرکیٹیکٹ ہے۔ انہوں نے تقسیم شدہ کمپیوٹنگ اور مصنوعی ذہانت سے متعلق مسائل پر بڑے اداروں سے لے کر درمیانے درجے کے اسٹارٹ اپس تک کی تنظیموں کے ساتھ کام کیا ہے۔ وہ NLP اور کمپیوٹر ویژن ڈومینز سمیت گہری سیکھنے پر توجہ مرکوز کرتا ہے۔ وہ صارفین کو SageMaker پر اعلیٰ کارکردگی کے ماڈل کا اندازہ حاصل کرنے میں مدد کرتا ہے۔
وینوگوپال پائی AWS میں ایک حل آرکیٹیکٹ ہے۔ وہ بنگلورو، انڈیا میں رہتا ہے، اور ڈیجیٹل مقامی صارفین کو AWS پر ان کی ایپلی کیشنز کو پیمانے اور بہتر بنانے میں مدد کرتا ہے۔
- SEO سے چلنے والا مواد اور PR کی تقسیم۔ آج ہی بڑھا دیں۔
- پلیٹو ڈیٹا ڈاٹ نیٹ ورک ورٹیکل جنریٹو اے آئی۔ اپنے آپ کو بااختیار بنائیں۔ یہاں تک رسائی حاصل کریں۔
- پلیٹوآئ اسٹریم۔ ویب 3 انٹیلی جنس۔ علم میں اضافہ۔ یہاں تک رسائی حاصل کریں۔
- پلیٹو ای ایس جی۔ کاربن، کلین ٹیک، توانائی ، ماحولیات، شمسی، ویسٹ مینجمنٹ یہاں تک رسائی حاصل کریں۔
- پلیٹو ہیلتھ۔ بائیوٹیک اینڈ کلینیکل ٹرائلز انٹیلی جنس۔ یہاں تک رسائی حاصل کریں۔
- ماخذ: https://aws.amazon.com/blogs/machine-learning/improve-throughput-performance-of-llama-2-models-using-amazon-sagemaker/
- : ہے
- : ہے
- : نہیں
- :کہاں
- $UP
- 000
- 1
- 100
- 116
- 118
- 12
- 14
- 150
- 17
- 237
- 32
- 50
- 67
- 7
- 8
- 80
- 9
- 97
- a
- قابلیت
- مسرع
- ایکسلریٹر
- قبول کریں
- تک رسائی حاصل
- ایڈجسٹ کریں
- کے مطابق
- اکاؤنٹ
- حاصل
- شامل کیا
- ایڈیشنل
- پتہ
- پتے
- منہ بولابیٹا بنانے
- فائدہ
- AI
- AL
- یلگورتم
- تمام
- مختص
- تین ہلاک
- کی اجازت
- اجازت دے رہا ہے
- کی اجازت دیتا ہے
- ساتھ
- بھی
- ایمیزون
- ایمیزون سیج میکر
- ایمیزون ویب سروسز
- مقدار
- an
- تجزیہ
- اور
- ایک اور
- قابل اطلاق
- ایپلی کیشنز
- نقطہ نظر
- تقریبا
- کیا
- پہنچ
- مصنوعی
- مصنوعی ذہانت
- AS
- At
- توجہ
- خود کار طریقے سے
- دستیاب
- سے اجتناب
- AWS
- واپس
- بینڈوڈتھ
- بیس
- کی بنیاد پر
- BE
- بیم
- کیونکہ
- اس سے پہلے
- کیا جا رہا ہے
- یقین ہے کہ
- بینچ مارکنگ
- برکلے
- بلاک
- بلاکس
- بڑھانے کے
- توڑ
- بناتا ہے
- کاروبار
- لیکن
- by
- کیشے
- کہا جاتا ہے
- کر سکتے ہیں
- اہلیت
- کیس
- مقدمات
- چیلنج
- چیلنجوں
- تبدیل
- تبدیلیاں
- سستے
- چپ
- کلائنٹ
- کلائنٹس
- کوڈ
- کوڈ بیس
- امتزاج
- آنے والے
- عام طور پر
- مقابلے میں
- موازنہ
- مکمل
- تکمیل
- حساب
- کمپیوٹنگ
- کمپیوٹر
- کمپیوٹر ویژن
- کمپیوٹنگ
- کمپیوٹنگ طاقت
- تصورات
- سمورتی
- متواتر
- پر مشتمل ہے
- رکاوٹوں
- بسم
- کنٹینر
- کنٹینر
- پر مشتمل ہے
- مواد
- مسلسل
- مسلسل
- مکالمات
- قیمت
- سرمایہ کاری مؤثر
- مل کر
- تخلیق
- موجودہ
- اس وقت
- گاہک
- گاہکوں
- اعداد و شمار
- ضابطہ ربائی کرنا
- گہری
- گہری سیکھنے
- گہرے
- پہلے سے طے شدہ
- غلطی
- تاخیر
- انحصار کرتا ہے
- تعینات
- مطلوبہ
- ترقی یافتہ
- آلہ
- مختلف
- مشکلات
- ڈیجیٹل
- بات چیت
- بات چیت
- تقسیم کئے
- تقسیم کمپیوٹنگ
- تقسیم
- متنوع
- do
- نہیں کرتا
- کر
- ڈومینز
- نہیں
- نیچے
- دو
- کے دوران
- متحرک
- متحرک طور پر
- ای اینڈ ٹی
- ہر ایک
- آسان
- مؤثر طریقے
- کارکردگی
- ہنر
- مؤثر طریقے سے
- یا تو
- پر زور
- کو چالو کرنے کے
- کے قابل بناتا ہے
- انجن
- اداروں
- پوری
- خاص طور پر
- بھی
- ہر کوئی
- امتحانات
- مثال کے طور پر
- مثال کے طور پر
- حد سے تجاوز
- دلچسپ
- پھانسی
- موجودہ
- مہنگی
- تجربات
- وضاحت
- وضاحت کی
- چہرہ
- فیشن
- فاسٹ
- کھانا کھلانا
- چند
- اعداد و شمار
- آخر
- مل
- پتہ ہے
- ختم
- پہلا
- توجہ مرکوز
- کے بعد
- مندرجہ ذیل ہے
- فوٹ پرنٹ
- کے لئے
- فارم
- آگے
- ملا
- فاؤنڈیشن
- ٹکڑا
- مفت
- سے
- مکمل
- مکمل طور پر
- مزید
- پیدا
- پیدا
- پیدا ہوتا ہے
- پیدا کرنے والے
- نسل
- پیداواری
- پیداواری AI۔
- GIF
- GitHub کے
- مقصد
- GPU
- GPUs
- لالچی
- گروپ
- ہینڈل
- ہارڈ ویئر
- ہے
- he
- اونچائی
- مدد
- مدد کرتا ہے
- ہائی
- اعلی
- سب سے زیادہ
- نمایاں کریں
- انتہائی
- ان
- کس طرح
- کیسے
- HTML
- HTTPS
- گلے لگانے والا چہرہ
- خیالات
- ناقابل یقین
- if
- وضاحت کرتا ہے
- تصاویر
- فوری طور پر
- بہت زیادہ
- پر عملدرآمد
- عمل
- کو بہتر بنانے کے
- بہتر
- بہتری
- بہتر ہے
- in
- شامل
- شامل ہیں
- سمیت
- موصولہ
- اضافہ
- اضافہ
- اضافہ
- آزاد
- بھارت
- افلاک
- نقطہ تصریف
- اقدامات
- ان پٹ
- متاثر
- مثال کے طور پر
- انٹیلی جنس
- انٹرایکٹو
- انٹرایکٹو
- میں
- ملوث
- IT
- میں
- میں شامل
- فوٹو
- رکھی
- کلیدی
- جانا جاتا ہے
- زبان
- بڑے
- بڑے کاروباری اداروں
- بڑے
- تاخیر
- سیکھنے
- لمبائی
- سطح
- لیتا ہے
- لائبریریوں
- کی طرح
- لمیٹڈ
- حدود
- زندگی
- لاما
- ایل ایل ایم
- لوڈ
- لوڈ کر رہا ہے
- منطق
- منطقی
- لانگ
- دیکھو
- مشین
- مشین لرننگ
- مین
- بنا
- بنانا
- انتظام
- مینیجر
- مینیجنگ
- تعریفیں
- مارکر
- بڑے پیمانے پر
- میٹرکس
- زیادہ سے زیادہ
- زیادہ سے زیادہ
- زیادہ سے زیادہ
- مئی..
- کا مطلب ہے کہ
- میکانزم
- سے ملو
- اجلاس
- یاد داشت
- ضم کریں
- کے ساتھ
- میٹا
- طریقوں
- ملیسیکنڈ
- تخفیف کریں
- ML
- ماڈل
- ماڈل
- زیادہ
- سب سے زیادہ
- بہت
- ایک سے زیادہ
- موسیقی
- مقامی
- قدرتی
- قدرتی زبان عملیات
- ضرورت ہے
- ضرورت
- ضرورت ہے
- ضروریات
- نئی
- اگلے
- طاق
- ویزا
- نہیں
- نوٹ بک
- تعداد
- NVIDIA
- مشاہدہ
- of
- آف لائن
- اکثر
- on
- ایک
- صرف
- کام
- آپریٹنگ سسٹم
- زیادہ سے زیادہ
- اصلاح کے
- کی اصلاح کریں
- اصلاح
- اختیار
- or
- حکم
- تنظیمیں
- دیگر
- ہمارے
- باہر
- پیداوار
- پر
- پر قابو پانے
- صفحات
- کاغذ.
- پیرامیٹرز
- حصہ
- خاص طور پر
- شراکت داروں کے
- منظور
- گزرتا ہے
- راستہ
- ہموار
- فی
- کارکردگی
- کارکردگی
- مدت
- مرحلہ
- جسمانی
- پلاٹا
- افلاطون ڈیٹا انٹیلی جنس
- پلیٹو ڈیٹا
- پوائنٹ
- حصہ
- درپیش
- پوسٹ
- طاقت
- طاقت
- طاقتور
- پیشن گوئی
- پیش گوئی
- پیش گوئی
- پیش گوئیاں
- تیار
- حال (-)
- تحفہ
- کی روک تھام
- پچھلا
- پہلے
- پرنسپل
- شاید
- مسائل
- عمل
- عملدرآمد
- پروسیسنگ
- پیدا
- تیار
- ممتاز
- پروپیلنگ
- فراہم
- فراہم
- دھکیل دیا
- دھکیلنا
- ازگر
- چوکور
- رینج
- لے کر
- پہنچ گئی
- موصول
- موصول
- وصول کرنا
- سفارش
- سفارش کی
- کو کم
- کمی
- کہا جاتا ہے
- مراد
- متعلقہ
- رشتہ دار
- درخواست
- درخواستوں
- کی ضرورت
- ضرورت
- کی ضرورت ہے
- وسائل
- بالترتیب
- جواب
- ذمہ دار
- پابندی
- نتیجہ
- نتیجے
- نتائج کی نمائش
- واپس لوٹنے
- رن
- چل رہا ہے
- چلتا ہے
- قربان
- sagemaker
- اسی
- دیکھا
- پیمانے
- سکیلنگ
- شیڈول کے مطابق
- شیڈولنگ
- تلاش کریں
- دوسری
- سیکشن
- دیکھنا
- منتخب
- بھیجنا
- بھیجتا ہے
- سینئر
- علیحدہ
- تسلسل
- خدمت
- سرور
- سروسز
- خدمت
- مقرر
- ترتیبات
- دکھائیں
- سے ظاہر ہوا
- دکھایا گیا
- شوز
- کی طرف
- اہم
- ایک
- سائز
- سست
- So
- حل
- حل
- کچھ
- مخصوص
- مخصوص
- شروع
- سترٹو
- حالت
- رہ
- مرحلہ
- مراحل
- ذخیرہ
- ذخیرہ
- خبریں
- حکمت عملیوں
- حکمت عملی
- سخت
- بعد میں
- کافی
- کامیابی
- اس طرح
- موزوں
- تائید
- کے نظام
- سسٹمز
- ٹیبل
- لیتا ہے
- لینے
- ہدف
- اہداف
- کاموں
- ٹیکنیکل
- تکنیک
- ٹیسٹ
- ٹیسٹنگ
- ٹیسٹ
- متن
- سے
- کہ
- ۔
- بلاک
- ان
- ان
- تو
- اس طرح
- یہ
- اس
- تین
- کے ذریعے
- بھر میں
- تھرو پٹ
- مضبوطی سے
- وقت
- وقت کے ساتھ حساس
- اوقات
- کرنے کے لئے
- مل کر
- ٹوکن
- ٹوکن
- سب سے اوپر
- کل
- تربیت یافتہ
- منتقلی
- ٹرانسفارمرز
- ٹرننگ
- دو
- قسم
- اقسام
- عام طور پر
- سمجھ
- ناقابل اعتبار
- جب تک
- استعمال
- استعمال کی شرائط
- استعمال کیا جاتا ہے
- رکن کا
- کا استعمال کرتے ہوئے
- استعمال کرتا ہے
- استعمال کرنا۔
- قیمت
- اقدار
- متغیر
- وسیع
- ویڈیوز
- مجازی
- نقطہ نظر
- انتظار کر رہا ہے
- چاہتے ہیں
- فضلے کے
- we
- ویب
- ویب خدمات
- تھے
- جب
- جبکہ
- جس
- جبکہ
- وسیع پیمانے پر
- گے
- ساتھ
- کے اندر
- کام کیا
- کام کرتا ہے
- تحریری طور پر
- X
- تم
- زیفیرنیٹ