یونٹ 2 / 11

ایمبیڈنگ اور ویکٹر ڈیٹا بیس لاجک

فائدہ:

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

RAG کے دل میں ایک ہی سوال ہے: "کون سا متن کا ٹکڑا صارف کے سوال سے زیادہ ملتا جلتا ہے؟" کمپیوٹر نمبروں کے ساتھ متن پر کارروائی کرتا ہے، لفظی نہیں۔ اس لیے ہمیں پہلے متن کو ان اعداد میں تبدیل کرنے کی ضرورت ہے جو اس کے معنی رکھتی ہیں۔ ایمبیڈنگ یہی ہے: کسی متن کو اعداد کی ترتیب (ویکٹر) میں تبدیل کرنے کا عمل جو اس متن کے معنی کو ظاہر کرتا ہے۔ جب آپ اس یونٹ کو ختم کر لیں گے، آپ کو معلوم ہو جائے گا کہ سرایت کیسے کام کرتی ہے، مماثلت کی پیمائش کیسے کی جاتی ہے، اور صحیح ویکٹر ڈیٹا بیس کا انتخاب کیسے کیا جاتا ہے۔

سرایت کرنا: معنی کو کوآرڈینیٹ میں ترجمہ کرنا

ایمبیڈنگ ماڈل (ایک خاص طور پر تربیت یافتہ مصنوعی ذہانت) آپ کے فراہم کردہ متن کو ایک ویکٹر میں تبدیل کرتا ہے، مثال کے طور پر، 1024 نمبر۔ اس ویکٹر کو کثیر جہتی خلا میں ایک کوآرڈینیٹ کے طور پر سوچیں۔ جادو یہ ہے: متون جو معنی میں ملتے جلتے ہیں اس جگہ میں قریبی نقاط میں آتے ہیں۔

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

اشارہ: "معنی کے فنگر پرنٹ" کے طور پر سرایت کرنے کے بارے میں سوچیں۔ ایک ہی معنی کے ساتھ دو جملوں کے فنگر پرنٹ ایک جیسے دکھائی دیتے ہیں۔ چاہے الفاظ مختلف ہوں۔

ایک اہم اصول: سوال کو سرایت کرتے وقت آپ جو ماڈل استعمال کرتے ہیں وہی ماڈل ہونا چاہیے جو آپ دستاویزات کو سرایت کرتے وقت استعمال کرتے ہیں۔ مختلف ماڈل مختلف جگہیں پیدا کرتے ہیں۔ کوآرڈینیٹ لاجواب ہو جاتے ہیں۔

مماثلت کی پیمائش کیسے کریں؟

یہ پیمائش کرنے کے کئی طریقے ہیں کہ دو ویکٹر کتنے ایک جیسے ہیں۔ سب سے عام کوزائن مماثلت ہے: یہ دو ویکٹروں کے درمیان زاویہ کی پیمائش کرتا ہے۔ اگر زاویہ چھوٹا ہے (ویکٹر ایک ہی سمت میں اشارہ کرتے ہیں)، تو مماثلت زیادہ ہے۔ قدر −1 اور 1 کے درمیان ہے۔ 1 کے قریب = بہت ملتے جلتے۔

معیار

یہ کیا پیمائش کرتا ہے؟

یہ کب ترجیح دی جاتی ہے؟

کوزائن

ویکٹر کے درمیان زاویہ (سمت)

سب سے عام؛ ٹیکسٹ سیمنٹک مماثلت میں پہلے سے طے شدہ

ڈاٹ پروڈکٹ

سمت + طول و عرض ایک ساتھ

اگر ویکٹر کو نارمل کیا جاتا ہے، تو یہ وہی نتیجہ دیتا ہے جو کوسائن دیتا ہے۔ تیز ہے

یوکلیڈین (یوکلیڈین فاصلہ)

نقاط کے درمیان سیدھا فاصلہ

کچھ کلسٹرنگ منظرناموں میں؛ متن میں کم استعمال ہوتا ہے۔

عملی طور پر، زیادہ تر ایمبیڈنگ ماڈل نارملائزڈ ویکٹر تیار کرتے ہیں (سائز سیٹ 1)؛ اس صورت میں، کوزائن اور ڈاٹ پروڈکٹ ایک ہی ترتیب دیتے ہیں۔ فیصلے کو مفلوج نہ کریں: کوسائن سے شروع کریں۔

