Práctica de modelos grandes y dispersos en escenarios de clasificación publicitaria de iQiyi

01

   atrásescenay el status quo

1. Características de los datos en el ámbito publicitario

Los datos en el campo de la publicidad se pueden dividir en: características de valor continuo A diferencia de los campos de imagen, video, voz y otros campos de IA , los datos originales en el campo se presentan principalmente en forma de ID, como ID de usuario, ID de publicidad, secuencia de ID de publicidad que interactúa con el usuario, etc., y la ID. La escala es grande y forma el campo publicitario. Las características distintivas de los datos dispersos de alta dimensión.

Funciones de valor continuo
  • Existen características tanto estáticas (como la edad del usuario) como dinámicas basadas en el comportamiento del usuario (como la cantidad de veces que un usuario hace clic en un anuncio en una determinada industria).
  • La ventaja es que tiene buena capacidad de generalización. La preferencia de un usuario por una industria se puede generalizar a otros usuarios que tengan las mismas características estadísticas de la industria.
  • La desventaja es que la falta de capacidad de memoria da como resultado una baja discriminación. Por ejemplo, dos usuarios con las mismas características estadísticas pueden tener diferencias significativas de comportamiento. Además, las funciones de valor continuo también requieren mucha ingeniería de funciones manual.
características de valor discreto
  • Las características de valor discreto son características detalladas. Los hay enumerables (como el género del usuario, el ID de la industria) y los de alta dimensión (como el ID del usuario, el ID de la publicidad).
  • La ventaja es que tiene una gran memoria y una gran distinción. Las características de valor discreto también se pueden combinar para aprender información cruzada y colaborativa.
  • La desventaja es que la capacidad de generalización es relativamente débil.
La publicidad es un escenario que requiere una gran memoria para los usuarios y una fuerte diferenciación del tráfico de medios. Por lo tanto, las características de valor discreto son la base para la predicción personalizada y la optimización de los modelos publicitarios. Los datos dispersos de alta dimensión, como el ID de publicidad, el ID de usuario y sus combinaciones, se pueden utilizar como características de valor discreto. De esta manera, se pueden distinguir bien diferentes usuarios con diferentes comportamientos en función de las características. En términos generales, hay dos formas de utilizar funciones de valor discreto:
  • Codificación one-hot
  • Incrustación de funciones (Incrustación)
La codificación one-hot de características de valores discretos de alta dimensión puede conducir fácilmente a la "maldición de la dimensionalidad", que se manifiesta como defectos obvios como explosión de parámetros, convergencia lenta del modelo y capacidad de generalización débil. Por lo tanto, es adecuado para codificar tipos enumerables limitados de valores discretos. Para codificar ID a gran escala, los ID dispersos en un espacio de alta dimensión se expresan como vectores en un espacio denso de baja dimensión mediante la incorporación de características.

2. Estado actual del modelo de clasificación publicitaria de iQiyi
En 2016, el modelo Wide & Deep propuesto por Google introdujo oficialmente modelos de aprendizaje profundo en el campo de recomendación. El modelo Wide & Deep logró un modelado unificado de memoria y capacidades de generalización, y rápidamente se convirtió en el modelo de referencia en la búsqueda, publicidad y recomendación industriales. campos. . El negocio de clasificación de publicidad de iQiyi también evolucionó gradualmente del modelo FM de aprendizaje en línea al modelo DNN en 2019.
Nuestro modelo DNN se basa en el marco de código abierto TensorFlow para entrenamiento e inferencia. En el marco de TensorFlow, el tensor denso se utiliza como unidad de datos básica para calcular, almacenar y transmitir datos. La forma de tensor utilizada para almacenar la incrustación de características de ID de valor discreto debe determinarse de antemano, es decir, se fija en [vocabulary_size, embedding_dimension], y el vocabulario_size debe determinarse manualmente en función del espacio de ID. Por lo tanto, al introducir características de identificación dispersas de alta dimensión, primero asignamos la característica de identificación Hash al rango de tamaño_vocabulario.
Actualmente tenemos los siguientes problemas al utilizar funciones de ID dispersas de alta dimensión:
  • Conflicto de características: si el tamaño del vocabulario se establece demasiado grande, la eficiencia del entrenamiento disminuirá drásticamente y el entrenamiento fallará debido a la memoria OOM. Por lo tanto, incluso para funciones de valor discreto de ID de usuario de mil millones de niveles, solo configuraremos un espacio de ID Hash de 100.000 niveles. La tasa de conflicto de hash es alta, la información de la función está dañada y no hay ningún beneficio positivo de la evaluación fuera de línea.
  • IO ineficiente: dado que características como la ID de usuario y la ID de publicidad son de alta dimensión y escasas, es decir, los parámetros actualizados durante el entrenamiento solo representan una pequeña parte del total. Bajo el mecanismo de incrustación estática original de TensorFlow, es necesario procesar el acceso al modelo. Todo el tensor denso generará una enorme sobrecarga de IO y no podrá soportar el entrenamiento de modelos grandes y dispersos.


