RAG کیا ہے؟ Retrieval-Augmented Generation آسان الفاظ میں
RAG (retrieval-augmented generation) AI ماڈل کو آپ کی اپنی معلومات استعمال کرکے سوالوں کے جواب دینے کا طریقہ ہے۔ جب کوئی سوال پوچھتا ہے تو آپ کی ایپ پہلے آپ کی دستاویزات میں سے سب سے متعلقہ حصے تلاش کرتی ہے، پھر وہ حصے سوال کے ساتھ ماڈل کو دیتی ہے۔ ماڈل اپنا جواب اسی متن سے لکھتا ہے، نہ کہ صرف اس علم پر جو اس نے تربیت کے دوران حاصل کیا تھا۔
AI کے ساتھ بناتے وقت RAG کیوں اہم ہے
ایک بڑا لینگویج ماڈل دنیا کے بارے میں بہت کچھ جانتا ہے، مگر آپ کے کاروبار کے بارے میں کچھ نہیں جانتا: آپ کی قیمتیں، پالیسیاں، پروڈکٹ کا مینوئل، پچھلے ہفتے کے سپورٹ ٹکٹس۔ اس کی تربیت کی ایک آخری تاریخ ہوتی ہے، اس لیے اسے حالیہ باتوں کا علم نہیں ہوتا۔ پھر بھی اگر آپ اس سے پوچھیں تو وہ پُریقین، معقول مگر غلط جواب دے سکتا ہے۔
اس کے حل کے تین بڑے طریقے ہیں:
| طریقہ | یہ کیا کرتا ہے | کس کے لیے بہتر ہے |
|---|---|---|
| سب کچھ پرامپٹ میں ڈال دیں | ہر سوال کے ساتھ اپنی ساری دستاویزات بھیجیں | کم متن، چند صفحات |
| RAG | اپنی دستاویزات میں تلاش کریں اور صرف متعلقہ حصے بھیجیں | بڑے یا بدلنے والے مجموعے: مدد مراکز، مینوئل، نوٹس |
| فائن ٹیوننگ | مثالوں پر ماڈل کو مزید تربیت دیں | لہجہ، فارمیٹ اور بار بار دہرائے جانے والے کام، بدلنے والے حقائق نہیں |
جدید ماڈلز لمبے پرامپٹ قبول کرتے ہیں، اس لیے چھوٹے FAQ کے لیے پہلا طریقہ اکثر کافی ہوتا ہے۔ RAG تب اپنی جگہ بناتا ہے جب آپ کے پاس اتنا متن ہو کہ ہر بار سب بھیجنا نہ چاہیں، کیونکہ آپ کے بھیجے ہر لفظ پر پیسہ اور وقت خرچ ہوتا ہے (دیکھیں LLM APIs کا چارج کیسے ہوتا ہے)۔
اگر آپ "ہماری دستاویزات سے گفتگو" والی خصوصیت، سپورٹ اسسٹنٹ یا اندرونی نالج ٹول بنا رہے ہیں تو تقریباً یقینی ہے کہ آپ RAG کی کوئی شکل بنا رہے ہیں۔
ایک روزمرہ کی مثال
ایک کھلی کتاب والے امتحان کا تصور کریں۔ جو طالب علم زبانی جواب دیتا ہے وہ یاد کو غلط یا بڑھا چڑھا کر بیان کر سکتا ہے۔ جو طالب علم پہلے صحیح صفحات کھول کر پڑھ سکتا ہے اور پھر جواب دیتا ہے وہ کہیں زیادہ قابلِ بھروسا ہوتا ہے، بشرطیکہ اسے صحیح صفحات مل جائیں۔
- طالب علم زبان کا ماڈل ہے۔
- کتاب آپ کی دستاویزات ہیں۔
- صحیح صفحات کھولنا retrieval (بازیافت) ہے۔
- انہی صفحات سے جواب لکھنا generation ہے۔
RAG کھلی کتاب والا امتحان ہے۔ اور امتحان ہی کی طرح، جواب کا معیار بہت حد تک اس پر منحصر ہے کہ صحیح صفحات ملے یا نہیں۔
RAG قدم بہ قدم کیسے کام کرتا ہے
عام RAG سیٹ اپ میں دو مرحلے ہوتے ہیں۔
دستاویزات تیار کرنا (پہلے سے کیا جاتا ہے):
- جمع کریں ماخذ مواد کو: مدد کے مضامین، PDFs، پالیسیاں، پروڈکٹ کا ڈیٹا۔
- چنک کریں یعنی لمبی دستاویزات کو چھوٹے ٹکڑوں میں تقسیم کریں، اکثر چند پیراگراف ہر ایک، تاکہ تلاش صرف متعلقہ حصہ واپس لائے۔
- ایمبیڈ کریں ہر چنک کو: اسے ایمبیڈنگ ماڈل کو بھیجیں، جو متن کو ایمبیڈنگ میں بدلتا ہے، یعنی اعداد کی ایک لمبی فہرست جو اس کے معنی کو محفوظ کرتی ہے۔ ملتے جلتے موضوعات والے متن کے اعداد بھی ملتے جلتے ہوتے ہیں۔
- محفوظ کریں چنکس اور ان کی ایمبیڈنگز کو ایسے ڈیٹا بیس میں جو مشابہت سے تلاش کر سکے (جسے اکثر ویکٹر ڈیٹا بیس یا ویکٹر انڈیکس کہا جاتا ہے)۔
سوال کا جواب دینا (ہر بار کیا جاتا ہے):
- سوال کو ایمبیڈ کریں اسی ایمبیڈنگ ماڈل سے۔
- بازیافت کریں ان چنکس کو جن کی ایمبیڈنگز سوال کے سب سے قریب ہوں، مثلاً سب سے اوپر کے پانچ۔
- پرامپٹ بنائیں: ہدایات، بازیافت شدہ چنکس، اور سوال۔
- جواب تیار کریں: زبان کا ماڈل ان چنکس کی بنیاد پر جواب لکھتا ہے، ترجیحاً یہ بتاتے ہوئے کہ اس نے کون سے استعمال کیے۔
معنی کی بنیاد پر تلاش ہی اسے کارآمد بناتی ہے: "میرے پیسے واپس لینا" والا سوال "ری فنڈ پالیسی" عنوان والا چنک تلاش کر سکتا ہے، حالانکہ ان میں کوئی لفظ مشترک نہیں۔
ایک عملی مثال: جم کا مددگار اسسٹنٹ
فرض کریں ایک جم کے پاس 40 مدد کے مضامین ہیں اور وہ اپنی ویب سائٹ پر چیٹ اسسٹنٹ چاہتا ہے۔ ایک ممبر پوچھتا ہے: "کیا میں سفر کے دوران اپنی ممبرشپ روک سکتا ہوں؟"
ایپ سوال کو ایمبیڈ کرتی ہے اور تین قریب ترین چنکس واپس لاتی ہے۔ ان میں سے ایک یہ ہے:
Membership freeze: Members on monthly plans can freeze their
membership for up to 2 months per year. Request it at the front
desk or in the app at least 7 days before the freeze starts.
پھر ماڈل کو جانے والا پرامپٹ کچھ یوں دکھتا ہے:
آپ Northside Gym کے مدد اسسٹنٹ ہیں۔
صرف نیچے دیے گئے ماخذوں سے جواب دیں۔ اگر جواب ان میں نہ ہو،
تو بتائیں کہ آپ نہیں جانتے اور فرنٹ ڈیسک سے رابطہ کرنے کا مشورہ دیں۔
بتائیں کہ آپ نے کون سا ماخذ استعمال کیا۔
[ماخذ 1: Membership freeze] Members on monthly plans can freeze...
[ماخذ 2: Cancelling your membership] ...
[ماخذ 3: Guest passes] ...
سوال: کیا میں سفر کے دوران اپنی ممبرشپ روک سکتا ہوں؟
اور ماڈل جواب دیتا ہے: "جی ہاں، ماہانہ پلان پر آپ ممبرشپ سال میں دو ماہ تک روک سکتے ہیں۔ فرنٹ ڈیسک پر یا ایپ میں کم از کم 7 دن پہلے درخواست دیں (ماخذ: Membership freeze)۔"
جم نے کچھ دوبارہ تربیت نہیں دی۔ جب وہ فریز پالیسی بدلتا ہے تو مضمون اپ ڈیٹ کرتا ہے، ایپ وہ چنک دوبارہ ایمبیڈ کرتی ہے، اور اگلا جواب نئی پالیسی دکھاتا ہے۔
اہم اصطلاحات
| اصطلاح | مطلب |
|---|---|
| LLM | بڑا لینگویج ماڈل، یعنی وہ AI جو جواب لکھتا ہے۔ دیکھیں LLM کیا ہے۔ |
| ایمبیڈنگ | کسی متن کے معنی کی نمائندگی کرنے والی اعداد کی فہرست۔ |
| ایمبیڈنگ ماڈل | وہ ماڈل جو ایمبیڈنگز بناتا ہے۔ عموماً چیٹ ماڈل سے الگ ہوتا ہے اور کہیں سستا۔ |
| چنک | کسی دستاویز کا ایک ٹکڑا، جس کا سائز ایسا ہو کہ اسے الگ سے بازیافت کیا جا سکے۔ |
| ویکٹر ڈیٹا بیس / ویکٹر تلاش | ایسا ذخیرہ جو ملتی جلتی ایمبیڈنگز والی اشیاء ڈھونڈے۔ کچھ عام ڈیٹا بیس بھی یہ فراہم کرتے ہیں، جیسے Postgres، pgvector ایکسٹینشن کے ذریعے۔ |
| Top-k | ہر سوال پر کتنے چنکس بازیافت ہوں گے۔ |
| ہائبرڈ سرچ | معنی کی بنیاد پر تلاش کو عام کی ورڈ سرچ کے ساتھ ملانا، جو پروڈکٹ کوڈ جیسے مخصوص الفاظ میں مدد دیتا ہے۔ |
| کانٹیکسٹ ونڈو | ماڈل ایک درخواست میں زیادہ سے زیادہ کتنا متن لے سکتا ہے۔ |
| گراؤنڈنگ / حوالے | جواب کو مخصوص بازیافت شدہ ماخذوں سے جوڑنا اور انہیں دکھانا۔ |
عام غلط فہمیاں
- "RAG میرے ڈیٹا پر ماڈل کی تربیت کرتا ہے۔" ایسا نہیں ہے۔ ماڈل میں کچھ نہیں بدلتا؛ وہ سوال کے وقت صرف اضافی متن پڑھتا ہے۔
- "RAG کا مطلب ہے کہ اب غلط بیانی نہیں ہوگی۔" اس کا مطلب ہے کم ہوگی۔ اگر بازیافت صحیح چنک نہ لائے، یا جواب دستاویزات میں نہ ہو، تو ماڈل پھر بھی اندازہ لگا سکتا ہے۔ اسے کہیں کہ "مجھے معلوم نہیں" کہے، اور ایسے سوالات سے جانچیں جن کے جواب آپ کو پہلے سے معلوم ہوں۔
- "مجھے کوئی خاص ویکٹر ڈیٹا بیس چاہیے۔" اکثر ایسا نہیں ہوتا۔ معمولی مقدار کے ڈیٹا کے لیے، جو ڈیٹا بیس آپ کے پاس پہلے سے ہے اس پر ویکٹر ایکسٹینشن، یا سادہ کی ورڈ تلاش بھی کافی ہو سکتی ہے۔
- "بڑے چنکس بہتر ہوتے ہیں۔" بہت بڑے چنکس میں بہت سا غیر متعلقہ متن جاتا ہے (زیادہ لاگت، زیادہ الجھن)؛ بہت چھوٹے چنکس اپنا سیاق کھو دیتے ہیں جس سے وہ معنی رکھتے تھے۔ توازن خود آزمانا پڑتا ہے۔
- "بس سب کچھ اپ لوڈ کر دیں۔" پرانی، دہرائی گئی یا آپس میں متضاد دستاویزات متضاد جوابات دیتی ہیں۔ ماخذ مواد کی صفائی اکثر سب سے بڑی بہتری ہوتی ہے۔
- "کوئی بھی کوئی بھی دستاویز دیکھ سکتا ہے۔" صرف اسی صورت میں جب آپ ایسا بنائیں۔ اگر کچھ دستاویزات کچھ صارفین تک محدود ہیں تو تلاش کو خود پوچھنے والے کے مطابق فلٹر کرنا ہوگا، ورنہ اسسٹنٹ ایک گاہک کا ڈیٹا دوسرے کو دکھا سکتا ہے۔
اس پر کیا خرچ آتا ہے
RAG فیچر کے عموماً تین مسلسل اخراجات ہوتے ہیں: دستاویزات کی ایمبیڈنگ (چھوٹی، زیادہ تر ایک بار)، ہر سوال کی ایمبیڈنگ (بہت کم)، اور زبان کے ماڈل کی کال (اصل خرچ، جو بھیجے گئے چنکس کی تعداد کے ساتھ بڑھتا ہے)۔ اس کے علاوہ آپ کے ڈیٹا بیس میں ذخیرہ کا خرچ بھی ہوتا ہے۔ آپ کا AI فراہم کنندہ یہ سب آپ کے اپنے اکاؤنٹ پر بل کرتا ہے، اس لیے وہاں خرچ کی حد ضرور مقرر کریں۔
اپنے AI بلڈر سے کیا پوچھیں
- "RAG بنانے سے پہلے دیکھیں: کیا ہمارا مواد اتنا چھوٹا ہے کہ اسے پرامپٹ میں ہی شامل کیا جا سکے؟"
- "مدد کے مضامین کو چند پیراگراف کے چنکس میں تقسیم کریں، ہر چنک کا عنوان اور ماخذ لنک رکھیں، اور ایمبیڈنگز ہمارے ڈیٹا بیس میں محفوظ کریں۔"
- "ہائبرڈ سرچ استعمال کریں، یعنی معنی کی بنیاد پر اور کی ورڈ دونوں، تاکہ پروڈکٹ کوڈ بھی ملیں۔"
- "ماڈل کو صرف بازیافت شدہ ماخذوں سے جواب دینے کو کہیں، بتانے کو کہیں کہ کب معلوم نہیں، اور ہر جواب کے نیچے ماخذ دکھائیں۔"
- "صرف وہ دستاویزات تلاش کریں جو سائن اِن صارف دیکھ سکتا ہو۔"
- "جب بھی دستاویز میں ترمیم ہو، اسے خودکار طور پر دوبارہ ایمبیڈ کریں۔"
- "AI فراہم کنندہ کی کلید سرور پر، کسی راز (secret) میں رکھیں، براؤزر میں کبھی نہیں۔"
- "ہر سوال، بازیافت شدہ چنکس اور جواب لاگ کریں تاکہ خراب جوابات کا جائزہ لے سکوں۔"
Mythex میں RAG
Mythex میں کوئی تیار شدہ نالج بیس یا RAG پروڈکٹ شامل نہیں۔ یہ آپ کی ایپ کے اندر اس کا کوڈ لکھتا ہے: آپ اپنی دستاویزات اور اپنی AI فراہم کنندہ کی کلید لاتے ہیں، جو ایک پروجیکٹ سیکرٹ کے طور پر محفوظ ہوتی ہے، اور ایجنٹ بازیافت اور چیٹ کے حصے بناتا ہے، ذخیرہ کاری کے لیے پروجیکٹ کا Postgres ڈیٹا بیس استعمال کرتے ہوئے۔ فراہم کنندہ کا استعمال آپ کے فراہم کنندہ کے اکاؤنٹ پر بل ہوتا ہے، Mythex کریڈٹس پر نہیں۔ دستاویزات تجویز کرتی ہیں کہ ایک سادہ AI فیچر سے شروع کریں اور کام کرنے کے بعد RAG شامل کریں، دیکھیں AI ایپ بنانا، اور ہمارے گائیڈز AI چیٹ بوٹ ایپ بنانا اور اپنی ایپ میں AI فیچرز شامل کرنا۔
سوالات
RAG سادہ الفاظ میں کیا ہے؟
RAG (retrieval-augmented generation) AI ماڈل کو آپ کی اپنی معلومات سے جواب دینے کا طریقہ ہے۔ ماڈل جواب دینے سے پہلے آپ کی ایپ آپ کی دستاویزات میں سے سوال سے متعلق سب سے مناسب حصے تلاش کرتی ہے اور انہیں پرامپٹ میں شامل کرتی ہے، تاکہ جواب صرف تربیت کے دوران سیکھی ہوئی باتوں پر نہیں بلکہ اسی متن پر مبنی ہو۔
کیا RAG میرے ڈیٹا پر AI کو تربیت دیتا ہے؟
نہیں۔ RAG ماڈل میں ذرا سی بھی تبدیلی نہیں کرتا۔ سوال پوچھے جانے کے وقت متعلقہ متن تلاش کر کے اسے سوال کے ساتھ ماڈل کو دیتا ہے۔ کوئی دستاویز بدلیں تو اگلا جواب فوراً نیا ورژن استعمال کر سکتا ہے۔
کیا RAG فائن ٹیوننگ جیسا ہے؟
نہیں۔ فائن ٹیوننگ مثالوں پر مزید تربیت دے کر ماڈل کا رویہ بدلتی ہے، جو سست ہے اور انداز یا فارمیٹ کے لیے بہتر ہے۔ RAG سوال کے وقت ماڈل کو پڑھنے کے لیے حقائق دیتا ہے، جو بدلنے والی معلومات یا درست حوالے کی ضرورت والے مواد کے لیے بہتر ہے۔
کیا RAG AI کی غلط بیانی (hallucinations) ختم کر دیتا ہے؟
یہ انہیں کم کرتا ہے مگر ختم نہیں کرتا۔ اگر تلاش غلط حصے ڈھونڈے، یا جواب آپ کی دستاویزات میں موجود ہی نہ ہو، تو ماڈل پھر بھی اندازہ لگا سکتا ہے۔ اچھی RAG ایپس ماڈل کو کہتی ہیں کہ نہ معلوم ہو تو بتائے، اور وہ ذرائع بھی دکھاتی ہیں جو استعمال ہوئے۔