Workstation تکنیکی مختصر: LLM سرونگ اور ایجنٹوں کے ساتھ ٹربو چارج کیسے کریں۔ PagedAttention, vLLM, Self-Debugging, PowerInfer، اور EG-MLA. ساتھی: بلاگ · پرائمر: Kubernetes مضمون پر LLMs لیب: انٹرپرائز اے آئی لیب.
- رکاوٹ: KV کیشے کی ترقی اور ٹکڑے ٹکڑے کرنا، خلاصہ میں "ماڈل سست ہے" نہیں۔
- PagedAttention: KV بلاکس کی OS طرز کی صفحہ بندی؛ ٹیون بلاک سائز اور کیش درجہ بندی۔
- vLLM: سرونگ انجن جس میں تقریباً صفر کے وی فضلہ + مسلسل بیچنگ؛ TTFT بمقابلہ ٹوکن/s دیکھیں۔
- Self-Debugging: چند شاٹ پروگرام کی مرمت امیدواروں کے بڑے سیٹوں کو ہرا دیتی ہے۔ مصنوعات میں ٹوپی راؤنڈ.
- PowerInfer: گرم/سرد تقسیم؛ RTX 4090 پر 13.20 tok/s اوسط / 29.08 چوٹی (کاغذ/ریپو کے اعداد و شمار)۔
- EG-MLA: فن تعمیر کی سطح کے وی کمپریشن (~91.6% بمقابلہ MHA)؛ تبادلہ کرنے سے پہلے دوبارہ جائزہ لینا۔
1. کیوں خدمت کرنا، تربیت نہیں، بحران ہے۔
بڑے زبان کے ماڈلز نے NLP کو تبدیل کر دیا: چیٹ، جنریشن، ٹولز۔ تربیت ایک بار مہنگی ہے؛ سرونگ ہر سیکنڈ مہنگی ہے. ڈی کوڈ خود بخود ہے۔ ہر نئے ٹوکن کو پچھلی کلیدوں اور اقدار کی ضرورت ہوتی ہے۔ اس کے وی کیشے کی میموری تہوں × ہیڈز × پوشیدہ × ترتیب × بیچ کے متناسب ہے۔ پری فل کمپیوٹ بھاری ہے۔ ڈی کوڈ میموری بینڈوڈتھ ہیوی ہے۔ اگر آپ فی درخواست ایک متصل زیادہ سے زیادہ لمبائی کے وی ٹینسر کو مختص کرتے ہیں، تو اس میں سے زیادہ تر اس وقت تک خالی رہتا ہے جب تک کہ ترتیب اصل میں بڑھ نہ جائے — کلاسک اندرونی ٹکڑے۔ ہم آہنگی کی درخواستیں ان سوراخوں کو چوری نہیں کرسکتی ہیں۔ بیچ کے سائز میں کمی۔ ٹوکن فی سیکنڈ ڈراپ۔ GPUs مصروف اور اب بھی بیکار نظر آتے ہیں۔
یہی وہ مسئلہ ہے جس پر 2023 میں PagedAttention اور vLLM نے حملہ کیا تھا، اور مسئلہ PowerInfer اور بعد میں توجہ کی مختلف حالتیں اب بھی مختلف زاویوں سے حملہ کرتی ہیں۔
دیکھیں: LLM ذہنی ماڈل
سیاق و سباق کی ویڈیو: بڑی زبان کے ماڈلز کا تعارف. Workstation وضاحت کنندہ: LLMs کیسے کام کرتے ہیں اور انہیں Kubernetes پر کیسے چلایا جاتا ہے۔.
2. PagedAttention: KV کیشے کے لیے صفحہ بندی
Kwon, Li, Zhuang, Sheng, Zheng, Yu, Gonzalez, Zhang, and Stoica نے PagedAttention کو ایک توجہ کے الگورتھم کے طور پر متعارف کرایا جو ورچوئل میموری اور OS پیجنگ سے متاثر ہوا، اور اس کے اوپر vLLM بنایا۔ [arXiv:2309.06180]. خیال:
- KV میں تقسیم کریں۔ مقررہ سائز کے بلاکس (فی بلاک ٹوکن کی ایک چھوٹی سی تعداد)۔
- رکھنا a بلاک ٹیبل منطقی ٹوکن پوزیشنز سے لے کر فزیکل GPU بلاکس تک (ممکنہ طور پر غیر متصل)۔
- ترتیب کے بڑھنے یا ختم ہونے کے ساتھ ہی بلاکس کو مختص/مفت کریں — جیسے صفحہ مختص کرنا، نہ کہ ایک بڑی صف کے malloc کی طرح۔
- پریفکس کے دوبارہ استعمال، بیم کی تلاش، اور متوازی نمونے لینے کے لیے بلاکس (کاپی آن رائٹ) کا اشتراک کریں تاکہ آپ ایک جیسے سابقے کی نقل نہ بنائیں۔
نفاذ "BERT پر جھنڈا لگانا" نہیں ہے۔ توجہ کے دانے کو بکھرے ہوئے بلاکس کو جمع کرنا ہوگا۔ شیڈولر کو معلوم ہونا چاہیے کہ کون سے بلاکس مفت ہیں۔ کیشے کے درجہ بندی کی اہمیت ہے: HBM-Resident blocks بمقابلہ CPU آف لوڈ بمقابلہ NVLink ہم عمر۔ بفر (بلاک) سائز ایک حقیقی نوب ہے۔ بہت چھوٹا: زیادہ ٹیبل تلاش اور کرنل اوور ہیڈ۔ بہت بڑا: آخری جزوی بلاک کے اندر ضائع شدہ سلاٹ۔ بلاک سائز کے ساتھ جوڑیں۔ max_model_len اور آپ کے ٹریفک کا اصل پرامپٹ/تکمیل مکس۔
مشق: پروفائل فریگمنٹیشن (غیر استعمال شدہ KV بائٹس / محفوظ KV بائٹس) اور ٹوکنز ایک ساتھ۔ بغیر تھرو پٹ کے میموری گراف باطل ہیں۔
3. vLLM: پیجر کے ارد گرد سرونگ سسٹم
vLLM کا دعوی KV کیش میموری میں تقریباً صفر فضلہ کے علاوہ درخواستوں کے اندر اور اس میں لچکدار اشتراک ہے۔ مقالے میں جائزے تقریباً ظاہر ہوئے۔ 2–4× تھرو پٹ بمقابلہ اس وقت کے SOTA سسٹمز (FasterTransformer, Orca) اسی طرح کے لیٹنسی پر، طویل سیکوینسز اور فینسیئر ڈی کوڈنگ پر بڑے فوائد کے ساتھ۔ آج انجن ملٹی-GPU کے لیے مسلسل بیچنگ، چنکڈ پری فل، پریفکس کیشنگ، اور ٹینسر/پائپ لائن متوازی بھی بھیجتا ہے۔
آپریشنل چیک لسٹ:
- سیٹ
gpu_memory_utilizationوزن + KV رکھنے کے لیے کافی زیادہ، CUDA ورک اسپیس چھوڑنے کے لیے کافی کم۔ - پریفکس کیشنگ کو صرف اس وقت فعال کریں جب آپ eval اسکورز کی تصدیق کریں اور p95 TTFT آن کریں۔ آپ کا اشارہ کرتا ہے
- اگر مخلوط ٹریفک SLO (متضاد سرونگ) کو تباہ کر دیتی ہے تو پری فل ہیوی اور ڈی کوڈ ہیوی پول کو الگ کریں۔
- اپنے گیٹ وے کے پیچھے اوپن اے آئی کے موافق اینڈ پوائنٹس کو بے نقاب کریں (Workstation اسٹیٹس اکثر اسے پیچھے رکھتے ہیں WSL Proxy / API گیٹ وے پیٹرن)۔
from vllm import LLM, SamplingParams
llm = LLM(
model="meta-llama/Llama-3.1-8B-Instruct",
gpu_memory_utilization=0.90,
max_model_len=8192,
enable_prefix_caching=True,
)
params = SamplingParams(temperature=0.2, max_tokens=256)
outs = llm.generate(["Summarise PagedAttention for a platform engineer."], params)
print(outs[0].outputs[0].text)
اینٹی پیٹرن (یہ ہے۔ نہیں PagedAttention):
# Classifier forward pass — logits, not paged KV serving
import torch
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
out = model(torch.tensor([[1, 2, 3]]), attention_mask=torch.tensor([[1, 1, 1]]))
print(out.logits)
دیکھیں: جنگلی میں نظام کی خدمت
سیاق و سباق پیش کرنے والی گفتگو۔ روایتی تحریر: vLLM بلاگ (PagedAttention) · انجن: vllm-project/vllm.
4. Self-Debugging: فی امیدوار زیادہ معیار، زیادہ امیدوار نہیں۔
چن، لن، کلین، وغیرہ۔ نے ظاہر کیا کہ LLM کو اس کے پیش گوئی شدہ پروگرام کو چند شاٹ مظاہروں کے ساتھ ڈیبگ کرنا سکھانا بیس لائنوں سے مماثل یا شکست دے سکتا ہے جو 10× سے زیادہ امیدواروں کو پیدا کرتی ہے۔ [arXiv:2304.05128]. لوپ یہ ہے: جنریٹ → ایگزیکٹ یا یونٹ ٹیسٹ → فیڈ ٹریس بیک → مرمت۔
پروڈکشن ٹریڈ آف: ہر فیڈ بیک میسج ایک اور prefill+decode (یا ایک طویل سیاق و سباق کا ضمیمہ) ہوتا ہے۔ درستگی اکثر زیادہ راؤنڈ کے ساتھ بڑھ جاتی ہے۔ اسی طرح تاخیر اور لاگت ہوتی ہے۔ ایجنٹوں کے لیے Workstation رہنمائی (یہ بھی دیکھیں Muse Glimmer / مقامی ایجنٹ):
- ڈیبگ راؤنڈز پر ہارڈ کیپ (مثال کے طور پر 2–4) فی ٹول کال۔
- بجٹ ٹوکنز صارف کی نظر آنے والی چیٹ سے الگ۔
- لامحدود دوبارہ کوشش کے بجائے کسی انسانی یا ماہر ماڈل کی طرف بڑھیں۔
- ایول کے لیے لاگ ٹریسز — ٹیلی میٹری کے بغیر Self-Debugging لوک داستان ہے۔
5. PowerInfer: علاقے سے آگاہ ٹوکن جنریشن
PowerInfer (SJTU IPADS / متعلقہ ریپوز) ایک ٹوکن جنریشن سسٹم ہے جو ایکٹیویشن لوکلٹی کا استحصال کرتا ہے: GPU پر ایک چھوٹا "ہاٹ" نیوران سیٹ، CPU پر ٹھنڈے وزن کو اسٹریم کیا جاتا ہے یا اس پر عمل درآمد کیا جاتا ہے۔ شائع شدہ آپریٹنگ پوائنٹس میں شامل ہیں۔ 13.20 ٹوکن فی سیکنڈ اوسط اور 29.08 ٹوکن فی سیکنڈ کی چوٹی ایک واحد NVIDIA RTX 4090 پر، اور اس تک 11.69× llama.cpp بمقابلہ برقرار درستگی کے ساتھ [PowerInfer GitHub]. (صارف کا سامنا کرنے والے فورک جیسے Tiiny-AI/PowerInfer کام کی ایک ہی لائن کو ٹریک کریں۔)
اسکیل آؤٹ مشکل حصہ ہے۔ ایک واحد 4090 لوکلٹی پروفائل خود بخود صحت مند Kubernetes تعیناتی نہیں بن جاتی ہے۔ آپ کو ضرورت ہے:
- اگر CPU ماہرین چلاتے ہیں تو ایماندار GPU درخواستیں/حدود اور NUMA سے آگاہ CPU پننگ۔
- ایک تقسیم شدہ منصوبہ اگر ماڈل مزید فٹ نہیں بیٹھتا ہے: ٹینسر متوازی بمقابلہ پائپ لائن بمقابلہ ماہر متوازی۔
- SLO تقسیم: انٹرایکٹو چیٹ بمقابلہ بیچ کی تکمیل بمقابلہ ایجنٹ ٹول لوپس۔
PowerInfer (یا llama.cpp، یا MLX) ورک سٹیشنوں اور کنارے والے خانوں پر استعمال کریں۔ vLLM (یا TensorRT-LLM، یا SGLang) استعمال کریں جب آپ ڈیٹا سینٹر GPUs کو اوپن اے آئی طرز کی ٹریفک کے ساتھ بھر رہے ہوں۔ دونوں کی پیمائش کریں۔ ہماری انٹرپرائز اے آئی لیب موقف Polyglot Benchmarks جیسا ہی ہے: ثبوت، پھر ADR۔
6. EG-MLA: فن تعمیر پر توجہ کم کریں۔
سرونگ ٹرکس ایسے ماڈل کو ٹھیک نہیں کر سکتے جس کا KV اندرونی طور پر بہت بڑا ہو۔ EG-MLA (ایمبیڈنگ گیٹڈ ملٹی ہیڈ لیٹنٹ توجہ) رپورٹس 91.6% KV کیشے سائز میں کمی بمقابلہ ملٹی ہیڈ توجہ (MHA) نہ ہونے کے برابر انحطاط کے ساتھ، اضافی بچت بمقابلہ ایم ایل اے (59.9% تک)، اور بہتر استدلال بینچ مارک کی درستگی۔ مصنفین کا استدلال ہے کہ ایمبیڈنگ گیٹنگ مضمر اعلی آرڈر کے تعاملات کی حوصلہ افزائی کرتی ہے اور 1B پیرامیٹرز کو ماضی کی پیمائش کو ظاہر کرتی ہے۔ [EG-MLA, arXiv].
انجینئرنگ مضمرات: یہ ایک ہے۔ تربیت / فن تعمیر فیصلہ آپ Llama-3 کے بے ترتیب vLLM پر EG-MLA کو پلٹ نہیں سکتے اور کاغذ کے فیصد کی توقع نہیں کر سکتے۔ اگر آپ پری ٹرین یا جاری پری ٹرین کو کنٹرول کرتے ہیں، تو EG-MLA ایک امیدوار ہے جو آپ کو دوسرا GPU خریدنے سے پہلے HBM کو کاٹ سکتا ہے۔ اگر آپ صرف عوامی وزن پیش کرتے ہیں، تو PagedAttention + کوانٹائزیشن + ایم ایل اے ویریئنٹس پر رہیں جو انجن پہلے سے سپورٹ کرتا ہے، اور EG-MLA چیک پوائنٹس کو ٹریک کریں جب وہ اتریں۔
7. کارگو کلٹنگ کے بغیر اسٹیک کو یکجا کرنا
| تہہ | جب استعمال کریں۔ | دھیان رکھیں |
|---|---|---|
| PagedAttention / vLLM | کنکرنٹ API سرونگ، طویل سیاق و سباق، مشترکہ سابقے | سابقہ کیشے بمقابلہ درستگی؛ OOM اعلی استعمال میں |
| PowerInfer | سنگل چربی GPU / ورک سٹیشن ٹوکن ریٹ | محل وقوع کی مماثلت؛ گندا پیمانے باہر |
| Self-Debugging | کوڈ/ایجنٹ لوپس جو ٹیسٹ کر سکتے ہیں۔ | بے حد راؤنڈ؛ اضافی پری فل لاگت |
| EG-MLA | آپ ریڑھ کی ہڈی کو تربیت دیتے ہیں یا ٹھیک کرتے ہیں۔ | سرونگ جھنڈا نہیں؛ مکمل ایول کو دوبارہ چلائیں۔ |
8. کبرنیٹس پر اسکیل ایبلٹی
ایک اچھی طرح سے ڈیزائن شدہ تقسیم شدہ فن تعمیر تھرو پٹ کو بڑھاتا ہے اور ناکامی کے طریقوں کو بھی بڑھاتا ہے: اسٹریگلرز، کے وی کیش ٹرانسفر، ٹوکنائزر سکیو، اور آٹو اسکیلرز جو گرم سابقوں کو مارتے ہیں۔ عملی نمونہ (ہمارے ساتھ منسلک کوبرنیٹس پر Ollama / vLLM لکھنا):
- وقف شدہ GPU نوڈ پولز؛ بے ترتیب CPU ملازمتوں کے ساتھ کبھی بھی ڈی کوڈ پوڈ پیک نہ کریں۔
- اگر TTFT SLOs اور Tokens/s SLOs آپس میں لڑتے ہیں تو علیحدہ پری فل اور ڈی کوڈ کریں۔
- قطار کی گہرائی یا GPU KV قبضے پر HPA، نہ صرف CPU۔
- حلقوں کے ذریعے سرونگ اسٹیک کو فروغ دیں (Ring Promoter) لہذا خراب انجن کی تعمیر ٹیسٹ کو نہیں چھوڑ سکتی۔
9. نتیجہ
ٹربو چارجنگ LLMs ایک الگورتھم نہیں ہے۔ یہ KV کیش (PagedAttention) کو صفحہ بندی کر رہا ہے، ایک سرونگ انجن جو ان صفحات (vLLM) کو ضائع نہیں کرتا، مقامی سطح سے آگاہی پیدا کرتا ہے جب ہارڈ ویئر ایک ورک سٹیشن GPU (PowerInfer) ہوتا ہے، ایجنٹ لوپ کرتا ہے جو امیدواروں کو چھڑکنے کے بجائے ڈیبگ کرتا ہے (Self-Debugging)، اور — جب آپ وزن کے مالک ہوتے ہیں — توجہ جو کہ آسانی سے (XPR2) کو ذخیرہ کرتی ہے۔ ہر پرت میموری، تاخیر اور درستگی کا سودا کرتی ہے۔ اپنی ٹریفک کی پیمائش کریں۔ ADR شائع کریں۔ جہاز
حوالہ جات
- Kwon et al. - PagedAttention کے ساتھ بڑی زبان کے ماڈل کے لیے موثر میموری کا انتظام (arXiv:2309.06180, 14 ستمبر 2023)۔
- چن وغیرہ۔ - سیلف ڈیبگ کرنے کے لیے بڑی زبان کے ماڈلز سکھانا (arXiv:2304.05128، 12 اپریل 2023)۔
- PowerInfer — SJTU-IPADS/PowerInfer (اور متعلقہ Tiiny-AI فورکس)۔
- EG-MLA — ایمبیڈنگ-گیٹڈ ملٹی ہیڈ لیٹنٹ اٹینشن (arXiv، 20 ستمبر 2025)۔
- vLLM بلاگ — PagedAttention کے ساتھ آسان، تیز، اور سستا LLM سرونگ.
کی طرف سے شائع Workstation. کاغذی اعداد و شمار کا حوالہ دیا گیا جیسا کہ اصل مصنفین نے شائع کیا ہے۔ آپ کے کلسٹر پر پیداواری نمبر مختلف ہوں گے۔