ما المقصود بتضمين المتجهات والبحث عن المتجهات في ذاكرة التخزين المؤقت Azure ل Redis

أصبح البحث عن تشابه المتجهات (VSS) تقنية شائعة للتطبيقات الذكية التي تعمل الذكاء الاصطناعي. يمكن استخدام ذاكرة التخزين المؤقت Azure ل Redis كقاعدة بيانات متجهة عن طريق دمج نماذجها مثل Azure OpenAI لاسترداد الذكاء الاصطناعي التوليدية المعززة وسيناريوهات التحليل. هذه المقالة هي مقدمة عالية المستوى لمفهوم تضمينات المتجهات، والبحث عن تشابه المتجهات، وكيف يمكن استخدام Redis كقاعدة بيانات متجهة تعمل على تشغيل التطبيقات الذكية.

للحصول على البرامج التعليمية ونماذج التطبيقات حول كيفية استخدام ذاكرة التخزين المؤقت Azure ل Redis وAzure OpenAI لإجراء بحث تشابه المتجهات، راجع ما يلي:

نطاق التوفر

تتطلب قدرات البحث عن المتجهات في Redis Redis Stack، وتحديدا الوحدة النمطية RediSearch . تتوفر هذه الإمكانية فقط في مستويات المؤسسة من ذاكرة التخزين المؤقت Azure ل Redis.

يحتوي هذا الجدول على معلومات توفر بحث المتجهات في مستويات مختلفة.

المستوى أساسي / قياسي متميز المؤسسة Enterprise Flash
متاح لا لا ‏‏نعم‬ نعم (معاينة)

ما هي تضمينات المتجهات؟

المفهوم

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

يصنف كل نموذج من نماذج التعلم الآلي البيانات وينتج المتجه بطريقة مختلفة. علاوة على ذلك، لا يمكن عادة تحديد المعنى الدلالي الذي يمثله كل بعد متجه بالضبط. ولكن لأن النموذج متسق بين كل كتلة من بيانات الإدخال، فإن الكلمات أو المستندات أو الصور المماثلة لها خطوط متجهة متشابهة أيضا. على سبيل المثال، الكلمات basketball وتضمين baseball المتجهات أقرب بكثير إلى بعضها البعض من كلمة مثل rainforest.

مقارنة المتجهات

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

إنشاء عمليات التضمين

تدعم العديد من نماذج التعلم الآلي تضمين واجهات برمجة التطبيقات. للحصول على مثال حول كيفية إنشاء تضمينات المتجهات باستخدام خدمة Azure OpenAI، راجع التعرف على كيفية إنشاء عمليات التضمين باستخدام Azure OpenAI.

ما هي قاعدة بيانات المتجهات؟

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

طريقة الفهرس والبحث

تحتاج قواعد بيانات المتجهات إلى فهرسة البيانات للبحث السريع والاسترداد. بالإضافة إلى ذلك، يجب أن تدعم قاعدة بيانات المتجهات استعلامات البحث المضمنة لتجارب البرمجة المبسطة.

هناك العديد من أساليب الفهرسة، مثل:

  • FLAT - فهرس القوة الغاشمة
  • HNSW - فعال وقوي أقرب بحث جار تقريبي باستخدام الرسوم البيانية ل Hierarchical Navigable Small World

هناك العديد من أساليب البحث الشائعة، بما في ذلك:

  • K-أقرب الجيران (KNN) - طريقة شاملة توفر أكثر الدقة ولكن مع تكلفة حسابية أعلى.
  • أقرب الجيران التقريبيين (ANN) - أكثر كفاءة من خلال دقة التداول لزيادة السرعة وخفض النفقات العامة للمعالجة.

قدرات البحث

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

سيناريوهات مفتاح البحث عن المتجهات

