ما هو ميلفوس؟

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

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

تم تطويره من قبل Zilliz وسرعان ما تم التبرع به لمؤسسة LF AI & Data Foundation التابعة لمؤسسة لينكس، وقد أصبح Milvus أحد مشاريع قواعد البيانات المتجهة الرائدة في العالم مفتوحة المصدر. يتم توزيعه بموجب ترخيص Apache 2.0، ومعظم المساهمين فيه هم خبراء من مجتمع الحوسبة عالية الأداء (HPC)، متخصصون في بناء أنظمة واسعة النطاق وتحسين التعليمات البرمجية المدركة للأجهزة. ومن بين المساهمين الأساسيين محترفون من Zilliz، و ARM، و NVIDIA، و AMD، و Intel، و Meta، و IBM، و Salesforce، و Alibaba، و Microsoft.

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

البيانات غير المهيكلة، والتضمينات، وميلفوس

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

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

Untructured data, embeddings, and Milvus البيانات غير المهيكلة، والتضمينات، و Milvus

يوفر Milvus ثلاثة أوضاع للنشر، تغطي مجموعة واسعة من مقاييس البيانات - من النماذج الأولية المحلية في دفاتر Jupyter Notebooks إلى مجموعات Kubernetes الضخمة التي تدير عشرات المليارات من المتجهات:

  • Milvus Lite هي مكتبة بايثون يمكن دمجها بسهولة في تطبيقاتك. وباعتبارها نسخة خفيفة الوزن من Milvus، فهي مثالية للنماذج الأولية السريعة في دفاتر Jupyter Notebooks أو التشغيل على أجهزة متطورة ذات موارد محدودة. اعرف المزيد.
  • Milvus Standalone هو عبارة عن نشر خادم أحادي الجهاز، مع تجميع جميع المكونات في صورة Docker واحدة للنشر المريح. اعرف المزيد.
  • يمكن نشر Milvus Distributed على مجموعات Kubernetes، والتي تتميز ببنية سحابية أصلية مصممة لسيناريوهات على نطاق مليار أو حتى سيناريوهات أكبر. تضمن هذه البنية التكرار في المكونات الهامة. اعرف المزيد.

ما الذي يجعل ميلفوس سريعًا جدًا?

تم تصميم Milvus منذ اليوم الأول ليكون نظام قاعدة بيانات متجه عالي الكفاءة. في معظم الحالات، يتفوق Milvus على قواعد البيانات المتجهة الأخرى بمعدل 2-5 أضعاف (راجع نتائج VectorDBBench). هذا الأداء العالي هو نتيجة للعديد من قرارات التصميم الرئيسية:

التحسين المدرك للأجهزة: لاستيعاب Milvus في بيئات الأجهزة المختلفة، قمنا بتحسين أدائه خصيصًا للعديد من بنيات الأجهزة والمنصات، بما في ذلك AVX512 وSIMD ووحدات معالجة الرسومات وNVMe SSD.

خوارزميات بحث متقدمة: يدعم Milvus مجموعة واسعة من خوارزميات الفهرسة/البحث في الذاكرة وعلى القرص، بما في ذلك خوارزميات الفهرسة/البحث في الذاكرة وعلى القرص، بما في ذلك IVF وHNSW وDiskANN وغيرها، والتي تم تحسينها جميعًا بشكل كبير. ومقارنةً بالتطبيقات الشائعة مثل FAISS وHNSWLib، يقدم Milvus أداءً أفضل بنسبة 30%-70%.

محرك البحث في C++: يتم تحديد أكثر من 80% من أداء قاعدة البيانات المتجهة من خلال محرك البحث الخاص بها. Milvus uses C++ for this critical component due to the language’s high performance, low-level optimization, and efficient resource management. والأهم من ذلك أن Milvus يدمج العديد من التحسينات البرمجية المدركة للأجهزة، بدءًا من التحسينات على مستوى التجميع إلى التوازي والجدولة متعددة الخيوط للاستفادة الكاملة من قدرات الأجهزة.

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

ما الذي يجعل ميلفوس قابلاً للتطوير