لاکھوں ویکٹروں کے درمیان، ایک وقت میں ایک ایک کرکے ان کا موازنہ کرنا سست ہے۔ اسی لیے ویکٹر ڈیٹا بیس ANN (تقریبا قریب ترین پڑوسی) الگورتھم استعمال کرتے ہیں۔ ANN بہت جلد "بالکل قریب ترین" کے بجائے "تقریبا قریب ترین" تلاش کرتا ہے۔ مثال کے طور پر، HNSW کہلانے والا طریقہ 10 ملین ویکٹر کے لیے بھی چند ملی سیکنڈ میں نتائج واپس کر سکتا ہے۔ آپ درستگی کی ایک چھوٹی سی قربانی کے لیے بڑی رفتار حاصل کرتے ہیں۔

ویکٹر ڈیٹا بیس کیا کرتا ہے؟

ایک ویکٹر ڈیٹا بیس ایک ساتھ تین کام کرتا ہے: (1) ویکٹرز کو اسٹور کرتا ہے، (2) ویکٹر کو تیزی سے تلاش کرتا ہے جو سب سے زیادہ استفسار ویکٹر سے ملتا جلتا ہے، (3) ہر ویکٹر کے ساتھ میٹا ڈیٹا کے ذریعے فلٹر کرتا ہے۔ میٹا ڈیٹا وہ ٹیگ ہیں جو آپ اس ٹکڑے کے ساتھ منسلک کرتے ہیں: سورس فائل، تاریخ، محکمہ، رازداری کی سطح، وغیرہ۔ انٹرپرائز RAG میں میٹا ڈیٹا فلٹرنگ اہم ہے۔ کیونکہ آپ کو پابندیاں لگانے کے قابل ہونے کی ضرورت ہے جیسے کہ "صرف محکمہ خزانہ کے 2025 کے دستاویزات میں تلاش کریں"۔

# ویکٹر ڈیٹا بیس (تصوراتی) میں رجسٹر کریں vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("سالانہ ادا شدہ چھٹی 14 دن ہے...")، text="سالانہ ادا شدہ چھٹی 14 دن ہے...", میٹا ڈیٹا={"ماخذ": "ik_el_kitabi", "Kitate:"", "party:" "2025-06"، "رازداری": "ic"})

# میٹا ڈیٹا فلٹر شدہ تلاش (تصوراتی) نتیجہ = vektor_db.search( vektor=embed("میرے پاس کتنے دن کی چھٹی ہے؟"), top_k=4, filter={"department": "HR", "privacy": ["internal", "on"]})

صحیح ڈیٹا بیس کا انتخاب

گاڑی

نمایاں پہلو

مناسب صورتحال

بلٹ ان / فائل پر مبنی (ایمبیڈڈ لائبریری)

کوئی تنصیب نہیں، واحد مشین

پروٹوٹائپ، چھوٹی کٹ (< چند لاکھ حصے)

زیر انتظام کلاؤڈ سروس

اسکیلنگ اور دیکھ بھال آپ کی ذمہ داری نہیں ہے۔

پیداوار، تیزی سے بڑھتا ہوا ڈیٹا، چھوٹی ٹیم

آپ کے اپنے سرور پر اوپن سورس

مکمل کنٹرول، آپ کا ڈیٹا آپ کا ہی رہتا ہے۔

رازداری کی ذمہ داری، موجودہ بنیادی ڈھانچہ

موجودہ ڈیٹا بیس میں اضافہ

آپ علیحدہ نظام کا انتظام نہیں کرتے ہیں۔

ڈی بی میں ویکٹر سپورٹ شامل کرنا جو آپ پہلے ہی استعمال کرتے ہیں۔

منتخب کرتے وقت پوچھیں: کتنے ٹکڑے ہوں گے؟ میٹا ڈیٹا فلٹرنگ کتنی اہم ہے؟ کیا ڈیٹا کمپنی (رازداری) سے باہر جا سکتا ہے؟ کیا ٹیم انفراسٹرکچر چلا سکتی ہے؟ چھوٹے سے شروع کرنا اور ضرورت کے مطابق بڑھانا اکثر دانشمندی ہے۔

