إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
استخدم قاعدة البيانات المتجهة المتكاملة في Azure DocumentDB لربط التطبيقات المعتمدة على الذكاء الاصطناعي ببياناتك المخزنة في Azure DocumentDB بسلاسة وبين التطبيقات. يمكن أن يتضمن هذا التكامل التطبيقات التي أنشأتها باستخدام تضمينات Azure OpenAI. قاعدة البيانات المتجهية المدمجة أصليا تتيح لك تخزين وفهرسة واستعلام بيانات المتجهات عالية الأبعاد المخزنة مباشرة في Azure DocumentDB بكفاءة، إلى جانب البيانات الأصلية التي تم إنشاء بيانات المتجهات منها. إنه يلغي الحاجة إلى نقل بياناتك إلى متاجر ناقلات بديلة وتحمل تكاليف إضافية.
ما هو مخزن المتجهات؟
مخزن المتجهات أو قاعدة بيانات المتجهات هو قاعدة بيانات مصممة لتخزين وإدارة التضمينات المتجهية، وهي تمثيلات رياضية للبيانات في فضاء عالي الأبعاد. في هذه المساحة، يتوافق كل بعد مع ميزة من البيانات، ويمكن استخدام عشرات الآلاف من الأبعاد لتمثيل البيانات المعقدة. يمثل موضع المتجه في هذه المساحة خصائصه. يمكن تحويل الكلمات والعبارات أو المستندات الكاملة والصور والصوت وأنواع أخرى من البيانات.
كيف يعمل مخزن المتجهات؟
في مخزن المتجهات، يتم استخدام خوارزميات بحث المتجهات للفهرسة والاستعلام عن تضمينات. تتضمن بعض خوارزميات البحث عن المتجهات المعروفة العالم الصغير القابل للتنقل الهرمي (HNSW) و Inverted File (IVF) و DiskANN. البحث عن المتجهات هو أسلوب يساعدك على العثور على عناصر مماثلة استنادا إلى خصائص البيانات الخاصة بها بدلا من التطابقات الدقيقة في حقل الخاصية. هذه التقنية مفيدة في التطبيقات مثل البحث عن نص مشابه أو العثور على الصور ذات الصلة أو تقديم التوصيات أو حتى اكتشاف الحالات الشاذة. يتم استخدامه للاستعلام عن عمليات تضمين البيانات الاتجاهية (قوائم الأرقام) لبياناتك التي قمت بإنشائها باستخدام نموذج التعلم الآلي باستخدام واجهة برمجة تطبيقات التضمينات. أمثلة على واجهات برمجة تطبيقات التضمين هي عمليات تضمين Azure OpenAI أو Hugging Face على Azure. يقيس بحث المتجه المسافة بين متجهات البيانات ومتجه الاستعلام. متجهات البيانات الأقرب إلى متجه الاستعلام هي تلك التي تم العثور عليها على أنها متشابهة دلاليا.
في قاعدة البيانات المتجهة المتكاملة في Azure DocumentDB، يمكنك تخزين وفهرسة واستعلام التضمينات جنبا إلى جنب مع البيانات الأصلية. يلغي هذا النهج التكلفة الإضافية لنسخ البيانات في قاعدة بيانات متجهات خالصة منفصلة. علاوة على ذلك، تحافظ هذه البنية على دمج التضمينات المتجهة والبيانات الأصلية معا، مما يسهل عمليات البيانات متعددة الوسائط بشكل أفضل، ويتيح اتساقا أكبر للبيانات، وحجما، وأداء.
حالات استخدام قاعدة بيانات المتجهات
تستخدم قواعد البيانات المتجهة في العديد من مجالات الذكاء الاصطناعي وتحليل البيانات. يساعدون في مهام مثل فهم اللغة الطبيعية، والتعرف على الصور والفيديوهات، وبناء أنظمة التوصيات، وتشغيل ميزات البحث. يمكنك العثور عليها في كل من تطبيقات الذكاء الاصطناعي التحليلي وتطبيقات الذكاء الاصطناعي التوليدي.
على سبيل المثال، يمكنك استخدام قاعدة بيانات متجهة من أجل:
- حدد الصور والمستندات والأغاني المتشابهة بناء على محتوياتها وموضوعاتها ومشاعرها وأنماطها.
- حدد المنتجات المماثلة بناء على خصائصها وميزاتها ومجموعات المستخدمين.
- التوصية بالمحتويات أو المنتجات أو الخدمات بناء على تفضيلات الأفراد.
- اقتراح المحتويات أو المنتجات أو الخدمات استنادا إلى أوجه التشابه بين مجموعات المستخدمين.
- حدد أفضل الخيارات المحتملة من مجموعة كبيرة من الخيارات لتلبية المتطلبات المعقدة.
- تحديد الحالات الشاذة في البيانات أو الأنشطة الاحتيالية التي تختلف عن الأنماط السائدة أو العادية.
- تنفيذ الذاكرة المستمرة لعوامل الذكاء الاصطناعي.
- تمكين التوليد المعزز بالاسترداد (RAG).
قاعدة بيانات المتجهات المتكاملة مقابل قاعدة البيانات المتجهية البحتة
يوجد نوعان شائعان من تطبيقات قواعد البيانات المتجهة: قاعدة بيانات متجهة بحتة وقاعدة بيانات متجهة متكاملة في قاعدة بيانات NoSQL أو قاعدة بيانات علائقية.
قاعدة بيانات متجهية نقية تخزن وتدير التضمين المتجه بكفاءة مع كمية صغيرة من البيانات الوصفية. إنه منفصل عن مصدر البيانات الذي اشتقت منه التضمينات.
توفر قاعدة بيانات متجهة تتكامل في قاعدة بيانات NoSQL أو قاعدة بيانات علائقية عالية الأداء قدرات إضافية. يمكن لقاعدة بيانات المتجهات المتكاملة في NoSQL أو قاعدة البيانات العلائقية تخزين عمليات التضمين وفهرستها والاستعلام عنها جنبا إلى جنب مع البيانات الأصلية المقابلة. يلغي هذا النهج التكلفة الإضافية لنسخ البيانات في قاعدة بيانات متجهات خالصة منفصلة. علاوة على ذلك، فإن الحفاظ على تضمين المتجهات والبيانات الأصلية معا يسهل عمليات البيانات متعددة الوسائط بشكل أفضل ويتيح اتساقا أكبر للبيانات، وحجما، وأداء.
قواعد بيانات المتجهات مفتوحة المصدر
عندما يحدد المطورون قواعد بيانات المتجهات، توفر الخيارات مفتوحة المصدر العديد من الفوائد. المصدر المفتوح يعني أن الكود المصدري للبرنامج متاح مجانا ، مما يتيح للمستخدمين تخصيص قاعدة البيانات وفقا لاحتياجاتهم الخاصة. هذه المرونة مفيدة للمؤسسات التي تخضع لمتطلبات تنظيمية فريدة للبيانات ، مثل الشركات في صناعة الخدمات المالية.
ميزة أخرى لقواعد بيانات المتجهات مفتوحة المصدر هي الدعم المجتمعي القوي الذي يتمتعون به. غالبا ما تساهم مجتمعات المستخدمين النشطين في تطوير قواعد البيانات هذه، وتوفر الدعم، وتشارك أفضل الممارسات، وتعزز الابتكار.
يختار بعض الأشخاص قواعد بيانات متجهة مفتوحة المصدر لأنها "مجانية"، مما يعني أنه لا توجد تكلفة للحصول على البرنامج أو استخدامه. البديل هو استخدام المستويات المجانية التي تقدمها خدمات قاعدة بيانات المتجهات المدارة. لا توفر هذه الخدمات المدارة وصولا خاليا من التكلفة حتى حد استخدام معين فحسب، بل تبسط أيضا العبء التشغيلي من خلال التعامل مع الصيانة والتحديثات وقابلية التوسع. لذلك، باستخدام الطبقة المجانية من خدمات قواعد البيانات المتجهة المدارة، يمكنك تحقيق توفير في التكاليف مع تقليل عبء الإدارة. يتيح لك هذا النهج التركيز أكثر على أنشطتك الأساسية بدلا من إدارة قواعد البيانات.
اختر أفضل قاعدة بيانات متجهة مفتوحة المصدر
يتطلب اختيار أفضل قاعدة بيانات متجهات مفتوحة المصدر النظر في عدة عوامل. يعد أداء قاعدة البيانات وقابليتها للتوسع أمرا بالغ الأهمية، حيث يؤثران على ما إذا كان بإمكان قاعدة البيانات التعامل مع متطلبات حمل العمل المحددة الخاصة بك. عادة ما تقدم قواعد البيانات ذات قدرات الفهرسة والاستعلام الفعالة الأداء الأمثل. عامل آخر هو دعم المجتمع والوثائق المتاحة لقاعدة البيانات. ويمكن لمجتمع قوي ووثائق وافرة أن يقدما مساعدة قيمة. على سبيل المثال، DocumentDB هو قاعدة بيانات متجهة مفتوحة المصدر شهيرة:
الخيار الأكثر شعبية قد لا يكون الخيار الأفضل لك. وبالتالي ، يجب عليك مقارنة الخيارات المختلفة بناء على الميزات وأنواع البيانات المدعومة والتوافق مع الأدوات والأطر الحالية التي تستخدمها. يجب أن تضع في اعتبارك أيضا تحديات قواعد بيانات المتجهات مفتوحة المصدر.
تحديات قواعد بيانات المتجهات مفتوحة المصدر
معظم قواعد بيانات المتجهات مفتوحة المصدر ، بما في ذلك تلك المذكورة سابقا ، هي قواعد بيانات متجهة خالصة. بمعنى آخر ، تم تصميمها لتخزين وإدارة عمليات تضمين المتجهات فقط ، إلى جانب كمية صغيرة من البيانات الوصفية. وبما أنها تعمل بشكل منفصل عن بياناتك الأصلية، تحتاج إلى نقل البيانات بين خدمات مختلفة. هذا التعقيد يضيف تكلفة إضافية، ويجعل الأمور أكثر تعقيدا، وقد يبطئ أنظمة الإنتاج لديك.
كما أنها تشكل التحديات النموذجية لقواعد البيانات مفتوحة المصدر:
- الإعداد: تحتاج إلى معرفة معمقة لتثبيت وتكوين وتشغيل قاعدة البيانات، خاصة في عمليات النشر المعقدة. يتطلب تحسين الموارد والتكوين أثناء توسيع نطاق العملية مراقبة وتعديلات وثيقة.
- الصيانة: يجب عليك إدارة تحديثاتك وتصحيحاتك وصيانتك بنفسك. الخبرة في التعلم الآلي ليست كافية؛ يجب أن تمتلك أيضا خبرة واسعة في إدارة قواعد البيانات.
- الدعم: يمكن أن يكون الدعم الرسمي محدودا مقارنة بالخدمات المدارة، ويعتمد أكثر على المساعدة المجتمعية.
لذلك، بينما تكون قواعد البيانات المتجهة مفتوحة المصدر مجانية في البداية، فإنها تتحمل تكاليف كبيرة عند التوسع. يتطلب توسيع العمليات المزيد من الأجهزة وموظفي تكنولوجيا المعلومات المهرة والإدارة المتقدمة للبنية التحتية، ما يؤدي إلى ارتفاع النفقات في الأجهزة والموظفين والتكاليف التشغيلية. يمكن أن يكون تحجيم قواعد بيانات المتجهات مفتوحة المصدر مطلبا ماليا على الرغم من عدم وجود رسوم ترخيص.
مواجهة تحديات قواعد بيانات المتجهات مفتوحة المصدر
قاعدة بيانات متجهية مدارة بالكامل والتي تتكامل في قاعدة بيانات NoSQL أو قاعدة بيانات علائقية عالية الأداء تتجنب التكلفة الإضافية والتعقيد الإضافي لقواعد البيانات المتجهية مفتوحة المصدر. تقوم قاعدة البيانات هذه بتخزين الفهارس والاستعلامات إلى جانب البيانات الأصلية المقابلة. يلغي هذا النهج التكلفة الإضافية لنسخ البيانات في قاعدة بيانات متجهات خالصة منفصلة. علاوة على ذلك، فإن الحفاظ على تضمين الجهات والبيانات الأصلية معا يسهل عمليات البيانات متعددة الوسائط بشكل أفضل، ويتيح اتساقا أكبر للبيانات وحجما وأداء. وفي الوقت نفسه، تساعد الخدمة المدارة بالكامل المطورين على تجنب متاعب إعداد المساعدة المجتمعية وصيانتها والاعتماد عليها في قاعدة بيانات متجهات مفتوحة المصدر. علاوة على ذلك، تقدم بعض خدمات قواعد البيانات المتجهة المدارة مستوى مجاني مدى الحياة.
مثال على ذلك قاعدة البيانات المتجهة المتكاملة في Azure DocumentDB. يتيح هذا الإعداد للمطورين توفير المال كما يفعلون مع قواعد البيانات المتجهة مفتوحة المصدر. لكن على عكس الخيارات مفتوحة المصدر، يتولى مزود الخدمة مسؤولية الصيانة والتحديثات والتوسع نيابة عنك. الترقية سريعة وسهلة مع الحفاظ على تكلفة ملكية إجمالية منخفضة عند توسيع العمليات. يمكنك أيضا استخدام هذه الخدمة لتكبير تطبيقات MongoDB التي هي بالفعل قيد الإنتاج بشكل مريح.
إجراء بحث عن تشابه المتجهات
يوفر Azure DocumentDB قدرات بحث متجهات قوية، مما يتيح لك إجراء عمليات بحث تشابه عالية السرعة عبر مجموعات بيانات معقدة. لإجراء البحث المتجه في Azure DocumentDB، تحتاج أولا إلى إنشاء فهرس متجه. بينما يقدم Azure DocumentDB خيارات متعددة، إليك بعض الإرشادات العامة لمساعدتك على البدء بناء على حجم مجموعة بياناتك:
| IVF | HNSW | DiskANN (موصى به) | |
|---|---|---|---|
| Description | يقسم فهرس IVFFlat المتجهات إلى قوائم، ثم يبحث في مجموعة فرعية الأقرب إلى متجه الاستعلام. | ينشئ فهرس HNSW رسما بيانيا متعدد الطبقات. | DiskANN هي أقرب خوارزمية بحث جارة تقريبية مصممة للبحث الفعال عن المتجهات على أي نطاق. |
| المقايضات الرئيسية |
الايجابيات: أوقات بناء أسرع ، استخدام أقل للذاكرة. سلبيات: أداء أقل للاستعلام (من حيث مقايضة السرعة والاستدعاء). |
الايجابيات: يمكن إنشاء أداء استعلام أفضل (من حيث مقايضة السرعة والاستدعاء) على جدول فارغ. سلبيات: أوقات بناء أبطأ ، واستخدام أعلى للذاكرة. |
الايجابيات: كفاءة في أي نطاق ، استدعاء عالي ، إنتاجية عالية ، زمن انتقال منخفض. |
| عدد المتجهات | أقل من 10,000 | ما يصل إلى 50,000 | ما يصل إلى 500,000+ |
| طبقة نظام المجموعة الموصى بها | M10 أو M20 | M30 وأعلى | M30 وأعلى |
يمكنك استخدام مؤشرات DiskANN على المستويات المتوسطة M30 والأعلى. لإنشاء فهرس DiskANN، قم بتعيين المعلمة "kind" لاتباع "vector-diskann" هذا القالب:
{
"createIndexes": "<collection_name>",
"indexes": [
{
"name": "<index_name>",
"key": {
"<path_to_property>": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-diskann",
"dimensions": <integer_value>,
"similarity": <string_value>,
"maxDegree" : <integer_value>,
"lBuild" : <integer_value>,
}
}
]
}
| الحقل | Type | Description |
|---|---|---|
index_name |
string | اسم فريد للفهرس. |
path_to_property |
string | المسار إلى الخاصية التي تحتوي على المتجه. يمكن أن يكون هذا المسار خاصية من المستوى الأعلى أو مسار تدوين نقطة إلى الخاصية . يجب أن تكون المتجهات فهرسة number[] واستخدامها في نتائج البحث عن المتجهات. يستخدم المتجه نوعا آخر، مثل double[]، يمنع فهرسة المستند. لا يتم إرجاع المستندات غير المفهرسة في نتيجة بحث متجه. |
kind |
string | نوع فهرس المتجهات المراد إنشاؤه. الخيارات هي vector-ivfو vector-hnswو.vector-diskann |
dimensions |
العدد الصحيح | عدد الأبعاد لتشابه المتجهات. تدعم DiskANN ما يصل إلى 16,000 بعد (مع تكميم المنتج) ، مع دعم مستقبلي مخطط ل 40,000+. |
similarity |
string | مقياس التشابه لاستخدامه مع الفهرس. الخيارات المحتملة هي COS (مسافة جيب التمام)، L2 (مسافة الإقليديين)، و IP (المنتج الداخلي). |
maxDegree |
العدد الصحيح | الحد الأقصى لعدد الحواف لكل عقدة في الرسم البياني. تتراوح هذه المعلمة من 20 إلى 2048 (الافتراضي هو 32).
maxDegree الأعلى مناسب لمجموعات البيانات ذات الأبعاد العالية و/أو متطلبات الدقة العالية. |
lBuild |
العدد الصحيح | تعيين عدد الجيران المرشحين الذين تم تقييمهم أثناء إنشاء فهرس DiskANN. هذه المعلمة، التي تتراوح من 10 إلى 500 (الافتراضي هو 50)، توازن الدقة والنفقات الحسابية: تعمل القيم الأعلى على تحسين جودة الفهرس ودقته ولكن زيادة وقت الإنشاء |
إجراء بحث متجه باستخدام DiskANN
لإجراء بحث متجه، استخدم $search مرحلة البنية الأساسية لبرنامج ربط العمليات التجارية للتجميع، والاستعلام مع cosmosSearch عامل التشغيل. يتيح DiskANN عمليات بحث عالية الأداء عبر مجموعات بيانات ضخمة مع ترشيح اختياري مثل الفلاتر الجغرافية أو النصية.
{
"$search": {
"cosmosSearch": {
"path": "<path_to_property>",
"query": "<query_vector>",
"k": <num_results_to_return>,
"filter": {"$and": [
{ "<attribute_1>": { "$eq": <value> } },
{"<location_attribute>": {"$geoWithin": {"$centerSphere":[[<longitude_integer_value>, <latitude_integer_value>], <radius>]}}}
]}
}
}
},
| الحقل | Type | Description |
|---|---|---|
lSearch |
العدد الصحيح | تحديد حجم قائمة المرشحين الديناميكية للبحث. القيمة الافتراضية هي 40، مع نطاق قابل للتكوين من 10 إلى 1000. تؤدي زيادة القيمة إلى تحسين الاستدعاء ولكنها قد تقلل من سرعة البحث. |
k |
العدد الصحيح | يحدد عدد نتائج البحث التي سيتم إرجاعها.
k يجب أن تكون القيمة أقل من أو مساوية ل lSearch. |
مثال على استخدام فهرس DiskANN مع التصفية
إضافة متجهات إلى قاعدة البيانات
لاستخدام البحث المتجه مع عوامل التصفية الجغرافية المكانية، أضف المستندات التي تتضمن تضمينات المتجهات وإحداثيات الموقع. يمكنك إنشاء عمليات التضمين باستخدام النموذج الخاص بك أو عمليات تضمين Azure OpenAI أو واجهة برمجة تطبيقات مثل Hugging Face على Azure.
from pymongo import MongoClient
client = MongoClient("<your_connection_string>")
db = client["test"]
collection = db["testCollection"]
documents = [
{"name": "Eugenia Lopez", "bio": "CEO of AdventureWorks", "is_open": 1, "location": [-118.9865, 34.0145], "contentVector": [0.52, 0.20, 0.23]},
{"name": "Cameron Baker", "bio": "CFO of AdventureWorks", "is_open": 1, "location": [-0.1278, 51.5074], "contentVector": [0.55, 0.89, 0.44]},
{"name": "Jessie Irwin", "bio": "Director of Our Planet initiative", "is_open": 0, "location": [-118.9865, 33.9855], "contentVector": [0.13, 0.92, 0.85]},
{"name": "Rory Nguyen", "bio": "President of Our Planet initiative", "is_open": 1, "location": [-119.0000, 33.9855], "contentVector": [0.91, 0.76, 0.83]}
]
collection.insert_many(documents)
إنشاء فهرس متجه DiskANN
يوضح المثال التالي كيفية إعداد فهرس متجه DiskANN مع إمكانات التصفية. يشمل هذا المثال إنشاء فهرس المتجهات للبحث في التشابه، وإضافة مستندات ذات خصائص متجهية وجغرافية، وفهرسة الحقول لمزيد من التصفية.
db.command({
"createIndexes": "testCollection",
"indexes": [
{
"name": "DiskANNVectorIndex",
"key": {
"contentVector": "cosmosSearch"
},
"cosmosSearchOptions": {
"kind": "vector-diskann",
"dimensions": 3,
"similarity": "COS",
"maxDegree": 32,
"lBuild": 64
}
},
{
"name": "is_open",
"key": {
"is_open": 1
}
},
{
"name": "locationIndex",
"key": {
"location": 1
}
}
]
})
ينشئ هذا الأمر فهرس متجه DiskANN في contentVector الحقل في exampleCollection، مما يتيح عمليات البحث عن التشابه. كما يضيف:
- فهرس في
is_openالميدان، بحيث يمكنك تصفية النتائج بناء على ما إذا كانت الأعمال مفتوحة أم لا. - فهرس جغرافي مكاني في
locationالحقل للتصفية حسب التقارب الجغرافي.
إجراء بحث متجه
للعثور على مستندات ذات خطوط متجهة مماثلة ضمن نصف قطر جغرافي معين، حدد للبحث عن queryVector التشابه وقم بتضمين عامل تصفية جيوفضائي.
query_vector = [0.52, 0.28, 0.12]
pipeline = [
{
"$search": {
"cosmosSearch": {
"path": "contentVector",
"vector": query_vector,
"k": 5,
"filter": {
"$and": [
{"is_open": {"$eq": 1}},
{"location": {"$geoWithin": {"$centerSphere": [[-119.7192861804, 34.4102485028], 100 / 3963.2]}}}
]
}
}
}
}
]
results = list(collection.aggregate(pipeline))
for result in results:
print(result)
في هذا المثال، يرجع البحث عن تشابه المتجهات أعلى k أقرب المتجهات استنادا إلى مقياس التشابه المحدد COS ، مع تصفية النتائج لتضمين الأعمال المفتوحة فقط ضمن نصف قطر 100 ميل.
[
{
similarityScore: 0.9745354109084544,
document: {
_id: ObjectId("645acb54413be5502badff94"),
name: 'Eugenia Lopez',
bio: 'CEO of AdventureWorks',
is_open: 1,
location: [-118.9865, 34.0145],
contentVector: [0.52, 0.20, 0.23]
}
},
{
similarityScore: 0.9006955671333992,
document: {
_id: ObjectId("645acb54413be5502badff97"),
name: 'Rory Nguyen',
bio: 'President of Our Planet initiative',
is_open: 1,
location: [-119.7302, 34.4005],
contentVector: [0.91, 0.76, 0.83]
}
}
]
تظهر هذه النتيجة أعلى الوثائق المشابهة ل queryVector؛ مقيدة بنصف قطر 100 ميل والأعمال المفتوحة. كل نتيجة تتضمن درجة التشابه والبيانات الوصفية، مما يوضح كيف يدعم DiskANN في Azure DocumentDB الاستعلامات المتجهية والجغرافية المكانية المجمعة لتجارب البحث الغنية والحساسة للموقع.
الحصول على تعريفات فهرس المتجهات
لاسترداد تعريف فهرس المتجهات من المجموعة، استخدم listIndexes الأمر :
db.exampleCollection.getIndexes();
في هذا المثال، vectorIndex يتم إرجاع مع كافة cosmosSearch المعلمات التي تم استخدامها لإنشاء الفهرس:
[
{ v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.exampleCollection' },
{
v: 2,
key: { vectorContent: 'cosmosSearch' },
name: 'vectorSearchIndex',
cosmosSearch: {
kind: <index_type>, // options are `vector-ivf`, `vector-hnsw`, and `vector-diskann`
numLists: 3,
similarity: 'COS',
dimensions: 3
},
ns: 'test.exampleCollection'
}
]
بحث متجه تمت تصفيته
يمكنك الآن تنفيذ عمليات البحث الموجهة باستخدام أي عامل تصفية استعلام معتمد مثل $ltو$lte$eq$neq$gte$gt$in$nin.$regex
لاستخدام الترشيح المسبق، تحتاج أولا إلى تعريف مؤشر معياري على الخاصية التي تريد التصفية بها، بالإضافة إلى مؤشر المتجه. فيما يلي مثال على إنشاء فهرس عامل تصفية:
db.runCommand({
"createIndexes": "<collection_name>",
"indexes": [ {
"key": {
"<property_to_filter>": 1
},
"name": "<name_of_filter_index>"
}
]
});
بمجرد أن يكون مؤشر الفلتر في مكانه، يمكنك إضافة الجملة "filter" مباشرة إلى استعلام البحث المتجه. يوضح هذا المثال كيفية تصفية النتائج التي لا تكون قيمة الخاصية "title" فيها موجودة في القائمة المقدمة:
db.exampleCollection.aggregate([
{
'$search': {
"cosmosSearch": {
"vector": "<query_vector>",
"path": <path_to_vector>,
"k": num_results,
"filter": {<property_to_filter>: {"$nin": ["not in this text", "or this text"]}}
},
"returnStoredSource": True }},
{'$project': { 'similarityScore': { '$meta': 'searchScore' }, 'document' : '$$ROOT' }
}
]);
Important
لتحسين أداء ودقة عمليات البحث عن المتجهات التي تمت تصفيتها مسبقا، ضع في اعتبارك ضبط معلمات فهرس البيانات الاتجاهية. بالنسبة لمؤشرات DiskANN ، فإن الزيادة maxDegree أو lBuild قد تؤدي إلى نتائج أفضل. بالنسبة لفهارس HNSW ، فإن تجربة قيم أعلى ل m، efConstructionأو efSearch يمكن أن يحسن الأداء. وبالمثل ، بالنسبة لمؤشرات التلقيح الاصطناعي ، يمكن أن يؤدي الضبط numLists أو nProbes يمكن أن يؤدي إلى نتائج أكثر إرضاء. من الأهمية بمكان اختبار التكوين المحدد الخاص بك مع بياناتك للتأكد من أن النتائج تلبي متطلباتك. تؤثر هذه المعلمات على بنية الفهرس وسلوك البحث، ويمكن أن تختلف القيم المثلى استنادا إلى خصائص البيانات وأنماط الاستعلام.
استخدم أدوات تنسيق نماذج اللغة الكبيرة (LLM)
استخدم كقاعدة بيانات متجهة مع Kernel الدلالي
استخدم النواة الدلالية لتنظيم استرجاع معلوماتك من Azure DocumentDB ونموذج اللغة الكبيرة الخاص بك. لمزيد من المعلومات، راجع مستودع GitHub.
استخدم كقاعدة بيانات متجهة مع LangChain
استخدم LangChain لتنظيم استرجاع المعلومات من Azure DocumentDB ونموذج اللغة الكبيرة الخاص بك. لمزيد من المعلومات، راجع تكاملات LangChain ل Azure DocumentDB.
استخدم كذاكرة تخزين مؤقت دلالية مع LangChain
استخدم LangChain وAzure DocumentDB لتنسيق التخزين المؤقت الدلالي، باستخدام استجابات نماذج اللغة الكبيرة المسجلة مسبقا والتي توفر عليك تكاليف واجهات برمجة تطبيقات نماذج اللغة الكبيرة وتقلل من زمن الاستجابة للاستجابات. لمزيد من المعلومات، راجع تكامل LangChain مع Azure DocumentDB.
الميزات والقيود
- مقاييس المسافة المدعومة: L2 (إقليديان)، والمنتج الداخلي، والجيب المشترك.
- أساليب الفهرسة المدعومة: IVFFLAT وHNSW و DiskANN.
- باستخدام DiskANN وتكميم المنتج، يمكنك فهرسة متجهات تصل إلى 16,000 بعد.
- يسمح استخدام HNSW أو IVF بنصف الدقة بفهرسة المتجهات حتى 4,000 بعد.
- بدون أي ضغط، يكون الحد الأقصى الافتراضي لبعد المتجه للفهرسة هو 2000.
- تنطبق الفهرسة على متجه واحد فقط لكل مسار.
- يمكنك إنشاء مؤشر واحد فقط لكل مسار متجه.
الملخص
يوضح هذا الدليل كيفية إنشاء فهرس متجه، وإضافة مستندات تحتوي على بيانات متجهة، وإجراء بحث في التشابه، واسترجاع تعريف الفهرس. باستخدام قاعدة بيانات المتجهات المتكاملة لدينا، يمكنك تخزين وفهرسة واستعلام بيانات المتجهات عالية الأبعاد مباشرة في Azure DocumentDB بكفاءة. يمكنك من إطلاق العنان للإمكانات الكاملة لبياناتك عبر عمليات تضمين المتجهات ، ويمكنك من إنشاء تطبيقات أكثر دقة وكفاءة وقوة.
محتوى ذو صلة
- حل مرجعي للبيع بالتجزئة بنمط .NET RAG
- نمط C# RAG - دمج OpenAI Services مع Cosmos
- نمط Python RAG - روبوت دردشة منتج Azure
- البرنامج التعليمي لدفتر ملاحظات Python - تكامل قاعدة بيانات المتجهات من خلال LangChain
- البرنامج التعليمي لدفتر ملاحظات Python - تكامل التخزين المؤقت LLM من خلال LangChain
- Python - تكامل LlamaIndex
- Python - تكامل ذاكرة Kernel الدلالية