02

   Práctica escasa de modelos grandes

Como se mencionó anteriormente, las características de valores discretos son la base para que el modelo logre aún más una predicción personalizada. También encontramos problemas al utilizar características de valores discretos de identificación dispersa de alta dimensión. Por lo tanto, utilizaremos la principal tecnología de código abierto de la industria en 2023 para llevar a cabo la capacitación y la construcción de inferencia de modelos grandes y dispersos.
1. Marco algorítmico
En los últimos años, la industria ha explorado mucho el soporte de TensorFlow para recomendar modelos grandes y dispersos y lo ha implementado en escenarios comerciales reales. Elegimos el componente de código abierto de incrustación dinámica TFRA principalmente por las siguientes razones:
  • La API de TFRA es compatible con el ecosistema de Tensorflow (reutilizando el optimizador e inicializador original, la API tiene el mismo nombre y comportamiento consistente), lo que permite a TensorFlow admitir el entrenamiento y la inferencia de modelos grandes dispersos de tipo ID de una manera más nativa; El costo de aprendizaje y uso es bajo y no cambia los hábitos de modelado de los ingenieros de algoritmos.
  • La expansión y contracción dinámica de la memoria ahorra recursos durante el entrenamiento; evita eficazmente los conflictos de Hash y garantiza que la información de las funciones no se pierda.
Basado en los frameworks TensorFlow 2.6.0 y TFRA 0.6.0, hemos realizado las siguientes iteraciones:
  • La incrustación estática se actualiza a incrustación dinámica: para la lógica Hash artificial de características de valores discretos, la incrustación dinámica TFRA se utiliza para almacenar, acceder y actualizar parámetros, garantizando así que la incrustación de todas las características de valores discretos esté libre de conflictos en el marco del algoritmo y asegurando que todos los valores discretos aprendan características sin pérdidas.
  • Uso de funciones de ID dispersas de alta dimensión: como se mencionó anteriormente, cuando se utiliza la función de incrustación estática de TensorFlow, las funciones de ID de usuario y ID de publicidad no tienen ganancias en la evaluación fuera de línea debido a conflictos de Hash. Una vez actualizado el marco del algoritmo, se reintroducen las funciones de identificación de usuario y de publicidad, lo que genera beneficios positivos tanto en línea como fuera de línea.
  • El uso de características de identificación combinadas dispersas de alta dimensión: presentamos las características combinadas de valor discreto de la identificación de usuario y la identificación de publicidad de grano grueso, como la combinación de la identificación de usuario con la identificación de la industria y el nombre del paquete de la aplicación, respectivamente. Al mismo tiempo, en combinación con la función de acceso a funciones, se introducen funciones discretas que utilizan una combinación de ID de usuario e ID de publicidad más dispersos.


2. Actualización del modelo

En el proceso de implementación del modelo grande y disperso, encontramos muchos problemas en la inferencia de entrenamiento y las actualizaciones de implementación. Realizamos un análisis en profundidad y una optimización de varios problemas durante el proceso de implementación y finalmente logramos una capacitación, inferencia y actualizaciones de implementación eficientes y estables de modelos grandes dispersos.
Cuando se utiliza TensorFlow Serving para actualizar en caliente un modelo grande y disperso, se producirán retrasos en la inferencia debido a la competencia por la asignación y liberación de memoria. Hay dos partes principales en los escenarios de uso de la asignación y liberación de memoria de TensorFlow:
  • La asignación de la variable en sí Tensor cuando se restaura el modelo, es decir, la memoria se asigna cuando se carga el modelo y la memoria se libera cuando se descarga el modelo.
  • La memoria del tensor de salida intermedia se asigna durante el cálculo directo de la red durante la solicitud RPC y se libera una vez que se completa el procesamiento de la solicitud.
