ما هو ميلفوس؟
Milvus هي قاعدة بيانات متجهة عالية الأداء وقابلة للتطوير بشكل كبير تعمل بكفاءة عبر مجموعة واسعة من البيئات، من الكمبيوتر المحمول إلى الأنظمة الموزعة على نطاق واسع. وهي متاحة كبرنامج مفتوح المصدر وخدمة سحابية.
ميلفوس هو مشروع مفتوح المصدر تحت إشراف مؤسسة LF AI & Data Foundation موزعة بموجب ترخيص Apache 2.0. معظم المساهمين هم خبراء من مجتمع الحوسبة عالية الأداء (HPC)، متخصصون في بناء أنظمة واسعة النطاق وتحسين التعليمات البرمجية المدركة للأجهزة. من بين المساهمين الأساسيين متخصصون من Zilliz و ARM و NVIDIA و AMD و Intel و Meta و IBM و Salesforce و Alibaba و Microsoft.
البيانات غير المهيكلة والتضمينات وميلفوس
تتنوع البيانات غير المهيكلة، مثل النصوص والصور والصوت، من حيث التنسيق وتحمل دلالات أساسية غنية، مما يجعل تحليلها صعبًا. لإدارة هذا التعقيد، تُستخدم التضمينات لتحويل البيانات غير المهيكلة إلى متجهات رقمية تلتقط خصائصها الأساسية. ثم يتم تخزين هذه المتجهات في قاعدة بيانات متجهة، مما يتيح إجراء عمليات بحث وتحليلات سريعة وقابلة للتطوير.
يوفر Milvus إمكانات قوية لنمذجة البيانات، مما يتيح لك تنظيم بياناتك غير المنظمة أو متعددة الوسائط في مجموعات منظمة. وهو يدعم مجموعة واسعة من أنواع البيانات لنمذجة السمات المختلفة، بما في ذلك الأنواع العددية والحرفية الشائعة، وأنواع المتجهات المختلفة، والمصفوفات، والمجموعات، وJSON، مما يوفر عليك جهد الحفاظ على أنظمة قواعد بيانات متعددة.
البيانات غير المهيكلة، والتضمينات، و 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 هو نظام قاعدة بيانات متجه موجه نحو الأعمدة. تأتي المزايا الأساسية من أنماط الوصول إلى البيانات. عند إجراء الاستعلامات، تقرأ قاعدة البيانات الموجهة نحو الأعمدة فقط الحقول المحددة المتضمنة في الاستعلام، بدلاً من الصفوف بأكملها، مما يقلل بشكل كبير من كمية البيانات التي يتم الوصول إليها. بالإضافة إلى ذلك، يمكن تحويل العمليات على البيانات المستندة إلى الأعمدة بسهولة، مما يسمح بتطبيق العمليات على الأعمدة بأكملها في وقت واحد، مما يعزز الأداء بشكل أكبر.
ما الذي يجعل Milvus قابلاً للتطوير
في عام 2022، دعمت Milvus المتجهات على نطاق مليار متجه، وفي عام 2023، توسعت إلى عشرات المليارات مع ثبات ثابت، مما أدى إلى تشغيل سيناريوهات واسعة النطاق لأكثر من 300 شركة كبرى، بما في ذلك Salesforce وPayPal وShopee وAirbnb وEbnb وEbay وNVIDIA وIBM وAT&T وLINE وRobLOX وInflection وغيرها.
تضمن بنية نظام ميلفوس السحابية الأصلية والمنفصلة للغاية أن النظام يمكن أن يتوسع باستمرار مع نمو البيانات:
بنية النظام المنفصلة للغاية في ميلفوس
إن Milvus نفسه عديم الحالة بالكامل، لذا يمكن توسيع نطاقه بسهولة بمساعدة Kubernetes أو السحابة العامة. بالإضافة إلى ذلك، تم فصل مكونات Milvus بشكل جيد، حيث تم تصميم المهام الثلاث الأكثر أهمية - البحث، وإدخال البيانات، والفهرسة/التجميع - كعمليات متوازية بسهولة، مع فصل المنطق المعقد. يضمن ذلك إمكانية توسيع نطاق عقدة الاستعلام وعقدة البيانات وعقدة الفهرس المقابلة لها بشكل مستقل، مما يحسّن الأداء وكفاءة التكلفة.
أنواع عمليات البحث التي تدعمها ميلفوس
يدعم Milvus أنواعًا مختلفة من وظائف البحث لتلبية متطلبات حالات الاستخدام المختلفة:
- بحث الشبكة النانوية: البحث عن أفضل متجهات K الأقرب إلى متجه الاستعلام الخاص بك.
- بحث التصفية: يقوم بإجراء بحث ANN في ظل شروط تصفية محددة.
- بحث النطاق: البحث عن المتجهات داخل نصف قطر محدد من متجه الاستعلام الخاص بك.
- بحث هجين: إجراء بحث ANN بناءً على حقول متجهات متعددة.
- بحث بالنص الكامل: بحث بالنص الكامل استنادًا إلى BM25.
- إعادة الترتيب: يضبط ترتيب نتائج البحث استنادًا إلى معايير إضافية أو خوارزمية ثانوية، مع تنقيح نتائج بحث الشبكة العصبية الاصطناعية الأولية.
- إحضار: استرجاع البيانات حسب مفاتيحها الأساسية.
- استعلام: استرجاع البيانات باستخدام تعبيرات محددة.
مجموعة الميزات الشاملة
بالإضافة إلى ميزات البحث الرئيسية المذكورة أعلاه، يوفر Milvus أيضًا مجموعة من الميزات المنفذة حول عمليات بحث الشبكة الوطنية للبحث بحيث يمكنك الاستفادة الكاملة من إمكانياته.
واجهة برمجة التطبيقات و SDK
- RESTful API (رسمي)
- PyMilvus (Python SDK) (رسمي)
- Go SDK (رسمي)
- جافا SDK (رسمي)
- Node.js (JavaScript) SDK (رسمي)
- C# (ساهمت بها مايكروسوفت)
أنواع البيانات المتقدمة
بالإضافة إلى أنواع البيانات البدائية، تدعم ميلفوس أنواع بيانات متقدمة مختلفة ومقاييس المسافة المطبقة الخاصة بها.
التسريع
خوارزميات البحث يدعم ميلفوس مجموعة من خوارزميات الفهرسة والبحث القابلة للضبط. لمزيد من التفاصيل، راجع الفهرس داخل الذاكرة والفهرس على القرص وفهرس وحدة معالجة الرسومات.
الأقسام ومفاتيح التقسيم الأقسام هي أقسام فرعية لمجموعة Milvus. يمكنك اختيار حقل قياسي كمفتاح التقسيم للحصول على أداء بحث أفضل. لمزيد من التفاصيل، راجع إدارة الأقسام واستخدام مفتاح القسم.
نموذج الاتساق القابل للضبط يضمن اتساق نموذج الاتساق أن كل عقدة أو نسخة متماثلة من Milvus لديها نفس طريقة عرض البيانات عند كتابة البيانات أو قراءتها في وقت معين. يمكنك ضبط مستوى الاتساق بسهولة عند إجراء عمليات بحث ANN في Milvus. لمزيد من التفاصيل، راجع الاتساق.
استيراد البيانات عالية الإنتاجية لاستيراد كمية كبيرة من البيانات إلى ملفوس بدلاً من إدراجها واحدة تلو الأخرى، فكر في استخدام أدوات استيراد البيانات عالية الإنتاجية. لمزيد من التفاصيل، راجع إعداد بيانات المصدر واستيراد البيانات.
دعم الإيجارات المتعددة نفذت Milvus الكثير من الميزات الموجهة لسيناريوهات الإيجارات المتعددة، بما في ذلك مفتاح التقسيم ومفتاح التجميع والمزيد. لمزيد من التفاصيل، راجع استراتيجيات تعدد الإيجارات.
الأمان والتخويل
نموذج الاتساق القابل للضبط يضمن اتساق نموذج الاتساق أن كل عقدة أو نسخة متماثلة من Milvus لديها نفس طريقة عرض البيانات عند كتابة البيانات أو قراءتها في وقت معين. يمكنك ضبط مستوى الاتساق بسهولة عند إجراء عمليات بحث ANN في 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 Capture Data Change (CDC) يمكن لـ Milvus-CDC التقاط ومزامنة البيانات المتزايدة في مثيلات Milvus ويضمن موثوقية بيانات الأعمال من خلال نقلها بسلاسة بين المثيلات المصدر والهدف، مما يسمح بالنسخ الاحتياطي التزايدي واستعادة البيانات في حالات الكوارث بسهولة. لمزيد من التفاصيل، راجع Milvus CDC.
موصلات Milvus Connectors خططت Milvus مجموعة من الموصلات لتتمكن من دمج Milvus بسلاسة مع أدوات الطرف الثالث، مثل Apache Spark. حاليًا، يمكنك استخدام موصل Spark Connector الخاص بنا لتغذية بيانات Milvus الخاصة بك إلى Apache Spark لمعالجة التعلم الآلي. للحصول على التفاصيل، راجع Spark-Milvus Connector.
خدمات نقل المتجهات (VTS) توفر Milvus مجموعة من الأدوات لتتمكن من نقل بياناتك بين مثيل Milvus ومجموعة من مصادر البيانات، بما في ذلك مجموعات Zilliz، وElasticsearch، وPostgres (PgVector)، ومثيل Milvus آخر. لمزيد من التفاصيل، راجع VTS.