يمكن استخدام البحث عن تشابه المتجهات في تطبيقات متعددة. تتضمن بعض حالات الاستخدام الشائعة ما يلي:

  • Q&A الدلالي. إنشاء روبوت دردشة يمكنه الرد على الأسئلة حول بياناتك الخاصة. على سبيل المثال، روبوت دردشة يمكنه الرد على أسئلة الموظفين حول تغطية الرعاية الصحية الخاصة بهم. يمكن تقسيم مئات الصفحات من وثائق تغطية الرعاية الصحية الكثيفة إلى مجموعات، وتحويلها إلى خطوط متجهة لتضمينها، والبحث فيها بناء على تشابه المتجهات. يمكن بعد ذلك تلخيص المستندات الناتجة للموظفين الذين يستخدمون نموذج لغة كبير آخر (LLM). مثال على الأسئلة الدلالية
  • استرداد المستند. استخدم الفهم الدلالي الأعمق للنص الذي توفره LLMs لتوفير تجربة بحث أكثر ثراء في المستندات حيث يقصر البحث التقليدي المستند إلى الكلمة الأساسية. مثال على استرداد المستند
  • توصية المنتج. ابحث عن منتجات أو خدمات مشابهة للتوصية بها استنادا إلى أنشطة المستخدم السابقة، مثل محفوظات البحث أو عمليات الشراء السابقة. مثال على توصية المنتج
  • البحث المرئي. ابحث عن منتجات تبدو مشابهة لصورة التقطها مستخدم أو صورة لمنتج آخر. مثال البحث المرئي
  • التخزين المؤقت الدلالي. تقليل تكلفة وزمن انتقال LLMs عن طريق التخزين المؤقت لإكمال LLM. تتم مقارنة استعلامات LLM باستخدام تشابه المتجه. إذا كان استعلام جديد مشابها بما يكفي لاستعلام مخزن مؤقتا مسبقا، يتم إرجاع الاستعلام المخزن مؤقتا. مثال التخزين المؤقت الدلالي باستخدام LangChain
  • ذاكرة محادثة LLM. استمر في محفوظات المحادثات مع LLM كتضمينات في قاعدة بيانات متجهة. يمكن للتطبيق الخاص بك استخدام البحث المتجه لسحب المحفوظات ذات الصلة أو "الذكريات" إلى الاستجابة من LLM. مثال لذاكرة محادثة LLM

لماذا تختار Azure Cache for Redis لتخزين المتجهات والبحث فيها؟

يمكن استخدام ذاكرة التخزين المؤقت Azure ل Redis بشكل فعال كقاعدة بيانات متجهة لتخزين متجهات التضمين ولإجراء عمليات البحث عن تشابه المتجهات. يتوفر دعم تخزين المتجهات والبحث في العديد من أطر التعلم الآلي الرئيسية مثل:

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

يحتوي Redis على مجموعة واسعة من قدرات البحث من خلال الوحدة النمطية RediSearch، المتوفرة في طبقة المؤسسة من ذاكرة التخزين المؤقت Azure ل Redis. يتضمن هذا ما يلي:

  • مقاييس مسافة متعددة، بما في ذلك Euclideanو Cosineو.Internal Product
  • دعم أساليب الفهرسة KNN (باستخدام FLAT) و ANN (باستخدام HNSW).
  • تخزين المتجهات في بنيات بيانات التجزئة أو JSON
  • استعلامات أعلى K
  • استعلامات نطاق المتجهات (أي البحث عن كافة العناصر ضمن مسافة متجه معينة)
  • البحث المختلط مع ميزات استعلام قوية مثل:
    • التصفية الجغرافية المكانية
    • عوامل التصفية الرقمية والنصية
    • البادئة والمطابقة الغامضة
    • المطابقة الصوتية
    • الاستعلامات منطقية

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

ما هي خياراتي الأخرى لتخزين المتجهات والبحث عنها؟

هناك حلول أخرى متعددة على Azure لتخزين المتجهات والبحث فيها. وتشمل الحلول الأخرى ما يلي:

أفضل طريقة للبدء في التضمينات والبحث عن المتجهات هي تجربتها بنفسك!