کمزور نقطہ نظر / مضبوط نقطہ نظر

کمزور (سادہ سرایت کرنا، کوئی میٹا ڈیٹا نہیں):

صرف متن اور ویکٹر کو محفوظ کریں۔ تلاش کریں: 4 سب سے ملتے جلتے ویکٹر واپس کریں۔ # مسئلہ: "صرف موجودہ HR دستاویزات" کی طرح فلٹر نہیں کیا جا سکتا؛ # پرانے/غیر مجاز حصے بھی جواب میں شامل کیے جا سکتے ہیں۔

طاقتور (امیر میٹا ڈیٹا + فلٹر شدہ تلاش):

ہر ٹکڑے میں ماخذ، تاریخ، محکمہ اور رازداری کا ٹیگ شامل کریں۔ تلاش کے دوران صارف کے اختیار اور موجودہیت کے مطابق فلٹر کریں: filter = {"privacy": user_authority, "date_date": "2024-01"}# اس طرح، نتیجہ محفوظ اور تازہ ترین ہے۔

تین چھوٹے کیسز

کیس 1 — غلط ماڈل مکس۔ ایک ٹیم نے ماڈل A کے ساتھ دستاویزات اور ماڈل B کے ساتھ سوالات کو سرایت کیا۔ تلاش کے بے معنی نتائج آئے، اور درست جواب کی شرح 31% رہی۔ جب میں نے ایک ہی ماڈل (دونوں ایک ہی ایمبیڈنگ ماڈل) پر سوئچ کیا تو شرح 88% تک بڑھ گئی۔ سبق: سوال اور دستاویز ایک ہی جگہ میں ہونے چاہئیں۔

کیس 2 - میٹا ڈیٹا کے بغیر رازداری کا خطرہ۔ ایک صحت کی دیکھ بھال کرنے والی کمپنی میں، تمام محکموں کے دستاویزات کو میٹا ڈیٹا کے بغیر ایک ہی پول میں پھینک دیا گیا تھا۔ جب سیلز ایسوسی ایٹ نے ایک سوال پوچھا، تو سسٹم نے مریض کے ڈیٹا کے ایک ٹکڑے کو سیاق و سباق کے مطابق بنایا۔ جب میٹا ڈیٹا + فلٹر شامل کیا گیا (مطابق اجازت کی سطح کے مطابق)، اس خطرے کو ختم کر دیا گیا؛ بازیافت میں، 12 غیر مجاز ٹکڑے بالکل نہیں لائے جاتے ہیں۔

کیس 3 - پیمانے کی رکاوٹ۔ ایک ای کامرس کمپنی نے ایک سادہ "سکین آل" طریقہ کے ساتھ 8 ملین مصنوعات کی تفصیل تلاش کی۔ ہر سوال میں 6 سیکنڈ لگے۔ جب ہم نے HNSW پر مبنی ANN پر سوئچ کیا، تو وقت کم ہو کر 45 ملی سیکنڈ رہ گیا، درستگی میں صرف 1% نقصان ہوا۔ سبق: ANN بڑے سیٹ میں لازمی ہے۔

عام غلطیاں

  • سوال اور دستاویز کو مختلف ماڈلز کے ساتھ سرایت کرنا: نتائج بے معنی ہیں؛ ہمیشہ ایک ماڈل.
  • میٹا ڈیٹا کو چھوڑنا: آپ فلٹر نہیں کر سکتے۔ آپ پرائیویسی اور اپ ٹو ڈیٹ کا کنٹرول کھو دیتے ہیں۔
  • خفیہ کاری کے لیے ایمبیڈنگ کو غلط سمجھنا: ایمبیڈنگ میں الٹ جانے والی معلومات ہوتی ہیں۔ یہ خیال کرنا غلط ہے کہ حساس ڈیٹا "چھپا ہوا" ہے۔
  • ایک چھوٹے سیٹ پر غیر ضروری طور پر بڑے انفراسٹرکچر کی تعمیر: 5,000 حصوں کے لیے ایک بڑا جھرمٹ غیر ضروری پیچیدگی ہے۔
  • مماثلت کے معیار کے بارے میں زیادہ فکر نہ کریں: متن میں کوزائن سے شروع کریں۔ ٹھیک ٹیوننگ بعد میں آتی ہے۔
