...

/

نظرة عامة على قواعد بيانات المتجهات مفتوحة المصدر

نظرة عامة على قواعد بيانات المتجهات مفتوحة المصدر

استكشف قواعد بيانات المتجهات مفتوحة المصدر وفهم سبب عجز قواعد البيانات التقليدية عن تلبية احتياجات التطبيقات الحديثة التي تعتمد على الذكاء الاصطناعي.

سنغطي ما يلي...

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

قد تتساءل لماذا لا تستطيع قواعد البيانات التقليدية معالجة بيانات المتجهات بكفاءة، ولماذا نحتاج إلى قاعدة بيانات متخصصة. لنستكشف الأمر.

لماذا لا نستخدم قواعد البيانات التقليدية؟

قواعد البيانات التقليدية، مثل قواعد البيانات العلائقية (مثل MySQL و PostgreSQL) وقواعد بيانات NoSQL (مثل MongoDB وCassandra)، ليست مناسبة لتخزين البيانات المتجهة والاستعلام عنها لعدة أسباب. تشمل هذه الأسباب بنية البيانات وتقنيات الفهرسة، وقدرات الاستعلام، والأداء وقابلية التوسع، وخاصةً التطبيقات وحالات الاستخدام التي تُستخدم فيها تضمينات المتجهات.

بنية البيانات والفهرسة

صُممت قواعد البيانات التقليدية لتخزين البيانات المُهيكلة في صفوف وأعمدة، وهو ما يُناسب البيانات التصنيفية والعددية، ولكنه ليس كذلك بالنسبة لبيانات المتجهات عالية الأبعاد. بينما صُممت قواعد بيانات المتجهات خصيصًا لتخزين بيانات المتجهات عالية الأبعاد، فإنها تستخدم هياكل بيانات مثل المصفوفات أو التنسيقات المتخصصة لتخزين المتجهات.

تستخدم قواعد البيانات التقليدية آليات فهرسة مثل أشجار B، ومؤشرات التجزئة، وأشجار R المُحسّنة لاستعلامات النطاقات وعمليات البحث عن التطابق التام. هذه الطرق غير فعّالة في المساحات عالية الأبعاد التي تتطلب البحث عن التشابه. تستخدم قواعد بيانات المتجهات تقنيات فهرسة متقدمة مثل HNSW (رسوم بيانية للعالم الصغير الهرمي القابل للتنقل)، وIVF (فهرس الملف المقلوب)، وPQ (تكميم المنتج)، وهي مُحسّنة للبحث عن التشابه في المساحات عالية الأبعاد.

إمكانيات الاستعلام

قواعد البيانات التقليدية مُحسّنة لاستعلامات المطابقة التامة (مثلاً، البحث عن السجل ذي المعرف = 123) واستعلامات النطاق (مثلاً، البحث عن جميع السجلات التي يكون فيها العمر > 30). قواعد بيانات المتجهات مصممة للبحث عن التشابه، مما يسمح باسترجاع المتجهات القريبة من متجه استعلام مُحدد بكفاءة.

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

الأداء وقابلية التوسع

قد يؤدي تخزين المتجهات عالية الأبعاد والاستعلام عنها في قواعد البيانات التقليدية إلى اختناقات في الأداء بسبب ضعف كفاءة الفهرسة ونقص تحسين عمليات المتجهات. تُحسّن قواعد بيانات المتجهات لعمليات متجهات عالية الأداء، مما يُتيح عمليات بحث سريعة عن التشابه حتى مع مجموعات البيانات الكبيرة.

يتطلب التعامل مع بيانات المتجهات واسعة النطاق هياكل بيانات وخوارزميات متخصصة لضمان قابلية التوسع وسرعة استرجاع البيانات، وهو ما تفتقر إليه قواعد البيانات التقليدية. تُبنى العديد من قواعد بيانات المتجهات مع مراعاة قابلية التوسع، وغالبًا ما تدعم التخزين والحوسبة الموزعة لمعالجة البيانات واسعة النطاق بكفاءة.

حالات الاستخدام والتطبيقات

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

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

قواعد بيانات المتجهات مفتوحة المصدر

