كيف توازن خوارزمية البحث HNSW بين الذاكرة والاسترجاع في قاعدة بيانات متجهات محلية؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

تستبدل HNSW الذاكرة بالاسترجاع من خلال تخزين رسم بياني قابل للتنقل للجيران، حيث يحدد الترابط واتساع البحث مدى شمولية استكشاف الاستعلامات للمتجهات القريبة.

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

تضيف HNSW رسمًا بيانيًا طبقيًا للتقارب حول المتجهات المخزنة

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

يوفر رسم بياني متعدد الطبقات للتقارب مسارات عامة لـ HNSW في الطبقات العليا، وتنقلًا أدق بين الجيران قرب أسفل التسلسل الهرمي.

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

يقلل التسلسل الهرمي مقدار المجموعة التي تزورها الاستعلامات العادية، لكنه تقريبي؛ إذ قد يفوّت المسار جارًا حقيقيًا عندما لا يكشف الرسم البياني أو ميزانية البحث المسار الصحيح.

تنفق قيمة M مزيدًا من ذاكرة الرسم البياني لإنشاء مسارات أكثر

تتيح تطبيقات HNSW معامل ترابط يُسمى عادةً `m` أو `M`. ويسمح رفع قيمته للعقد بالاحتفاظ بمزيد من روابط الجيران، ما ينشئ مسارات بديلة عبر الأجزاء الكثيفة أو غير المنتظمة من فضاء المتجهات.

تخزن قيمة m في HNSW الأعلى مزيدًا من اتصالات الجيران لكل عقدة، ما يحسن عادةً خيارات التنقل والاسترجاع، مع زيادة ذاكرة الرسم البياني وأعمال الإنشاء.

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

يستخدم إنشاء Ef مزيدًا من عمل البناء لتحسين الرسم البياني نفسه

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

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

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

ومع ذلك، لا يمكن لجهد البناء أن يعوض إلى ما لا نهاية عن رسم بياني أصغر بكثير من المطلوب. إذ تتفاعل عوامل `m` واتساع البناء وتوزيع البيانات وسجل الإدراج.

ينفق Ef Search عملًا أثناء الاستعلام بدلًا من ذاكرة دائمة للرسم البياني

أثناء الاستعلام، تحتفظ HNSW بحدّ أمامي من المرشحين وتستكشف عقد الرسم البياني الواعدة. ويتحكم معامل يُسمى عادةً `ef` أو `ef_search` أو `hnsw_ef` في عدد المرشحين الذين يظلون قيد النظر أثناء ذلك الاجتياز.

يسمح رفع اتساع استكشاف الاستعلام للطلب بفحص مزيد من مرشحي الرسم البياني قبل الاستقرار على النتائج الأقرب، ما يرفع الاسترجاع عادةً مع زيادة زمن الاستجابة.

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

لا يلغي ضغط المتجهات تكلفة رسم HNSW البياني

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

حتى عند ضغط قيم المتجهات، فإن التكميم لا يصغر روابط الرسم البياني؛ إذ تظل HNSW بحاجة إلى الطوبولوجيا والمعرّفات والهياكل المرتبطة حول تلك المتجهات.

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

على خادم منزلي صغير، قِس مجموعة الذاكرة المقيمة الكاملة للمجموعة بدلًا من تقدير ذاكرة الوصول العشوائي اعتمادًا على أبعاد المتجهات وحدها.

ينبغي قياس الاسترجاع مقارنةً بالجيران الدقيقين، لا استنتاجه من الإعدادات

عادةً ما تدفع القيم الأعلى لـ `m` و`ef` النظام نحو استرجاع أفضل، لكن لا تضمن أي قيمة للمعامل دقة ثابتة عبر كل نماذج التضمين أو أحجام المجموعات أو توزيعات المستندات.

تتفاقم تكلفة ذاكرة رسم HNSW البياني في مجموعات RAG متعددة عندما تظل عدة مجموعات خاصة نشطة إلى جانب النماذج المحلية وفهارس البيانات الوصفية وذاكرات التخزين المؤقت وخدمات الخادم المنزلي الأخرى.

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

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.