احتیاط: ایمبیڈ کرنا متن کے معنی کو اعداد میں شامل کرتا ہے، لیکن مواد کو "تباہ" نہیں کرتا۔ اگر ویکٹر ڈیٹا بیس لیک ہو جاتا ہے تو، اصل ذخیرہ شدہ متن (زیادہ تر تنصیبات میں متن بھی ذخیرہ کیا جاتا ہے) سے بھی سمجھوتہ کیا جاتا ہے۔ ویکٹر کے ذخیرے کو اس کے اندر موجود دستاویزات کی طرح خفیہ رکھیں۔

خلاصہ میں

  • ایمبیڈ کرنا متن کو اعداد کے ایک ویکٹر میں بدل دیتا ہے جو اس کے معنی رکھتا ہے۔ اسی طرح کے معنی قریبی ویکٹر ہیں۔
  • مماثلت کو اکثر کوزائن سے ماپا جاتا ہے۔ نارملائزڈ ویکٹرز کے لیے، ڈاٹ پروڈکٹ ایک ہی نتیجہ دیتا ہے۔
  • بڑے ڈیٹا میں، ANN (مثال کے طور پر، HNSW) درست تلاش کی جگہ لے لیتا ہے: درستگی کی بہت کم قربانی کے ساتھ زبردست رفتار۔
  • ویکٹر ڈیٹا بیس ویکٹر اسٹوریج + مماثلت کی تلاش + میٹا ڈیٹا فلٹرنگ انجام دیتا ہے۔ انٹرپرائز RAG کے لیے میٹا ڈیٹا ضروری ہے۔
  • سوال اور دستاویز کا ایک ہی ایمبیڈنگ ماڈل کے ساتھ ترجمہ کیا جانا چاہیے۔ بصورت دیگر نقاط کا موازنہ نہیں کیا جاسکتا۔

درخواست کا کام

اس دستاویز سے 10 مختصر اقتباسات (ہر ایک میں 3-6 جملے) نکالیں جو آپ نے پچھلی یونٹ میں منتخب کیا تھا۔ (1) ہر ٹکڑے کے لیے کم از کم تین میٹا ڈیٹا ٹیگز ڈیزائن کریں (ذریعہ، تاریخ، اور ایک تہائی جو آپ کے کاروباری سیاق و سباق کے لیے موزوں ہو: محکمہ، پروڈکٹ، رازداری، وغیرہ)۔ (2) لکھیں کہ صارف کے 3 مختلف سوالات کے لیے کون سا میٹا ڈیٹا فلٹر لگانا چاہیے۔ (3) 3 سوالوں کے حصے کے جوڑے تلاش کریں جو مختلف الفاظ میں ایک ہی معنی کا اظہار کرتے ہوں (جیسے "چھٹی کا حق" ↔ "سالانہ چھٹی") اور ایک جملے میں وضاحت کریں کہ وہ کلیدی الفاظ کی تلاش سے کیوں مماثل نہیں ہوں گے لیکن ایمبیڈنگ سے مماثل ہوں گے۔

چیک لسٹ

  • میں بتا سکتا ہوں کہ ایمبیڈنگ متن کو سیمنٹک اسپیس میں ایک ویکٹر میں بدل دیتی ہے اور اسی طرح کے معنی قریب ہیں۔
  • میں جانتا ہوں کہ [ ] کوزائن مماثلت زاویہ کی پیمائش کرتی ہے اور متن میں پہلے سے طے شدہ ترجیح ہے۔
  • میں وضاحت کر سکتا ہوں کہ بڑے ڈیٹا میں ANN کیوں ضروری ہے۔
  • [ ] میں جانتا ہوں کہ میٹا ڈیٹا رازداری اور تازگی کنٹرول کے لیے کیوں ضروری ہے۔
  • میں سوال اور دستاویز کا ایک ہی ایمبیڈنگ ماڈل کے ساتھ ترجمہ کرنے کے اصول کی پیروی کرتا ہوں۔