Search⌘ K
AI Features

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Vector databases
Vector databases

قاعدة بيانات كروما

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

Chroma DB easy integration with LLMs
Chroma DB easy integration with LLMs

فيما يلي أبرز ميزات قاعدة بيانات كروما:

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

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

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

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

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

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

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 التخزين في الذاكرة (تخزين المتجهات في ذاكرة الوصول العشوائي للوصول عالي السرعة) وتخزين memmap (إنشاء مساحة عنوان افتراضية مرتبطة بملف قرص).

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

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.

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 بسلاسة مع أنظمة وأدوات البيانات الأخرى، مما يسهل إدارة البيانات واسترجاعها بسلاسة. وهو يدعم مصادر بيانات متنوعة ويمكن دمجه في مسارات البيانات الحالية.

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

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

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

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

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

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

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

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