AI سے ایک لیپ ٹاپ تجویز کرنے کا کہیں۔ پھر اسے بتائیں کہ آپ کو کچھ ہلکا چاہیے (lighter)۔ اگر سسٹم اس دوسرے پیغام کو ایک آزاد درخواست کے طور پر پڑھے، تو ہو سکتا ہے کہ آپ کو الٹرا بکس (ultrabooks) کی فہرست مل جائے۔ یا ہو سکتا ہے کہ آپ کو گیمنگ ورک اسٹیشنز (gaming workstations) کا ایک اور ڈھیر مل جائے کیونکہ اس نے یہ کبھی رجسٹر ہی نہیں کیا کہ آپ نے پہلے والے انتخاب کو بہت بھاری ہونے کی وجہ سے مسترد کر دیا تھا۔ ایسا اس لیے ہوتا ہے کیونکہ بہت سے AI سسٹمز اب بھی جوابات کی درجہ بندی (rank) صرف ایک الگ تھلگ پرامپٹ (prompt) کو دیکھ کر کرتے ہیں۔ وہ ہر پیغام کے ساتھ ایک نئی تلاش کا آغاز سمجھتے ہیں اور گفتگو کے جاری تسلسل کو نظر انداز کر دیتے ہیں۔

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

دو چیزیں اسے ممکن بناتی ہیں: پرسنلائزیشن (personalization) اور ہسٹری (history)۔

سنگل ٹرن رینکنگ (Single-Turn Ranking) کیوں ناکام ہو جاتی ہے

روایتی رسپانس رینکنگ سوال و جواب کے ڈیٹا سیٹس سے نکلی ہے۔ ایک ماڈل ایک پرامپٹ دیکھتا ہے، ممکنہ جوابات کا ایک سیٹ تیار کرتا ہے، اور ایک رینکر (ranker) صرف اس پرامپٹ کی بنیاد پر ہر ایک کو اسکور کرتا ہے۔ جس کا اسکور سب سے زیادہ ہو، وہی جیت جاتا ہے۔ یہ الگ تھلگ حقائق کے لیے تو ٹھیک کام کرتا ہے، لیکن جاری کام کے لیے ناکام ہو جاتا ہے۔

تصور کریں کہ ایک صارف سفر کی منصوبہ بندی کر رہا ہے۔ پہلے مرحلے میں، وہ بینکاک میں بجٹ ہوٹلوں کے بارے میں پوچھتا ہے۔ ماڈل Khao San Road کے قریب ہوٹلوں کی ایک فہرست تجویز کرتا ہے۔ صارف جواب دیتا ہے، "یہ شور والے لگ رہے ہیں۔ میرے ساتھ بچے ہیں، اس لیے مجھے پول اور Skytrain تک آسان رسائی چاہیے"۔ ایک سنگل ٹرن رینکر صرف دوسرے جملے کو دیکھتا ہے۔ وہ شاید تھائی لینڈ بھر میں پھیلے ہوئے فیملی ریزورٹس کی ایک عام سی فہرست دے دے، اور ان مخصوص شرائط کو نظر انداز کر دے جو پہلے ہی طے ہو چکی تھیں: بینکاک، بجٹ کے مطابق، پرسکون، پول، اور ٹرانسپورٹ کے قریب۔

نتیجہ تکنیکی طور پر موضوع کے مطابق ہوتا ہے لیکن عملی طور پر بے کار ہوتا ہے۔ صارف کو سیاق و سباق (context) دوبارہ دہرانا پڑتا ہے۔ رکاوٹیں پیدا ہوتی ہیں اور اعتماد کم ہو جاتا ہے۔

پرسنلائزیشن (Personalization): پوچھنے والا کون ہے؟

پرسنلائزیشن کا مطلب ہے جوابات کو صارف کی مخصوص ترجیحات اور ڈیٹا کے مطابق ڈھالنا۔ یہ اس سوال کا جواب دیتا ہے: یہ شخص کون ہے؟

