ایڈوانسڈ RAG تکنیکیں بہتر نہیں ہیں۔ وہ کبھی کبھی بہتر ہوتی ہیں۔
ایڈوانسڈ RAG تکنیکیں مفت اپ گریڈز نہیں ہیں۔ یہ ایسے ٹولز ہیں جن کے ساتھ کچھ فائدے اور نقصانات (trade-offs) جڑے ہوتے ہیں۔
میں نے ان کا تجربہ کرنے کے لیے ایک RAG پائپ لائن میں پانچ ریٹریول (retrieval) تکنیکیں شامل کیں۔ سب سے اہم نتیجہ وہ تکنیک تھا جو ناکام رہی۔
مجھے توقع تھی کہ HyDE ریٹریول کو بہتر بنائے گا۔ اس کے بجائے، یہ مخصوص سوالات (queries) پر الٹا اثر دکھانے لگی۔ Recall 0.80 سے گر کر 0.17 رہ گیا۔ یہ تکنیک نہ صرف مدد کرنے میں ناکام رہی، بلکہ اس نے نتائج میں غلط ڈیٹا کو بھی کھینچ لیا۔
میں نے جس بھی ایڈوانسڈ تکنیک کا تجربہ کیا، وہ اس طرح کام کرتی ہے:
- Hybrid search (BM25 + dense): درست الفاظ (exact terms) کے لیے بہترین ہے۔ اسے تب استعمال کریں جب آپ کا سوال مخصوص پیرامیٹرز پر منحصر ہو۔
- HyDE: غیر رسمی سوالات کے لیے بہترین ہے جو دستاویز کے الفاظ (vocabulary) سے میل نہیں کھاتے۔ یہ اس وقت ناکام ہو جاتی ہے جب سوال پہلے سے ہی کورپس (corpus) کے ساتھ اچھی طرح مطابقت رکھتا ہو۔
- Reranking: اس وقت بہترین ہے جب صحیح چنک (chunk) نتائج میں موجود ہو لیکن فہرست میں بہت نیچے ہو۔
- Contextual retrieval: مختصر چنکس کے لیے بہترین ہے جن میں سیاق و سباق (context) کی کمی ہو۔ یہ لاگت (cost) میں اضافہ کرتا ہے کیونکہ آپ کو ہر چنک کے لیے LLM استعمال کرنا پڑتا ہے۔
میں نے یہ پائپ لائن Anthropic کی دستاویزات (documentation) کا استعمال کرتے ہوئے بنائی۔ میں نے pgvector اور HNSW انڈیکس کے ساتھ Postgres استعمال کیا۔ میں نے اسے ایک بیک اینڈ انجینئر کی طرح لیا۔ میں نے یہ نہیں پوچھا کہ کیا کوئی تکنیک "state of the art" ہے، بلکہ میں نے یہ پوچھا کہ کیا وہ اپنی پیچیدگی کے قابل ہے؟
آپ جو بھی جز (component) شامل کرتے ہیں، اسے آپ کو چلانا، ڈی بگ (debug) کرنا اور اس کے لیے ادائیگی بھی کرنی پڑتی ہے۔
پیچیدہ ٹولز شامل کرنے سے پہلے، میں نے سادہ ڈینس ریٹریول (dense retrieval) کا استعمال کرتے ہوئے ایک بیس لائن (baseline) ماپا۔
نتائج نے دو مختلف میٹرکس دکھائے:
- Faithfulness: 0.96
- Context precision: 0.60
اس ڈیٹا نے میرا پورا طریقہ کار بدل دیا۔ زیادہ تر تکنیکیں ریٹریول کو نشانہ بناتی ہیں۔ میرا ریٹریول ہی وہ حصہ تھا جو ناکام ہو رہا تھا۔ اگر faithfulness کم ہوتی، تو میں پرامپٹس (prompts) کو ٹیون کرتا۔ چونکہ ریٹریول کم تھا، اس لیے مجھے سرچ (search) کو ٹیون کرنا پڑا۔
میں نے ایویلیوایشن ٹولز (evaluation tools) کے بارے میں بھی ایک سبق سیکھا۔ میں نے Ragas استعمال کرنے کی کوشش کی، لیکن یہ بہت سست تھا۔ یہ ناکام کالز کو دوبارہ کوشش کرتا اور گھنٹوں لے لیتا۔ اس کے بجائے میں نے اپنا خود کا async harness بنایا۔ میں نے وہی میٹرکس 11 گھنٹوں کے بجائے صرف 221 سیکنڈ میں چلا لیے۔
خلاصہ سادہ ہے:
تکنیکوں کو اندھا دھند استعمال نہ کریں۔ صحیح سوال کے لیے صحیح موڈ منتخب کرنے کے لیے ایک query router استعمال کریں۔ پہلے اپنے ڈیٹا کی پیمائش کریں۔ پھر وہ ٹول منتخب کریں جو آپ کے مخصوص ناکامی کے انداز (failure mode) کو حل کرے۔
ماڈل نیا ہے۔ انجینئرنگ کا نظم و ضبط (discipline) نیا نہیں ہے۔
Source: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o
