Практика использования редких больших моделей в сценариях ранжирования рекламы iQiyi

01

   назадсценаи статус-кво

1. Характеристики данных в рекламной сфере

Данные в сфере рекламы можно разделить на признаки непрерывной В отличие от изображений AI, видео, голоса и других полей , исходные данные в рекламном поле в основном представлены в виде идентификатора, такого как идентификатор пользователя, рекламный идентификатор, последовательность рекламных идентификаторов, взаимодействующих с пользователем и т. д., а также идентификатор. Масштаб велик, образуя рекламное поле. Отличительные характеристики многомерных разреженных данных.

Функции непрерывной ценности
  • Существуют как статические (например, возраст пользователя), так и динамические характеристики, основанные на поведении пользователя (например, количество раз, когда пользователь нажимает на рекламу в определенной отрасли).
  • Преимущество в том, что он имеет хорошую способность к обобщению. Предпочтения пользователя в отношении отрасли можно распространить на других пользователей, имеющих такие же статистические характеристики отрасли.
  • Недостатком является то, что отсутствие памяти приводит к низкой дискриминации. Например, два пользователя с одинаковыми статистическими характеристиками могут иметь существенные различия в поведении. Кроме того, функции с непрерывным значением также требуют большого количества ручного проектирования функций.
функции дискретного значения
  • Дискретнозначные функции являются мелкозернистыми функциями. Есть перечислимые (например, пол пользователя, идентификатор отрасли), а есть и многомерные (например, идентификатор пользователя, рекламный идентификатор).
  • Преимущество в том, что у него сильная память и высокая различимость. Функции дискретных значений также можно комбинировать для изучения перекрестной и совместной информации.
  • Недостатком является то, что способность к обобщению относительно слаба.
Реклама — это сценарий, который требует сильной памяти пользователей и сильной дифференциации медиатрафика. Поэтому характеристики дискретных значений являются основой для персонализированного прогнозирования и оптимизации рекламных моделей. Разреженные данные большой размерности, такие как рекламный идентификатор, идентификатор пользователя и их комбинации, могут использоваться в качестве функций дискретных значений. Таким образом, по функциям можно хорошо различать разных пользователей с различным поведением. Вообще говоря, есть два способа использования функций дискретных значений:
  • Горячее кодирование
  • Встраивание функций (Внедрение)
Горячее кодирование многомерных дискретнозначных признаков может легко привести к «проклятию размерности», которое проявляется в виде очевидных дефектов, таких как взрывной рост параметров, медленная сходимость моделей и слабая способность к обобщению. Следовательно, он подходит для кодирования ограниченных перечислимых типов дискретных значений. Для кодирования крупномасштабных идентификаторов разреженные идентификаторы в многомерном пространстве выражаются как векторы в низкомерном плотном пространстве посредством внедрения признаков.

2. Текущий статус модели рекламного рейтинга iQiyi.
В 2016 году модель Wide & Deep, предложенная Google, официально представила модели глубокого обучения в области рекомендаций. Модель Wide & Deep реализовала унифицированное моделирование памяти и возможностей обобщения и быстро стала базовой моделью в промышленном поиске, рекламе и рекомендациях. поля. В 2019 году рекламный рейтинговый бизнес iQiyi также постепенно превратился из модели онлайн-обучения FM в модель DNN.
Наша модель DNN основана на платформе с открытым исходным кодом TensorFlow для обучения и вывода. В структуре TensorFlow плотный Tensor используется в качестве базовой единицы данных для расчета, хранения и передачи данных. Форма тензора, используемая для хранения функции внедрения идентификатора дискретного значения, должна быть определена заранее, то есть она фиксирована как [vocabulary_size, embedding_dimension], а словарь_size необходимо определять вручную на основе пространства идентификаторов. Поэтому при введении многомерных разреженных идентификаторов мы сначала сопоставляем хэш идентификатора с диапазоном словарного_размера.
В настоящее время у нас возникают следующие проблемы при использовании функций многомерного разреженного идентификатора:
  • Конфликт функций: если словарь_size установлен слишком большим, эффективность обучения резко упадет, и обучение завершится неудачно из-за нехватки памяти. Таким образом, даже для функций дискретного значения идентификатора пользователя на уровне миллиарда мы настроим пространство хэша идентификатора только в 100 000 уровней. Частота конфликтов хэша высока, информация о функциях повреждена, и нет никакой положительной выгоды от автономной оценки.
  • Неэффективный ввод-вывод: поскольку такие функции, как идентификатор пользователя и рекламный идентификатор, являются многомерными и разреженными, то есть параметры, обновляемые во время обучения, составляют лишь небольшую часть от общего числа. В соответствии с исходным статическим механизмом внедрения TensorFlow необходимо обрабатывать доступ к модели. Весь плотный тензор потребует огромных затрат на ввод-вывод и не сможет поддерживать обучение разреженных больших моделей.


