Этот репозиторий содержит активы, которые дополняют статью « Офлайн на онлайн: хранилище функции для систем рекомендаций в реальном времени с Nvidia Merlin », написанной первоначально для блога разработчиков Nvidia.
Мы приводим примеры архитектур рекомендаций и предоставляем инструкции по развертыванию облака для использования производства. Каждый из примеров полагается на Redis и Nvidia Merlin Framework, которая предоставляет ряд строительных блоков для создания систем рекомендаций.
В этом репозитории есть 3 примера
Крупномасштабная расширение второй архитектуры для случаев использования, которые требуют крупномасштабного (> 1 графического процессора) или вывода.
Каждый из примеров предназначен для локального запуска в системе с поддержкой GPU Nvidia с Docker и Docker-Compose. Мы рекомендуем выполнить все следующее на экземпляре облака с помощью графического процессора NVIDIA (в идеале AWS Pytorch AMI)
Тем не менее, мы также предоставляем набор сценариев Terraform и Ansible Notebooks, которые могут развернуть инфраструктуру, необходимую для выполнения примеров на экземплярах AWS.

«Офлайн» системы рекомендаций используют пакетные вычисления для обработки большого количества данных, а затем хранить их для последующего поиска. На приведенной выше диаграмме показан пример такой системы, которая использует двухюдерный подход для генерации рекомендаций, а затем хранит их в базе данных REDIS для последующего поиска.
В автономном ноутбуке представлены методы для создания этого типа системы рекомендаций, а также поезда и экспорта моделей, необходимых для запуска системы онлайн -рекомендаций в следующем разделе.
Чтобы выполнить ноутбук, запустите следующее
$ cd offline-batch-recsys/
$ docker compose up # -d to daemonizeЗатем откройте ссылку, сгенерированную Юпитером в браузере.

Система рекомендаций «онлайн» генерирует рекомендации по требованию. В отличие от партийных систем, онлайн-системы ограничены задержкой. При разработке этих систем количество времени для получения рекомендаций, вероятно, является наиболее важным фактором. Обычно ограниченная около 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 Playbooks, которые развертывают
Все на Amazon Web Services.

Примеры, представленные в этом репозитории, могут быть запущены на терраформированной инфраструктуре с минимальными изменениями. Это быстрый метод для развертывания этой инфраструктуры, чтобы попробовать трубопроводы системы рекомендаций, подробно описанные здесь. Посмотрите на Readme в облачном развертывании для большего.
Модели в этом уроке могут быть извлечены с помощью AWS CLI, работая
aws s3 cp s3://redisventures/merlin/merlin-recsys-data.zip ./data
Следующие репостории ссылаются на код/активы, используемые в статьях и ноутбуках
Записные книжки здесь основаны на работе многих ранее существовавших ноутбуков, таких как
Мы настоятельно рекомендуем прочитать