🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • كشف النقاب عن الإصدار Milvus 2.3: إصدار بارز يقدم دعمًا لوحدة معالجة الرسومات وArm64 وCDC والعديد من الميزات الأخرى المنتظرة

كشف النقاب عن الإصدار Milvus 2.3: إصدار بارز يقدم دعمًا لوحدة معالجة الرسومات وArm64 وCDC والعديد من الميزات الأخرى المنتظرة

  • News
August 28, 2023
Owen Jiao, Fendy Feng

أخبار مثيرة! بعد ثمانية أشهر من الجهود المتضافرة، يسعدنا أن نعلن عن إصدار الإصدار Milvus 2.3، وهو إصدار بارز يجلب العديد من الميزات المنتظرة بشدة، بما في ذلك دعم وحدة معالجة الرسومات وArm64 وعمليات الإدراج والتقاط بيانات التغيير وفهرس ScaNN وتقنية MMap. يقدم Milvus 2.3 أيضًا أداءً محسّنًا للاستعلام، وموازنة تحميل وجدولة أكثر قوة، وإمكانية مراقبة وتشغيل أفضل.

انضموا إليّ لإلقاء نظرة على هذه الميزات والتحسينات الجديدة ومعرفة كيف يمكنكم الاستفادة من هذا الإصدار.

دعم فهرس GPU الذي يؤدي إلى 3-10 مرات أسرع في QPS

يعد فهرس GPU ميزة منتظرة بشدة في مجتمع Milvus. بفضل التعاون الرائع مع مهندسي Nvidia، دعم Milvus 2.3 فهرسة وحدة معالجة الرسومات مع خوارزمية RAFT القوية التي تمت إضافتها إلى Knowhere، محرك فهرسة Milvus. مع دعم وحدة معالجة الرسوميات، أصبح Milvus 2.3 أسرع بأكثر من ثلاثة أضعاف في QPS من الإصدارات القديمة التي تستخدم فهرس HNSW لوحدة المعالجة المركزية وأسرع بعشر مرات تقريبًا لمجموعات بيانات محددة تتطلب عمليات حسابية ثقيلة.

دعم Arm64 لاستيعاب طلب المستخدمين المتزايد

أصبحت وحدات المعالجة المركزية Arm تحظى بشعبية متزايدة بين مزوّدي الخدمات السحابية والمطوّرين. لتلبية هذا الطلب المتزايد، توفر Milvus الآن صور Docker لبنية ARM64. مع هذا الدعم الجديد لوحدة المعالجة المركزية، يمكن لمستخدمي MacOS بناء تطبيقاتهم مع Milvus بسلاسة أكبر.

دعم Upsert لتجربة مستخدم أفضل

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

ملاحظة:

  • لا تنطبق ميزة Upsert على معرّفات الزيادة التلقائية.
  • يتم تنفيذ ميزة Upsert كمزيج من delete و insert ، مما قد يؤدي إلى بعض الخسارة في الأداء. نوصي باستخدام insert إذا كنت تستخدم Milvus في سيناريوهات الكتابة الثقيلة.

البحث عن النطاق للحصول على نتائج أكثر دقة

يسمح Milvus 2.3 للمستخدمين بتحديد المسافة بين متجه الإدخال والمتجهات المخزنة في Milvus أثناء الاستعلام. ثم يقوم ميلفوس بإرجاع جميع النتائج المطابقة ضمن النطاق المحدد. فيما يلي مثال على تحديد مسافة البحث باستخدام ميزة البحث في النطاق.

// add radius and range_filter to params in search_params
search_params = {"params": {"nprobe": 10, "radius": 10, "range_filter" : 20}, "metric_type": "L2"}
res = collection.search(
vectors, "float_vector", search_params, topK,
"int64 > 100", output_fields=["int64", "float"]
)

في هذا المثال، يطلب المستخدم من Milvus إرجاع متجهات ضمن مسافة 10 إلى 20 وحدة من متجه الإدخال.

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

فهرس ScaNN لسرعة استعلام أسرع

يدعم Milvus 2.3 الآن فهرس ScaNN، وهو فهرس تقريبي مفتوح المصدر لأقرب جار (ANN) تم تطويره بواسطة Google. وقد أظهر فهرس ScaNN أداءً فائقًا في العديد من المعايير، متفوقًا على مؤشر HNSW بحوالي 20% وأسرع من IVFFlat بسبع مرات تقريبًا. مع دعم فهرس ScaNN، يحقق Milvus سرعة استعلام أسرع بكثير مقارنةً بالإصدارات القديمة.

فهرس متزايد لأداء استعلام مستقر وأفضل

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

مكرر لاسترجاع البيانات على دفعات

