مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

ایل ایل ایم انفیرنس انجینئرنگ پہلے اصولوں سے سیکھیں

ٹوکنائزیشن، پری فل، ڈیکوڈنگ، کے وی کیشنگ، شیڈیولنگ، بیچنگ، میموری مینجمنٹ اور انفیرنس انجن کے اندرونی نظام کے ذریعے عمل درآمد پر مبنی تعلیمی راستہ اپنائیں۔ یہ ٹیوٹوریل بتاتا ہے کہ ریپوزٹری کے دستیاب پہلے باب سے کیسے آغاز کریں اور مستقبل میں رن ٹائم بنانے والے اسباق کے لیے کیسے تیار ہوں۔

ایل ایل ایم انفیرنس انجینئرنگ پہلے اصولوں سے سیکھیں

Inference Engineering Zero to Hero کیا ہے؟

Inference Engineering Zero to Hero ایک عملی کورس ریپوزٹری ہے جو بڑے لینگویج ماڈلز کی سروسنگ کے پسِ پردہ رن ٹائم سسٹمز کو سمجھنے کے لیے تیار کی گئی ہے۔ ماڈل کی تربیت یا معیار بہتر بنانے پر توجہ دینے کے بجائے، یہ جائزہ لیتی ہے کہ درخواست LLM تک پہنچنے کے بعد کیا ہوتا ہے۔

یہ پروجیکٹ سب سے چھوٹی مفید inference آپریشنز سے شروع ہوتا ہے اور بتدریج ایک مختصر inference runtime کی طرف بڑھتا ہے۔ اس کی مجوزہ پیش رفت یہ ہے:

tokenization → prefill → decode → KV cache → sampling → request state → scheduling → continuous batching → memory management → serving-engine internals

عمل درآمد پر مبنی طریقہ براہِ راست tensors، تیار کردہ outputs، cache state اور memory کے استعمال کا جائزہ لینے پر زور دیتا ہے۔ اس سے model operations اور عملی serving خدشات، جیسے latency، throughput، GPU utilization اور memory consumption، کے درمیان تعلق سمجھنے میں مدد ملتی ہے۔

آپ کیا سیکھیں گے

یہ کورس LLM inference کے لیے systems-oriented ذہنی ماڈل تیار کرنے کے لیے ڈیزائن کیا گیا ہے۔ اس کے اہم موضوعات میں شامل ہیں:

  • Tokenization: prompt کس طرح ان token IDs میں تبدیل ہوتا ہے جنہیں model استعمال کرتا ہے۔
  • Prefill: model ابتدائی prompt کو کس طرح process کرتا ہے اور generation کے لیے درکار state تیار کرتا ہے۔
  • Decode: بعد کے tokens ایک وقت میں ایک قدم کے ذریعے کس طرح تیار کیے جاتے ہیں۔
  • KV caching: attention state کس طرح بڑھتی ہے اور غیر ضروری دوبارہ computation سے بچاتی ہے۔
  • Sampling: model کے output scores میں سے token کس طرح منتخب کیا جاتا ہے۔
  • Request state: runtime prompts، تیار کردہ tokens اور completion status کو کس طرح track کرتا ہے۔
  • Scheduling: engine یہ فیصلہ کس طرح کرتا ہے کہ کن requests کو process کیا جائے۔
  • Continuous batching: active requests کے system میں داخل ہونے اور نکلنے کے دوران انہیں مؤثر انداز میں کس طرح یکجا کیا جا سکتا ہے۔
  • Memory management: GPU memory کہاں استعمال ہوتی ہے اور cache organization capacity کو کس طرح متاثر کرتی ہے۔
  • Serving-engine internals: model execution کو efficiency بہتر بنانے والے systems کس طرح گھیرتے ہیں۔

کورس کی حیثیت اور ساخت

ریپوزٹری کو Beginner، Intermediate اور Advanced levels میں تقسیم کیا گیا ہے۔ فی الحال Beginner track جاری ہے۔ Intermediate اور Advanced مواد ابھی دستیاب نہیں ہے۔

دستیاب باب

  • Chapter 01: Manual LLM Inference From First Principles — beginner/01_manual_llm_inference/ میں دستیاب ہے۔

Beginner کے منصوبہ بند ابواب

  1. Sampling
  2. Request State
  3. Simple Scheduler
  4. Continuous Batching
  5. KV Cache Management
  6. Paged or Block KV Cache
  7. Prefix Caching
  8. Benchmarking Inference

روڈمیپ جان بوجھ کر لچک دار رکھا گیا ہے۔ عمل درآمد کے دوران نئے مسائل سامنے آنے پر ابواب شامل، حذف، تقسیم یا دوبارہ ترتیب دیے جا سکتے ہیں۔

