البحث المتجهي
البحث المتجهي هو الآلية الجوهرية التي تتيح استرجاع الذاكرة الدلالي في PRX-Memory. بدلاً من مطابقة الكلمات المفتاحية، يقارن البحث المتجهي التشابه الرياضي بين استعلام المتجه وذكريات المتجهات للعثور على نتائج مترابطة مفاهيمياً.
كيف يعمل
- تضمين الاستعلام: يُرسَل استعلام الاسترجاع إلى مزوّد التضمين المُعيَّن، منتجاً متجهاً.
- حساب التشابه: يُقارَن المتجه الاستعلامي بجميع متجهات الذاكرة المخزّنة باستخدام تشابه جيب التمام.
- التقييم: تحصل كل ذاكرة على درجة تشابه بين -1.0 و1.0 (الأعلى هو الأكثر تشابهاً).
- الترتيب: تُرتَّب النتائج حسب الدرجة وتُدمَج مع إشارات أخرى (المطابقة المعجمية، الأهمية، الحداثة).
graph TB
QUERY["Recall Query<br/>'SQL injection prevention'"]
QEMBED["Query Embedding<br/>[0.12, -0.03, 0.87, ...]"]
subgraph Storage["Stored Memory Vectors"]
M1["Memory 1<br/>[0.11, -0.02, 0.85, ...]<br/>similarity: 0.97"]
M2["Memory 2<br/>[0.45, 0.12, -0.33, ...]<br/>similarity: 0.23"]
M3["Memory 3<br/>[0.09, -0.05, 0.82, ...]<br/>similarity: 0.94"]
end
RESULTS["Ranked Results<br/>1. Memory 1 (0.97)<br/>2. Memory 3 (0.94)<br/>3. Memory 2 (0.23)"]
QUERY --> QEMBED
QEMBED --> M1
QEMBED --> M2
QEMBED --> M3
M1 --> RESULTS
M2 --> RESULTS
M3 --> RESULTSتشابه جيب التمام
يستخدم PRX-Memory تشابه جيب التمام كمقياس للمسافة. يقيس تشابه جيب التمام الزاوية بين متجهين، متجاهلاً الحجم:
similarity(A, B) = (A . B) / (|A| * |B|)| الدرجة | المعنى |
|---|---|
| 0.95--1.0 | معنى متطابق تقريباً |
| 0.80--0.95 | مترابط بدرجة عالية |
| 0.60--0.80 | مترابط نوعاً ما |
| < 0.60 | على الأرجح غير مترابط |
الترتيب المدمج
تشابه المتجهات هو إشارة واحدة في الترتيب متعدد الإشارات في PRX-Memory. الدرجة النهائية تجمع:
| الإشارة | الوزن | الوصف |
|---|---|---|
| تشابه المتجهات | عالٍ | الصلة الدلالية من مقارنة التضمين |
| المطابقة المعجمية | متوسط | تداخل الكلمات المفتاحية بين الاستعلام ونص الذاكرة |
| درجة الأهمية | متوسط | الأهمية المعيّنة من المستخدم أو المحسوبة من النظام |
| الحداثة | منخفض | الذكريات الأحدث تحصل على دفعة صغيرة |
يعتمد الوزن الدقيق على إعداد الاسترجاع وما إذا كانت التضمينات وإعادة الترتيب مفعّلتَين.
الأداء
يُظهر معيار 100,000 إدخال:
| المقياس | القيمة |
|---|---|
| حجم مجموعة البيانات | 100,000 إدخال |
| كمون p95 | 122.683 مللي ثانية |
| العتبة | < 300 مللي ثانية |
| الطريقة | معجمي + أهمية + حداثة (بدون طلبات شبكة) |
INFO
يقيس هذا المعيار مسار ترتيب الاسترجاع فقط، بدون طلبات تضمين أو إعادة ترتيب عبر الشبكة. يعتمد الكمون الشامل على أوقات استجابة المزوّد.
اعتبارات التوسع
| حجم مجموعة البيانات | النهج الموصى به |
|---|---|
| < 10,000 | تشابه جيب التمام بالقوة الغاشمة (واجهة JSON أو SQLite) |
| 10,000--100,000 | SQLite مع فحص متجهي في الذاكرة |
| > 100,000 | LanceDB مع فهرسة ANN |
لمجموعات البيانات التي تتجاوز 100,000 إدخال، فعّل واجهة LanceDB للبحث التقريبي عن الجار الأقرب (ANN)، الذي يوفر وقت استعلام دون خطي.
الخطوات التالية
- محرك التضمين -- كيف تُولَّد المتجهات
- إعادة الترتيب -- تحسين الدقة في المرحلة الثانية
- واجهات التخزين -- اختيار واجهة التخزين المناسبة