زیادہ تر لوگ LLM کو پرامپٹ کر سکتے ہیں۔ لیکن اسے ایک ایسے پروڈکٹ میں تبدیل کرنا جو حقیقی ٹریفک کا مقابلہ کر سکے، بالکل ایک الگ کھیل ہے۔ اگر آپ چیٹ ونڈو میں ٹائپ کرنے سے آگے بڑھ کر پروڈکشن لیول کی AI شیپ (ship) کرنا چاہتے ہیں، تو آپ کو یہ سمجھنا ہوگا کہ یہ اسٹیک (stack) اصل میں ایک دوسرے کے ساتھ کیسے جڑا ہوا ہے۔ یہ کوئی جادو نہیں ہے۔ یہ الگ الگ انجینئرنگ کے مسائل کی ایک پائپ لائن ہے، اور ہر لیئر کے اپنے ناکامی کے طریقے (failure modes) ہوتے ہیں۔
آئیے میں آپ کو بتاتا ہوں کہ ایک جدید AI سسٹم کیسے کام کرتا ہے، اس لمحے سے جب آپ ایک لفظ ٹائپ کرتے ہیں، اس لمحے تک جب ایک ایجنٹ (agent) کوئی کام مکمل کرتا ہے۔
بنیاد: ماڈلز کیسے سوچتے ہیں
اپنے بنیادی طور پر، ایک لارج لینگویج ماڈل (large language model) صرف ایک ہی کام کرتا ہے: یہ اگلے ٹوکن (token) کی پیش گوئی کرتا ہے۔ وہ ٹوکن اگلا لفظ، کسی لفظ کا حصہ، یا کوئی علامت بھی ہو سکتا ہے۔ باقی سب کچھ—شاعری، کوڈ، استدلال—اس ایک کام کو بڑے پیمانے پر کرنے سے پیدا ہونے والا رویہ (emergent behavior) ہے۔
آپ کے پرامپٹ سے ماڈل کے جواب تک کا سفر کچھ اس طرح نظر آتا ہے۔
Tokenization پہلا قدم ہے۔ نیورل نیٹ ورک کے لیے خام متن (raw text) کا کوئی مطلب نہیں ہوتا، اس لیے ماڈل آپ کے الفاظ کو ٹکڑوں میں تقسیم کرتا ہے اور ہر ٹکڑے کو ایک نمبر سے جوڑ دیتا ہے۔ لفظ "tokenization" تین الگ الگ ٹوکنز بن سکتا ہے۔ جملہ "New York" ایک یا دو ہو سکتا ہے، جو کہ اس کے ذخیرہ الفاظ (vocabulary) پر منحصر ہے۔ یہ نمبرات من مانے نہیں ہیں؛ یہ ایک طے شدہ ڈکشنری سے آتے ہیں جو ماڈل نے ٹریننگ کے دوران سیکھی ہوتی ہے۔
جب الفاظ نمبر بن جاتے ہیں، تو انہیں معنی کی ضرورت ہوتی ہے۔ Embeddings ان نمبروں کو ویکٹرز (vectors) میں تبدیل کر دیتے ہیں—جو کہ فلوٹنگ پوائنٹ ویلیوز کی لمبی فہرستیں ہوتی ہیں جو ریاضیاتی سپیس (mathematical space) میں ملتے جلتے تصورات کو ایک دوسرے کے قریب رکھتی ہیں۔ "King" اور "Queen" ایک دوسرے کے قریب ہوتے ہیں۔ "Paris" اور "Berlin" ایک ساتھ ہوتے ہیں لیکن "Python" یا "JavaScript" کے مقابلے میں ایک الگ علاقے میں ہوتے ہیں۔
لیکن صرف ویکٹرز سے ترتیب ختم ہو جاتی ہے۔ Positional encoding ماڈل کو بتاتا ہے کہ جملے میں ہر ٹوکن کہاں واقع ہے۔ اس کے بغیر، "The dog bit the man" اور "The man bit the dog" بالکل ایک جیسے نظر آئیں گے۔
پھر attention mechanism آتا ہے۔ یہ وہ جگہ ہے جہاں ماڈل ان پٹ میں موجود تمام ٹوکنز کو دیکھتا ہے اور فیصلہ کرتا ہے کہ اگلے ٹوکن کی پیش گوئی کے لیے کون سے ٹوکن اہم ہیں۔ جب آپ پوچھتے ہیں، "کمپنی کب قائم ہوئی تھی، اور اب اس کی قیادت کون کر رہا ہے؟" تو ماڈل کو "founded" کو ایک تاریخ سے اور "leads" کو ایک CEO کے نام سے جوڑنے کی ضرورت ہوتی ہے۔ Attention ان روابط کو تخلیق کرتا ہے۔
یہ آپریشنز layers میں ترتیب پاتے ہیں—جو اکثر درجنوں ہوتی ہیں—جہاں ابتدائی لیئرز سنٹیکس (syntax) کو سنبھالتی ہیں اور بعد والی لیئرز تجریدی استدلال (abstract reasoning) بناتی ہیں۔ درمیان میں کہیں، feed-forward networks حقائق سے متعلق تعلقات کو محفوظ کرتے ہیں۔ یہ وہ جگہ ہے جہاں ماڈل یہ معلومات رکھتا ہے کہ پیرس فرانس کا دارالحکومت ہے، یا کسی مخصوص API کو JSON payload کی ضرورت ہے۔ یہ بالکل ڈیٹا بیس نہیں ہے، بلکہ ویٹس (weights) کا ایک کمپریسڈ جال ہے جو پیٹرنز کو فعال کرتا ہے۔
آخر میں، decoding اندرونی ویکٹر نمائندگیوں کو دوبارہ انسان کے پڑھنے کے قابل ٹوکنز میں تبدیل کر دیتا ہے۔ ماڈل یہ نہیں "جانتا" کہ وہ انگریزی لکھ رہا ہے؛ وہ صرف ہزاروں ممکنہ اگلے ٹوکنز کی درجہ بندی کر رہا ہے اور سب سے زیادہ ممکنہ ٹوکن کا انتخاب کر رہا ہے، بار بار، یہاں تک کہ وہ رکنے کی شرط (stop condition) تک نہ پہنچ جائے۔
RAG لیئر: ماڈلز کو یادداشت دینا
ایک بیس ماڈل (base model) وقت میں منجمد ہوتا ہے۔ اس کے ویٹس (weights) ایک مخصوص تاریخ تک انٹرنیٹ کے ڈیٹا کو محفوظ کرتے ہیں، اور جب تک آپ اسے فراہم نہ کریں، وہ آپ کی نجی دستاویزات تک رسائی حاصل نہیں کر سکتا۔ یہ اسے زیادہ تر کاروباری کاموں کے لیے بے کار بنا دیتا ہے۔ Retrieval-Augmented Generation، یا RAG، ماڈل کو ایک بیرونی لائبریری فراہم کر کے اس مسئلے کو حل کرتا ہے جس سے وہ جواب دینے سے پہلے مشورہ کر سکتا ہے۔
اس کا تصور سادہ ہے لیکن عملی طور پر یہ کافی پیچیدہ ہے۔ سب سے پہلے، آپ اپنی دستاویزات لیتے ہیں اور ان پر chunking کا عمل کرتے ہیں۔ آپ سو صفحات کی PDF کو پرامپٹ ونڈو میں نہیں ڈالتے۔ آپ اسے پیراگراف، سیکشنز، یا ایسے معنی خیز بلاکس میں تقسیم کرتے ہیں جو ماڈل کی کانٹیکسٹ لمٹ (context limit) کے اندر سما سکیں اور ساتھ ہی ان کا مفہوم بھی برقرار رہے۔
ہر چنک (chunk) ایک embedding model سے گزرتا ہے اور ایک ویکٹر بن جاتا ہے، بالکل ویسے ہی جیسے LLM کے اندر موجود ٹوکنز۔ یہ ویکٹرز ایک vector database میں رہتے ہیں—جو کہ درست تلاش (exact lookups) کے بجائے مماثلت کی تلاش (similarity search) کے لیے ڈیزائن کیا گیا ایک خصوصی اسٹور ہے۔ جب کوئی صارف سوال پوچھتا ہے، تو آپ ان کے سوال کو ایمبیڈ (embed) کرتے ہیں اور ڈیٹا بیس سے پوچھتے ہیں: "معنی کے لحاظ سے اس ویکٹر کے سب سے قریب کون سے چنکس موجود ہیں؟"
صرف خام ویکٹر سرچ اکثر درست نتائج فراہم کرنے میں ناکام رہتی ہے۔ ایک اچھا پروڈکشن سسٹم hybrid search کا استعمال کرتا ہے، جو کی ورڈ میچنگ (keyword matching) کو سیمنٹک مماثلت (semantic similarity) کے ساتھ جوڑتا ہے۔ اگر کوئی "SLA-99 compliance" کے بارے میں پوچھتا ہے، تو آپ کو وہ دستاویز چاہیے جس میں لفظی طور پر وہ اسٹرنگ (string) موجود ہو، نہ کہ صرف وہ جو اس سے ملتا جلتا محسوس ہو۔
تلاش کے بعد، re-ranking شور (noise) کو فلٹر کرتا ہے۔ ابتدائی سرچ بیس ہندسوں چنکس واپس کر سکتی ہے، لیکن صرف پہلے تین یا چار ہی اصل میں مددگار ہوتے ہیں۔ ایک re-ranker LLM تک پہنچنے سے پہلے مطابقت کو اسکور کرتا ہے اور باقی کو نکال دیتا ہے، جس سے ٹوکنز کی بچت ہوتی ہے اور ہالوسینیشنز (hallucinations) میں کمی آتی ہے۔
Agent Layer: کارروائی کرنا
RAG ایک ماڈل کو پڑھنے کی اجازت دیتا ہے۔ ایجنٹس اسے عمل کرنے کی اجازت دیتے ہیں۔
ایک ایجنٹ بنیادی طور پر ایک لوپ میں پھنسا ہوا LLM ہے۔ یہ مشاہدہ کرتا ہے، استدلال کرتا ہے، عمل کرتا ہے، اور پھر دوبارہ مشاہدہ کرتا ہے۔ اگر آپ کسی ایجنٹ سے فلائٹ بک کرنے کو کہیں، تو وہ صرف یہ بیان نہیں کرتا کہ بکنگ کیسے کام کرتی ہے۔ یہ کام کو مختلف مراحل میں تقسیم کرتا ہے، صحیح فنکشنز کو کال کرتا ہے، جوابات پڑھتا ہے، اور خود کو ایڈجسٹ کرتا ہے۔
یہ لوپ کچھ اس طرح نظر آتا ہے۔ مشاہدہ (Observe): ایجنٹ موجودہ حالت کو پڑھتا ہے—آپ کی درخواست، پچھلے ٹول کالز کے نتائج، اور کوئی بھی غلطیاں۔ استدلال (Reason): LLM فیصلہ کرتا ہے کہ آگے کیا کرنا ہے، اکثر ایک منظم منصوبہ تیار کر کے یا پہلے سے طے شدہ اختیارات میں سے انتخاب کر کے۔ عمل (Act): یہ ایک ٹول کو کال کرتا ہے۔
ٹولز وہ ذریعہ ہیں جن کے ذریعے ایجنٹس حقیقی دنیا سے رابطہ کرتے ہیں۔ انہیں JSON schemas کے ذریعے بیان کیا جاتا ہے جو ماڈل کو بالکل درست طور پر بتاتے ہیں کہ ایک API کو کن پیرامیٹرز کی ضرورت ہے۔ LLM من مانے HTTP requests نہیں کرتا۔ یہ ایک اسکیما کو پُر کرتا ہے۔ "Call the weather API with city: London and units: metric." اگر ٹول درجہ حرارت واپس کرتا ہے، تو ایجنٹ اسے فراہم کرتا ہے
