ماذا يوجد داخل ميلفوس 1.0؟
Milvus.jpeg
Milvus عبارة عن قاعدة بيانات متجهة مفتوحة المصدر مصممة لإدارة مجموعات بيانات متجهة ضخمة بملايين أو مليارات أو حتى تريليونات البيانات. لدى Milvus تطبيقات واسعة النطاق تشمل اكتشاف الأدوية الجديدة، والرؤية الحاسوبية، والقيادة الذاتية، ومحركات التوصية، وروبوتات الدردشة، وغير ذلك الكثير.
في شهر مارس 2021، أصدرت شركة Zilliz، الشركة التي تقف وراء Milvus، أول إصدار دعم طويل الأجل للمنصة - Milvus v1.0. بعد أشهر من الاختبارات المكثفة، أصبح الإصدار المستقر والجاهز للإنتاج من قاعدة بيانات المتجهات الأكثر شعبية في العالم جاهزًا لوقت الذروة. تغطي مقالة المدونة هذه بعض أساسيات Milvus بالإضافة إلى الميزات الرئيسية للإصدار v1.0.
توزيعات ميلفوس
يتوفر Milvus في توزيعات تعمل بوحدة المعالجة المركزية فقط والتوزيعات التي تدعم وحدة معالجة الرسومات. يعتمد الأول حصريًا على وحدة المعالجة المركزية لبناء الفهرس والبحث؛ بينما يتيح الثاني إمكانية البحث الهجين لوحدة المعالجة المركزية ووحدة معالجة الرسومات وبناء الفهرس الذي يسرّع من Milvus بشكل أكبر. على سبيل المثال، باستخدام التوزيع الهجين، يمكن استخدام وحدة المعالجة المركزية للبحث ووحدة معالجة الرسومات لبناء الفهرس، مما يزيد من تحسين كفاءة الاستعلام.
يتوفر كلا توزيعي Milvus في Docker. يمكنك إما تجميع Milvus من Docker (إذا كان نظام التشغيل الخاص بك يدعمه) أو تجميع Milvus من التعليمات البرمجية المصدرية على نظام لينكس (أنظمة التشغيل الأخرى غير مدعومة).
تضمين المتجهات
يتم تخزين المتجهات في ميلفوس ككيانات. يحتوي كل كيان على حقل معرف متجه واحد وحقل متجه واحد. يدعم الإصدار Milvus v1.0 من Milvus معرفات المتجهات ذات الأعداد الصحيحة فقط. عند إنشاء مجموعة داخل Milvus، يمكن إنشاء معرفات المتجهات تلقائيًا أو تعريفها يدويًا. يضمن Milvus أن تكون معرفات المتجهات التي يتم إنشاؤها تلقائيًا فريدة من نوعها، ومع ذلك، يمكن تكرار المعرفات المحددة يدويًا داخل Milvus. في حالة تحديد المعرفات يدويًا، يتحمل المستخدمون مسؤولية التأكد من أن جميع المعرفات فريدة.
الأقسام
يدعم ميلفوس إنشاء أقسام في المجموعة. في الحالات التي يتم فيها إدراج البيانات بانتظام ولا تكون البيانات التاريخية مهمة (على سبيل المثال، البيانات المتدفقة)، يمكن استخدام الأقسام لتسريع البحث عن تشابه المتجهات. يمكن أن تحتوي المجموعة الواحدة على ما يصل إلى 4,096 قسمًا. يؤدي تحديد البحث عن المتجهات ضمن قسم معين إلى تضييق نطاق البحث وقد يقلل بشكل كبير من وقت الاستعلام، خاصةً بالنسبة للمجموعات التي تحتوي على أكثر من تريليون متجه.
تحسينات خوارزمية الفهرس
تم بناء Milvus على رأس العديد من مكتبات الفهرسة المعتمدة على نطاق واسع، بما في ذلك Faiss و NMSLIB و Annoy. إن Milvus أكثر بكثير من مجرد غلاف أساسي لمكتبات الفهرسة هذه. فيما يلي بعض التحسينات الرئيسية التي تم إجراؤها على المكتبات الأساسية:
- تحسينات أداء فهرس IVF باستخدام خوارزمية Elkan k-means.
- تحسينات البحث المسطح.
- دعم الفهرس الهجين IVF_SQ8H، والذي يمكن أن يقلل من أحجام ملفات الفهرس بنسبة تصل إلى 75% دون التضحية بدقة البيانات. تم بناء IVF_SQ8H على IVF_SQ8، مع استدعاء مماثل ولكن بسرعة استعلام أسرع بكثير. تم تصميمه خصيصًا لـ Milvus للاستفادة من قدرة المعالجة المتوازية لوحدات معالجة الرسومات، وإمكانية التآزر بين المعالجة المشتركة بين وحدة المعالجة المركزية ووحدة معالجة الرسومات.
- توافق مجموعة التعليمات الديناميكية.
البحث، وبناء الفهرس، وتحسينات Milvus الأخرى
تم إجراء التحسينات التالية على Milvus لتحسين أداء البحث وبناء الفهرس.
- تم تحسين أداء البحث في الحالات التي يكون فيها عدد الاستعلامات (nq) أقل من عدد سلاسل مؤشرات ترابط وحدة المعالجة المركزية.
- يقوم Milvus بدمج طلبات البحث من العميل التي تأخذ نفس معلمات topK والبحث.
- يتم تعليق بناء الفهرس عند ورود طلبات البحث.
- يقوم Milvus تلقائيًا بتحميل المجموعات مسبقًا إلى الذاكرة عند البدء.
- يمكن تعيين أجهزة متعددة لوحدة معالجة الرسومات لتسريع البحث عن التشابه المتجه.
مقاييس المسافة
Milvus عبارة عن قاعدة بيانات متجهة مصممة لتشغيل البحث عن التشابه المتجه. تم تصميم المنصة مع وضع تطبيقات الذكاء الاصطناعي على مستوى الإنتاج في الاعتبار. يدعم Milvus مجموعة واسعة من مقاييس المسافة لحساب التشابه، مثل المسافة الإقليدية (L2) والمنتج الداخلي (IP) ومسافة جاكارد ومسافة تانيموتو ومسافة هامينج والبنية الفوقية والبنية التحتية. يُستخدم المقياسان الأخيران بشكل شائع في البحث الجزيئي واكتشاف الأدوية الجديدة المدعومة بالذكاء الاصطناعي.
التسجيل
يدعم ميلفوس تدوير السجل. في ملف تهيئة النظام، milvus.yaml، يمكنك تعيين حجم ملف سجل واحد، وعدد ملفات السجل، وإخراج السجل إلى stdout.
الحل الموزع
Mishards، وهو برنامج Milvus للتجزئة الوسيطة، هو الحل الموزع ل Milvus مع عقدة كتابة واحدة وعدد غير محدود من عقد القراءة، يطلق Mishards العنان للإمكانات الحسابية لمجموعة الخوادم. وتتضمن ميزاته إعادة توجيه الطلبات، وتقسيم القراءة/الكتابة، والتوسع الديناميكي/الأفقي، والمزيد.
المراقبة
تتوافق Milvus مع Prometheus، وهي مجموعة أدوات مفتوحة المصدر لمراقبة النظام والتنبيهات. يضيف Milvus دعمًا لـ Pushgateway في Prometheus، مما يجعل من الممكن لـ Prometheus الحصول على مقاييس دفعية قصيرة الأجل. يعمل نظام المراقبة والتنبيهات على النحو التالي:
- يقوم خادم Milvus بدفع بيانات المقاييس المخصصة إلى Pushgateway.
- يضمن Pushgateway إرسال بيانات المقاييس قصيرة الأجل بأمان إلى Prometheus.
- يستمر Prometheus في سحب البيانات من Pushgateway.
- يُستخدم Alertmanager لتعيين عتبة التنبيه للمؤشرات المختلفة وإرسال التنبيهات عبر البريد الإلكتروني أو الرسائل.
إدارة البيانات الوصفية
يستخدم Milvus SQLite لإدارة البيانات الوصفية بشكل افتراضي. يتم تنفيذ SQLite في Milvus ولا يتطلب تهيئة. في بيئة الإنتاج، يوصى باستخدام MySQLite لإدارة البيانات الوصفية.
تفاعل مع مجتمعنا مفتوح المصدر:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word