تنصیب اور سیٹ اپ

ریپوزٹری کا README کسی مقررہ dependency installation command یا environment specification کی معلومات فراہم نہیں کرتا۔ پہلے ریپوزٹری کو download یا clone کریں، پھر کچھ install یا run کرنے سے پہلے Chapter 1 کے ساتھ شامل files اور instructions کا جائزہ لیں۔

  1. GitHub repository کی مقامی copy حاصل کریں۔
  2. ریپوزٹری directory کو terminal، editor یا notebook environment میں کھولیں۔
  3. beginner/01_manual_llm_inference/ پر جائیں۔
  4. باب سے متعلق instructions پڑھیں اور اس directory میں notebook تلاش کریں۔
  5. صرف وہ dependencies install کریں جن کی chapter materials میں درخواست کی گئی ہو۔
  6. notebook کھولیں اور اس کے cells کو ترتیب سے execute کریں۔
beginner/01_manual_llm_inference/

چونکہ README میں package versions، hardware requirements یا installation commands کی درست تفصیل نہیں دی گئی، اس لیے runtime setup کے لیے chapter notebook کو مستند ذریعہ سمجھیں۔

بنیادی استعمال: Manual Inference کے ذریعے کام کریں

Chapter 1 تجویز کردہ آغاز ہے۔ اس کا مقصد generation کو مکمل serving API کے پیچھے چھپانے کے بجائے first principles سے manual LLM inference کا جائزہ لینا ہے۔

مرحلہ 1: Notebook کو ترتیب سے follow کریں

notebook کو شروع سے آخر تک چلائیں۔ setup یا inspection cells چھوڑنے سے گریز کریں، کیونکہ بعد کی operations پہلے تیار کیے گئے model objects، tokenized inputs یا cached state پر منحصر ہو سکتی ہیں۔

مرحلہ 2: Prompt کو trace کریں

مشاہدہ کریں کہ input prompt inference process سے گزرتے ہوئے کس طرح تبدیل ہوتا ہے۔ ایک مفید تصوراتی trace یہ ہے:

prompt text
→ token IDs
→ prompt processing or prefill
→ next-token scores
→ selected token
→ updated sequence
→ repeated decoding

جب بھی notebook انہیں ظاہر کرے، tensor shapes اور token counts نوٹ کریں۔ اس سے پورے prompt کو process کرنے اور ایک اضافی token generate کرنے کے فرق کو سمجھنا آسان ہو جاتا ہے۔

مرحلہ 3: Prefill اور Decode کو الگ کریں

Prefill prompt کو process کرتا ہے اور generation کے لیے درکار state قائم کرتا ہے۔ Decode اضافی tokens بتدریج تیار کرتا ہے۔ ان دونوں کو الگ مراحل سمجھنا ضروری ہے، کیونکہ ان کی computational اور memory خصوصیات مختلف ہوتی ہیں۔

notebook چلاتے ہوئے یہ سوالات پوچھیں:

  • prefill کے دوران کتنے input tokens handle کیے جاتے ہیں؟
  • ہر decode step کے دوران کون سا input پاس کیا جاتا ہے؟
  • نیا token generate ہونے کے بعد کون سے tensors تبدیل ہوتے ہیں؟
  • کون سی state کو دوبارہ compute کرنے کے بجائے reuse کیا جا سکتا ہے؟

مرحلہ 4: Outputs کا براہِ راست جائزہ لیں

token IDs کا decoded text کے ساتھ موازنہ کریں اور جہاں notebook اجازت دے وہاں intermediate outputs کا جائزہ لیں۔ مقصد صرف text تیار کرنا نہیں، بلکہ اس text کے ذمہ دار operations کی sequence کو سمجھنا ہے۔

Runtime Model کو سمجھنا

ریپوزٹری سے رجوع کرنے کا ایک مفید طریقہ یہ ہے کہ generation کو ایک single model call کے بجائے stateful loop سمجھا جائے:

درخواست تیار کریں
پرامپٹ پر کارروائی کریں
دوبارہ استعمال کے قابل حالت محفوظ کریں
اگلا ٹوکن منتخب کریں
درخواست کی حالت اپ ڈیٹ کریں
تکمیل تک دہرائیں

یہ نقطۂ نظر آپ کو آئندہ ابواب کے لیے تیار کرتا ہے۔ سیمپلنگ طے کرتی ہے کہ کون سا ٹوکن منتخب کیا جائے، درخواست کی حالت ہر جنریشن کو ٹریک کرتی ہے، شیڈیولنگ کام کا انتخاب کرتی ہے، اور مسلسل بیچنگ متعدد فعال درخواستوں کے کام کو یکجا کرتی ہے۔

