ما هي ملحقات المتجهات المتقدمة؟
الآلات الذكية الواعية التي ترغب في السيطرة على العالم هي عنصر ثابت في الخيال العلمي، ولكن في الواقع أجهزة الكمبيوتر الحديثة مطيعة للغاية. فنادرًا ما تعرف ما يجب أن تفعله بنفسها دون أن يُطلب منها ذلك. تؤدي أجهزة الكمبيوتر المهام بناءً على التعليمات أو الأوامر المرسلة من برنامج إلى المعالج. وفي أدنى مستوياتها، تكون كل تعليمات عبارة عن تسلسل من الآحاد والأصفار التي تصف عملية يقوم الحاسوب بتنفيذها. وعادةً ما تتوافق كل عبارة بلغة الآلة في لغات تجميع الحاسوب مع تعليمات المعالج. تعتمد وحدة المعالجة المركزية (CPU) على التعليمات لإجراء العمليات الحسابية وأنظمة التحكم. بالإضافة إلى ذلك، غالبًا ما يتم قياس أداء وحدة المعالجة المركزية من حيث القدرة على تنفيذ التعليمات (على سبيل المثال، وقت التنفيذ).
ما هي ملحقات المتجهات المتقدمة؟
ملحقات المتجهات المتقدمة (AVX) هي مجموعة تعليمات للمعالجات الدقيقة التي تعتمد على عائلة x86 من مجموعة معماريات مجموعة التعليمات. تم اقتراح AVX لأول مرة من قِبل Intel في مارس 2008، وشهد AVX دعمًا واسعًا بعد ثلاث سنوات مع إطلاق Sandy Bridge - وهي بنية مصغرة مستخدمة في الجيل الثاني من معالجات Intel Core (مثل Core i7 و i5 و i3) - وبنية AMD المصغرة المنافسة التي تم إصدارها أيضًا في عام 2011، Bulldozer.
قدم AVX مخطط ترميز جديد وميزات جديدة وتعليمات جديدة. يوسع AVX2 معظم عمليات الأعداد الصحيحة إلى 256 بت ويقدم عمليات المضاعفة والتجميع المدمجة (FMA). يعمل AVX-512 على توسيع نطاق عمليات AVX إلى 512 بت باستخدام ترميز بادئة جديدة لملحق المتجه المحسّن (EVEX).
Milvus هي قاعدة بيانات متجهات مفتوحة المصدر مصممة للبحث عن التشابه وتطبيقات الذكاء الاصطناعي (AI). تدعم المنصة مجموعة تعليمات AVX-512، مما يعني أنه يمكن استخدامها مع جميع وحدات المعالجة المركزية التي تتضمن تعليمات AVX-512. تمتلك Milvus تطبيقات واسعة تشمل أنظمة التوصية والرؤية الحاسوبية ومعالجة اللغات الطبيعية (NLP) وغيرها. تعرض هذه المقالة نتائج الأداء وتحليل قاعدة بيانات Milvus المتجهة على AVX-512 و AVX2.
أداء برنامج Milvus على AVX-512 مقابل AVX2
تكوين النظام
- وحدة المعالجة المركزية: وحدة المعالجة المركزية Intel® Platinum 8163 @ 2.50 جيجا هرتز 24 نواة 48 سنون
- عدد وحدات المعالجة المركزية: 2
- بطاقة الرسومات، بطاقة GeForce RTX 2080Ti بسعة 11 جيجابايت 4 بطاقات
- الذاكرة: 768 جيجابايت
- القرص: 2 تيرابايت SSD
معلمات ميلفوس
- cahce.cahe_size: 25، حجم ذاكرة وحدة المعالجة المركزية المستخدمة للتخزين المؤقت للبيانات من أجل استعلام أسرع.
- nlist: 4096
- nprobe: 128
ملاحظة: nlist
هي معلمة الفهرسة التي يتم إنشاؤها من العميل؛ nprobe
معلمة البحث. يستخدم كلٌ من IVF_FLAT و IVF_SQ8 خوارزمية تجميع لتقسيم عدد كبير من المتجهات إلى دلاء، nlist
هو العدد الإجمالي للدلاء المراد تقسيمها أثناء التجميع. الخطوة الأولى في الاستعلام هي العثور على عدد الدلاء الأقرب إلى المتجه الهدف، والخطوة الثانية هي العثور على المتجهات الأعلى-ك في هذه الدلاء من خلال مقارنة المسافة بين المتجهات. nprobe
يشير إلى عدد الدلاء في الخطوة الأولى.
مجموعة البيانات: مجموعة بيانات SIFT10M
تستخدم هذه الاختبارات مجموعة بيانات SIFT10M، والتي تحتوي على مليون متجه ذي 128 بُعدًا وغالبًا ما تُستخدم لتحليل أداء طرق البحث الأقرب من الجوار المقابلة. ستتم مقارنة وقت البحث من الدرجة الأولى لـ nq = [1، 10، 100، 500، 1000] بين مجموعتي التعليمات.
النتائج حسب نوع فهرس المتجهات
الفهارس المتجهة هي هياكل بيانات فعالة من حيث الوقت والمساحة مبنية على الحقل المتجه لمجموعة ما باستخدام نماذج رياضية مختلفة. تسمح فهرسة المتجهات بالبحث في مجموعات البيانات الكبيرة بكفاءة عند محاولة تحديد المتجهات المتشابهة لمتجه الإدخال. ونظرًا لطبيعة الاسترجاع الدقيق التي تستغرق وقتًا طويلاً، فإن معظم أنواع الفهارس التي يدعمها ميلفوس تستخدم البحث التقريبي لأقرب جار (ANN).
بالنسبة لهذه الاختبارات، تم استخدام ثلاثة فهارس مع AVX-512 و AVX2: IVF_FLAT و IVF_SQ8 و HNSW.
IVF_FLAT
الملف المقلوب (IVF_FLAT) هو نوع فهرس يعتمد على التكميم. إنه فهرس IVF الأساسي، وتكون البيانات المشفرة المخزنة في كل وحدة متسقة مع البيانات الأصلية. يقسم الفهرس بيانات المتجه إلى عدد من وحدات العنقود (nlist)، ثم يقارن المسافات بين متجه الإدخال الهدف ومركز كل عنقود. اعتمادًا على عدد المجموعات التي تم تعيين النظام للاستعلام عنها (nprobe)، يتم إرجاع نتائج بحث التشابه بناءً على المقارنات بين المدخلات المستهدفة والمتجهات في المجموعة (المجموعات) الأكثر تشابهًا فقط - مما يقلل وقت الاستعلام بشكل كبير. من خلال ضبط nprobe، يمكن إيجاد توازن مثالي بين الدقة والسرعة لسيناريو معين.
نتائج الأداء IVF_FLAT.png
IVF_SQ8
لا يقوم IVF_FLAT بإجراء أي ضغط، لذا فإن ملفات الفهرس التي ينتجها تكون بنفس حجم البيانات المتجهة الأصلية غير المفهرسة تقريبًا. عندما تكون موارد ذاكرة القرص أو وحدة المعالجة المركزية أو وحدة معالجة الرسومات محدودة، فإن IVF_SQ8 هو خيار أفضل من IVF_FLAT. يمكن لهذا النوع من الفهرس تحويل كل بُعد من المتجه الأصلي من رقم عائم ذو أربع بايتات إلى عدد صحيح غير مرقم ذو بايت واحد من خلال إجراء تكميم قياسي. يقلل هذا من استهلاك القرص ووحدة المعالجة المركزية وذاكرة وحدة معالجة الرسومات بنسبة 70-75%.
نتائج الأداء IVF_SQ8.png
HNSW
الرسم البياني الهرمي للعالم الصغير (HNSW) عبارة عن خوارزمية فهرسة قائمة على الرسم البياني. تبدأ الاستعلامات في الطبقة العليا من خلال العثور على العقدة الأقرب إلى الهدف، ثم تنتقل إلى الطبقة التالية لجولة أخرى من البحث. بعد عدة تكرارات، يمكن أن تقترب بسرعة من الموضع المستهدف.
نتائج الأداء HNSW.png
مقارنة فهارس المتجهات
يكون استرجاع المتجهات أسرع باستمرار على مجموعة تعليمات AVX-512 مقارنةً بـ AVX2. ويرجع ذلك إلى أن AVX-512 يدعم حساب 512 بت، مقارنةً بحساب 256 بت فقط على AVX2. من الناحية النظرية، يجب أن يكون AVX-512 أسرع بمرتين من AVX2، ومع ذلك، فإن Milvus يقوم بمهام أخرى تستغرق وقتًا طويلاً بالإضافة إلى حسابات تشابه المتجهات. من غير المرجح أن يكون وقت الاسترجاع الإجمالي لـ AVX-512 أقصر بمرتين من AVX2 في سيناريوهات العالم الحقيقي. مقارنة. png
الاسترجاع أسرع بكثير على فهرس HNSW من الفهرسين الآخرين، في حين أن استرجاع IVF_SQ8 أسرع قليلاً من استرجاع IVF_SQ8 على كلا مجموعتي التعليمات. ويرجع ذلك على الأرجح إلى أن IVF_SQ8 يتطلب 25% فقط من الذاكرة التي يحتاجها IVF_SQL8. يقوم IVF_SQ8 بتحميل بايت واحد لكل بُعد متجه، بينما يقوم IVF_SQ8 بتحميل 4 بايت لكل بُعد متجه. من المرجح أن يكون الوقت اللازم للحساب مقيدًا بعرض النطاق الترددي للذاكرة. ونتيجة لذلك، لا يستهلك IVF_SQ8 مساحة أقل فحسب، بل يتطلب أيضًا وقتًا أقل لاسترجاع المتجهات.
ميلفوس هو قاعدة بيانات متجهات متعددة الاستخدامات وعالية الأداء
توضح الاختبارات المقدمة في هذه المقالة أن Milvus يقدم أداءً ممتازًا على كل من مجموعتي تعليمات AVX-512 و AVX2 باستخدام فهارس مختلفة. بغض النظر عن نوع الفهرس، فإن أداء Milvus أفضل على AVX-512.
يتوافق Milvus مع مجموعة متنوعة من منصات التعلم العميق ويستخدم في تطبيقات الذكاء الاصطناعي المتنوعة. تم إصدار Milvus 2.0، وهو نسخة معاد تصورها من قاعدة البيانات المتجهة الأكثر شيوعًا في العالم، بموجب ترخيص مفتوح المصدر في يوليو 2021. لمزيد من المعلومات عن المشروع، اطلع على المصادر التالية:
- أداء برنامج Milvus على AVX-512 مقابل AVX2
- مقارنة فهارس المتجهات
- ميلفوس هو قاعدة بيانات متجهات متعددة الاستخدامات وعالية الأداء
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word