**Введение: **Angel — это распределенная высокопроизводительная платформа машинного обучения, разработанная Tencent, которая поддерживает сценарии машинного обучения, глубокого обучения, графовых вычислений и федеративного обучения. Платформа глубокого обучения Angel применялась во многих сценариях Tencent. Итак, сегодня я представлю Ангела: практика применения глубокого обучения в системе рекламных рекомендаций Tencent Содержание введения будет вращаться вокруг следующих моментов.
-
Платформа машинного обучения Angel
-
Рекламная рекомендательная система и модель
-
Обучение и оптимизация модели
-
Эффект оптимизации
01Платформа машинного обучения Angel
1. Архитектура платформы машинного обучения Angel
Платформа машинного обучения Angel — это высокопроизводительная распределенная платформа машинного обучения, основанная на традиционной архитектуре сервера параметров, разработанной Tencent, как показано на рисунке 1, а подробная схема архитектуры показана на рисунке 2. Это полнофункциональная платформа машинного обучения, которая поддерживает разработку функций, обучение моделей, обслуживание моделей, настройку параметров и т. д. Она также поддерживает такие сценарии, как машинное обучение, глубокое обучение, графовые вычисления и федеративное обучение. Он использовался во многих сферах бизнеса, таких как внутренняя реклама, финансы и социальные сети Tencent, привлекая пользователей и разработчиков из более чем 100 внешних компаний, включая Huawei, Sina и Xiaomi.
Платформа машинного обучения Fig1 Angel
Рис. 2. Схема архитектуры платформы машинного обучения Angel
Платформа машинного обучения Angel была разработана с учетом многих проблем. Во-первых, это простота использования. Платформа машинного обучения Angel имеет простой программный интерфейс и может быть быстро использована. Она поддерживает автоматическую сегментацию обучающих данных и моделей, сокращает вмешательство пользователя. , и прост в использовании. Кроме того, есть аспект расширяемости, Angel предоставляет интерфейс PsFun, наследование определенного класса может реализовать логику обновления настраиваемых параметров, а также пользовательский формат данных и метод сегментации модели. Тогда есть гибкость.Angel реализует два режима, ANGEL_PS_WORKER и ANGEL_PS_SERVICE.В режиме ANGEL_PS_WORKER услуги обучения и вывода модели выполняются PS и Worker самой платформы Angel.Этот режим ориентирован на скорость. В режиме ANGEL_PS_SERVICE Angel запускает только Master и PS, а конкретный расчет передается другим вычислительным платформам (таким как Spark, TensorFlow).Angel отвечает только за обеспечение функции сервера параметров, уделяя особое внимание экологии для расширения экологическая ниша платформы машинного обучения Angel. Режим связи Angel поддерживает BSP, SSP, ASP и другие протоколы связи для удовлетворения требований различных сложных реальных коммуникационных сред. Последним является стабильность. Отказоустойчивость PS в Angel использует режим CheckPoint. Angel записывает параметры, переносимые PS, в распределенную систему хранения через регулярные промежутки времени. Если экземпляр PS зависает, PS считывает последнюю CheckPoint и начинает заново. . С точки зрения отказоустойчивости Angel's Worker, в случае сбоя работы мастер перезапустит экземпляр работы, и экземпляр получит информацию об итерации параметра, когда он зависнет от мастера. Информация о задаче Angel's Master также регулярно хранится в распределенной системе хранения.Если Mater зависнет, он будет использовать механизм перезапуска Yarn Master для перезапуска Master и загрузки информации для запуска задачи с предыдущей точки останова. У Angel также есть механизм обнаружения медленной работы: если какая-то работа работает слишком медленно, ее задачи будут отправлены на другие работы.
Отправка и выполнение задач платформы машинного обучения Angel просты.Конкретные шаги показаны на рисунке 3. После входа в Cient запустите экземпляр PS, PS загрузит модель со стороны клиента, затем клиент запустит несколько работ, и Work загрузит данные обучения, чтобы начать обучение. А обучение, push и pull будут извлекать и обновлять параметры, а также сохранять модель по указанному пути после обучения.
Рис. 3. Блок-схема отправки и выполнения платформы машинного обучения Angel
Платформа машинного обучения Angel сделала большую абстракцию при разработке структуры кода.Этот метод проектирования хорошо масштабируется.Вся структура в основном разделена на четыре уровня, как показано на рисунке 4. Базовый уровень (Angel-Core) — это базовый уровень, в основном включающий PSAgent, PSServer, Work, Network и Storage. Уровень машинного обучения (Angel-ML) предоставляет основные типы данных и методы, и пользователи могут определять свои собственные методы для доступа к частным моделям в соответствии с PsFunc. Интерфейсный уровень (Angel-Client) является подключаемым и расширяемым и поддерживает несколько целей, таких как доступ к TensorFlow и pyTorch. Слой алгоритмов (Angel-MLLib) предоставляет пакетные алгоритмы, такие как GBDT, SVM и т. д.
Рис. 4. Структура кода машинного обучения Angel.
2. Расширение и применение платформы машинного обучения Angel в направлении глубокого обучения
Существуют две широко используемые парадигмы распределенных вычислений для глубокого обучения, а именно MPI (режим связи на основе модели сообщений) и сервер параметров, как показано на рисунке 5. Эти две парадигмы реализованы на платформе Angel. Реализация парадигмы Parameter Server показана на рисунке 6. Angel Work может получить доступ к часто используемым OP глубокого обучения, таким как PyTorch или Tensorflow, через интерфейс Native C++ API. Начальный конец Angel PS будет протолкнуть модель каждому воркеру, и воркер будет загружен на соответствующий ОП для обучения.После завершения каждого обучения информация о градиенте будет отправлена обратно в ПС для слияния, а обновленные параметры будут получены путем применения оптимизатора , он будет распределен каждому работнику после завершения, повторите описанный выше процесс до конца обучения и, наконец, сохраните модель по указанному пути. Это решение Angel PS предоставляет градиентный контроллер PS для доступа к нескольким распределенным рабочим процессам. Каждый рабочий может запускать некоторые общие примеры платформы глубокого обучения. Мы завершили работу над версией PyTorch этого решения и с открытым исходным кодом (PyTorch на Angel). Другим является парадигма MPI AllReduce, как показано на рисунке 7. Информация о градиенте этой парадигмы объединяется методом AllReduce.В реализации этой парадигмы Angel PS является контроллером процесса, который будет подтягиваться при каждой работе A. Этот процесс может быть таким процессом, как PyTorch или Tensorflow. Эта парадигма менее навязчива для пользователя, и алгоритм, разработанный пользователем, может быть подключен к платформе Angel для обучения без особых изменений.
парадигма ИМБ
Парадигма сервера Parmeter
Рис. 5. Две парадигмы, обычно используемые в распределенных вычислениях в области глубокого обучения.
Рис. 6. Реализация парадигмы сервера параметров на Angel
Рис. 7. Реализация парадигмы Allreduce на Angel
02Рекламная рекомендательная система и модель
1. Система рекламных рекомендаций Tencent
На схематической диаграмме больших данных Tencent, как показано на рисунке 8, данные онлайн-бизнеса, такие как игры WeChat, будут передаваться в промежуточную систему в режиме реального времени через промежуточное программное обеспечение для сообщений.Промежуточная система включает в себя вычисления в реальном времени. , автономные вычисления, система планирования и распределенное хранилище. Некоторые данные будут рассчитываться в режиме реального времени, а некоторые будут рассчитываться в автономном режиме. Приложение данных также получает необходимые данные из промежуточного программного обеспечения сообщений.
Рис. 8. Платформа больших данных Tencent.
Бизнес-иерархия рекомендованной Tencent системы рекомендаций по рекламе показана на рисунке 9. После того, как пользователь отправит запрос, система извлечет характеристики портрета пользователя, а затем предварительно отсортирует и выставит оценку рекламным объявлениям в рекламной библиотеке. При этом количество идентификаторов в рекламной библиотеке будет уменьшено до 100-уровневого, и в этом 100-уровневом диапазоне будет тонкая сортировка, а реклама будет подталкиваться пользователю после завершение. Вся рекомендательная система сталкивается со следующими основными проблемами. Во-первых, диверсификация источников данных. Данные включают как онлайн-данные, так и исторические данные о размещении. Во-вторых, диверсификация форматов данных, включая информацию о пользователе, информацию об элементах, рейтинг кликов, изображения и другие форматы данных. Потом много инкрементных данных, частые запросы пользователей, а библиотека объявлений постоянно обновляется. Наконец, обучающие задачи разнообразны: вся рекомендательная система включает в себя такие задачи, как грубая сортировка, точная сортировка, распознавание изображений и распознавание символов. Чтобы решить вышеуказанные проблемы, мы разработали полный набор программных фреймворков «Zhi Ling» (на основе TensorFlow) для задач точной сортировки, отвечающих потребностям обучения.
Рис. 9. Система рекламных рекомендаций Tencent.
Структура фреймворка Zhi Ling показана на рисунке 10. Нижнее ядро C++ фреймворка инкапсулирует приемник MQ и некоторые OP-классы фреймворка глубокого обучения.Наиболее типичным является класс набора данных TensorFlow, который предоставляет данные из MQ путем инкапсуляции набора данных класса tensorflow.Возможность получения данных. Абстракция и обработка данных выполняются на C++ и Python. Затем слой инфраструктуры глубокого обучения (tensorflow) предоставляет различные библиотеки глубокого обучения. Наконец, существуют специальные прикладные модели, такие как DSSM, VLAD и некоторые модели алгоритмов обработки изображений. Программная среда «Zhi Ling» обладает преимуществами полной инкапсуляции алгоритмов, более быстрой разработки новых моделей, лучшей изоляции и разделения данных и алгоритмов, легкой модификации и обновления логики предварительной обработки и хорошей совместимости. производительность карты низкая, распределение на несколько машин не поддерживается, а алгоритмы и оптимизация на уровне OP недостаточно полны. Рисунок 11 представляет собой блок-схему обучения "ZhiLing" на базовых данных. Из рисунка видно, что данные считываются из промежуточного программного обеспечения сообщений в локальную очередь данных. Очередь данных распределяет пакетные данные по каждой модели на узле графического процессора. а затем обрабатывает обучение, после завершения обучения оно считывается в ЦП для слияния градиентов и резервного копирования, а затем распределяется по каждому графическому процессору для переобучения.Этот дизайн разработан для одномашинной структуры.ЦП реализует функцию градиента fusion и оптимизатор, который потребляет много ресурсов процессора.Этот дизайн очень неразумен.Мы сделали много оптимизаций для этой ситуации и познакомим вас с ней позже.
Рис. 10. Каркасная конструкция "Чжи Лин"
Рис. 11. Блок-схема тренировки «Чжи Лин» на основных данных.
2. Модель в рекламной рекомендательной системе Tencent
Расширенная семантическая модель DSSM показана на рисунке 12. Здесь мы используем эту модель для расчета корреляции между пользователем и рекомендуемым идентификатором и расчета рейтинга кликов пользователя для данного идентификатора рекомендации на этой основе. формулы расчета ставки соответственно:
Модель DSSM относительно проста, она делится на Quey Id и Item Id и выражается в виде низкоразмерного семантического вектора, а затем расстояние между двумя семантическими векторами вычисляется по косинусному расстоянию. Корреляция между запросом и элементом рассчитывается с помощью модели, и наивысший балл — это элемент, который мы хотим порекомендовать.Модель DSSM в системе рекомендаций по рекламе должна поддерживать следующие новые точки спроса:
- Размерность признаков класса ID составляет сотни миллионов;
- Изменения вносятся быстро, каждую неделю появляется 25 % новых записей, что способствует дополнительному обучению.
Рис. 12 Модель DSSM
В основном мы используем VLAD/NetVLAD/NeXtVLAD и другие модели для оценки отношения расстояния между двумя рекламными объявлениями.Традиционный VLAD можно понимать как модель кластеризации и слияния, и ее формула расчета вектора:
Как показано на рисунке 13, NeXtVLAD может получить лучший эффект расстояния, заменив символьную функцию ak на дифференцируемую функцию Формула расчета вектора NeXtVLAD:
в:
Рис.13 Модель NeXtVLAD
YOLO V3 — это модель обработки изображений, показанная на рисунке 14. Здесь мы применяем ее к интерфейсу OCR для первоначальной проверки.Он характеризуется большим размером входного изображения (608*608, 1024*1024), поэтому Потери часть модели YOLO Занимают относительно большой расчет.
Рис.14 Модель YOLO V3
03Обучение и оптимизация модели
1. Оптимизация потока данных
В предыдущем введении мы знали, что программная среда «ZhiLing» представляет собой поток данных с одним каналом, и теперь мы оптимизируем его для нескольких каналов, как показано на рис. машины и несколько потоков данных. В исходных одноконвейерных данных есть DataQueue. Если поток данных большой, это вызовет большую нагрузку на ввод-вывод. После оптимизации для нескольких пар конвейеров DataQueue определяется для каждого графического процессора процесса обучения. Этот распределенный метод может эффективно решить проблему узкого места ввода-вывода. Управление в данном случае осуществляется контроллером процессов Angel PS (версия AllReduce).
Рис. 15. Многотрубная конструкция «Zhi Ling».
2. Внедрение оптимизации расчета
Процесс Embedding Lookup часто сталкивается с тем, что если операция SparseFillEmptyRows выполняется до хеширования, пустые строки будут заполнены значениями по умолчанию, добавляя слишком много строковых операций.После оптимизации мы сначала выполняем операцию хеширования, а затем операцию SparseFillEmptyRows, чтобы удалить время Потребляющая операция. Существует множество строковых операций (миллионы уровней), что экономит вычислительную мощность процессора для повышения QPS. Эта оптимизация повышает производительность одной карты примерно на 6%.
3. Оптимизация уровня алгоритма модели
Расчет потерь YOLO относительно велик, и мы специально его оптимизировали. Модель YOLO имеет три слоя карты объектов. При традиционном поиске положительных и отрицательных образцов реальная ограничивающая рамка будет выполнять сравнение обхода на карте объектов, перемещаясь по горизонтали, а затем по вертикали.В процессе обхода ищите точки карты объектов и границы В качестве положительного образца используется значение с наибольшей долговой распиской. Поскольку размер изображения большой, карта объектов также велика, что делает расчет потерь слишком долгим. Метод оптимизации для расчета потерь заключается в следующем.Поскольку блоки в направлении оси x и блоки в направлении оси y симметричны относительно диагонали, когда мы вычисляем IOU карты объектов и ограничивающей рамки, мы пересекаем направление диагональных точек центральной оси, как показано на рисунке 16 показано. Сначала рассчитываются блоки в диагональном направлении, а затем рассчитываются блоки с обеих сторон каждого блока карты объектов. Этот метод оптимизации сокращает объем вычислений. Кроме того, есть некоторые вычислительные навыки при обходе всех блоков Feature map в обе стороны в определенной точке.Например, при обходе вправо вверх оси x и y изменяются симметрично относительно диагонали.Мы можем оценить это Такое изменение, чтобы сознательно найти самую большую позицию привязки, а затем отбросить другую информацию, Этот метод оптимизации также может значительно сократить объем вычислений. После того, как мы оптимизировали расчет Loss вышеуказанным методом, производительность одной карты улучшилась примерно на 10%.
Рис. 16. Схема оптимизации YOLO V3.
04Эффект оптимизации
Благодаря оптимизации на уровне модели и данных, а также применению платформы Angel ко всему процессу управления, производительность одной карты DSSM повышается в 33 раза, VLAD — в 22 раза, а YOLO — в 2,5 раза. , как показано на рисунке 17. Подробные результаты оценки представлены на рисунках 18, 19 и 20. Они имеют три типа тестовых режимов, а именно: обучающие данные извлекаются онлайн через TDbank (система MQ собственной разработки Tencent) (задержка включает передачу по сети, упаковку данных и т. д.). .); локальные данные считываются, и обучающие данные заранее сохраняются на локальном диске (задержка включает в себя дисковый ввод-вывод и предварительную обработку сопоставления данных); обучающие данные в режиме Benchmark сохраняются в памяти (задержка включает только предварительную обработку сопоставления данных) . Из рисунка 18 видно, что Benchmark может практически полностью использовать вычислительную мощность всей системы без учета задержки перед чтением данных, что является квазилинейным улучшением. Учитывая, что фактические данные считываются из MQ, TPS в 1 карте не сильно улучшается, TPS больше 3000, QPS 2 карт больше 4000, а TPS двух карт и двух карт достигает более 6000 Таким образом, с увеличением числа компьютеров эффективность обучения была достигнута. Линейное улучшение было достигнуто с теми же результатами для тестов модели VLAD-CTR. После оптимизации YOLO V3 производительность 1 машины и 1 карты улучшена в 2,5 раза, а производительность 1 машины и 8 карт улучшена в 7,2 раза.
Рис. 17. Результаты улучшения производительности после оптимизации
Рис. 18. Результаты повышения производительности оптимизированной модели DSSM-CVR.
Рис. 19. Результаты улучшения производительности оптимизированной модели VLAD-CTR.
Рис. 20. Результаты повышения производительности оптимизированной модели YOLO V3.
05Суммировать
Сегодня я в основном делюсь с вами тремя частями. Первая часть знакомит с платформой машинного обучения Tencent Angel и ее расширением и применением в направлении глубокого обучения. Вторая часть знакомит с характеристиками и применением системы рекламных рекомендаций Tencent. Общие модели, последняя Часть контента знакомит с применением глубокого обучения Angel в системе рекламных рекомендаций Tencent, обучением и оптимизацией моделей, а также с полученными результатами.
Автор этой статьи:
Го Юечао
Tencent | Исследователь приложений
Го Юечао, выпускник Пекинского университета, его основные научные интересы включают гетерогенные ускоренные вычисления, проектирование, разработку и оптимизацию распределенных систем, оптимизацию алгоритмов в речи/НЛП и другие области. В настоящее время в Tencent он в основном отвечает за исследование новых технологий, разработку и применение бизнес-сценариев в аспекте глубокого обучения платформы Angel.