یہ صرف سلام میں نام شامل کرنے سے کہیں زیادہ ہے۔ اس کا مطلب ہے کہ سسٹم، واضح پروفائلز یا سیکھے ہوئے پیٹرنز کے ذریعے جانتا ہے کہ صارف کو معلومات کس طرح فراہم کی جانی چاہئیں۔ ایک ڈویلپر جو مستقل طور پر Python کی مثالیں مانگتا ہے، اسے Python کوڈ کے نمونے دیکھنے چاہئیں، چاہے اس کی查询 (query) میں ایک عام پروگرامنگ ٹاسک کا ذکر ہو، جب تک کہ وہ خود کچھ اور نہ کہے۔ ایک سبزی خور (vegetarian) جس نے پچھلے ہفتے ریسیپیز پوچھی تھیں، اسے سسٹم کو گوشت نکالنے کے لیے دوبارہ یاد دلانے کی ضرورت نہیں ہونی چاہیے۔ کوئی شخص جو نثر کے بجائے مختصر بلٹ پوائنٹس کو ترجیح دیتا ہے، اسے بلٹ پوائنٹس ہی ملنے چاہئیں۔

ٹھوس اشارے خود رپورٹ کردہ ترجیحات، مختلف سیشنز میں ماضی کے طرز عمل، یا لوکیشن اور ڈیوائس کی قسم جیسے میٹا ڈیٹا پر مشتمل ہو سکتے ہیں۔ اہم بات یہ ہے کہ یہ اشارے صرف جنریشن (generation) کے مرحلے میں نہیں بلکہ رینکنگ (ranking) کے مرحلے میں بھی استعمال ہوں۔ جب ممکنہ جوابات کو اسکور کیا جاتا ہے، تو رینکر کو ان جوابات کو اہمیت دینی چاہیے جو معلوم پروفائل کے مطابق ہوں۔

مثال کے طور پر، اگر دو ممکنہ جوابات دونوں ہی "میں اپنی تصاویر کا بیک اپ کیسے لوں؟" کا صحیح جواب دیتے ہیں، لیکن ایک کلاؤڈ اسٹوریج (cloud storage) کا مشورہ دیتا ہے اور دوسرا لوکل NAS ڈرائیو کا، تو رینکر کو معلوم ہونا چاہیے کہ اس مخصوص صارف نے پہلے آف لائن ملکیت اور پرائیویسی میں دلچسپی ظاہر کی ہے۔ NAS کے آپشن کو زیادہ اسکور ملنا چاہیے۔ پرسنلائزیشن کے بغیر، ماڈل محض قسمت کا کھیل کھیلتا ہے۔

ہسٹری (History): اب تک کیا کہا جا چکا ہے؟

ہسٹری کا مطلب ہے اگلی प्रतिक्रिया کی رہنمائی کے لیے گفتگو کے پچھلے مراحل کا استعمال کرنا۔ یہ اس سوال کا جواب دیتا ہے: ہم اب تک کیا طے کر چکے ہیں؟

یہاں تک کہ سادہ ضمیروں (pronouns) کے لیے بھی ہسٹری کی ضرورت ہوتی ہے۔ جب کوئی صارف کہتا ہے، "اسے نیلا کر دو،" تو ماڈل کو معلوم ہونا چاہیے کہ "اسے" سے کیا مراد ہے۔ وہ حوالہ پچھلے مرحلے میں موجود ہوتا ہے۔ طویل گفتگو میں، ان پر انحصار (dependencies) پیچیدہ ہو جاتے ہیں۔ شرائط جمع ہوتی رہتی ہیں۔ صارف کسی آپشن کو مسترد کر سکتا ہے، کسی درخواست کی وضاحت کر سکتا ہے، یا کوئی نیا مقصد متعارف کروا سکتا ہے جو