يحتفظ هذا المستودع بالأصول التي تكمل المقالة " غير متصل بالإنترنت إلى الإنترنت: تخزين الميزات لأنظمة التوصية في الوقت الفعلي مع NVIDIA MERLIN " المكتوبة أصلاً لمدونة Nvidia Developer.
نحن نقدم أمثلة على بنية نظام التوصية ونقدم تعليمات النشر السحابية لاستخدام الإنتاج. تعتمد كل من الأمثلة على Redis وإطار Nvidia Merlin الذي يوفر عددًا من لبنات البناء لإنشاء أنظمة التوصية.
هناك 3 أمثلة في هذا المستودع
يتوسع نطاق واسع في البنية الثانية لحالات الاستخدام التي تتطلب تدريبًا كبيرًا على نطاق واسع (> 1 وحدة معالجة الرسومات).
تم تصميم كل من الأمثلة لتشغيلها محليًا على نظام NVIDIA GPU مع Docker و Docker-Corm. نوصي بتنفيذ جميع ما يلي على مثيل سحابي مع وحدة معالجة الرسومات NVIDIA (من الناحية المثالية AWS PYTORCH AMI)
ومع ذلك ، فإننا نقدم أيضًا مجموعة من البرامج النصية Terraform ودفاتر الملاحظات التي يمكنها نشر البنية التحتية اللازمة لتنفيذ الأمثلة على مثيلات AWS.

تستخدم أنظمة التوصية "غير المتصلة" الحوسبة الدُفعات لمعالجة كميات كبيرة من البيانات ثم تخزينها لاسترجاعها لاحقًا. يوضح الرسم البياني أعلاه مثالًا على هذا النظام الذي يستخدم نهجًا من برجين لإنشاء توصيات ثم يخزنها داخل قاعدة بيانات Redis لاسترجاعها لاحقًا.
يوفر دفتر الملاحظات في وضع عدم الاتصال طرقًا لإنشاء هذا النوع من نظام التوصية وكذلك القطارات وتصدير النماذج اللازمة لتشغيل نظام التوصية عبر الإنترنت في القسم التالي.
لتنفيذ دفتر الملاحظات ، قم بتشغيل ما يلي
$ cd offline-batch-recsys/
$ docker compose up # -d to daemonizeثم افتح الرابط الذي تم إنشاؤه بواسطة Jupyter في متصفح.

يقوم نظام التوصية "عبر الإنترنت" بإنشاء توصيات عند الطلب. على عكس الأنظمة الموجهة للدفعة ، فإن الأنظمة عبر الإنترنت مخصصة لمواصلة. عند تصميم هذه الأنظمة ، من المحتمل أن يكون مقدار الوقت لتقديم التوصيات هو العامل الأكثر أهمية. توج شائع حوالي 100-300 مللي ثانية ، يحتاج كل جزء من النظام إلى مكونات ليست فعالة فحسب ولكنها قابلة للتطوير لملايين المستخدمين والعناصر. إن إنشاء نظام توصية عبر الإنترنت له قيود أكثر بكثير من أنظمة الدُفعات ، ومع ذلك ، فإن النتيجة غالبًا ما تكون توصيات أفضل لأن المعلومات (الميزات) يمكن تحديثها في الوقت الفعلي. يوضح الرسم البياني أعلاه مثالاً على هذه البنية.
يولد المثال السابق لتوصيات الدُفعات النماذج ومجموعات البيانات لهذا الكمبيوتر الدفتري ، ولكن يمكنك أيضًا تنزيل الأصول التي تم تدريبها مسبقًا مع AWS CLI على النحو التالي
aws s3 cp s3://redisventures/merlin/merlin-recsys-data.zip ./data
لتنفيذ دفتر الملاحظات ، قم بتشغيل ما يلي
$ cd online-multi-stage-recsys/
$ docker compose up # -d to daemonizeيحتوي هذا القسم على دفتران: أحدهما لنشر متجر الميزات (redis) وإنشاء مؤشر المتجه (redis) والآخر لتحديد وتشغيل نموذج المجموعة لتشغيل خط الأنابيب بأكمله (Triton).
ملاحظة: تأكد من تشغيل دفتر الملاحظات الأول قبل الثانية أو لن يتم تنفيذ النموذج.

آخر دفتر ملاحظات يوضح كيفية التعامل مع مجموعات البيانات الكبيرة جدًا عند تدريب نماذج مثل DLRM لأنظمة التوصية. غالبًا ما يكون للمؤسسات الكبيرة ملايين المستخدمين والعناصر. قد لا يتناسب جدول التضمين بالكامل للنموذج على وحدة معالجة الرسومات الواحدة. لهذا ، أنشأت Nvidia إطار Hugectr.
Hugectr هو جزء من إطار عمل Nvidia Merlin ويضيف مرافق للتدريب الموزعة وخدمة نماذج التوصية. يركز دفتر الملاحظات المفصل هنا على نشر وخدمة Hugectr ويوفر نسخة مدربة مسبقًا من DLRM يمكن استخدامها على سبيل المثال. يمكن العثور على مزيد من المعلومات حول التدريب الموزع مع Hugectr هنا.
لتنفيذ دفتر الملاحظات المحلي ، قم بتشغيل ما يلي
$ cd large-scale-recsys/
$ docker compose up # -d to daemonizeيشتمل هذا المجلد على نصوص terraform وكتاب اللعب ANSIBLE الذي ينشر
كل ذلك على خدمات الويب Amazon.

يمكن تشغيل جميع الأمثلة المعروضة في هذا المستودع على البنية التحتية المتدنية مع الحد الأدنى من التغييرات. هذه طريقة سريعة لنشر هذه البنية التحتية لتجربة خطوط أنابيب نظام التوصية المفصلة هنا. انظر README داخل النشر السحابي للمزيد.
يمكن استرداد النماذج الموجودة في هذا البرنامج التعليمي باستخدام AWS CLI من خلال الجري
aws s3 cp s3://redisventures/merlin/merlin-recsys-data.zip ./data
رابط إعادة النية التالية إلى الكود/الأصول المستخدمة في المقالات وأدفاب الدفاتر
تعتمد دفاتر الملاحظات هنا على عمل العديد من دفاتر الملاحظات الموجودة مسبقًا مثل
نوصي بشدة القراءة