تقديم AISAQ في Milvus: البحث عن المتجهات بمليارات الدولارات أصبح أرخص بـ 3,200 مرة على الذاكرة
لقد أصبحت قواعد بيانات المتجهات بنية تحتية أساسية لأنظمة الذكاء الاصطناعي ذات المهام الحرجة، وتتزايد أحجام بياناتها بشكل كبير - وغالبًا ما تصل إلى مليارات المتجهات. عند هذا النطاق، يصبح كل شيء أصعب: الحفاظ على زمن انتقال منخفض، والحفاظ على الدقة، وضمان الموثوقية، والعمل عبر النسخ المتماثلة والمناطق. ولكن هناك تحدٍ واحد يميل إلى الظهور مبكرًا ويهيمن على القرارات المعمارية - التكلفة.
لتقديم بحث سريع، تحتفظ معظم قواعد البيانات المتجهة بهياكل الفهرسة الرئيسية في DRAM (ذاكرة الوصول العشوائي الديناميكية)، وهي أسرع مستويات الذاكرة وأكثرها تكلفة. هذا التصميم فعال من حيث الأداء، لكنه لا يتناسب مع حجم البيانات. يتناسب استخدام DRAM مع حجم البيانات بدلاً من حركة مرور الاستعلام، وحتى مع الضغط أو التفريغ الجزئي لذاكرة الوصول العشوائي الديناميكية، يجب أن تبقى أجزاء كبيرة من الفهرس في الذاكرة. ومع نمو مجموعات البيانات، سرعان ما تصبح تكاليف الذاكرة عاملاً مقيدًا.
يدعم Milvus بالفعل DISKANN، وهو نهج ANN قائم على القرص يقلل من ضغط الذاكرة عن طريق نقل جزء كبير من الفهرس إلى SSD. ومع ذلك، لا يزال DISKANN يعتمد على DRAM للتمثيلات المضغوطة المستخدمة أثناء البحث. يأخذ Milvus 2.6 هذا الأمر إلى أبعد من ذلك مع AISAQ، وهو فهرس متجه قائم على القرص مستوحى من DISKANN. تم تصميم بنية AiSAQ، التي طورتها شركة KIOXIA، باستخدام "بنية خالية من ذاكرة الوصول العشوائي (DRAM-Footprint)، والتي تخزن جميع البيانات المهمة للبحث على القرص وتحسن وضع البيانات لتقليل عمليات الإدخال/الإخراج. في عبء عمل بمليار متجه، يقلل هذا من استخدام الذاكرة من 32 جيجابايت إلى حوالي 10 ميغابايت - أي تخفيض بمقدار 3,200 مرة - معالحفاظ على الأداء العملي.
في الأقسام التالية، نوضح في الأقسام التالية كيفية عمل البحث المتجه القائم على الرسم البياني ومن أين تأتي تكاليف الذاكرة، وكيف يعيد AISAQ تشكيل منحنى التكلفة للبحث المتجه على نطاق المليار متجه.
كيفية عمل البحث المتجه التقليدي المستند إلى الرسم البياني
البحث عنالمتجهات هو عملية إيجاد نقاط البيانات التي يكون تمثيلها العددي الأقرب إلى استعلام في فضاء عالي الأبعاد. تعني كلمة "الأقرب" ببساطة أصغر مسافة وفقًا لدالة المسافة، مثل مسافة جيب التمام أو مسافة L2. على مقياس صغير، يكون هذا واضحًا ومباشرًا: احسب المسافة بين الاستعلام وكل متجه، ثم أرجع أقربها. لكن على نطاق واسع، على سبيل المثال على نطاق المليار، سرعان ما يصبح هذا النهج بطيئًا جدًا بحيث لا يكون عمليًا.
لتجنب المقارنات الشاملة، تعتمد أنظمة البحث التقريبي لأقرب جار (ANNS) الحديثة على مؤشرات قائمة على الرسم البياني. بدلاً من مقارنة استعلام مقابل كل متجه، ينظم الفهرس المتجهات في رسم بياني. تمثل كل عقدة متجهًا، وتربط الحواف المتجهات المتقاربة عدديًا. تسمح هذه البنية للنظام بتضييق مساحة البحث بشكل كبير.
يتم بناء الرسم البياني مسبقًا، بناءً على العلاقات بين المتجهات فقط. لا يعتمد على الاستعلامات. عندما يصل استعلام، تتمثل مهمة النظام في التنقل في الرسم البياني بكفاءة وتحديد المتجهات ذات المسافة الأصغر إلى الاستعلام - دون مسح مجموعة البيانات بأكملها.
يبدأ البحث من نقطة دخول محددة مسبقًا في الرسم البياني. قد تكون نقطة البداية هذه بعيدة عن الاستعلام، لكن الخوارزمية تحسّن موقعها خطوة بخطوة من خلال التحرك نحو المتجهات التي تبدو أقرب إلى الاستعلام. خلال هذه العملية، يحافظ البحث على بنيتين داخليتين للبيانات تعملان معًا: قائمة مرشحة وقائمة نتائج.
وأهم خطوتين خلال هذه العملية هما توسيع قائمة المرشحين وتحديث قائمة النتائج.
توسيع قائمة المرشحين
تمثل القائمة المرشحة المكان الذي يمكن أن ينتقل إليه البحث بعد ذلك. وهي عبارة عن مجموعة ذات أولوية من عقد الرسم البياني التي تبدو واعدة بناءً على المسافة التي تفصلها عن الاستعلام.
في كل تكرار، تقوم الخوارزمية
تختار أقرب مرشح تم اكتشافه حتى الآن. من قائمة المرشحين، تختار المتجه ذا المسافة الأصغر إلى الاستعلام.
تسترجع جيران ذلك المتجه من الرسم البياني. هؤلاء الجيران هم المتجهات التي تم تحديدها أثناء إنشاء الفهرس على أنها قريبة من المتجه الحالي.
يقيّم الجيران الذين لم تتم زيارتهم ويضيفهم إلى القائمة المرشحة. لكل جار لم يتم استكشافه بالفعل، تحسب الخوارزمية المسافة التي تفحصها إلى الاستعلام. يتم تخطي الجيران الذين تمت زيارتهم سابقًا، بينما يتم إدراج الجيران الجدد في قائمة المرشحين إذا ظهروا واعدين.
من خلال توسيع قائمة المرشحين بشكل متكرر، يستكشف البحث مناطق ذات صلة متزايدة من الرسم البياني. يسمح ذلك للخوارزمية بالتحرك بثبات نحو إجابات أفضل أثناء فحص جزء صغير فقط من جميع المتجهات.
تحديث قائمة النتائج
في الوقت نفسه، تحتفظ الخوارزمية بقائمة نتائج، والتي تسجل أفضل المرشحين الذين تم العثور عليهم حتى الآن للإخراج النهائي. ومع تقدم البحث، فإنها
يتتبع أقرب المتجهات التي صادفها أثناء اجتيازها. يتضمن ذلك المتجهات المختارة للتوسيع بالإضافة إلى المتجهات الأخرى التي تم تقييمها على طول الطريق.
يخزن مسافاتها إلى الاستعلام. وهذا يجعل من الممكن ترتيب المتجهات المرشحة والحفاظ على أقرب أقرب جيرانها الحاليين.
مع مرور الوقت، ومع تقييم المزيد من المرشحين وإيجاد تحسينات أقل، تستقر قائمة النتائج. وبمجرد أن يصبح من غير المحتمل أن ينتج المزيد من استكشاف الرسم البياني متجهات أقرب، ينتهي البحث ويعيد قائمة النتائج كإجابة نهائية.
بعبارات بسيطة، تتحكم القائمة المرشحة في الاستكشاف، بينما تجسد قائمة النتائج أفضل الإجابات المكتشفة حتى الآن.
المفاضلة في البحث المستند إلى الرسم البياني للمتجهات
هذا النهج القائم على الرسم البياني هو ما يجعل البحث المتجه واسع النطاق عمليًا في المقام الأول. من خلال التنقل في الرسم البياني بدلاً من مسح كل متجه، يمكن للنظام العثور على نتائج عالية الجودة مع لمس جزء صغير فقط من مجموعة البيانات.
ومع ذلك، فإن هذه الكفاءة لا تأتي مجانًا. يكشف البحث القائم على الرسم البياني عن مفاضلة أساسية بين الدقة والتكلفة.
يؤدي استكشاف المزيد من الجيران إلى تحسين الدقة من خلال تغطية جزء أكبر من الرسم البياني وتقليل فرصة فقدان أقرب الجيران الحقيقيين.
في الوقت نفسه، يضيف كل توسع إضافي عملًا إضافيًا: المزيد من حسابات المسافة، والمزيد من عمليات الوصول إلى بنية الرسم البياني، والمزيد من قراءات البيانات المتجهة. كلما كان البحث أعمق أو أوسع، تتراكم هذه التكاليف. واعتمادًا على كيفية تصميم الفهرس، فإنها تظهر على شكل استخدام أعلى لوحدة المعالجة المركزية، أو زيادة الضغط على الذاكرة، أو إدخال/إخراج إضافي على القرص.
يعد تحقيق التوازن بين هذه القوى المتعارضة - الاستدعاء العالي مقابل الاستخدام الفعال للموارد - أمرًا أساسيًا في تصميم البحث القائم على الرسم البياني.
تم تصميم كل من DISKANN و AISAQ حول نفس هذا التوتر، لكنهما يتخذان خيارات معمارية مختلفة حول كيفية دفع هذه التكاليف ومكان دفعها.
كيف يقوم DISKANN بتحسين البحث المتجه المستند إلى القرص
DISKANN هو الحل الأكثر تأثيراً للشبكات العصبية الاصطناعية القائمة على الأقراص حتى الآن، وهو بمثابة خط الأساس الرسمي لمسابقة NeurIPS Big ANN، وهو معيار عالمي للبحث المتجه على نطاق المليار. لا تكمن أهميته في الأداء فحسب، بل تكمن أهميته في ما أثبتته: لا يجب أن يكون بحث الشبكة العصبية الاصطناعية القائم على الرسم البياني في الذاكرة بالكامل ليكون سريعاً.
من خلال الجمع بين التخزين القائم على أقراص التخزين ذات الحالة الثابتة (SSD) والهياكل المختارة بعناية داخل الذاكرة، أثبت DISKANN أن البحث المتجه واسع النطاق يمكن أن يحقق دقة عالية وزمن استجابة منخفض على الأجهزة السلعية - دون الحاجة إلى آثار أقدام ضخمة من ذاكرة DRAM. وهو يقوم بذلك من خلال إعادة التفكير في أجزاء البحث التي يجب أن تكون سريعة والأجزاء التي يمكن أن تتحمل الوصول الأبطأ.
على مستوى عالٍ، يحتفظ DISKANN بالبيانات الأكثر وصولًا في الذاكرة، بينما ينقل البنى الأكبر والأقل وصولًا إلى القرص. يتم تحقيق هذا التوازن من خلال عدة خيارات تصميم رئيسية.
1. استخدام مسافات PQ لتوسيع قائمة المرشحين
توسيع قائمة المرشحين هي العملية الأكثر تكرارًا في البحث القائم على الرسم البياني. تتطلب كل عملية توسيع تقدير المسافة بين متجه الاستعلام وجيران العقدة المرشحة. يتطلب إجراء هذه العمليات الحسابية باستخدام متجهات كاملة عالية الأبعاد قراءات عشوائية متكررة من القرص - وهي عملية مكلفة من الناحية الحسابية ومن حيث الإدخال/الإخراج.
يتفادى DISKANN هذه التكلفة عن طريق ضغط المتجهات إلى أكواد التكميم الكمي للمنتج (PQ) والاحتفاظ بها في الذاكرة. تكون أكواد PQ أصغر بكثير من المتجهات الكاملة، ولكنها لا تزال تحتفظ بمعلومات كافية لتقدير المسافة تقريبًا.
أثناء التوسيع المرشح، يحسب DISKANN المسافات باستخدام رموز PQ المودعة في الذاكرة بدلاً من قراءة المتجهات الكاملة من SSD. وهذا يقلل بشكل كبير من إدخال/إخراج الأقراص أثناء اجتياز الرسم البياني، مما يسمح للبحث بتوسيع المرشحين بسرعة وكفاءة مع إبقاء معظم حركة مرور SSD خارج المسار الحرج.
2. الاشتراك في تحديد موقع المتجهات الكاملة والقوائم المجاورة على القرص
لا يمكن ضغط جميع البيانات أو الوصول إليها تقريبًا. بمجرد تحديد المرشحين الواعدين، لا يزال البحث بحاجة إلى الوصول إلى نوعين من البيانات للحصول على نتائج دقيقة:
قوائم الجيران، لمواصلة اجتياز الرسم البياني
المتجهات الكاملة (غير المضغوطة)، لإعادة الترتيب النهائي
يتم الوصول إلى هذه الهياكل بشكل أقل تكرارًا من أكواد PQ، لذلك يخزنها DISKANN على SSD. لتقليل الحمل الزائد على القرص، يضع DISKANN قائمة جيران كل عقدة ومتجهها الكامل في نفس المنطقة الفعلية على القرص. وهذا يضمن أن قراءة واحدة على قرص SSD يمكنها استرداد كليهما.
من خلال تجميع البيانات ذات الصلة في مكان واحد، يقلل DISKANN من عدد عمليات الوصول العشوائي إلى القرص المطلوبة أثناء البحث. يعمل هذا التحسين على تحسين كفاءة التوسيع وإعادة الترتيب على حد سواء، خاصةً على نطاق واسع.
3. التوسيع المتوازي للعقدة من أجل استخدام أفضل لقرص SSD
البحث في الشبكة العصبية الاصطناعية القائمة على الرسم البياني هو عملية تكرارية. إذا كان كل تكرار يقوم بتوسيع عقدة مرشحة واحدة فقط، يصدر النظام قراءة قرص واحد فقط في كل مرة، تاركًا معظم عرض النطاق الترددي المتوازي لمحرك أقراص الحالة الصلبة غير مستخدم. لتجنب عدم الكفاءة هذه، يقوم DISKANN بتوسيع عدة مرشحين في كل تكرار ويرسل طلبات قراءة متوازية إلى قرص SSD. يستفيد هذا النهج بشكل أفضل من النطاق الترددي المتاح ويقلل من إجمالي عدد التكرارات المطلوبة.
تتحكم المعلمة beam_width_ratio في عدد المرشحين الذين يتم توسيعهم بالتوازي: عرض الحزمة = عدد أنوية وحدة المعالجة المركزية × نسبة_عرض_عرض_الحزمة. تؤدي النسبة الأعلى إلى توسيع نطاق البحث - مما قد يحسن الدقة - ولكنها تزيد أيضًا من الحوسبة وإدخال/إخراج القرص.
ولتعويض ذلك، يقدم DISKANN search_cache_budget_gb_ratio الذي يحتفظ بالذاكرة لتخزين البيانات التي يتم الوصول إليها بشكل متكرر مؤقتًا، مما يقلل من القراءات المتكررة على القرص الصلب. تساعد هذه الآليات مجتمعةً DISKANN على تحقيق التوازن بين الدقة وزمن الاستجابة وكفاءة الإدخال/الإخراج.
سبب أهمية ذلك - وأين تظهر الحدود
يعد تصميم DISKANN خطوة كبيرة إلى الأمام في البحث المتجه القائم على القرص. من خلال الاحتفاظ بأكواد PQ في الذاكرة ودفع الهياكل الأكبر إلى SSD، فإنه يقلل بشكل كبير من بصمة الذاكرة مقارنةً بفهارس الرسوم البيانية داخل الذاكرة بالكامل.
في الوقت نفسه، لا تزال هذه البنية تعتمد على DRAM دائم التشغيل للبيانات المهمة للبحث. يجب أن تظل رموز PQ، وذاكرة التخزين المؤقت، وهياكل التحكم مقيمة في الذاكرة للحفاظ على كفاءة عملية العبور. ومع نمو مجموعات البيانات إلى مليارات المتجهات وعمليات النشر التي تضيف نسخًا متماثلة أو مناطق متماثلة، يمكن أن تظل متطلبات الذاكرة هذه عاملاً مقيدًا.
هذه هي الفجوة التي صُمم AISAQ لمعالجتها.
كيفية عمل AISAQ وسبب أهميته
يعتمد AISAQ على الأفكار الأساسية وراء DISKANN مباشرةً ولكنه يقدم تحولاً حاسمًا: فهو يلغي الحاجة إلى الاحتفاظ ببيانات PQ في DRAM. فبدلاً من التعامل مع المتجهات المضغوطة على أنها هياكل مهمة للبحث ودائمة في الذاكرة، ينقلها AISAQ إلى SSD ويعيد تصميم كيفية وضع بيانات الرسم البياني على القرص للحفاظ على كفاءة اجتيازها.
ولتحقيق ذلك، يعيد AISAQ تنظيم تخزين العُقد بحيث يتم ترتيب البيانات المطلوبة أثناء البحث في الرسم البياني - المتجهات الكاملة وقوائم الجيران ومعلومات PQ - على القرص في أنماط محسّنة للوصول إلى الموقع. لا يقتصر الهدف على دفع المزيد من البيانات إلى القرص الأكثر اقتصادًا فحسب، بل القيام بذلك دون تعطيل عملية البحث الموضحة سابقًا.
لمعالجة متطلبات التطبيقات المختلفة، يوفر AISAQ وضعين للتخزين على القرص: الأداء والمقياس. من من منظور تقني، تختلف هذه الأوضاع بشكل أساسي في كيفية تخزين البيانات المضغوطة PQ والوصول إليها أثناء البحث. من من منظور التطبيق، يعالج هذان الوضعان نوعين متميزين من المتطلبات: متطلبات الكمون المنخفض، وهي متطلبات نموذجية للبحث الدلالي عبر الإنترنت وأنظمة التوصيات ومتطلبات النطاق الفائق، وهي متطلبات نموذجية ل RAG.
أداء AISAQ: مُحسَّن للسرعة
يحافظ نظام AISAQ-performance على جميع البيانات على القرص مع الحفاظ على انخفاض النفقات العامة للإدخال/الإخراج من خلال تجميع البيانات.
في هذا الوضع:
يتم تخزين المتجه الكامل لكل عقدة وقائمة الحواف ورموز PQ الخاصة بجيرانها معًا على القرص.
لا تزال زيارة عقدة ما تتطلب قراءة SSD واحدة فقط، لأن جميع البيانات اللازمة لتوسيع المرشح وتقييمه يتم تجميعها على قرص واحد.
من من منظور خوارزمية البحث، يعكس هذا بشكل وثيق نمط وصول DISKANN. يظل توسيع المرشح فعالاً، ويكون أداء وقت التشغيل قابلاً للمقارنة، على الرغم من أن جميع البيانات المهمة للبحث موجودة الآن على القرص.
تتمثل المفاضلة في نفقات التخزين الزائدة. نظرًا لأن بيانات PQ الخاصة بالجار قد تظهر في صفحات قرص متعددة العقد، فإن هذا التخطيط يقدم تكرارًا ويزيد بشكل كبير من حجم الفهرس الكلي.
ولذلك، فإن وضع AISAQ-Performance يعطي الأولوية لوقت الاستجابة المنخفض للإدخال/الإخراج على كفاءة القرص. من من منظور التطبيق، يمكن أن يوفر وضع AiSAQAQ-Performance زمن انتقال في نطاق 10 مللي ثانية، كما هو مطلوب للبحث الدلالي عبر الإنترنت.
مقياس AISAQ مُحسَّن لكفاءة التخزين
يتبع AISAQ-Scale النهج المعاكس. فهو مصمم لتقليل استخدام القرص مع الاحتفاظ بجميع البيانات على SSD.
في هذا الوضع:
يتم تخزين بيانات PQ على القرص بشكل منفصل، دون تكرار.
هذا يزيل التكرار ويقلل بشكل كبير من حجم الفهرس.
وتتمثل المفاضلة في أن الوصول إلى عقدة ورموز PQ المجاورة لها قد يتطلب قراءات متعددة على قرص SSD، مما يزيد من عمليات الإدخال/الإخراج أثناء توسيع المرشح. إذا تُرك هذا الأمر دون تحسينه، سيؤدي ذلك إلى إبطاء البحث بشكل كبير.
للتحكم في هذا الحمل الزائد، يقدم وضع AISAQ-Scale تحسينين إضافيين:
إعادة ترتيب بيانات PQ، والتي ترتب ناقلات PQ حسب أولوية الوصول لتحسين الموقع وتقليل القراءات العشوائية.
ذاكرة تخزين مؤقتة لبيانات PQ في DRAM (
pq_read_page_cache_size)، والتي تخزن بيانات PQ التي يتم الوصول إليها بشكل متكرر وتتجنب القراءات المتكررة على القرص للإدخالات الساخنة.
وبفضل هذه التحسينات، يحقق وضع AISAQ-Scale كفاءة تخزين أفضل بكثير من وضع AISAQ-Performance، مع الحفاظ على أداء البحث العملي. ويظل هذا الأداء أقل من DISKANN، ولكن لا توجد نفقات تخزين زائدة (حجم الفهرس مماثل لـ DISKANN) وبصمة الذاكرة أصغر بكثير. من من منظور التطبيق، يوفر AiSAQ الوسيلة لتلبية متطلبات RAG على نطاق واسع للغاية.
المزايا الرئيسية لـ AISAQ
من خلال نقل جميع البيانات الحرجة للبحث إلى القرص وإعادة تصميم كيفية الوصول إلى تلك البيانات، يغير AISAQ بشكل أساسي التكلفة وقابلية التوسع في البحث المتجه القائم على الرسم البياني. يوفر تصميمه ثلاث مزايا مهمة.
1. استخدام DRAM أقل بما يصل إلى 3,200 × 3,200 مرة
يقلل تكميم المنتج بشكل كبير من حجم المتجهات عالية الأبعاد، ولكن على نطاق مليار، لا تزال بصمة الذاكرة كبيرة. حتى بعد الضغط، يجب الاحتفاظ برموز PQ في الذاكرة أثناء البحث في التصاميم التقليدية.
على سبيل المثال، في معيار SIFT1B، وهو معيار يحتوي على مليار متجه ذي 128 بُعد، تتطلب أكواد PQ وحدها ما يقرب من 30-120 جيجابايت من ذاكرة DRAM، اعتمادًا على التكوين. سيتطلب تخزين المتجهات الكاملة غير المضغوطة حوالي 480 جيجابايت إضافية. في حين أن PQ يقلل من استخدام الذاكرة بمقدار 4-16×، فإن البصمة المتبقية لا تزال كبيرة بما يكفي للسيطرة على تكلفة البنية التحتية.
يزيل AISAQ هذا الشرط بالكامل. من خلال تخزين أكواد PQ على قرص SSD بدلاً من DRAM، لم تعد الذاكرة تستهلكها بيانات الفهرس الثابتة. يتم استخدام DRAM فقط للهياكل خفيفة الوزن والعابرة مثل القوائم المرشحة والبيانات الوصفية للتحكم. من الناحية العملية، يقلل هذا من استخدام الذاكرة من عشرات الجيجابايت إلى حوالي 10 ميغابايت. في تكوين تمثيلي على نطاق مليار، تنخفض ذاكرة DRAM من 32 جيجابايت إلى 10 ميغابايت، أي بتخفيض 3,200 مرة.
بالنظر إلى أن تخزين أقراص SSD يكلف حوالي 1/30 من سعر وحدة السعة مقارنةً بذاكرة DRAM، فإن هذا التحول له تأثير مباشر وكبير على التكلفة الإجمالية للنظام.
2. لا توجد نفقات إضافية للإدخال/الإخراج
عادةً ما يؤدي نقل رموز PQ من الذاكرة إلى القرص إلى زيادة عدد عمليات الإدخال/الإخراج أثناء البحث. يتجنب AISAQ ذلك من خلال التحكم بعناية في تخطيط البيانات وأنماط الوصول. فبدلاً من تشتيت البيانات ذات الصلة عبر القرص، يقوم AISAQ بتجميع رموز PQ والمتجهات الكاملة والقوائم المجاورة بحيث يمكن استرجاعها معًا. وهذا يضمن أن التوسيع المرشح لا يقدم قراءات عشوائية إضافية.
ولإعطاء المستخدمين التحكم في المفاضلة بين حجم الفهرس وكفاءة الإدخال/الإخراج، يقدم AISAQ المعلمة inline_pq ، والتي تحدد مقدار بيانات PQ المخزنة في كل عقدة:
inline_pq أقل: حجم فهرس أصغر، ولكنه قد يتطلب إدخال/إخراج إضافي
أعلى inline_pq أعلى: حجم فهرس أكبر، لكنه يحافظ على الوصول للقراءة الواحدة
عند تكوينه باستخدام inline_pq = max_degree، يقرأ AISAQ المتجه الكامل للعقدة وقائمة الجيران وجميع رموز PQ في عملية قرص واحدة، مما يطابق نمط الإدخال/الإخراج الخاص ب DISKANN مع الاحتفاظ بجميع البيانات على SSD.
3. الوصول المتسلسل إلى PQ يحسن كفاءة الحساب
في DISKANN، يتطلب توسيع عقدة مرشحة وصولًا عشوائيًا إلى الذاكرة R لجلب رموز PQ لجيرانها R. يتخلص AISAQ من هذه العشوائية عن طريق استرداد جميع رموز PQ في عملية إدخال/إخراج واحدة وتخزينها بالتتابع على القرص.
يوفر التخطيط المتسلسل فائدتين مهمتين:
تعد قراءات SSD المتسلسلة أسرع بكثير من القراءات العشوائية المبعثرة.
تعد البيانات المتجاورة أكثر ملاءمة لذاكرة التخزين المؤقت، مما يتيح لوحدات المعالجة المركزية حساب مسافات PQ بكفاءة أكبر.
وهذا يحسن كلاً من السرعة والقدرة على التنبؤ بحسابات مسافات PQ ويساعد على تعويض تكلفة أداء تخزين رموز PQ على SSD بدلاً من DRAM.
AISAQ مقابل DISKANN: تقييم الأداء
بعد فهم كيفية اختلاف AISAQ عن DISKANN من الناحية المعمارية، فإن السؤال التالي واضح ومباشر: كيف تؤثر خيارات التصميم هذه على الأداء واستخدام الموارد في الممارسة العملية؟ يقارن هذا التقييم بين AISAQ و DISKANN عبر ثلاثة أبعاد هي الأكثر أهمية على نطاق مليار: أداء البحث، واستهلاك الذاكرة، واستخدام القرص.
على وجه الخصوص، ندرس على وجه الخصوص، كيف يتصرف AISAQ مع تغير كمية بيانات PQ المضمنة (INLINE_PQ). تتحكم هذه المعلمة بشكل مباشر في المفاضلة بين حجم الفهرس وإدخال/إخراج القرص وكفاءة وقت التشغيل. نقوم أيضًا بتقييم كلا النهجين على أحمال عمل المتجهات منخفضة وعالية الأبعاد، نظرًا لأن الأبعاد تؤثر بشدة على تكلفة حساب المسافة ومتطلبات التخزين.
الإعداد
أُجريت جميع التجارب على نظام أحادي العقدة لعزل سلوك الفهرس وتجنب التداخل من تأثيرات الشبكة أو النظام الموزع.
تكوين الأجهزة:
وحدة المعالجة المركزية: وحدة المعالجة المركزية Intel® Xeon® Platinum 8375C بسرعة 2.90 جيجاهرتز
الذاكرة: السرعة: 3200 طن متري/ثانية، النوع: DDR4، الحجم: 32 جيجابايت
القرص: 500 جيجابايت NVMe SSD
معلمات بناء الفهرس
{
"max_degree": 48,
"search_list_size": 100,
"inline_pq": 0/12/24/48, // AiSAQ only
"pq_code_budget_gb_ratio": 0.125,
"search_cache_budget_gb_ratio": 0.0,
"build_dram_budget_gb": 32.0
}
معلمات الاستعلام
{
"k": 100,
"search_list_size": 100,
"beamwidth": 8
}
الطريقة المعيارية
تم اختبار كلٍ من DISKANN و AISAQ باستخدام Knowhere، محرك البحث المتجه مفتوح المصدر المستخدم في Milvus. تم استخدام مجموعتي بيانات في هذا التقييم:
SIFT128D (1 مليون متجه): معيار معروف ذو 128 بُعدًا يُستخدم عادةً في البحث عن واصف الصور. (حجم مجموعة البيانات الأولية ≈ 488 ميغابايت)
Cohere768D (1 مليون متجه): مجموعة تضمين 768 بُعدًا نموذجية للبحث الدلالي القائم على المحول. (حجم مجموعة البيانات الأولية ≈ 2930 ميغابايت)
تعكس مجموعات البيانات هذه سيناريوهين متميزين في العالم الحقيقي: ميزات الرؤية المدمجة والتضمينات الدلالية الكبيرة.
النتائج
Sift128D1M (المتجه الكامل ~ 488 ميغابايت)
Cohere768D1M (متجه كامل ~ 2930 ميغابايت)
التحليل
مجموعة بيانات SIFT128D
على مجموعة بيانات SIFT128D، يمكن لـ AISAQ أن يضاهي أداء DISKANN عندما يتم تسطير جميع بيانات PQ بحيث تتناسب البيانات المطلوبة لكل عقدة بالكامل مع صفحة SSD واحدة بسعة 4 كيلوبايت (INLINE_PQ = 48). في ظل هذا التكوين، يتم تجميع كل جزء من المعلومات المطلوبة أثناء البحث:
متجه كامل 512B
قائمة الجيران 48 × 4 + 4 = 196B
رموز PQ للجيران: 48 × (512 ب × 0.125 ب) ≈ 3072 ب
الإجمالي: 3780B
نظرًا لأن العقدة بأكملها تتسع لصفحة واحدة فقط، يلزم إدخال/إخراج واحد فقط لكل وصول، ويتجنب AISAQ القراءات العشوائية لبيانات PQ الخارجية.
ومع ذلك، عندما يتم تسطير جزء فقط من بيانات PQ، يجب جلب رموز PQ المتبقية من مكان آخر على القرص. يؤدي هذا إلى إدخال عمليات إدخال/إخراج عشوائية إضافية، مما يزيد بشكل حاد من الطلب على IOPS ويؤدي إلى انخفاض كبير في الأداء.
مجموعة بيانات Cohere768D
على مجموعة بيانات Cohere768D، يكون أداء AISAQ أسوأ من أداء DISKANN. والسبب هو أن المتجه المكون من 768 بُعدًا لا يتناسب ببساطة مع صفحة SSD واحدة سعة 4 كيلوبايت:
متجه كامل 3072B
قائمة الجيران 48 × 4 + 4 = 196B
رموز PQ للجيران: 48 × (3072 ب × 0.125 ب) ≈ 18432 ب
الإجمالي: 21,700 ب (≈ 6 صفحات)
في هذه الحالة، حتى لو تم تسطير جميع أكواد PQ، فإن كل عقدة تمتد على عدة صفحات. وبينما يظل عدد عمليات الإدخال/الإخراج ثابتًا، يجب أن تنقل كل عملية إدخال/إخراج بيانات أكثر بكثير، مما يستهلك نطاقًا تردديًا أسرع بكثير. بمجرد أن يصبح عرض النطاق الترددي هو العامل المحدد، لا يمكن ل AISAQ مواكبة DISKANN - خاصةً في أعباء العمل عالية الأبعاد حيث تنمو آثار البيانات لكل عقدة بسرعة.
ملاحظة:
عادةً ما يزيد تخطيط التخزين في AISAQ من حجم الفهرس على القرص بمقدار 4× إلى 6×. هذه مفاضلة متعمدة: يتم تجميع المتجهات الكاملة والقوائم المجاورة ورموز PQ على القرص لتمكين الوصول الفعال لصفحة واحدة أثناء البحث. وعلى الرغم من أن هذا يزيد من استخدام أقراص SSD، إلا أن سعة القرص أرخص بكثير من DRAM وتتوسع بسهولة أكبر في أحجام البيانات الكبيرة.
من الناحية العملية، يمكن للمستخدمين ضبط هذه المفاضلة من خلال ضبط نسب الضغط INLINE_PQ و PQ. هذه المعلمات تجعل من الممكن تحقيق التوازن بين أداء البحث وبصمة القرص والتكلفة الإجمالية للنظام بناءً على متطلبات عبء العمل، بدلاً من التقيّد بحدود الذاكرة الثابتة.
الخلاصة
تتغير اقتصاديات الأجهزة الحديثة. لا تزال أسعار DRAM مرتفعة، في حين أن أداء محركات أقراص SSD قد تقدم بسرعة - توفر محركات أقراص SSD 5.0 الآن عرض نطاق ترددي يتجاوز 14 جيجابايت/ثانية. ونتيجة لذلك، أصبحت البنى التي تحول البيانات المهمة للبحث من ذاكرة DRAM باهظة الثمن إلى تخزين أقراص SSD بأسعار معقولة أكثر إقناعاً. مع تكلفة سعة أقراص SSD التي تبلغ أقل من 30 ضعفاً لكل جيجابايت من ذاكرة DRAM، لم تعد هذه الاختلافات هامشية - فهي تؤثر بشكل كبير على تصميم النظام.
يعكس AISAQ هذا التحول. من خلال التخلص من الحاجة إلى تخصيص ذاكرة كبيرة ودائمة التشغيل، فإنه يمكّن أنظمة البحث المتجه من التوسع بناءً على حجم البيانات ومتطلبات عبء العمل بدلاً من حدود DRAM. يتماشى هذا النهج مع الاتجاه الأوسع نطاقاً نحو بنيات "التخزين الشامل"، حيث تلعب محركات أقراص الحالة الصلبة السريعة دوراً محورياً ليس فقط في الاستمرارية ولكن في الحوسبة النشطة والبحث. من خلال تقديم وضعين للتشغيل - الأداء والمقياس - يلبي AiSAQ متطلبات كل من البحث الدلالي (الذي يتطلب أقل زمن انتقال) و RAG (الذي يتطلب مقياسًا عاليًا جدًا، ولكن زمن انتقال معتدل).
من غير المرجح أن يقتصر هذا التحول على قواعد البيانات المتجهة. فقد بدأت أنماط تصميم مماثلة في الظهور بالفعل في معالجة الرسوم البيانية وتحليلات السلاسل الزمنية وحتى أجزاء من الأنظمة العلائقية التقليدية، حيث يعيد المطورون التفكير في الافتراضات القديمة حول مكان وجود البيانات لتحقيق أداء مقبول. ومع استمرار تطور اقتصاديات الأجهزة في التطور، ستتبعها هياكل الأنظمة.
لمزيد من التفاصيل حول التصاميم التي تمت مناقشتها هنا، راجع الوثائق:
هل لديك أسئلة أو ترغب في التعمق في أي ميزة من أحدث إصدار من ميلفوس؟ انضم إلى قناة Discord الخاصة بنا أو قم بتسجيل المشكلات على GitHub. يمكنك أيضًا حجز جلسة فردية مدتها 20 دقيقة للحصول على رؤى وإرشادات وإجابات لأسئلتك من خلال ساعات عمل Milvus المكتبية.
تعرف على المزيد حول ميزات Milvus 2.6
تقديم وظيفة التضمين: كيف يعمل ملفوس 2.6 على تبسيط عملية البحث في المتجهات والبحث الدلالي
فتح الاسترجاع الحقيقي على مستوى الكيان: صفيف الهياكل الجديد وإمكانيات MAX_SIM في ميلفوس
MinHash LSH في ميلفوس: السلاح السري لمكافحة التكرارات في بيانات تدريب LLM
الارتقاء بضغط المتجهات إلى أقصى الحدود: كيف يخدم ميلفوس 3 أضعاف الاستعلامات باستخدام RaBitQ
تكذب المعايير - قواعد بيانات المتجهات تستحق اختبارًا حقيقيًا
البحث المتجه في العالم الحقيقي: كيفية التصفية بكفاءة دون قتل التذكر
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