اكتسبت العديد من قواعد بيانات المتجهات مفتوحة المصدر شعبيةً واسعةً بفضل ميزاتها القوية ومجتمعاتها النشطة. في هذا الدرس، سنناقش بعضًا من أبرزها كما هو موضح في الرسم التوضيحي التالي:

Press + to interact
Vector databases
Vector databases

كروما دي بي

كروما دي بي (Chroma DB) هي قاعدة بيانات متجهات خفيفة وسهلة الاستخدام، مصممة للبحث عن التشابه وتخزين التضمينات. تهدف إلى تبسيط إدارة بيانات المتجهات والاستعلام عنها، مع توفير إمكانيات بحث فعّالة. تُسهّل كروما تطوير تطبيقات ماجستير الحقوق (LLM) من خلال دمج المعرفة والحقائق والمهارات بسلاسة في برامج ماجستير الحقوق.

Press + to interact
Chroma DB easy integration with LLMs
Chroma DB easy integration with LLMs

فيما يلي الميزات البارزة لـ Chroma DB:

  • سهولة التكامل مع نماذج اللغات الكبيرة: صُممت قاعدة بيانات ChromaDB للتكامل بسلاسة مع نماذج اللغات الكبيرة. يمكنها توليد تضمينات (تمثيلات متجهية) من بيانات نصية باستخدام نموذج التضمين الافتراضي، وتخزين هذه التضمينات واسترجاعها بكفاءة لاستخدامها في تطبيقات متنوعة. كما توفر خيار اختيار نموذج تضمين محدد، بما في ذلك نافذة منبثقة التضمين متعدد الوسائط، أو تحديد دوال تضمين مخصصة.

  • تخزين المستندات والتضمين: يخزن ChromaDB كلاً من المستندات الأصلية والتضمينات المقابلة لها. يضمن نظام التخزين المزدوج هذا توفر النص وتمثيله المتجهي بسهولة لمعالجة الاستعلامات واسترجاعها بكفاءة.

  • بحث سريع ودقيق عن أقرب جار: صُممت ChromaDB خصيصًا للتطبيقات التي تتطلب بحثًا سريعًا ودقيقًا عن أقرب جار. تضمن خوارزمياتها وهياكل بياناتها المُحسّنة استرجاعًا سريعًا للعناصر المتشابهة من مجموعات البيانات الضخمة، مما يجعلها مثالية لأنظمة التوصية ومحركات البحث وتحليل البيانات في الوقت الفعلي.

FAISS (بحث التشابه مع الذكاء الاصطناعي على فيسبوك)

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

يوفر FAISS مجموعة متنوعة من أساليب البحث عن التشابه، مصممة لتلبية مختلف متطلبات الاستخدام. ومن أبرز ميزاته تحسين استخدام الذاكرة والسرعة، مما يجعله فعالاً في التعامل مع مجموعات البيانات الضخمة. كما يدمج FAISS أحدث تطبيقات وحدات معالجة الرسومات (GPU) لأهم أساليب الفهرسة، مستفيداً من قوة وحدات معالجة الرسومات الحاسوبية لتسريع عمليات البحث.

Press + to interact
Building index in RAM by compressing the original vector. Trade-off between speed and accuracy is made for a fixed memory usage
Building index in RAM by compressing the original vector. Trade-off between speed and accuracy is made for a fixed memory usage

وفيما يلي السمات البارزة لـ FAISS:

  • الفهرسة في الذاكرة: يُنشئ FAISS فهارس في ذاكرة الوصول العشوائي (RAM)، مما يسمح بزمن استرجاع سريع للغاية. يُعد هذا مفيدًا بشكل خاص لتطبيقات الوقت الفعلي حيث يكون زمن الوصول المنخفض أمرًا بالغ الأهمية.

  • مرونة عالية : يوفر نظام FAISS مرونة عالية مع دعم مختلف تقنيات الفهرسة ومعايير البحث. يستخدم تقنيات ضغط المتجهات لإدارة استخدام الذاكرة بفعالية، ويوفر مرونة في سرعة ودقة التداول. هذا يسمح للمستخدمين بتخصيصه للتعامل مع مختلف مستويات دقة البحث عن البيانات والموارد الحاسوبية.

كوادرانت