02

   Редкая реклама, крупная модельная практика

Как упоминалось выше, признаки дискретных значений являются основой модели для дальнейшего достижения персонализированного прогнозирования. Мы также столкнулись с проблемами при использовании многомерных признаков дискретных значений с разреженными идентификаторами. Поэтому в 2023 году мы будем использовать основную в отрасли технологию с открытым исходным кодом для обучения и построения выводов разреженных больших моделей.
1. Алгоритмическая основа
За последние несколько лет отрасль провела большое количество исследований по поддержке TensorFlow рекомендаций по разреженным большим моделям и реализовала ее в реальных бизнес-сценариях. Мы выбираем динамический компонент с открытым исходным кодом TFRA в основном по следующим причинам:
  • API TFRA совместим с экосистемой Tensorflow (повторное использование исходного оптимизатора и инициализатора, API имеет то же имя и единообразное поведение), что позволяет TensorFlow поддерживать обучение и вывод разреженных больших моделей ID-типа более естественным способом; Стоимость обучения и использования невелика и не меняет привычек моделирования инженеров-алгоритмов.
  • Динамическое расширение и сжатие памяти экономит ресурсы во время обучения, что эффективно позволяет избежать конфликтов хеш-функций и гарантирует сохранение информации о функциях без потерь.
На основе фреймворков TensorFlow 2.6.0 и TFRA 0.6.0 мы провели следующие итерации:
  • Статическое внедрение обновляется до динамического внедрения: для искусственной хеш-логики функций дискретных значений динамическое внедрение TFRA используется для хранения, доступа и обновления параметров, тем самым гарантируя, что внедрение всех функций дискретных значений является бесконфликтным в структуре алгоритма и обеспечение того, чтобы все дискретные значения изучались без потерь.
  • Использование функций многомерного разреженного идентификатора. Как упоминалось выше, при использовании статической функции внедрения TensorFlow функции идентификатора пользователя и рекламного идентификатора не приносят никакой пользы при автономной оценке из-за конфликтов хэша. После обновления структуры алгоритма вновь вводятся функции идентификатора пользователя и рекламного идентификатора, что дает положительные преимущества как в автономном режиме, так и в Интернете.
  • Использование многомерных разреженных комбинированных функций идентификатора: введение комбинированных функций дискретного значения идентификатора пользователя и рекламного общего идентификатора, таких как комбинация идентификатора пользователя с отраслевым идентификатором и именем пакета приложения соответственно. В то же время в сочетании с функцией доступа к функциям вводятся отдельные функции, использующие комбинацию более редких идентификаторов пользователей и рекламных идентификаторов.


2. Обновление модели

В процессе реализации разреженной большой модели мы столкнулись со многими проблемами при обучении и обновлении развертывания. Мы провели углубленный анализ и оптимизацию различных проблем в процессе внедрения и, наконец, добились эффективного и стабильного обучения, вывода и развертывания обновлений разреженных больших моделей.
При использовании TensorFlow Serving для горячего обновления разреженной большой модели будут возникать задержки вывода из-за конкуренции за выделение и освобождение памяти. Сценарии использования выделения и освобождения памяти TensorFlow состоят из двух основных частей:
  • Выделение самой переменной Tensor при восстановлении модели, то есть память выделяется при загрузке модели, а память освобождается при выгрузке модели.
  • Память промежуточного выходного тензора выделяется во время прямого расчета сети во время запроса RPC и освобождается после завершения обработки запроса.