في عام 2022، دعمت Milvus المتجهات على نطاق مليار متجه، وفي عام 2023، توسعت إلى عشرات المليارات مع ثبات ثابت، مما أدى إلى تشغيل سيناريوهات واسعة النطاق لأكثر من 300 شركة كبرى، بما في ذلك Salesforce وPayPal وShopee وAirbnb وEbnb وEbay وNVIDIA وIBM وAT&T وLINE وRobLOX وInflection وغيرها.

تضمن بنية نظام ميلفوس السحابية الأصلية والمنفصلة للغاية أن النظام يمكن أن يتوسع باستمرار مع نمو البيانات:

Highly decoupled system architecture of Milvus بنية النظام المنفصلة للغاية في ميلفوس

إن Milvus نفسه عديم الحالة بالكامل، لذا يمكن توسيعه بسهولة بمساعدة Kubernetes أو السحابة العامة. بالإضافة إلى ذلك، تم فصل مكونات Milvus بشكل جيد، حيث تم تصميم المهام الثلاث الأكثر أهمية - البحث، وإدراج البيانات، والفهرسة/التجميع - كعمليات متوازية بسهولة، مع فصل المنطق المعقد. يضمن ذلك إمكانية توسيع نطاق عقدة الاستعلام وعقدة البيانات وعقدة الفهرس المقابلة لها بشكل مستقل، مما يحسّن الأداء وكفاءة التكلفة.

أنواع عمليات البحث التي تدعمها ميلفوس

يدعم Milvus أنواعًا مختلفة من وظائف البحث لتلبية متطلبات حالات الاستخدام المختلفة:

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

مجموعة الميزات الشاملة

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

واجهة برمجة التطبيقات ومجموعة أدوات تطوير البرمجيات

أنواع البيانات المتقدمة

بالإضافة إلى أنواع البيانات البدائية، تدعم ميلفوس أنواع بيانات متقدمة مختلفة ومقاييس المسافة المطبقة الخاصة بها.

لماذا ميلفوس؟

  • الأداء العالي على نطاق واسع والتوافر العالي

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

  • دعم مختلف أنواع الفهرس المتجه وتسريع الأجهزة

    يفصل Milvus بين النظام ومحرك البحث المتجه الأساسي، مما يسمح له بدعم جميع أنواع الفهرس المتجه الرئيسية التي تم تحسينها لسيناريوهات مختلفة، بما في ذلك HNSW و IVF و FLAT (القوة الغاشمة) و SCANN و DiskANN، مع الاختلافات القائمة على التكميم و mmap. يعمل Milvus على تحسين البحث المتجه للميزات المتقدمة مثل تصفية البيانات الوصفية والبحث في النطاق. بالإضافة إلى ذلك، يطبّق Milvus تسريع الأجهزة لتحسين أداء البحث المتجه ويدعم فهرسة وحدة معالجة الرسومات، مثل CAGRA من NVIDIA.

  • مرونة تعدد الاستئجار والتخزين المرن والبارد/التخزين الساخن/البارد

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

  • المتجهات المتفرقة للبحث في النص الكامل والبحث الهجين

    بالإضافة إلى البحث الدلالي من خلال المتجهات الكثيفة، يدعم Milvus أيضًا البحث في النص الكامل مع BM25 بالإضافة إلى التضمين المتناثر المتعلم مثل SPLADE وBGE-M3. يمكن للمستخدمين تخزين المتجه المتناثر والمتجه الكثيف في نفس المجموعة، وتحديد وظائف لإعادة ترتيب النتائج من طلبات بحث متعددة. انظر أمثلة على البحث الهجين مع البحث الدلالي + البحث النصي الكامل.

  • أمن البيانات والتحكم في الوصول الدقيق

    يضمن Milvus أمان البيانات من خلال تطبيق المصادقة الإلزامية للمستخدم، وتشفير TLS، والتحكم في الوصول المستند إلى الأدوار (RBAC). تضمن مصادقة المستخدم أن المستخدمين المصرح لهم فقط الذين لديهم بيانات اعتماد صالحة يمكنهم الوصول إلى قاعدة البيانات، بينما يعمل تشفير TLS على تأمين جميع الاتصالات داخل الشبكة. بالإضافة إلى ذلك، يسمح نظام التحكم في الوصول القائم على التحكم في الوصول (RBAC) بالتحكم الدقيق في الوصول من خلال تعيين أذونات محددة للمستخدمين بناءً على أدوارهم. هذه الميزات تجعل من Milvus خيارًا قويًا وآمنًا لتطبيقات المؤسسات، مما يحمي البيانات الحساسة من الوصول غير المصرح به والانتهاكات المحتملة.