Por lo tanto, cuando se actualiza un modelo grande y escaso, se asigna una gran cantidad de memoria en el OP de restauración cuando se carga el nuevo modelo y se libera una gran cantidad de memoria cuando se descarga el modelo anterior. Durante este proceso, la solicitud de inferencia RPC no se interrumpe. En este momento, la asignación y liberación de memoria de los dos entrarán en conflicto y competirán, lo que provocará fallas en la inferencia. Con base en el análisis anterior, al diseñar el aislamiento de asignación de memoria, la asignación de memoria de los parámetros del modelo y la asignación de memoria de las solicitudes RPC se aíslan, y se asignan y liberan en diferentes espacios de memoria independientes, resolviendo así el retraso en la actualización en caliente de grandes y dispersos. Problema de fallo de los modelos.
Finalmente, para la distribución del modelo se utilizan la fragmentación de archivos de modelos grandes y dispersos y la transmisión P2P dentro de la misma sala de computadoras, lo que reduce la presión sobre el backend de almacenamiento y las líneas dedicadas de la red, y resuelve los problemas de almacenamiento y ancho de banda causados ​​por las actualizaciones frecuentes de modelos grandes y dispersos.

03

   beneficio general

En la actualidad, la plataforma de aprendizaje profundo ha respaldado de manera eficiente y estable la capacitación, la inferencia y las actualizaciones de implementación de modelos de parámetros de mil millones de niveles. Hemos lanzado por completo tres modelos grandes y dispersos en escenarios CVR y DCVR de publicidad de rendimiento, lo que impulsó directamente un aumento del 4,3% en los ingresos del negocio de publicidad de rendimiento, mientras que el retraso de inferencia fue básicamente el mismo.


04

   perspectiva del futuro

Actualmente, todos los valores de características de la misma característica en el modelo disperso de publicidad grande reciben la misma dimensión de incrustación. En los negocios reales, la distribución de datos de características de alta dimensión es extremadamente desigual, un número muy pequeño de características de alta frecuencia representa una proporción muy alta y el fenómeno de cola larga es grave cuando se utilizan dimensiones de incrustación fijas para todos los valores de características ; Reducirá la capacidad de incrustar el aprendizaje de representación. Es decir, para características de baja frecuencia, la dimensión de incrustación es demasiado grande y el modelo corre el riesgo de sobreajustarse para características de alta frecuencia, porque hay una gran cantidad de información que debe representarse y aprenderse, la incrustación; La dimensión es demasiado pequeña y el modelo corre el riesgo de no ajustarse lo suficiente. Por lo tanto, en el futuro, exploraremos formas de aprender de forma adaptativa la dimensión de incrustación de características para mejorar aún más la precisión de la predicción del modelo.

Al mismo tiempo, exploraremos la solución de exportación incremental del modelo, es decir, cargar solo los parámetros que cambian durante el entrenamiento incremental en TensorFlow Serving, reduciendo así la transmisión de red y el tiempo de carga durante la actualización del modelo, logrando actualizaciones a nivel de minutos. de modelos grandes y dispersos y mejorando la naturaleza en tiempo real del modelo.


tambiénPuededevolverpensarmirar

Revelando el secreto de la explosión de la memoria: resolviendo el problema OOM del entrenamiento distribuido de modelos grandes

Proceso de optimización de ofertas duales de publicidad de rendimiento iQIYI

Aplicación de lago de datos de publicidad y práctica de iQIYI Data Lake

Este artículo se comparte desde la cuenta pública de WeChat: Equipo de productos de tecnología iQIYI (iQIYI-TP).
Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Este artículo participa en el " Plan de creación de fuentes OSC ". Los que están leyendo pueden unirse y compartir juntos.

¡Compañero pollo deepin-IDE de "código abierto" y finalmente logró el arranque! Buen chico, Tencent realmente ha convertido Switch en una "máquina de aprendizaje pensante" Revisión de fallas de Tencent Cloud del 8 de abril y explicación de la situación Reconstrucción de inicio de escritorio remoto de RustDesk Cliente web Base de datos de terminal de código abierto WeChat basada en SQLite WCDB marcó el comienzo de una actualización importante Lista de abril de TIOBE: PHP cayó a un mínimo histórico, Fabrice Bellard, el padre de FFmpeg, lanzó la herramienta de compresión de audio TSAC , Google lanzó un modelo de código grande, CodeGemma , ¿te va a matar? Es tan bueno que es de código abierto: herramienta de edición de carteles e imágenes de código abierto
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4484233/blog/11045480
Recomendado
Clasificación