تعزيز البحث العصبي باستخدام موصلات AI/ML في Amazon OpenSearch Service | خدمات الويب الأمازون

تعزيز البحث العصبي باستخدام موصلات AI/ML في Amazon OpenSearch Service | خدمات الويب الأمازون

عقدة المصدر: 3068091

مع إطلاق خاصية البحث العصبي عن خدمة Amazon OpenSearch في OpenSearch 2.9، أصبح الآن من السهل التكامل مع نماذج الذكاء الاصطناعي/التعلم الآلي لتشغيل البحث الدلالي وحالات الاستخدام الأخرى. دعمت خدمة OpenSearch كلاً من البحث المعجمي والبحث المتجهي منذ تقديم ميزة k-nearest المجاورة (k-NN) في عام 2020؛ ومع ذلك، يتطلب تكوين البحث الدلالي إنشاء إطار عمل لدمج نماذج التعلم الآلي (ML) لاستيعابها والبحث فيها. تعمل ميزة البحث العصبي على تسهيل تحويل النص إلى ناقل أثناء الاستيعاب والبحث. عند استخدام استعلام عصبي أثناء البحث، تتم ترجمة الاستعلام إلى تضمين متجه ويتم استخدام k-NN لإرجاع أقرب تضمينات متجهة من المجموعة.

لاستخدام البحث العصبي، يجب عليك إعداد نموذج تعلم الآلة. نوصي بتكوين موصلات AI/ML لخدمات AWS AI وML (مثل الأمازون SageMaker or أمازون بيدروك) أو بدائل الطرف الثالث. بدءًا من الإصدار 2.9 في خدمة OpenSearch، تتكامل موصلات AI/ML مع البحث العصبي لتبسيط وتشغيل ترجمة مجموعة البيانات والاستعلامات الخاصة بك إلى تضمينات المتجهات، وبالتالي إزالة الكثير من تعقيد ترطيب المتجهات والبحث.

في هذا المنشور، نوضح كيفية تكوين موصلات AI/ML للنماذج الخارجية من خلال وحدة تحكم خدمة OpenSearch.

حل نظرة عامة

على وجه التحديد، يرشدك هذا المنشور خلال عملية الاتصال بنموذج في SageMaker. ثم نقوم بإرشادك خلال استخدام الموصل لتكوين البحث الدلالي في خدمة OpenSearch كمثال لحالة الاستخدام المدعومة من خلال الاتصال بنموذج تعلم الآلة. يتم حاليًا دعم عمليات تكامل Amazon Bedrock وSageMaker على واجهة مستخدم وحدة تحكم OpenSearch Service، وستستمر قائمة عمليات تكامل الطرف الأول والثالث المدعومة بواجهة المستخدم في النمو.

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

المتطلبات الأساسية المسبقة

قبل توصيل النموذج عبر وحدة تحكم خدمة OpenSearch، قم بإنشاء مجال خدمة OpenSearch. خريطة ان إدارة الهوية والوصول AWS (IAM) دور بالاسم LambdaInvokeOpenSearchMLCommonsRole كدور الخلفية على ml_full_access الدور باستخدام المكون الإضافي للأمان في لوحات معلومات OpenSearch، كما هو موضح في الفيديو التالي. تتم تعبئة سير عمل عمليات تكامل خدمة OpenSearch مسبقًا لاستخدام LambdaInvokeOpenSearchMLCommonsRole دور IAM افتراضيًا لإنشاء الرابط بين مجال خدمة OpenSearch والنموذج المنشور على SageMaker. إذا كنت تستخدم دور IAM مخصصًا في عمليات تكامل وحدة تحكم OpenSearch Service، فتأكد من تعيين الدور المخصص كدور الواجهة الخلفية مع ml_full_access الأذونات قبل نشر القالب.

انشر النموذج باستخدام AWS CloudFormation

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

لإعداد التكامل، ما عليك سوى توفير نقطة نهاية مجال خدمة OpenSearch Service وتوفير اسم نموذج لتعريف اتصال النموذج بشكل فريد. افتراضيًا، ينشر القالب نموذج محولات الجملة Hugging Face، djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2.

عندما تختار إنشاء المكدس، يتم توجيهك إلى تكوين سحابة AWS وحدة التحكم. ينشر قالب CloudFormation البنية المفصلة في الرسم التخطيطي التالي.

يقوم مكدس CloudFormation بإنشاء ملف AWS لامدا التطبيق الذي ينشر نموذجًا من خدمة تخزين أمازون البسيطة (Amazon S3)، يقوم بإنشاء الموصل وإنشاء معرف النموذج في الإخراج. يمكنك بعد ذلك استخدام معرف النموذج هذا لإنشاء فهرس دلالي.

إذا كان نموذج MiniLM-L6-v2 الافتراضي بالكامل لا يخدم غرضك، فيمكنك نشر أي نموذج تضمين نص من اختيارك على مضيف النموذج المختار (SageMaker أو Amazon Bedrock) من خلال توفير عناصر النموذج الخاصة بك ككائن S3 يمكن الوصول إليه. وبدلاً من ذلك، يمكنك اختيار واحد مما يلي نماذج لغوية مدربة مسبقًا ونشره على SageMaker. للحصول على تعليمات لإعداد نقطة النهاية والنماذج، راجع تتوفر صور Amazon SageMaker.

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