Qdrant هي قاعدة بيانات متجهات موزعة وقابلة للتوسع بدرجة عالية، مُحسّنة لعمليات البحث عن التشابه في البيانات عالية الأبعاد. توفر إمكانيات بحث آنية، وتدعم تخزينًا واسترجاعًا فعالين للمتجهات. يُقدم الرسم البياني أدناه لمحة عامة عن مكونات Qdrant الرئيسية، مع تقديم المصطلحات مفتاح لفهم وظائفها:

  • المجموعات: هي مجموعات مُسمّاة من النقاط تُستخدم للبحث. تتكون كل مجموعة من متجهات مع حمولات مرتبطة بها. يجب أن تتشارك جميع المتجهات داخل المجموعة نفس الأبعاد والمقياس.

  • مقاييس المسافة: عند إنشاء مجموعة، يختار المستخدمون مقاييس المسافة لقياس تشابه المتجهات. تعتمد هذه المقاييس على عوامل مثل أصل المتجهات والشبكة العصبية المستخدمة لترميز الاستعلامات.

  • النقاط: هذه هي الكيانات المركزية داخل Qdrant، وتتكون من متجه، وبشكل اختياري، معرف حمولة.

  • المعرف: هذه هي معرفات فريدة للمتجهات.

  • المتجه: وهي عبارة عن تمثيلات بيانات عالية الأبعاد، مثل الصور، أو الأصوات، أو المستندات، أو مقاطع الفيديو.

  • الحمولة: هي بيانات JSON الإضافية المرتبطة بمتجه.

  • التخزين: يدعم Qdrant التخزين في الذاكرة (تخزين المتجهات في ذاكرة الوصول العشوائي (RAM) للوصول عالي السرعة) وتخزين memmap (إنشاء مساحة عنوان افتراضية مرتبطة بملف قرص).

  • العملاء: هذه هي لغات البرمجة المدعومة للاتصال بـ Qdrant.

Press + to interact
Support for multiple programming languages and flexible storage options, including in-memory and memmap storage
Support for multiple programming languages and flexible storage options, including in-memory and memmap storage

وفيما يلي الميزات البارزة لـ Qdrant:

  • دعم لغات متعددة: يدعم Qdrant لغات برمجة متنوعة، بما في ذلك Python، Rust، Go، وتيب TypeScript. تتيح هذه المرونة للمطورين اختيار لغتهم المفضلة ودمج Qdrant في سير عملهم الحالي.

  • خيارات تخزين مرنة: يوفر Qdrant خياري تخزين داخل الذاكرة وتخزين مُخصّص للذاكرة. تُساعد هذه المرونة على موازنة احتياجات الأداء مع توافر الموارد.

  • دعم البيانات الوصفية الغنية: يمكن لـ Qdrant ربط البيانات الوصفية الغنية (على سبيل المثال، URI للصورة، والأنواع) بالمتجهات، مما يعزز السياق ويجعل البيانات أكثر إفادة لنماذج التعلم الآلي.

ميلفوس

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

  • طبقة الوصول: تُعنى نقطة الاتصال الأولية هذه بالطلبات الخارجية عبر وكلاء عديمي الجنسية، وتُدير اتصالات عميل ، وتُحقق التحقق، وتُوازن الأحمال. تُسهّل هذه الوكلاء حزمة واجهات API الشاملة من Milvus، وتُعيد توجيه الاستجابات إلى المستخدمين بعد معالجة الطلبات.

  • خدمة المنسق: بصفتها مركز القيادة المركزي، تُنسّق هذه الخدمة موازنة الأحمال وإدارة البيانات عبر أربعة منسقين. يُشرف هؤلاء المنسقون على المهام المتعلقة بالبيانات والاستعلامات والفهرسة.

    • يتولى منسق الجذر إدارة مهام البيانات والطوابع الزمنية العالمية.

    • يشرف منسق الاستعلام على عقد الاستعلام لعمليات البحث.

    • يتولى منسق البيانات التعامل مع عقد البيانات والبيانات الوصفية.

    • يحافظ منسق الفهرس على عقد الفهرس والبيانات الوصفية.

  • عُقد العمل: تُنفِّذ هذه الوحدات القابلة للتطوير مهامًا يُديرها مُنسِّقون، مُتكيِّفةً ديناميكيًا مع المتطلبات المُتغيرة للبيانات والاستعلامات والفهرسة. وتلعب دورًا محوريًا في دعم قابلية ميلفوس للتطوير والضبط.

  • طبقة تخزين الكائنات : وهي ضرورية لاستمرار البيانات؛ وتشمل هذه الطبقة:

    • Metastore: استخدام etcd لالتقاط البيانات الوصفية والتحقق من صحة النظام.

    • وسيط السجل: تسهيل استمرارية تدفق البيانات واستردادها، باستخدام Pulsar أو RocksDB.

    • تخزين الكائنات: تخزين لقطات السجل وملفات الفهرس ونتائج الاستعلام، متوافق مع خدمات مثل AWS S3، وAzure Blob Storage، وMinIO.

