qdrant

قاعدة البيانات الناقلة هي طريقة جديدة نسبيا للتفاعل مع تمثيلات البيانات المجردة، والتي تأتي من النماذج البيانية العميقة مثل الهياكل العميقة للتعلم الآلي. تُشار إلى هذه التمثيلات عادةً بأنها "فيكتور" أو "فيكتورات تضمين"، وهي نسخ مضغوطة من البيانات المستخدمة لتدريب نماذج التعلم الآلي على أداء مهام مثل تحليل المشاعر واعتراف الكلام وكشف الكائنات.

لقد أظهرت هذه القواعد الجديدة أداءً متميزًا في العديد من التطبيقات، مثل البحث الدلالي وأنظمة التوصيات.

ما هو Qdrant؟

qdrant

Qdrant هو قاعدة بيانات ناقلة مفتوحة المصدر مصممة لتطبيقات الذكاء الاصطناعي من الجيل التالي. إنها سحابية المنشأ وتوفر واجهات برمجة التطبيقات RESTful و gRPC لإدارة التضمينات. تتميز Qdrant بميزات قوية، تدعم البحث في الصور والصوت والفيديو، وكذلك التكامل مع محركات الذكاء الاصطناعي.

ما هي قاعدة بيانات الفيكتور؟

dbs

قاعدة بيانات الفيكتور هي نوع من قواعد البيانات مصممة خصيصًا لتخزين واستعلام الفيكتورات ذات الأبعاد العالية بكفاءة. في قواعد البيانات التقليدية OLTP و OLAP (كما هو موضح في الشكل أعلاه)، يتم تنظيم البيانات في صفوف وأعمدة (تُشار إليها باسم الـ جداول)، وتعتمد الاستعلامات على القيم في هذه الأعمدة. ومع ذلك، في بعض التطبيقات مثل التعرف على الصور ومعالجة اللغة الطبيعية وأنظمة التوصيات، يتم تمثيل البيانات غالبًا في شكل فيكتورات في فضاء ذو أبعاد عالية. تُشكل هذه الفيكتورات، جنبًا إلى جنب مع معرف (ID) وحمولة، العناصر المخزنة في قواعد بيانات الفيكتور مثل Qdrant.

في هذا السياق، الفيكتور هو التمثيل الرياضي لكائن أو نقطة بيانات، حيث يُقابل كل عنصر من الفيكتور ميزة أو خاصية للكائن. على سبيل المثال، في نظام التعرف على الصور، يمكن لفيكتور أن يمثل صورة، حيث يُمثل كل عنصر من الفيكتور قيم البيكسل أو ميزة/وصف البيكسل. في نظام التوصيات الموسيقية، يمثل كل فيكتور أغنية، حيث يُمثل كل عنصر من الفيكتور ميزة الأغنية مثل الإيقاع والنوع والكلمات وما إلى ذلك.

قواعد بيانات الفيكتور مُحسنة لتخزين الفيكتورات ذات الأبعاد العالية واستعلامها بكفاءة، وغالبًا ما تستخدم تقنيات هياكل بيانات متخصصة وتقنيات فهرسة مثل Hierarchical Navigable Small World (HNSW) للبحث التقريبي عن أقرب جار، والتقسيم المنتج. يمكن لهذه القواعد أن تتيح للمستخدمين العثور على الفيكتورات الأقرب إلى فيكتور الاستعلام المعطى وفقًا لمقياس المسافة معين، مما يُمكّن البحث السريع عن التشابه والدلالي. تشمل المقاييس المسافة الأكثر استخدامًا مقاييس المسافة اليوروكليدية وتشابه الجيب والضرب، وكلها مدعومة بالكامل في Qdrant.

إليك مقدمة موجزة حول هذه الخوارزميات الثلاثة لتشابه الفيكتور:

  • تشابه الجيب - تشابه الجيب هو مقياس للتشابه بين عنصرين. يمكن رؤيته كمسطرة تُستخدم لقياس المسافة بين نقطتين. ومع ذلك، بدلاً من قياس المسافة، يقيس التشابه بين عنصرين. يُستخدم عادة في مقارنة التشابه بين مستندات أو جملتين في النص. يتراوح نطاق الجيب من 0 إلى 1، حيث يشير الرقم 0 إلى التباين الكامل والرقم 1 يشير إلى التشابه الكامل. إنه طريقة بسيطة وفعالة لمقارنة عنصرين!
  • ضرب النقطة - تشابه ضرب النقطة هو مقياس آخر للتشابه بين عنصرين، مشابه لتشابه الجيب. عند التعامل مع الأرقام، يُستخدم غالبًا في التعلم الآلي وعلم البيانات. يُحسب تشابه ضرب النقطة عن طريق ضرب القيم في مجموعتين من الأرقام ومن ثم جمع هذه المنتجات. تشير مجموعة أعلى إلى تشابه أعلى بين مجموعتين من الأرقام. إنه مثل مقياس يقيس درجة التطابق بين مجموعتين من الأرقام.
  • مسافة اليوروكليدية - مسافة اليوروكليدية هي طريقة لقياس المسافة بين نقطتين في الفضاء، مشابهة لكيفية قياس المسافة بين مكانين على الخريطة. يُحسب من خلال إيجاد الجذر التربيعي لمجموع مربعات الاختلاف بين إحداثيات النقطتين. يُستخدم هذا الأسلوب لقياس المسافة بين نقطتين بيانات في علم البيانات لفهم مدى التشابه أو التباين بينهما.

