ایک GPU پر دو ماڈلز چلانا: لوکل LLMs کے پیچھے چھپی ریاضی

میں ایک ورک اسٹیشن پر ایجنٹ اسٹیک (agent stack) چلاتا ہوں۔ ماڈلز LAN کے ذریعے DGX Spark پر موجود ہیں۔ میں میموری کو بہتر طریقے سے مینیج کرنے کے لیے Ollama کے بجائے vLLM استعمال کرتا ہوں۔

مقصد ایک ہی وقت میں دو ماڈلز چلانا ہے:

دونوں ماڈلز LiteLLM پراکسی کے ذریعے ایک ہی URL پر رسائی حاصل کرتے ہیں۔ صحیح ریاضی (math) تلاش کرنے سے پہلے یہ سیٹ اپ کئی بار ناکام ہوا۔

یہاں اس جدوجہد سے حاصل ہونے والے اسباق درج ہیں۔

میموری کا جال

gpu_memory_utilization کی سیٹنگ آزاد میموری (free memory) کا ہدف نہیں ہے۔ یہ کل GPU میموری کا ایک حصہ ہے۔

اگر آپ کے پاس 120 GB کا کارڈ ہے اور آپ utilization کو 0.80 پر سیٹ کرتے ہیں، تو vLLM کل صلاحیت کا 96 GB حاصل کرنے کی کوشش کرتا ہے۔ یہ اس بات پر غور نہیں کرتا کہ اس وقت کتنی میموری خالی ہے۔ اگر آپ دو پروسیس چلانے کی کوشش کرتے ہیں، تو ان کے فیصد کا مجموعہ 0.95 سے کم ہونا چاہیے۔ آپ کو CUDA فریم ورک کے اوور ہیڈ (overhead) کے لیے جگہ چھوڑنی ہوگی۔

ماڈلز کے ساتھ کیا ہوا

میں نے 80B ماڈل کا Thinking ورژن استعمال کرنے کی کوشش کی۔ یہ ناکام رہا۔ ماڈل <think> ٹیگز کے اندر تو ریژوننگ کرتا تھا لیکن کبھی بھی اصل میں ٹول کال (tool call) ٹرگر نہیں کرتا تھا۔ وہ بس رک جاتا تھا۔

مجھے 80B بیک بون (backbone) کو Instruct ورژن سے بدلنا پڑا۔ اس سے ایجنٹ کو ٹولز کا صحیح طریقے سے استعمال کرنے کی اجازت ملی۔

اصل ریاضی

ٹیسٹنگ کے بعد، میں نے پایا کہ میرے سیٹ اپ کے لیے یہ نمبر کام کرتے ہیں:

• Qwen3-Next-80B (0.80 ہدف پر): تقریباً 87.8 GiB اصل میموری استعمال کرتا ہے۔ • Qwen3-4B (0.10 ہدف پر): تقریباً 13.8 GiB اصل میموری استعمال کرتا ہے۔ • کل استعمال: تقریباً 101.6 GiB۔ • خالی جگہ (Free headroom): تقریباً 18 GiB۔

اگر میں 80B کو 0.85 تک بڑھاتا، تو 4B ماڈل شروع نہیں ہو سکتا تھا۔ 80B بہت زیادہ جگہ گھیر لیتا، جس سے 4B کی کم از کم ضروریات کے لیے کوئی جگہ باقی نہیں رہتی۔

مشترکہ رہائش والے ماڈلز کے لیے میرا طریقہ کار

  1. سب سے پہلے سب سے بڑا ماڈل لوڈ کریں۔
  2. اسے سیٹ ہونے دیں۔
  3. اصل استعمال شدہ میموری دیکھنے کے لیے nvidia-smi چلائیں۔
  4. چھوٹے ماڈل کا سائز باقی بچی ہوئی خالی میموری میں سے اوور ہیڈ کے لیے 5 GB نکال کر طے کریں۔
  5. استحکام (stability) کو یقینی بنانے کے لیے دونوں ماڈلز کو دو بار ری اسٹارٹ کریں۔

اپنی میموری سیٹنگز کا اندازہ نہ لگائیں۔ اپنی حقیقت دیکھنے کے لیے یہ کمانڈ استعمال کریں: nvidia-smi --query-gpu=memory.used --format=csv

اگر آپ کا ہدف (target allocation) اور آپ کا اصل استعمال 10% سے زیادہ فرق رکھتے ہیں، تو آپ کی ریاضی غلط ہے۔ اپنے ایجنٹ اسٹیک کو ڈیپلائے کرنے سے پہلے اسے درست کریں۔

Source: https://dev.to/ric03uec/two-qwen3-models-on-one-dgx-spark-the-residency-math-for-local-llm-coding-5bpj

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi