يهدف هذا المستودع إلى بناء نموذج أولي لمحرك بحث مدعوم بالتعلم الآلي (ML) لاسترداد المنتجات والتوصية بها بناءً على استعلامات نصية أو صورية. هذا دليل خطوة بخطوة حول كيفية إنشاء نماذج SageMaker مع التدريب المسبق على اللغة والصور المتباينة (CLIP)، واستخدام النماذج لتشفير الصور والنصوص في عمليات التضمين، واستيعاب عمليات التضمين في فهرس Amazon OpenSearch Service، والاستعلام عن الفهرس. باستخدام وظيفة خدمة البحث المفتوح k-أقرب الجيران (KNN).
يتم استخدام الاسترجاع القائم على التضمين (EBR) بشكل جيد في أنظمة البحث والتوصية. ويستخدم خوارزميات بحث الجوار الأقرب (التقريبية) للعثور على عناصر مشابهة أو وثيقة الصلة من مخزن التضمين (المعروف أيضًا باسم قاعدة بيانات المتجهات). تعتمد آليات البحث الكلاسيكية بشكل كبير على مطابقة الكلمات الرئيسية وتتجاهل المعنى المعجمي أو سياق الاستعلام. هدف EBR هو تزويد المستخدمين بالقدرة على العثور على المنتجات الأكثر صلة باستخدام النص المجاني. إنه شائع لأنه بالمقارنة مع مطابقة الكلمات الرئيسية فإنه يعزز المفاهيم الدلالية في عملية الاسترجاع.
في هذا الريبو، نركز على بناء نموذج أولي لمحرك بحث مدعوم بالتعلم الآلي (ML) لاسترداد المنتجات والتوصية بها بناءً على استعلامات نصية أو صورية. يستخدم هذا خدمة Amazon OpenSearch Service ووظيفة أقرب جيرانها (KNN)، بالإضافة إلى Amazon SageMaker وميزة الاستدلال بدون خادم الخاصة بها. Amazon SageMaker هي خدمة مُدارة بالكامل توفر لكل مطور وعالم بيانات القدرة على إنشاء نماذج ML وتدريبها ونشرها لأي حالة استخدام مع بنية أساسية وأدوات ومسارات عمل مُدارة بالكامل. Amazon OpenSearch Service هي خدمة مُدارة بالكامل تسهل إجراء تحليلات السجل التفاعلية ومراقبة التطبيقات في الوقت الفعلي والبحث في مواقع الويب والمزيد.
التدريب المسبق على اللغة والصورة المقارنة (CLIP) عبارة عن شبكة عصبية تم تدريبها على مجموعة متنوعة من أزواج الصور والنصوص. تستطيع الشبكة (الشبكات) العصبية CLIP عرض كل من الصور والنصوص في نفس المساحة الكامنة، مما يعني أنه يمكن مقارنتها باستخدام مقياس التشابه، مثل تشابه جيب التمام. يمكنك استخدام CLIP لترميز صور منتجاتك أو وصفها في التضمينات، ثم تخزينها في قاعدة بيانات متجهة. ومن ثم يمكن لعملائك إجراء استعلام في قاعدة البيانات لاسترداد المنتجات التي قد تهمهم. للاستعلام عن قاعدة البيانات، يحتاج عملاؤك إلى تقديم صور أو نص إدخال، وبعد ذلك سيتم تشفير الإدخال باستخدام CLIP قبل إرساله إلى قاعدة بيانات المتجهات لبحث KNN.
تلعب قاعدة بيانات المتجهات هنا دور محرك البحث. تدعم قاعدة بيانات المتجهات هذه توحيد الصور والبحث المستند إلى النص، وهو أمر مفيد بشكل خاص في صناعات التجارة الإلكترونية والبيع بالتجزئة. أحد الأمثلة على البحث المعتمد على الصور هو أنه يمكن لعملائك البحث عن منتج من خلال التقاط صورة، ثم الاستعلام عن قاعدة البيانات باستخدام الصورة. فيما يتعلق بالبحث المستند إلى النص، يمكن لعملائك وصف المنتج في نص بتنسيق حر، ثم استخدام النص كاستعلام. سيتم فرز نتائج البحث حسب درجة التشابه (تشابه جيب التمام)، إذا كان أحد عناصر المخزون الخاص بك أكثر تشابهًا مع الاستعلام (صورة أو نص مُدخل)، فستكون النتيجة أقرب إلى 1، وإلا ستكون النتيجة أقرب إلى 0. إن أهم منتجات K في نتائج بحثك هي المنتجات الأكثر صلة في مخزونك.
توفر خدمة OpenSearch خدمة مطابقة النص وتضمين البحث المستند إلى KNN. سوف نستخدم تضمين البحث المستند إلى KNN في هذا الحل. يمكنك استخدام كل من الصورة والنص كاستعلام للبحث عن العناصر من المخزون. يتكون تنفيذ هذه الصورة الموحدة واختبار تطبيق البحث المعتمد على KNN من مرحلتين:
يستخدم الحل خدمات وميزات AWS التالية:
في القالب opensearch.yml
، سيتم إنشاء مجال OpenSearch ومنح دور تنفيذ SageMaker Studio الخاص بك لاستخدام المجال.
في القالب sagemaker-studio-opensearch.yml
، سيتم إنشاء مجال SageMaker جديد، وملف تعريف مستخدم في المجال، ومجال OpenSearch. لذا يمكنك استخدام ملف تعريف المستخدم StageMaker لإنشاء إثبات المفهوم هذا.
يمكنك اختيار أحد القوالب لتنفيذه باتباع الخطوات المذكورة أدناه.
الخطوة 1: انتقل إلى CloudFormation Service في وحدة تحكم AWS الخاصة بك.
الخطوة 2: قم بتحميل قالب لإنشاء مكدس CloudFormation clip-poc-stack
.
إذا كان لديك SageMaker Studio قيد التشغيل بالفعل، فيمكنك استخدام القالب opensearch.yml
.
إذا لم يكن لديك SageMaker Studio في الوقت الحالي، فيمكنك استخدام القالب sagemaker-studio-opensearch.yml
. سيقوم بإنشاء مجال استوديو وملف تعريف المستخدم لك.
الخطوة 3: التحقق من حالة مكدس CloudFormation. سوف يستغرق الأمر حوالي 20 دقيقة لإنهاء عملية الإنشاء.
بمجرد إنشاء المكدس، يمكنك الانتقال إلى وحدة تحكم SageMaker والنقر فوق Open Studio
للدخول إلى بيئة Jupyter.
إذا أظهر CloudFormation أثناء التنفيذ أخطاء حول الدور المرتبط بخدمة OpenSearch فلا يمكن العثور عليها. تحتاج إلى إنشاء دور مرتبط بالخدمة عن طريق تشغيل aws iam create-service-linked-role --aws-service-name es.amazonaws.com
في حساب AWS الخاص بك.
برجاء فتح الملف blog_clip.ipynb
باستخدام SageMaker Studio واستخدام Data Science Python 3
kernel. يمكنك تنفيذ الخلايا من البداية.
يتم استخدام مجموعة بيانات Amazon Berkeley Objects في التنفيذ. مجموعة البيانات عبارة عن مجموعة من 147,702 قائمة منتجات مع بيانات وصفية متعددة اللغات و398,212 صورة كتالوج فريدة. سوف نستخدم فقط صور العناصر وأسماء العناصر باللغة الإنجليزية الأمريكية. لأغراض العرض التوضيحي، سنستخدم ما يقرب من 1600 منتج.
يوضح هذا القسم اعتبارات التكلفة لتشغيل هذا العرض التوضيحي. سيؤدي إكمال إثبات المفهوم إلى نشر مجموعة OpenSearch وSageMaker Studio والتي ستتكلف أقل من 2 دولار في الساعة. ملاحظة: يتم حساب السعر المدرج أدناه باستخدام منطقة us-east-1. وتختلف التكلفة من منطقة إلى أخرى. وقد تتغير التكلفة مع مرور الوقت أيضًا (السعر هنا مسجل 2022-11-22).
مزيد من تفاصيل التكلفة أدناه.
خدمة OpenSearch – تختلف الأسعار بناءً على استخدام نوع المثيل وتكلفة التخزين. لمزيد من المعلومات، راجع تسعير Amazon OpenSearch Service.
t3.small.search
لمدة ساعة واحدة تقريبًا بسعر 0.036 دولارًا أمريكيًا في الساعة.SageMaker – تختلف الأسعار بناءً على استخدام مثيل EC2 لتطبيقات الاستوديو ومهام Batch Transform ونقاط نهاية الاستدلال بدون خادم. لمزيد من المعلومات، راجع تسعير Amazon SageMaker.
ml.t3.medium
لـ Studio Notebooks لمدة ساعة واحدة تقريبًا بسعر 0.05 USD في الساعة.ml.c5.xlarge
لتحويل الدفعة لمدة 6 دقائق تقريبًا بسعر 0.204 USD في الساعة.S3 – تكلفة منخفضة، ستختلف الأسعار حسب حجم النماذج/التحف المخزنة. ستكلف أول 50 تيرابايت كل شهر 0.023 USD فقط لكل جيجابايت مخزنة. لمزيد من المعلومات، راجع تسعير Amazon S3.
انظر المساهمة لمزيد من المعلومات.
هذه المكتبة مرخصة بموجب ترخيص MIT-0. انظر ملف الترخيص.