عرض النموذج المنشور من خلال لوحات معلومات OpenSearch

للتحقق من أن قالب CloudFormation قام بنشر النموذج بنجاح على مجال خدمة OpenSearch والحصول على معرف النموذج، يمكنك استخدام ML Commons REST GET API من خلال أدوات تطوير OpenSearch Dashboards.

توفر واجهة برمجة تطبيقات GET _plugins REST الآن واجهات برمجة تطبيقات إضافية لعرض حالة النموذج أيضًا. يتيح لك الأمر التالي رؤية حالة النموذج البعيد:

GET _plugins/_ml/models/<modelid>

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

وبدلاً من ذلك، يمكنك عرض النموذج المنشور على مجال خدمة OpenSearch الخاص بك باستخدام تعلم آلة صفحة لوحات تحكم OpenSearch.

تسرد هذه الصفحة معلومات النموذج وحالات جميع النماذج المنشورة.

قم بإنشاء خط الأنابيب العصبي باستخدام معرف النموذج

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

PUT _ingest/pipeline/neural-pipeline
{
  "description": "Semantic Search for retail product catalog ",
  "processors" : [
    {
      "text_embedding": {
        "model_id": "sfG4zosBIsICJFsINo3X",
        "field_map": {
           "description": "desc_v",
           "name": "name_v"
        }
      }
    }
  ]
}

قم بإنشاء فهرس البحث الدلالي باستخدام خط الأنابيب العصبي باعتباره خط الأنابيب الافتراضي

يمكنك الآن تحديد تعيين الفهرس الخاص بك باستخدام خط الأنابيب الافتراضي الذي تم تكوينه لاستخدام خط الأنابيب العصبي الجديد الذي قمت بإنشائه في الخطوة السابقة. تأكد من إعلان حقول المتجهات كـ knn_vector والأبعاد مناسبة للنموذج الذي تم نشره على SageMaker. إذا احتفظت بالتكوين الافتراضي لنشر نموذج MiniLM-L6-v2 بالكامل على SageMaker، فاحتفظ بالإعدادات التالية كما هي وقم بتشغيل الأمر في Dev Tools.

PUT semantic_demostore
{
  "settings": {
    "index.knn": true,  
    "default_pipeline": "neural-pipeline",
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "desc_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "name_v": {
        "type": "knn_vector",
        "dimension": 384,
        "method": {
          "name": "hnsw",
          "engine": "nmslib",
          "space_type": "cosinesimil"
        }
      },
      "description": {
        "type": "text" 
      },
      "name": {
        "type": "text" 
      } 
    }
  }
}

استيعاب المستندات النموذجية لإنشاء المتجهات

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

curl -XPOST -u 'username:password' 'https://domain-end-point/_bulk' --data-binary @semantic_demostore.json -H 'Content-Type: application/json'

التحقق من صحة فهرس semantic_demostore الجديد

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

قارن البحث المعجمي والبحث الدلالي المدعوم بالبحث العصبي باستخدام أداة مقارنة نتائج البحث

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

تنظيف

يمكنك حذف الموارد التي قمت بإنشائها باتباع الإرشادات الواردة في هذا المنشور عن طريق حذف مكدس CloudFormation. سيؤدي هذا إلى حذف موارد Lambda وحاوية S3 التي تحتوي على النموذج الذي تم نشره في SageMaker. أكمل الخطوات التالية:

  1. في وحدة تحكم AWS CloudFormation، انتقل إلى صفحة تفاصيل المكدس الخاص بك.
  2. اختار حذف.

  1. اختار حذف للتأكيد.

يمكنك مراقبة تقدم حذف المكدس على وحدة تحكم AWS CloudFormation.

لاحظ أن حذف مكدس CloudFormation لا يؤدي إلى حذف النموذج المنشور على مجال SageMaker وموصل AI/ML الذي تم إنشاؤه. وذلك لأنه يمكن ربط هذه النماذج والموصل بفهارس متعددة داخل المجال. لحذف نموذج والموصل المرتبط به على وجه التحديد، استخدم واجهات برمجة تطبيقات النموذج كما هو موضح في لقطات الشاشة التالية.

أولا، undeploy النموذج من ذاكرة مجال خدمة OpenSearch:

POST /_plugins/_ml/models/<model_id>/_undeploy

ثم يمكنك حذف النموذج من فهرس النموذج:

DELETE /_plugins/_ml/models/<model_id>

وأخيرًا، احذف الموصل من فهرس الموصل:

DELETE /_plugins/_ml/connectors/<connector_id>

وفي الختام

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

لمعرفة المزيد حول موصلات AI/ML هذه، راجع موصلات الذكاء الاصطناعي لخدمة Amazon OpenSearch Service لخدمات AWS, تكاملات قالب AWS CloudFormation للبحث الدلاليو إنشاء موصلات لمنصات تعلم الآلة التابعة لجهات خارجية.


حول المؤلف

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

داجني براون هو مدير المنتج الرئيسي في AWS ويركز على OpenSearch.

الطابع الزمني:

اكثر من بيانات AWS الضخمة