Press + to interact
Flexibility to use various object storage options and a scalable, adjustable multi-layer architecture that supports dynamic adjustments to data, query, and indexing demands
Flexibility to use various object storage options and a scalable, adjustable multi-layer architecture that supports dynamic adjustments to data, query, and indexing demands

وفيما يلي السمات البارزة لميلفوس:

  • دعم النشر الموزع: يدعم Milvus النشر الموزع، مما يسمح له بالتوسع أفقيًا عبر عدة عقد. يتيح ذلك التعامل مع مجموعات البيانات الضخمة وأحمال الاستعلامات العالية من خلال توزيع البيانات والمهام الحسابية. كما يضمن تحمّل الأخطاء وتوافرًا عاليًا، مما يجعله مثاليًا لتطبيقات البيانات الضخمة.

  • مجموعة متنوعة من أنواع الفهارس: يدعم Milvus مجموعة واسعة من أنواع الفهارس، بما في ذلك IVF وHNSW وPQ. تتيح هذه المرونة للمستخدمين اختيار استراتيجية الفهرسة الأنسب بناءً على خصائص بياناتهم ومتطلبات الاستعلام الخاصة بهم، مما يُحسّن الأداء والدقة في مختلف حالات الاستخدام.

  • تكاملٌ غنيٌّ مع أنظمة البيانات: يتكامل Milvus بسلاسة مع أنظمة البيانات وأدواتها الأخرى، مما يُسهّل إدارة البيانات واسترجاعها بسلاسة. يدعم Milvus مصادر بيانات متنوعة، ويمكن دمجه في قنوات البيانات الحالية.

اعتبارات رئيسية لاختيار قاعدة بيانات متجهة

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

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

  • قابلية التوسع والأداء: يُعدّ قابلية التوسع والأداء عاملين أساسيين، خاصةً للمشاريع التي تتعامل مع مجموعات بيانات ضخمة أو كميات كبيرة من الاستعلامات. ابحث عن قواعد بيانات توفر خوارزميات فهرسة وبحث فعّالة، بالإضافة إلى دعمها للبنى الموزعة. بالإضافة إلى ذلك، ضع في اعتبارك معايير أداء قاعدة البيانات وقدرتها على التعامل مع الاستعلامات الفورية.

  • خيارات النشر: ضع في اعتبارك تفضيلات النشر عند اختيار قاعدة بيانات متجهة. قد توفر بعض قواعد البيانات حلولاً سحابية مع خدمات مُدارة، بينما قد تكون قواعد بيانات أخرى أكثر ملاءمةً لعمليات النشر ذاتية الاستضافة. قيّم قابلية التوسع والموثوقية والتكاليف المترتبة على كل خيار نشر لاختيار الأنسب لمشروعك.

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

  • الميزات والوظائف: قيّم الميزات والوظائف التي توفرها كل قاعدة بيانات متجهة للتأكد من توافقها مع متطلبات مشروعك. ابحث عن إمكانيات مثل دعم مقاييس المسافة المختلفة، وآليات الفهرسة والاسترجاع الفعّالة، والدعم المدمج لإدارة البيانات الوصفية. بالإضافة إلى ذلك، ضع في اعتبارك أي ميزات أو تحسينات متخصصة مصممة خصيصًا لحالات استخدام محددة.

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