منصوبے کے بارے میں

Mamba state-spaces گروپ کا اوپن‑سورس ریسرچ کوڈبیس ہے جوسلسلہ مودیلنگ کے لیے state space model (SSM) معماراتی کے ایک خاندان کو لاپیتا ہے۔ یہ papers "Mamba: Linear-Time Sequence Modeling with Selective State Spaces," "Transformers are SSMs" (Mamba-2)، اور "Mamba-3: Improved Sequence Modeling using State Space Principles." کے ساتھ آتا ہے۔ پروجیکٹ خود کو Transformers کا ایک سب‑کووڈریٹیک بدیل بناتا ہے، خاص طور پر معلومات‑دھنی ڈیٹ جیسے زبان مودیلنگ کے لیے، اور S4 (structured state space) کے پچھلے کام پر مبنی ہے جس میں FlashAttention کی روح میں ہارڈ ویئر‑آورڈ ایمپلیمنٹेशन شامل ہے۔ ریپو میں ما يلي فراہم کیا جاتا ہے: - selective SSM layer: core selective scan آپریشن، جس کا سورس ops/selective_scan_interface.py میں موجود ہے۔ - Mamba بلاک: selective SSM کو لپیٹنے والا بنیادی ماڈیول modules/mamba_simple.py میں، جسے d_model، d_state، d_conv اور expand کے قابل‑تنصیب پیرامیٹرز کے ساتھ PyTorch ماڈیول کے طور پر استعمال کیا جا سکتا ہے۔ - Mamba-2 بلاک: modules/mamba2.py میں لاپٹا ہے، جس کے ساتھ modules/mamba2_simple.py میں ایک سادہ ورژن اور modules/ssd_minimal.py میں ایک کم سے کم SSD (structured state space duality) رفرنس ماڈیول شامل ہے۔ - Mamba-3 بلاک: modules/mamba3.py میں لاپٹا ہے، جس میں d_state، headdim، MIMO mode (mimo_rank کے ساتھ)، chunk_size، اختیاری output‑projection norm، اور bfloat16 dtype جیسے اختیارات موجود ہیں۔ - زبان ماڈل مثال: models/mixer_seq_simple.py میں ایک پوری بیک بن کے ساتھ LM head، جسے جنریشن اسکرپٹس استعمال کرتے ہیں۔ انسٹالیشن اور بنائ کے اختیارات: پیکج pip (mamba-ssm) کے ذریعے انسٹال کیا جاتا ہے اور اس کے لیے Linux، Python 3.10+ اور PyTorch 1.12+ کی ضرورت ہوتی ہے۔ ڈیفالٹ میں انسٹال selective_scan_cuda ایکسٹنشن کو کامپائل نہیں کرتا اور cached CUDA wheels نہیں لیتا۔ اختیاری extras اور ماحولیاتی متغیرات اس سلوک کو بدل دیتے ہیں: causal-conv1d extra اس ڈپینڈنسی کو شامل کرتا ہے؛ MAMBA_FORCE_BUILD=TRUE لوکل بناء کو زبردست کرتا ہے؛ MAMBA_KEEP_CUDA_BUILD=TRUE CUDA selective scan ایکسٹنشن کو شامل کرنے کا اختیار دیتا ہے، پہلے پہلے سے موجود prebuilt CUDA/HIP wheel کی تلاش کرتا ہے اور اگر دستیاب نہ ہو تو لوکل کامپائل کرتا ہے۔ دونوں فلاجز کو ملانے سے لوکل CUDA کامپائل زبردست ہو جاتا ہے۔ README میں بتایا گیا ہے کہ CUDA بناؤ کے لیے --no-build-isolation ضروری ہے تاکہ pip موجودہ CUDA‑enabled PyTorch استعمال کرے۔ CUDA بناؤ اور GPU 실행 کے علاوہ NVIDIA GPU اور CUDA 11.6+ کی ضرورت ہوتی ہے۔ AMD کارڈز کے لیے README میں ROCm 6.0 patch کا ذکر ہے (ROCm 6.1 سے آگے ضرورت نہیں ہے)। پیش‑تربیت شدہ ماڈلز: وزنیں Hugging Face پر state-spaces سازمان کے تحت شائع کی جاتی ہیں، جن میں mamba-130m، mamba-370m، mamba-790m، mamba-1.4b، mamba-2.8b، mamba2-130m، mamba2-370m، mamba2-780m، mamba2-1.3b، mamba2-2.7b، transformerpp-2.7b اور mamba2attn-2.7b شامل ہیں، جنہیں Pile پر 300B ٹوکنز پر تربیت دی گئی ہے، علاوہ اس کے mamba-2.8b-slimpj جو SlimPajama پر 600B ٹوکنز پر تربیت یافتہ ہے۔ README یہ وضاحت کرتا ہے کہ یہ base ماڈلز ہیں جو instruction tuning یا کسی دیگر Downstream تبدیلی کے بغیر ہیں، اور امید ہے کہ ان کی کارکردگی مماثل ڈیٹ پر تربیت شدہ دیگر معماراتی کے مساوی یا بہتر ہوگی، لیکن بڑے یا fine‑tune شدہ ماڈلز کے مساوی نہیں ہوگی۔ ماڈل کی ابعاد GPT‑3‑stil scaling کے مطابق ہیں (مثلاً 130M پارامیٹرز کے ساتھ 24 طبقات اور 768 model dimension، tak 2.8B تک 64 طبقات اور 2560 dimension تک پہنچ سکتا ہے۔ قیاس اور انفرنس ٹولز: صفر‑شوٹ قیاس lm-evaluation-harness لائبریری (pip install lm-eval==0.4.2) کے ذریعے کیا جاتا ہے، جس میں lambada_openai، hellaswag، piqa، arc_easy، arc_challenge، winogrande، openbookqa، boolq، race، truthfulqa_mc2 اور mmlu جیسے کام شامل ہیں۔ README میں بتایا گیا ہے کہ ہر کام کے نتائج رپورٹ किए گئے قيمت سے 0.1‑0.3 تک فرق ہو سکتا ہے، کیونکہ قیاس میں شور ہو سکتا ہے۔ ایک جنریشن بنچمارک اسکرپٹ (benchmarks/benchmark_generation_mamba_simple.py) Hugging Face Hub سے ماڈل خود بخود لوڈ کرتا ہے، استعمال کنندہ کے промت پر تکمیلیں پیدا کرتا ہے، اور inferencing کی رفتار ناپта ہے، جس میں top-p، min-p، top-k، temperature، repetition penalty اور batch size کے اختیارات شامل ہیں۔ ترubleshooting نوٹس: README میں دو عملی مسائل کی اشارہ کی گئی ہے: پہلا، صحت: ماڈلز کو PyTorch AMP کے ساتھ تربیت دی گئی ہے، جس میں parameters float32 میں رکھے جاتے ہیں اور ضرورت पड़ने پر half precision میں キャスト کیے جاتے ہیں؛ کیونکہ SSMs recurrent dynamics کے प्रति حساس ہوتے ہیں، اسような فریمورکس جو parameters کو float16 میں محفوظ کرتے ہیں (مثلاً DeepSpeed) instability کا سبب بن سکتے ہیں؛ fp32 parameter storage کو پہلا علاج مانا جاتا ہے۔ دوسرا،intiialization: کچھ اجزاء S4‑stil initialization (مثلاً delta parameter کی targeted range linear‑projection bias کے ذریعے) سے ارث پاتے ہیں؛ اگر فریمورک میں post‑initialization hooks موجود ہوں جو nn.Linear biases کو صفر کر دیتے ہیں، تو ان کو محفوظ رکھنے کے لیے custom logic کی ضرورت ہو सकती ہے۔ لايسنس اور quotation: README میں Mamba، Mamba-2 اور Mamba-3 papers کے لیے BibTeX انٹریز فراہم کی جاتی ہیں اور صارفین سے انہیں کوڈبیس استعمال کرنے پر انہیں quotation کرنے کی गुजارش کی جاتی ہے۔