في الإصدار Milvus 2.3، قدمت Pymilvus واجهة مكرر تسمح للمستخدمين باسترداد أكثر من 16,384 كيانًا في بحث أو بحث في نطاق. هذه الميزة مفيدة عندما يحتاج المستخدمون إلى تصدير عشرات الآلاف أو حتى أكثر من المتجهات على دفعات.

دعم MMap لزيادة السعة

MMap هو استدعاء نظام UNIX يستخدم لتعيين الملفات والكائنات الأخرى في الذاكرة. يدعم الإصدار Milvus 2.3 من برنامج Milvus 2.3 خاصية MMap، والتي تمكّن المستخدمين من تحميل البيانات على الأقراص المحلية وتعيينها إلى الذاكرة، وبالتالي زيادة سعة الجهاز الواحد.

تشير نتائج الاختبارات التي أجريناها إلى أنه باستخدام تقنية MMap، يمكن لـ Milvus مضاعفة سعة البيانات مع الحد من تدهور الأداء في حدود 20%. يقلل هذا النهج بشكل كبير من التكاليف الإجمالية، مما يجعله مفيدًا بشكل خاص للمستخدمين ذوي الميزانية المحدودة الذين لا يمانعون في المساومة على الأداء.

دعم CDC لزيادة توافر النظام

يُعدّ التقاط بيانات التغيير (CDC) ميزة شائعة الاستخدام في أنظمة قواعد البيانات التي تلتقط تغييرات البيانات وتنسخها إلى وجهة محددة. وبفضل ميزة CDC، يُمكّن Milvus 2.3 المستخدمين من مزامنة البيانات عبر مراكز البيانات، والنسخ الاحتياطي للبيانات الإضافية، وترحيل البيانات بسلاسة، مما يجعل النظام أكثر إتاحة.

بالإضافة إلى الميزات المذكورة أعلاه، يقدم الإصدار Milvus 2.3 واجهة عدّ لحساب عدد صفوف البيانات المخزنة في مجموعة بدقة في الوقت الفعلي، ويدعم مقياس جيب التمام لقياس المسافة المتجهة، والمزيد من العمليات على مصفوفات JSON. لمزيد من الميزات والمعلومات التفصيلية، راجع ملاحظات الإصدار Milvus 2.3.

التحسينات وإصلاح الأخطاء

بالإضافة إلى الميزات الجديدة، يتضمن الإصدار Milvus 2.3 العديد من التحسينات وإصلاحات الأخطاء للإصدارات القديمة.

تحسين أداء تصفية البيانات

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

زيادة استخدام وحدة المعالجة المركزية متعددة النواة

البحث التقريبي الأقرب التقريبي (ANN) هو مهمة حسابية مكثفة تتطلب موارد هائلة من وحدة المعالجة المركزية. في الإصدارات السابقة، كان بإمكان Milvus استخدام حوالي 70% فقط من موارد وحدة المعالجة المركزية متعددة النواة المتاحة. ومع ذلك، مع الإصدار الأخير، تغلبت Milvus على هذا القيد ويمكنها الاستفادة الكاملة من جميع موارد وحدة المعالجة المركزية متعددة النواة المتاحة، مما أدى إلى تحسين أداء الاستعلام وتقليل هدر الموارد.

عقدة الاستعلام المعاد صياغتها

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

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

قوائم انتظار الرسائل المحسّنة القائمة على NATS

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

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

ولمعالجة هذه المشاكل، قمنا بدمج NATS و Bookeeper كوسيط سجلات جديد لـ Milvus، والذي يناسب احتياجات المستخدمين بشكل أفضل.

موازن تحميل محسّن

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

لمزيد من المعلومات حول Milvus 2.3، راجع ملاحظات إصدار Milvus 2.3.

ترقيات الأداة

لقد قمنا أيضًا بترقية Birdwatcher و Attu، وهما أداتان قيّمتان لتشغيل وصيانة Milvus، إلى جانب Milvus 2.3.

تحديث مراقب الطيور

لقد قمنا بترقية Birdwatcher، أداة تصحيح الأخطاء في Milvus، حيث قدمنا العديد من الميزات والتحسينات، بما في ذلك:

  • واجهة برمجة تطبيقات RESTful API للتكامل السلس مع أنظمة التشخيص الأخرى.
  • دعم أمر PProf لتسهيل التكامل مع أداة Go pprof.
  • قدرات تحليل استخدام التخزين.
  • وظيفة تحليل السجل الفعالة.
  • دعم لعرض التكوينات وتعديلها في etcd.

تحديث أتو

لقد أطلقنا واجهة جديدة تمامًا لـ Attu، وهي أداة إدارة قاعدة بيانات المتجهات المتكاملة. تتميز الواجهة الجديدة بتصميم أكثر وضوحًا وسهولة في الفهم.

لمزيد من التفاصيل، راجع ملاحظات إصدار Milvus 2.3.

لنبقى على اتصال!

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

Like the article? Spread the word

استمر في القراءة