الآن بما أننا نعرف ما هي قواعد بيانات الفيكتور وكيف تختلف هيكليًا عن قواعد البيانات الأخرى، دعنا نفهم لماذا هي مهمة.

لماذا نحتاج قاعدة بيانات الفيكتور؟

تلعب قواعد بيانات الفيكتور دورًا حاسمًا في مختلف التطبيقات التي تتطلب البحث عن الشبه ، مثل نظم التوصيات، استرجاع الصور القائم على المحتوى، والبحث الشخصي. من خلال الاستفادة من تقنيات فهرسة وبحث فعالة، يمكن لقواعد بيانات الفيكتور استرجاع البيانات غير المهيكلة الممثلة بصورة فيكتورات بشكل أسرع وأكثر دقة، مقدمة النتائج الأكثر صلة لاستعلام المستخدم.

بالإضافة إلى ذلك، فإن فوائد استخدام قاعدة بيانات الفيكتور تشمل أيضًا:

  1. تخزين فعال وفهرسة للبيانات ذات الأبعاد العالية.
  2. القدرة على التعامل مع مجموعات بيانات ذات مقياس كبير يحتوي على مليارات نقاط بيانات.
  3. دعم التحليل والاستعلام في الوقت الحقيقي.
  4. القدرة على التعامل مع فيكتورات مستمدة من أنواع بيانات معقدة مثل الصور، ومقاطع الفيديو، والنصوص الطبيعية.
  5. تحسين أداء تطبيقات التعلم الآلي والذكاء الاصطناعي مع الحد من التأخير.
  6. الحد من الوقت والتكاليف اللازمة لتطوير ونشر الحلول المخصصة مقارنة ببناء الحلول النمطية.

يرجى ملاحظة أن فوائد استخدام قاعدة بيانات الفيكتور الخاصة بك قد تتغير بشكل محدد اعتمادًا على حالات الاستخدام الخاصة بمؤسستك ووظائف قاعدة البيانات المختارة.

الآن، دعونا نأخذ تقييمًا عالي المستوى لهندسة معمارية Qdrant.

نظرة عامة عالية المستوى لهندسة معمارية Qdrant

qdrant

يوفر الشكل أعلاه نظرة عامة على المكونات الرئيسية ل Qdrant. وفيما يلي بعض المصطلحات الرئيسية المتعلقة بـ Qdrant:

  • المجموعات: المجموعات هي مجموعة من النقاط المسماة (فيكتورات مع بيانات محمولة - أساسًا بيانات فيكتور). ببساطة، المجموعات مشابهة للجداول في MySQL، والنقاط مشابهة لصفوف البيانات داخل تلك الجداول. يمكن البحث بين هذه النقاط. يجب أن تحتوي كل فيكتور في نفس المجموعة على نفس الأبعاد ويجب مقارنته باستخدام مقياس واحد. يمكن استخدام الفيكتورات المسماة لتحتوي على عدة فيكتورات في نقطة واحدة، كل منها بأبعادها الخاصة ومتطلبات المقياس.
  • المقياس: قياس يستخدم لكمّة الشبه بين الفيكتورات، ويجب اختياره عند إنشاء مجموعة. اختيار المقياس يعتمد على طريقة الحصول على الفيكتور، وخاصة للشبكات العصبية المستخدمة لتشفير الاستعلامات الجديدة (المقياس هو خوارزمية الشبه التي نختارها).
  • النقاط: النقاط هي الكيانات الأساسية التي تتعامل معها Qdrant، وتتألف من فيكتورات ومعرفات اختيارية وبيانات محمولة (مشابهة لصفوف البيانات في جدول MySQL).
    • المعرف: المعرف الفريد للفيكتور.
    • فيكتور: تمثيل ذو أبعاد عالية للبيانات، مثل الصور، الصوت، المستندات، مقاطع الفيديو، إلخ.
    • بيانات محمولة: كائن JSON يمكن إضافته إلى الفيكتور كبيانات إضافية (تُستخدم أساسًا لتخزين الخصائص التجارية المرتبطة بالفيكتور).
  • التخزين: يمكن لـ Qdrant استخدام اثنين من خيارات التخزين - تخزين في الذاكرة (تخزين جميع الفيكتورات في الذاكرة، مما يوفر أعلى سرعة، حيث يتم استخدام الوصول إلى القرص فقط للصمود) وتخزين Memmap (إنشاء مساحة عنوان افتراضية مرتبطة بالملفات على القرص).
  • العملاء: يمكنك الاتصال بـ Qdrant باستخدام SDKs لغات البرمجة أو التفاعل مباشرة مع Qdrant باستخدام واجهة REST الخاصة به.