Поэтому при обновлении разреженной большой модели в операции восстановления выделяется большой объем памяти при загрузке новой модели, а при выгрузке старой модели освобождается большой объем памяти. Во время этого процесса запрос вывода RPC не прерывается. В это время выделение и освобождение памяти будут конфликтовать и конкурировать, вызывая сбои вывода. На основе приведенного выше анализа, путем разработки изоляции выделения памяти, выделение памяти для параметров модели и выделение памяти для запросов RPC изолируются, и они выделяются и освобождаются в разных независимых пространствах памяти, тем самым решая задержку в горячем обновлении разреженных больших объемов памяти. проблемы с глюками моделей.
Наконец, для распространения моделей используется разреженная фрагментация файлов больших моделей и передача P2P в одном и том же компьютерном зале, что снижает нагрузку на серверную часть хранилища и выделенные сетевые линии, а также решает проблемы хранения и пропускной способности, вызванные частыми обновлениями разреженных больших моделей.

03

   общая выгода

В настоящее время платформа глубокого обучения эффективно и стабильно поддерживает обучение, вывод и развертывание обновлений моделей параметров уровня 1 миллиард. Мы полностью запустили три разреженные большие модели в сценариях CVR и DCVR от высокоэффективной рекламы, что непосредственно привело к увеличению доходов от рекламного бизнеса на 4,3%, в то время как задержка вывода была практически такой же.


04

   прогноз на будущее

В настоящее время всем значениям одной и той же функции в большой рекламной разреженной модели присваивается одно и то же измерение внедрения. В реальном бизнесе распределение данных многомерных функций крайне неравномерно, на очень небольшое количество высокочастотных функций приходится очень высокая доля, а явление «длинного хвоста» является серьезным; использование фиксированных размеров внедрения для всех значений функций; уменьшит возможность обучения внедрению представлений. То есть для низкочастотных функций размерность внедрения слишком велика, и существует риск переобучения модели для высокочастотных функций, поскольку существует огромное количество информации, которую необходимо представить и изучить, встраивание; Размер слишком мал, и модель может оказаться неподходящей. Поэтому в будущем мы будем изучать способы адаптивного изучения измерения функции внедрения, чтобы еще больше повысить точность прогнозирования модели.

В то же время мы рассмотрим решение инкрементального экспорта модели, то есть загружать в TensorFlow Serving только те параметры, которые изменяются во время инкрементального обучения, тем самым сокращая время сетевой передачи и загрузки во время обновления модели, достигая обновлений на минутном уровне. разреженных больших моделей и улучшение характера модели в реальном времени.


такжеМожеттывозвращатьсядуматьсмотреть

Раскрытие секрета взрыва памяти: решение ООМ-проблемы распределенного обучения больших моделей

Процесс оптимизации двойного назначения ставок iQIYI Performance Advertising

Приложение iQIYI Data Lake для практики и рекламы Data Lake

Эта статья опубликована в общедоступной учетной записи WeChat — iQIYI Technology Product Team (iQIYI-TP).
Если есть какие-либо нарушения, свяжитесь с нами по адресу [email protected] для удаления.
Эта статья участвует в « Плане создания исходного кода OSC ». Вы, кто читаете, можете присоединиться и поделиться ею.

Товарищ-цыпленок «открыл исходный код» Deepin-IDE и наконец-то добился начальной загрузки! Хороший парень, Tencent действительно превратила Switch в «мыслящую обучающуюся машину». Обзор сбоев Tencent Cloud от 8 апреля и объяснение ситуации. Реконструкция запуска удаленного рабочего стола RustDesk. Веб-клиент . Терминальная база данных с открытым исходным кодом WeChat на основе SQLite. WCDB положила начало серьезному обновлению. Апрельский список TIOBE: PHP упал до рекордно низкого уровня, Фабрис Беллард, отец FFmpeg, выпустил инструмент сжатия звука TSAC , Google выпустил большую модель кода CodeGemma , она вас убьет? Это так хорошо, что это инструмент с открытым исходным кодом - инструмент для редактирования изображений и плакатов с открытым исходным кодом.
{{o.name}}
{{m.name}}

рекомендация

отmy.oschina.net/u/4484233/blog/11045480
рекомендация