اعلیٰ سطحی مطالعے کے لیے تجاویز

شکل، حالت اور میموری کو ایک ساتھ ٹریک کریں

ٹینسرز کا الگ الگ جائزہ نہ لیں۔ ہر اہم آپریشن کے لیے ان پٹ کی شکل، آؤٹ پٹ کی شکل، سیکوئنس کی لمبائی، کیش کی حالت، اور میموری میں متوقع اضافے کو نوٹ کریں۔ اس سے ماڈل کے ریاضیاتی نفاذ اور نظام کے رویّے کے درمیان تعلق واضح ہوتا ہے۔

پرامپٹ کی لمبائی اور ڈیکوڈ کی لمبائی کا موازنہ کریں

جب باب آپ کو ان پٹس تبدیل کرنے کی اجازت دے، تو مختصر اور طویل پرامپٹس کے ساتھ ساتھ مختصر اور طویل جنریشنز کا بھی موازنہ کریں۔ مشاہدہ کریں کہ کون سی لاگت پری فل کے دوران آتی ہے اور کون سی ڈیکوڈنگ کے دوران جمع ہوتی رہتی ہے۔ اپنی پیمائشوں سے ثابت ہونے والی باتوں سے آگے بڑھ کر بینچ مارک کے نتائج فرض نہ کریں۔

درخواست کی حالت کی جدول بنائیں

درخواست کی حالت سے متعلق مخصوص باب دستیاب ہونے سے پہلے، آپ مشاہدات کو درج ذیل جیسے خانوں کے ذریعے منظم کر سکتے ہیں:

  • ان پٹ ٹوکن آئی ڈیز
  • جنریٹ کیے گئے ٹوکن آئی ڈیز
  • موجودہ سیکوئنس کی لمبائی
  • کیش کی حالت
  • جنریشن کی حیثیت

یہ مطالعے کی ایک تکنیک ہے، موجودہ ریپوزٹری کی جانب سے وعدہ کردہ خصوصیت نہیں۔ اس سے یہ سمجھنے میں مدد ملتی ہے کہ انفیرنس انجنز کو خود ماڈل کے گرد نظام کی ضرورت کیوں ہوتی ہے۔

بہتر بنانے سے پہلے پیمائش کریں

روڈمیپ میں انفیرنس بینچ مارکنگ پر ایک منصوبہ بند باب شامل ہے۔ اس کے دستیاب ہونے تک تجربات کو قابو میں رکھیں: ہر بار صرف ایک ان پٹ یا جنریشن کی شرط تبدیل کریں، مشاہدات ریکارڈ کریں، اور ناپے گئے رویّے کو مفروضوں سے الگ رکھیں۔

پچھلے ابواب دوبارہ دیکھیں

جیسے جیسے سیمپلنگ، شیڈیولنگ، بیچنگ، اور کیش مینجمنٹ کے ابواب شامل ہوں، دستی انفیرنس کا دوبارہ جائزہ لیں۔ ہر نئی تجرید کو اصل ٹوکن جنریشن لوپ سے جوڑیں تاکہ آپٹیمائزیشن حقیقی ماڈل ایگزیکیوشن پر مبنی رہے۔

موجودہ حدود

فی الحال صرف پہلا Beginner باب دستیاب کے طور پر درج ہے۔ سیمپلنگ، شیڈیولرز، مسلسل بیچنگ، کیش مینجمنٹ کی حکمتِ عملیاں، بینچ مارکنگ، اور Intermediate اور Advanced ٹریکس ابھی منصوبہ بند ہیں۔ اس لیے ریپوزٹری کو مکمل انفیرنس انجن فریم ورک کے بجائے ایک ارتقائی کورس سمجھنا چاہیے۔

نتیجہ

Inference Engineering Zero to Hero آپ کو LLMs کے رَن ٹائم پہلو کو سمجھنے کا ایک عملی راستہ فراہم کرتا ہے۔ beginner/01_manual_llm_inference/ سے آغاز کریں، نوٹ بک کو ترتیب سے چلائیں، اور اس بات پر توجہ دیں کہ جنریشن کے دوران پرامپٹس، ٹوکنز، ٹینسرز، اور دوبارہ استعمال کے قابل حالت کس طرح منتقل ہوتے ہیں۔ یہ بنیاد شیڈیولنگ، بیچنگ، میموری، اور سرونگ انجن کے اندرونی حصوں سے متعلق منصوبہ بند اسباق کو سمجھنا آسان بنا دے گی۔