تكاملات الذكاء الاصطناعي

  • تضمين تكامل النماذج تضمين النماذج تضمين النماذج تحويل البيانات غير المهيكلة إلى تمثيلها الرقمي في مساحة بيانات عالية الأبعاد بحيث يمكنك تخزينها في Milvus. في الوقت الحالي، تدمج PyMilvus، وهي مجموعة تطوير البرمجيات Python SDK، العديد من نماذج التضمين بحيث يمكنك إعداد بياناتك بسرعة إلى تضمينات متجهة. لمزيد من التفاصيل، راجع نظرة عامة على التضمين.

  • تكامل نماذج إعادة الترتيب في مجال استرجاع المعلومات والذكاء الاصطناعي التوليدي، تُعد أداة إعادة الترتيب أداة أساسية تعمل على تحسين ترتيب النتائج من عمليات البحث الأولية. يدمج PyMilvus أيضًا العديد من نماذج إعادة الترتيب لتحسين ترتيب النتائج التي يتم إرجاعها من عمليات البحث الأولية. لمزيد من التفاصيل، ارجع إلى نظرة عامة على أدوات إعادة الترتيب.

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

الأدوات والمنظومة

  • Attu Attu عبارة عن واجهة مستخدم رسومية بديهية شاملة تساعدك على إدارة Milvus والبيانات التي يخزنها. لمزيد من التفاصيل، راجع مستودع Attu.

  • Birdwatcher Birdwatcher هي أداة تصحيح أخطاء ميلفوس. باستخدامها للاتصال بـ etcd، يمكنك التحقق من حالة نظام ميلفوس الخاص بك أو تهيئته أثناء التنقل. لمزيد من التفاصيل، راجع BirdWatcher.

  • تكامل بروميثيوس وغرافانا Prometheus و Grafana Prometheus هي مجموعة أدوات مفتوحة المصدر لمراقبة النظام والتنبيه لـ Kubernetes. Grafana عبارة عن مكدس تصور مفتوح المصدر يمكنه الاتصال بجميع مصادر البيانات. يمكنك استخدام Promethus & Grafana كمزود خدمة مراقبة لمراقبة أداء موزع ميلفوس بصريًا. لمزيد من التفاصيل، راجع نشر خدمات المراقبة.

  • النسخ الاحتياطي ميلفوس النسخ الاحتياطي Milvus Backup Milvus Backup هي أداة تسمح للمستخدمين بالنسخ الاحتياطي واستعادة بيانات ميلفوس. وهي توفر كلاً من واجهة برمجة التطبيقات CLI وواجهة برمجة التطبيقات لتتناسب مع سيناريوهات التطبيقات المختلفة. لمزيد من التفاصيل، راجع ملف Milvus Backup.

  • أداة Milvus لالتقاط تغيير البيانات (CDC) يمكن لـ Milvus CDC نسخ تغييرات البيانات من مجموعة Milvus إلى أخرى لاستعادة البيانات في حالة الكوارث الاحتياطية الأساسية. للحصول على التفاصيل، ارجع إلى Milvus CDC.

  • موصلات Milvus خططت Milvus مجموعة من الموصلات لتتمكن من دمج Milvus بسلاسة مع أدوات الطرف الثالث، مثل Apache Spark. حاليًا، يمكنك استخدام موصل Spark Connector الخاص بنا لتغذية بيانات Milvus الخاصة بك إلى Apache Spark لمعالجة التعلم الآلي. للحصول على التفاصيل، راجع Spark-Milvus Connector.

  • خدمات نقل المتجهات (VTS) توفر Milvus مجموعة من الأدوات لتتمكن من نقل بياناتك بين مثيل Milvus ومجموعة من مصادر البيانات، بما في ذلك مجموعات Zilliz، وElasticsearch، وPostgres (PgVector)، ومثيل Milvus آخر. لمزيد من التفاصيل، راجع VTS.