NVIDIA Developer рассказывает, что генеративные рекомендательные системы (GR) становятся мощным новым подходом к персонализации на крупномасштабном уровне. Вместо того чтобы рассматривать рекомендации как набор изолированных этапов извлечения, ранжирования и предсказания, GR переосмысляют рекомендации как моделирование последовательностей на основе поведения пользователя. Взаимодействия пользователя, контекст, кандидаты на рекомендации и действия становятся токенами в высококардинальном потоке событий, и модель учится генерировать или оценивать следующие релевантные элементы из этой последовательности. Этот подход особенно привлекателен для современных рабочих нагрузок рекомендаций, где истории пользователей могут быть длинными, каталоги предметов постоянно меняются, а качество персонализации зависит от моделирования богатого последовательного поведения. Однако это также создает проблему обслуживания: модели GR требуют низкой задержки при выводе, несмотря на длинные истории, большие таблицы встраивания и модели, ориентированные на последовательности. NVIDIA Dynamo-Triton (ранее известный как NVIDIA Triton Inference Server) теперь поддерживает рабочий процесс вывода иерархического последовательного трансдукционного блока (HSTU) GR с помощью репозитория примеров recsys. Рабочий процесс сочетает HTSU, компиляцию PyTorch Ahead-of-Time Inductor, кэширование KV на основе FlexKV, валидацию на C++, кэширование встраивания NV и развертывание Dynamo-Triton. В результате получается практический путь для обслуживания моделей ранжирования HSTU с хорошей производительностью по задержке. На динамическом размере пакета 8 на графическом процессоре NVIDIA RTX PRO 6000 Blackwell Workstation Edition, Dynamo-Triton с PyTorch AOTI достиг лучших показателей скорости до 4.47x для трехслойной модели HSTU и 5.93x для восьмислойной модели при 100% попадании в кэш KV GPU по сравнению с той же конфигурацией AOTI без кэширования KV. Этот пост показывает, как переместить генеративный рекомендатель HSTU из разработки PyTorch в продуктивный вывод с помощью NVIDIA Dynamo-Triton, PyTorch AOTI и FlexKV. Вы узнаете, как экспортировать и заранее скомпилировать модель, проверить полученный артефакт развертывания на Python и C++, и обслуживать его через Dynamo-Triton без переписывания модели для отдельного времени выполнения. Также рассматривается, как кэширование KV на основе GPU уменьшает повторные вычисления и представлены бенчмарки, демонстрирующие до 5.93x меньшую задержку, подчеркивая практические преимущества этого рабочего процесса развертывания. Почему стоит использовать HSTU для генеративных рекомендаций? HSTU были введены для рабочих нагрузок GR, которые работают с высококардинальными, нестабильными потоками событий. В традиционной рекомендательной системе извлечение и ранжирование часто строятся на основе коллекции специализированных моделей и конвейеров признаков. GR вместо этого моделируют рекомендации как задачу последовательного предсказания, позволяя модели рассуждать о контексте пользователя, истории предметов, истории действий и кандидатах на предметы в одной архитектуре, учитывающей последовательности. В примере ранжирования NVIDIA HSTU вход модели строится из категориальных токенов. Контекстные токены представляют информацию со стороны пользователя, токены предметов представляют предметы, а опциональные токены действий представляют взаимодействия пользователя с этими предметами. Путь предварительной обработки HSTU извлекает встраивания, чередует встраивания предметов и действий, когда токены действий присутствуют, добавляет контекстную информацию и применяет позиционное кодирование. Блоки HSTU затем обрабатывают последовательность, и голова предсказания производит многозадачные выходы ранжирования. Эта структура хорошо подходит для рекомендательных систем, где актуальность, порядок и повторяющиеся паттерны взаимодействия имеют значение. Однако это также означает, что вывод может стать дорогим, когда каждый запрос повторно обрабатывает длинные исторические последовательности. Производственные системы должны сохранять преимущества моделирования HSTU, сокращая избыточные вычисления во время обслуживания. Почему обслуживание больших последовательных рекомендателей представляет собой проблему? Обслуживание больших последовательных рекомендателей отличается от обслуживания небольшой плотной модели ранжирования. Стек обслуживания должен обрабатывать неровные входные последовательности, большое состояние категориальных встраиваний, длинные истории и шаблоны запросов, когда один и тот же пользователь может возвращаться неоднократно с небольшим количеством новой информации. Повторное вычисление полного состояния ключ-значение для истории пользователя при каждом запросе приводит к потере работы и увеличивает задержку. Здесь кэширование KV становится важным. Кэш KV хранит повторно используемые данные ключ-значение из предыдущих вычислений последовательности, позволяя модели избежать повторного вычисления кэшированных частей истории пользователя. Для вывода рекомендателей это особенно полезно, когда длинная история пользователя остается в основном стабильной, в то время как появляются новые кандидаты или недавние действия. Рабочий процесс вывода HSTU NVIDIA включает в себя менеджер кэша KV, который использует память GPU и хранилище хоста для кэшей данных KV. Кэш GPU организован как страничная таблица данных KV и поддерживает поиск, выделение, добавление и вытеснение. Когда пространство кэша GPU ограничено, более старые пользователи могут быть вытеснены в соответствии с политикой LRU. Хранилище на стороне хоста предоставляет еще один уровень для кэшированных данных KV, а рабочий процесс включает в себя бэкэнд на основе FlexKV для времени выполнения кэша KV. Ядро внимания HSTU может потреблять данные KV из страничного кэша, а экспортированный путь вывода включает в себя кэш-осведомленные пользовательские операции для поиска, выделения, онбординга, добавления и выгрузки. Это позволяет пути обслуживания сохранять семантику последовательности модели, сокращая избыточные вычисления. PyTorch AOTI для нативного вывода. Рабочий процесс Pytorch AOTI (Ahead-of-Time Inductor) начинается с модели PyTorch и экспортирует ее с помощью torch.export и PyTorch AOTI. AOTI заранее компилирует модель в пакет, который может быть загружен нативным временем выполнения C++. Это снижает накладные расходы времени выполнения Python и предоставляет артефакт, удобный для развертывания для бэкэнда Dynamo-Triton PyTorch AOTI. Экспортированный пакет модели содержит архив модели AOTI, а также файлы метаданных и таблицы встраивания. В примере NVIDIA реализация встраивания сочетает встраивающие таблицы DynamicEmb и NV Embedding Cache, которые снижают использование памяти GPU, храня только популярные встраивания в памяти GPU, сохраняя всю таблицу в памяти CPU. Путь экспорта записывает метаданные слоя и данные таблицы встраивания вместе с скомпилированным архивом .pt2, чтобы модель могла быть загружена без ненужных дублирующих копий таблицы встраивания. Рабочий процесс проверяет те же экспортированные артефакты несколькими способами. Скрипты экспорта на Python генерируют пакет и воспроизводят тензоры. Нативные исполняемые файлы C++ загружают и воспроизводят экспортированную модель для проверки корректности и эффективности. Развертывание Dynamo-Triton затем использует тот же пакет AOTI и путь воспроизведения, что помогает поддерживать согласованность валидации разработки и обслуживания в производстве. Путь развертывания Dynamo-Triton предоставляет уровень обслуживания для экспортированной модели HSTU. Развертывание AOTI использует бэкэнд PyTorch Dynamo-Triton с платформой: "torch_aoti". Это позволяет Dynamo-Triton загружать и обслуживать заранее скомпилированный пакет модели PyTorch. Полный рабочий процесс включает в себя следующие пять этапов: построение необходимых пользовательских операторов и библиотек времени выполнения, экспорт модели ранжирования HSTU с помощью PyTorch AOTI, запуск службы кэша KV на основе FlexKV, проверка экспортированных артефактов с помощью нативного C++ воспроизведения и обслуживание экспортированной модели AOTI с кэшем KV через Dynamo-Triton. Этот подход важен, потому что обслуживание рекомендателей требует больше, чем просто быструю модель ядра. Dynamo-Triton обеспечивает управление репозиториями моделей, обработку запросов, интеграцию бэкэндов, метрики и структуру развертывания. AOTI предоставляет артефакт модели с меньшими накладными расходами. NV Embedding Cache снижает требования к памяти GPU, храня только горячие части таблиц встраивания в памяти GPU. FlexKV снижает повторные вычисления для длинных историй пользователей, кэшируя блоки внимания. Вместе они формируют стек обслуживания, нацеленный на реалистичный вывод генеративного рекомендателя. Бенчмарки задержки обслуживания HSTU. Этот бенчмарк сравнивает задержку обслуживания HSTU через бэкэнды Dynamo-Triton, размеры моделей, размеры пакетов и состояния кэша KV. Цель состоит в том, чтобы количественно оценить преимущества производственного стека обслуживания HSTU. Он сравнивает бэкэнд PyTorch AOTI Dynamo-Triton с Python-бэкэндом, измеряет дополнительное снижение задержки от кэширования KV GPU и оценивает, как эти преимущества масштабируются по глубине модели и размерам пакетов. В конечном итоге он показывает разработчикам производительность, которую они могут ожидать при переходе от некэшированного вывода на основе Python к скомпилированному, осведомленному о кэше развертыванию HSTU с Dynamo-Triton. Результаты бенчмарков в примерах recsys используют конфигурацию ранжирования KuaiRand-1K на одном графическом процессоре. Структура модели включает трехслойные и восьмислойные варианты HSTU, скрытый размер 512, четыре головы внимания, веса модели BF16, кэш KV BF16, максимальная длина последовательности истории 8192 в общей сложности (4096 пар предметов и действий) и максимальная длина кандидата последовательности 100, а также шесть контекстных признаков. Эффективная длина последовательности перед выравниванием составляет 8298 токенов, экспортируется с максимальной выровненной длиной последовательности 8320. Протокол бенчмарка сообщает задержку на каждый логический запрос. Для бенчмарка Dynamo-Triton AOTI каждый вызов Dynamo-Triton содержит один логический пакет, а задержка на логический запрос рассчитывается делением времени прохода от конца до конца на количество вызовов Dynamo-Triton, умноженное на размер логического пакета. Загрузка данных, валидация, повторная упаковка, генерация идентификаторов пользователей, запуск сервера, разогрев и время ожидания после разогрева исключены из измеряемого времени. Оборудование, использованное для сравнения бэкэндов Dynamo-Triton и результатов по размеру пакета, — это графический процессор NVIDIA RTX PRO 6000 Blackwell Workstation Edition. Сравнение бэкэндов Dynamo-Triton. На размере пакета 2 Dynamo-Triton, PyTorch AOTI улучшает задержку по сравнению с Python-бэкэндом Dynamo-Triton даже без попаданий в кэш KV. При попаданиях из кэша KV GPU объемом 20 ГБ улучшение задержки значительно больше. Эти результаты показывают две разные выгоды. Во-первых, AOTI снижает накладные расходы на обслуживание по сравнению с Python-бэкэндом. Во-вторых, попадания в кэш KV уменьшают рабочую нагрузку модели за счет повторного использования кэшированного состояния последовательности. Польза от кэша особенно заметна на более глубокой восьмислойной модели, где избегание повторных вычислений имеет большее значение. Масштабирование размера пакета с AOTI и кэшем KV. Результаты бэкэнда PyTorch AOTI по размеру пакета показывают, что кэширование KV становится все более эффективным по мере увеличения логического размера пакета. На размере пакета 8 трехслойная модель HSTU достигает задержки 0.423 мс на логический запрос с попаданиями в кэш KV GPU. Восьмислойная модель HSTU достигает 0.678 мс. Это сильные результаты для вывода ранжирования длинных последовательностей и демонстрируют ценность сочетания скомпилированного выполнения модели с обслуживанием, осведомленным о кэше. Каковы преимущества ускорения вывода HSTU GR? Рекомендательные системы работают в условиях жестких бюджетов задержки. Дополнительная задержка ранжирования может повлиять на время загрузки страницы, отзывчивость ленты и сроки обслуживания рекламы. Тем временем все более осведомленные о последовательностях и персонализированные модели могут требовать больше вычислений вывода, особенно по мере увеличения историй пользователей. Рабочий процесс обслуживания HSTU сочетает в себе дополнительные технологии для решения этой проблемы. HSTU предоставляет архитектуру генеративной рекомендации, PyTorch AOTInductor производит заранее скомпилированный артефакт развертывания, кэширование KV на основе FlexKV позволяет повторно использовать ранее вычисленное состояние внимания, а NVIDIA Dynamo-Triton предоставляет среду обслуживания в производстве. Этот подход особенно ценен, когда последовательные запросы делят неизменный префикс истории взаимодействия пользователя. Вместо того чтобы повторно вычислять внимание по этой части последовательности, модель может повторно использовать свое кэшированное состояние ключ-значение и вычислять только то, что необходимо для недавно добавленных токенов. Потенциальные экономии увеличиваются с увеличением длины последовательностей и глубины моделей, когда повторные вычисления через несколько слоев HSTU в противном случае добавили бы значительную задержку. Начните ускорять вывод HSTU GR. Вы можете воспроизвести и расширить этот рабочий процесс из репозитория NVIDIA/recsys-examples на GitHub. Обзор HSTU вводит структуру модели GR, включая контекстные токены, токены предметов, токены действий, таблицы встраивания, блоки HSTU и головы предсказания. Руководство по выводу AOTI проводит через создание необходимых изображений и библиотек, подготовку данных KuaiRand-1K, обучение контрольной точки, экспорт модели AOTI с кэшем KV, ее валидацию с помощью воспроизведения на C++, упаковку изображения среды выполнения Dynamo-Triton и воспроизведение запросов через сервер Dynamo-Triton. Чтобы узнать больше, ознакомьтесь с этими связанными ресурсами: обзор генеративного рекомендателя HSTU, интеграция Dynamo-Triton плюс FlexKV плюс PyTorch AOTI, бенчмарки вывода HSTU, документация HSTU Dynamo-Triton, кэш встраивания NV. Благодарности. Этот пост является совместной работой нескольких команд NVIDIA. Мы хотели бы поблагодарить J, Рунчу Чжао, Юлу Лю, Линь Ху, Чжуафан Ли, Якоба Субага и Томера Бар-Она за их вклад. Материал подготовлен нейросетью на основе оригинальной публикации. ИИ может ошибаться в деталях (цифры, имена, даты, цитаты) — для важной информации сверяйтесь с первоисточником.
Материал агрегирован из первоисточника:
SMNTCN (Semanticon) — глобальные новости ИИ
Читать полностью в SMNTCN (Semanticon) — глобальные новости ИИМатериал собран из открытых источников. Если размещение затрагивает ваши права → Удалить информацию
Разработка генеративного рекомендателя HSTU с помощью NVIDIA Dynamo-Triton
NVIDIA Developer сообщает о разработке генеративного рекомендателя HSTU с помощью NVIDIA Dynamo-Triton.
Кратко от AI: Главные тезисы
- NVIDIA Developer сообщает о разработке генеративного рекомендателя HSTU с помощью NVIDIA Dynamo-Triton.
Разработка генеративного рекомендателя HSTU с помощью NVIDIA Dynamo-Triton
Похожие материалы
ENAnthropic pitches AI safety bill that may block a model if 50+ people could be killed
The proposed policy seems to offer protections against AI run amok but actually forbids federal agencies from blocking a model's release without the permission of a judge.
Хватит платить за ИИ, запускайте все локально (вот как)
Большие лаборатории не собираются об этом говорить, а будут постоянно изучать идею улучшения моделей для ваших собственных сценариев использования [музыки] для ваших собственных рабочих процессов. У крупных лабораторий нет стимула предоставлять пользователям эту [музыку], потому что они тренируют свои модели для нормальной работы…
ENAnthropic’s cloud partnerships are getting messy
Anthropic is reportedly struggling to secure enough compute from cloud providers that increasingly view it as a competitor, even as its infrastructure spending balloons ahead of a planned November IPO.
На связи Paragon — подводим итоги дня!
На связи Paragon — подводим итоги дня! Главное за сутки🟠20.10 🟠Google Play — свои приложения из описания 🟠Claude Code — телевизор без рекламы 🟠Meta Muse — сбой с адресом продавца 🟠Dream Labs — управление роботами за $3 в час 🟠WhatsApp — скрытые запреты для ИИ-бота…


