Exploración y aplicación de la computación casi lineal elástica en el negocio de búsqueda y flujo de información de Baidu |

Introducción: en una plataforma PaaS en un entorno de producción, para hacer frente al crecimiento del tráfico, los picos de carga, las actualizaciones de software y hardware, las fallas locales a gran escala, etc., generalmente es necesario reservar una cierta cantidad de redundancia de recursos. Los servicios de búsqueda y flujo de información de Baidu brindan más de cinco nueves de disponibilidad en toda la red Para hacer frente a situaciones extremas, los clústeres de PaaS en varias regiones están diseñados con cierta redundancia de recursos. Además, para controlar los costos, la iteración comercial debe obtener una relación de entrada-salida razonable antes de que pueda lanzarse oficialmente. Por lo tanto, diseñamos e implementamos un conjunto de arquitectura de computación casi en línea elástica entre en línea y fuera de línea mediante la combinación de las características comerciales del sistema de recomendación y el sistema de búsqueda. En comparación con la computación en línea, supera el límite de velocidad de cálculo y brinda más espacio para la complejidad de la computación comercial; en comparación con la computación por lotes fuera de línea, proporciona un método de computación de políticas más estable y eficiente en el tiempo.

 

1. Antecedentes

En el escenario de cálculo del servicio en línea del sistema de recomendación y el sistema de búsqueda, toda la carga fluctúa con el tráfico y el tráfico tiene picos y valles evidentes. Existen ciertas reglas sobre cuándo la mayoría de los usuarios verán las noticias, deslizarán el flujo de información, buscarán, etc., como deslizar el flujo de información de camino al trabajo y de viaje, y deslizar el flujo de información antes de acostarse.

Sin embargo, el almacenamiento de recursos de los servicios en línea debe prepararse de acuerdo con la carga durante el período de mayor tráfico. Además, para la recuperación ante desastres, es necesario que haya cierta redundancia de implementación en el diseño. Los recursos implementados reales serán más que los recursos requerido durante el período pico. Por lo tanto, en línea Hay recursos redundantes que se pueden extraer en el clúster. En el entorno de producción real, la tasa de utilización del clúster generalmente no supera el 60%.

△ Diagrama esquemático de la fluctuación de la utilización de la CPU del sistema en línea y su redundancia de recursos

Además, los sistemas informáticos en línea generalmente tienen límites de velocidad estrictos. Tomando el sistema de recomendación como ejemplo, una vez que un usuario baja para actualizar, el resultado de la recomendación debe devolverse al usuario dentro de un tiempo específico. Debido a la limitación del índice de velocidad, la escala de cálculo de un cálculo en línea también está limitada, incluido el conjunto de candidatos limitado cubierto por un cálculo de recomendación y la complejidad del modelo de los cálculos de recuperación y clasificación.

En este contexto, comenzamos a tratar de introducir la computación casi en línea en el sistema de búsqueda y recomendación de flujo de información de Baidu. Por un lado, a través del diseño conjunto de arquitectura y negocio, se migra la computación compleja al sistema near-line, para romper el límite de velocidad de la computación en línea, realizar una computación estratégica a mayor escala y mejorar los resultados comerciales; por otro lado, a través de un diseño flexible, puede hacer un uso completo de los recursos inactivos del clúster en línea para el cálculo de políticas y reducir el costo de todo el mecanismo de computación casi en línea.

En segundo lugar, la idea general

△La idea general del cálculo de la línea cercana elástica

En resumen, la idea general de la computación casi en línea elástica es utilizar la computación asíncrona para desvincular la computación de políticas complejas de la computación en línea.

En primer lugar, el sistema de computación en línea almacena en caché los resultados intermedios o crea de forma independiente procesos de computación de línea cercana de negocios complejos, y luego activa la computación de línea cercana a través de ciertas señales de activación para calcular los resultados intermedios por adelantado. Cuando un servicio en línea responde a una solicitud, utiliza directamente el resultado del cálculo calculado de antemano para realizar un procesamiento en línea de baja complejidad y luego responde a la solicitud, evitando así el límite de velocidad del cálculo en línea y permitiendo el cálculo comercial con alta complejidad y gran cantidad. de calculo Además, cuando hay recursos redundantes en el sistema, se puede combinar con señales de activación históricas para predecir visitas e iniciar activamente cálculos casi en línea para optimizar la utilización de recursos y mejorar los resultados comerciales.

La parte más importante de todo el sistema es ahorrar el costo de todo el mecanismo de computación de línea cercana para adaptarse a los recursos inactivos. Hemos diseñado todo un conjunto de mecanismos para potencia de cálculo dinámico y parámetros dinámicos.

En primer lugar, según la carga del propio clúster de PaaS, se realiza una sobreemisión dinámica para obtener un exceso de potencia informática.

El segundo es diseñar parámetros comerciales relacionados con la carga. De acuerdo con el poder de cómputo dinámico, se determinan los parámetros comerciales de toda la computación cercana y se libera la carga que coincide con el poder de cómputo, para estabilizar y utilizar completamente Los recursos. Estable significa que cuando faltan recursos, el sistema se puede degradar automáticamente para evitar avalanchas del sistema que no se pueden reparar por sí mismo. Completo significa que cuando no hay carga natural, tomamos la iniciativa para calcular de acuerdo con las necesidades del negocio, aprovechar al máximo poder de cómputo y, en última instancia, mejorar los resultados comerciales.

El tercero es estimar y planificar el uso de recursos para optimizar la utilización de los recursos. Por un lado, la programación escalonada de recursos mejora la tasa de éxito de la programación extendida de recursos; por otro lado, en función de las condiciones de los recursos, asigna la carga informática y mejora la eficiencia de utilización de los recursos. Finalmente, para los períodos de menor actividad y la redundancia de recursos, es necesario estimar la capacidad de todo el sistema y luego iniciar la computación casi en línea activa en función de la potencia de cómputo restante para aprovechar al máximo los recursos y mejorar los resultados comerciales.

Además, con el fin de luchar por una mayor potencia informática, el sistema admite CPU/GPU y chips Kunlun y otros tipos de recursos al mismo tiempo, por lo que es necesario considerar la programación de cargas informáticas en módulos de potencia informática heterogéneos. Además, los clústeres de cómputo están distribuidos por todo el país, por lo que en el diseño del sistema también es necesario considerar cómo utilizar el poder de cómputo interregional.

 

3. Arquitectura del sistema

Un diagrama esquemático de la arquitectura general del sistema de computación elástico de línea cercana

El sistema de computación casi lineal elástico incluye principalmente varios subsistemas.

· Sistema de control de disparo

Es principalmente responsable de controlar la activación del cálculo de línea cercana de acuerdo con los parámetros comerciales, para lograr el propósito de cortar picos y llenar valles.

· Poder de cómputo dinámico y sistema de ajuste de parámetros dinámicos

Es equivalente al cerebro de un sistema de cómputo de línea cercana elástico. Asigna potencia de cómputo de línea cercana de acuerdo con las condiciones de recursos del clúster y luego calcula los parámetros de control de acuerdo con la potencia de cómputo para controlar la carga que coincide con la potencia de cómputo. .

· Centro de datos histórico

Un registro de cálculo que guarda el historial de cálculo de la línea cercana. El uso de la potencia informática se puede ajustar mediante la multiplexación de los resultados de los cálculos históricos según las condiciones de los recursos.

· Sistema de control y computación empresarial de línea cercana

Esto se relaciona principalmente con el diseño de algunos mecanismos de arquitectura relacionados con el acceso comercial a la computación de línea cercana, como la lectura y escritura de cachés de entrada y salida, desempaquetado/fusión de computación, etc., computación comercial y retroalimentación de señales de falla, etc. .

· Acceso comercial en línea

La parte se trata principalmente de algunos diseños en el sistema de computación de línea cercana de acceso comercial. La consideración principal aquí es cómo acceder a los servicios de manera eficiente y evitar el alto costo de mano de obra de la arquitectura para el acceso a los servicios.

 

4. Fuente de poder de cómputo

1) Ampliar el grupo de recursos

Las fuentes de recursos redundantes (en lo sucesivo, recursos extendidos) utilizados por la computación casi lineal elástica incluyen principalmente dos aspectos.

△ Diagrama esquemático de recursos de sobreentrega

Primero, el clúster asigna pero no usa recursos, ¿por qué?

En primer lugar, hay picos y valles en el tráfico, pero los recursos generalmente se preparan de acuerdo con la carga durante los períodos pico, por lo que hay recursos inactivos durante los períodos de menor actividad.

En segundo lugar, debido a que los servicios en línea Feed and Search brindan más de cinco 9 de garantías de estabilidad, las fallas de la sala de computadoras que se deben tratar incluyen no solo fallas a nivel de hardware, sino también iteraciones comerciales frecuentes y entornos de implementación complejos. Por lo tanto, incluso durante los períodos pico, la carga de la sala de computadoras es redundante por diseño.

Por ejemplo, cuando una sala de cómputo falla en cualquier momento, se detendrá el tráfico de la sala de cómputo defectuosa que pueden realizar otras salas de cómputo.

El segundo son los recursos fragmentados. La tasa de asignación de un clúster de PaaS es imposible de alcanzar el 100 %. Siempre hay algunos recursos fragmentados que no pueden satisfacer las necesidades de las cuotas comerciales. Estos también son recursos que pueden ser utilizados por la computación de línea cercana.

Por lo tanto, al monitorear el uso de los recursos del clúster de PaaS y hacer estimaciones basadas en datos históricos de uso de recursos, se forma un conjunto de recursos extendido.Este proceso se puede expresar de la siguiente manera:

Entre ellos, representa la cantidad total de recursos de expansión, que es igual a la cantidad total de recursos del clúster menos la cantidad total de recursos asignados más la cantidad total de recursos reciclables. La cantidad total de recursos reciclables es un valor dinámico, que se determina por la asignación de recursos estables específicos y el uso, y las compensaciones se realizan en función del nivel de recursos extendidos. El nodo PaaS detecta el uso de recursos en el nodo en tiempo real. Si se infringe el uso de instancias del recurso extendido o si el uso de recursos del nodo excede el valor del nivel de agua segura, el recurso extendido en el nodo se liberará en cualquier momento. tiempo.

En resumen, las características de los recursos de expansión en el contexto de la distribución mixta a gran escala en línea: 1) inestable, 2) gran oferta.
La inestabilidad proviene principalmente del entorno de distribución mixta, los puntos de acceso de recursos pueden aparecer aleatoriamente en cualquier momento, junto con el corte normal de la sala de máquinas, por lo que la instancia de recursos extendidos es inestable.
Además, debido a que es un clúster mixto, los recursos inactivos de todos los módulos en PaaS se pueden usar de manera uniforme y el suministro de los recursos de expansión generales es grande.

En resumen, las características de los recursos de expansión en el contexto de la distribución mixta a gran escala en línea: 1) inestable, 2) gran oferta.
La inestabilidad proviene principalmente del entorno de distribución mixta, los puntos de acceso de recursos pueden aparecer aleatoriamente en cualquier momento, junto con el corte normal de la sala de máquinas, por lo que la instancia de recursos extendidos es inestable.
Además, debido a que es un clúster mixto, los recursos inactivos de todos los módulos en PaaS se pueden usar de manera uniforme y el suministro de los recursos de expansión generales es grande.

2) Extracción y utilización de recursos extendidos de XPU

Diagrama de arquitectura del sistema de programación de recursos △XPU

Debido a la diferencia entre los recursos de la XPU (aquí está el término general para la GPU y el chip Kunlun) y los recursos de la CPU, aunque la propia XPU ya es compatible con el uso compartido, el uso compartido de la XPU es esencialmente un método compartido de tiempo compartido. no afectar la velocidad de los servicios en línea es un problema. Para utilizar los recursos redundantes de XPU, se diseña un sistema de programación modelo en XPU sobre PaaS. Los subsistemas centrales incluyen:

En primer lugar, a nivel de nodo, se diseña un contenedor de modelos para realizar la programación de modelos dentro de la instancia, lo que determina qué modelo ejecutará la instancia de acuerdo con los metadatos en el sistema de administración de topología remota.

En segundo lugar, al extender el Operador K8S de PaaS, en una aplicación, las instancias se dividen en diferentes servicios según los requisitos de recursos, como en línea y casi en línea, de modo que cada aplicación pueda realizar el cálculo de múltiples modelos.

En tercer lugar, el sistema de estimación de recursos ajustará los recursos de diferentes modelos de acuerdo con los requisitos de recursos reales de cada modelo. Además, después del ajuste de recursos, implica la distribución de carga de la potencia informática heterogénea y el ajuste de parámetros de reducción de picos y llenado de valles.

En cuarto lugar, todo acceso al modelo de negocio se dirige a través del servicio de nombres para obtener el mapeo de modelos específicos a instancias informáticas. A través de la programación independiente, se aísla la interferencia del uso compartido de XPU de la informática de línea cercana a los servicios en línea.

 

5. Arquitectura de computación híbrida en línea casi en línea

△Arquitectura de computación híbrida en línea casi en línea

Teniendo en cuenta que los estudiantes de negocios ya están familiarizados con la arquitectura de I + D del negocio en línea original, para reducir el costo de aprendizaje del acceso comercial, diseñamos una arquitectura informática híbrida general para servicios en línea y servicios de línea cercana, a través de los datos de contexto entre microservicio procesos El mecanismo de intercambio protege a los estudiantes de negocios de los detalles de desarrollo de la computación de línea cercana, de modo que las empresas puedan desarrollar una lógica de línea cercana en forma de lógica de línea de desarrollo, de modo que la computación híbrida en línea y de línea cercana de cualquier dato intermedio pueda ser realizado a través de un conjunto de código y dos conjuntos de implementación.

Además, para adaptarse a los recursos de expansión, el módulo de computación empresarial necesita hacer un diseño especial.

· Fragmentación de servicios

Si un módulo necesita cargar una gran cantidad de datos, el módulo debe fragmentarse.Diferentes fragmentos calculan diferentes datos, y la granularidad de la cuota del módulo está limitada a 100 núcleos lógicos y 15G de memoria.

· Desempaquetado computacional

Si el cálculo del modelo es complejo, la granularidad de un solo cálculo afecta en gran medida la tasa de éxito. A través del desempaquetado de cálculos, incluso si fallan algunos resultados de cálculo, todos los resultados de cálculo no estarán disponibles.

 

6. Control de disparo de cálculo

△Diagrama de control de disparador de cálculo

El sistema de control de activación activa el cálculo de la línea cercana de acuerdo con la situación de los recursos y la prioridad de las diferentes fuentes de activación.

Después de que el sistema recibe la señal de activación, debe lidiar con dos aspectos de recorte de picos y llenado de valles.
Por un lado, cuando los recursos son insuficientes, el tráfico se corta al máximo controlando los parámetros de cálculo del servicio. Si el recorte máximo a través de los parámetros informáticos prediseñados no puede controlar la carga para que coincida con la menor potencia informática, especialmente en el escenario comercial de búsqueda donde la distribución de los términos de búsqueda está particularmente dispersa, cuando los recursos son insuficientes, el disparador la señal se guarda según sea necesario Disparador de retardo.

Por otro lado, una vez que los recursos son redundantes, la señal activada activamente se puede extraer para activar el cálculo de línea cercana, que incluye: 1) La señal guardada por el mecanismo de recorte de picos. 2) El tráfico estimado por el sistema que será visitado; 3) y el índice de la cantidad total de señales de activación históricas, que se activan activamente de acuerdo con la prioridad.

△Cálculo real qps

Señal de llenado de valle qps

Por lo tanto, también implica estimar la capacidad de todo el sistema de computación de línea cercana. Una vez completada la estimación, el nivel de agua de la carga activada activamente se controla de acuerdo con la carga natural del sistema, de modo que la carga total calculada del sistema no exceda la capacidad estimada del sistema, a fin de lograr un uso estable y equilibrado de los recursos.

 

7. Programación inteligente de carga y potencia informática

Debido al gran uso de recursos extendidos en la computación nearline, inevitablemente habrá fluctuaciones en el poder de cómputo.

Hay varias razones para esto.Desde una perspectiva amplia, debido a fallas del sistema local o pruebas de estrés de redundancia de tráfico, los servicios a menudo migran el tráfico entre las salas de computadoras.Es decir, el tráfico de la sala de computadoras A se envía a la sala de computadoras B. Verifique la redundancia o recuperación ante desastres de la sala de ordenadores.
Desde un nivel pequeño, en un entorno de implementación mixto, la programación desequilibrada o el uso excesivo de recursos intencional o no intencional conduce a puntos críticos de recursos locales, lo que resulta en la salida de recursos extendidos. Por lo tanto, es necesario programar las cargas entre las salas de cómputo de acuerdo con las condiciones de los recursos en tiempo real.Además, los recursos de la XPU y la CPU necesitan aprender y programar los coeficientes de los recursos debido a sus diferentes capacidades de cómputo.

△ Diagrama esquemático del sistema de programación de la cantidad de cálculo y la programación de potencia informática

Desde la perspectiva de los recursos, una tarea de computación casi en línea a menudo implica la interacción de múltiples módulos ascendentes y descendentes. Debido a los recursos de expansión dinámicos utilizados por los módulos ascendentes y descendentes, implica la utilización desequilibrada de los módulos ascendentes y descendentes debido a los puntos de acceso de recursos locales. Por lo tanto, es necesario equilibrar los recursos de forma continua y dinámica entre los módulos de todo el enlace. La segunda es que, a medida que fluctúa la carga y la potencia informática, es necesario equilibrar los recursos entre las tareas informáticas. La tercera es que debido a que el pico de programación de recursos a menudo se superpone con el pico de tráfico, es necesario estimar los recursos necesarios para la computación de línea cercana antes de que llegue el pico de tráfico, asignarlo con anticipación y programar fuera de pico.

En la práctica, estimar los requisitos de recursos y asignar los recursos informáticos por adelantado es una forma más eficaz de mejorar la potencia informática a través de la programación escalonada. El consumo de energía informática del módulo informático en línea puede causar puntos calientes locales, lo que resulta en la recuperación de recursos extendidos y la programación fallas

△ Diagrama esquemático del efecto de programación de carga

 

8. Optimice la utilización de recursos en función de los resultados de cálculos históricos

En el sistema, guardaremos los resultados de los cálculos históricos y combinaremos las características de la inestabilidad de la potencia informática de línea cercana para optimizar la utilización de los recursos. Cuando los recursos informáticos del sistema son suficientes, los artículos con alta preferencia de usuario en el historial se utilizan para repetir el cálculo, a fin de ampliar el conjunto de candidatos de cálculo y mejorar el efecto empresarial. Cuando los recursos son insuficientes, los recursos que históricamente se consideran menos relevantes para el usuario actual se filtran para mejorar la eficiencia del uso de los recursos.

△Reutilización de resultados históricos de computación casi en línea

La segunda es la estimación de la visita. El sistema hará un seguimiento de los registros de visitas del usuario en el historial y estimará el tiempo de visita del usuario. El objetivo principal es mejorar la puntualidad de los resultados de cálculo del usuario. Debido a que seguirá apareciendo contenido nuevo y el modelo de política se actualiza constantemente, esperamos que aparezcan contenido nuevo y modelos nuevos en los resultados de la computación casi en línea tan pronto como sea posible. Además, la calidad del primer pincel en una escena como Feed es muy importante y, a partir de nuestros resultados experimentales, se puede ver que DAU mejora mediante el cálculo activo.

El tercero es guardar e indexar disparadores históricos. Registre señales de activación históricas de acuerdo con diferentes prioridades, de modo que la biblioteca se pueda actualizar de acuerdo con la prioridad definida por el negocio. Es muy útil para el escenario empresarial de inserción. A través de la actualización de toda la biblioteca, se pueden insertar nuevos modelos y nuevos recursos. tiempo al usuario.

 

9. Casos típicos de aplicación

Los escenarios de aplicación típicos se describen a continuación.

Aplicación típica 1: alimentación de arquitectura de computación híbrida en línea y casi en línea

△Cálculo mixto de alimentación: diagrama esquemático de la cola de recuperación de línea cercana

La imagen de arriba es una escena donde aterrizó nuestro primer cálculo de recuperación de híbridos en línea y casi en línea en el feed.
En el nivel del servicio de algoritmo de recomendación, cada algoritmo de recomendación recuerda miles o decenas de miles de resultados de cálculo. Debido a las limitaciones de recursos y velocidad, no podemos ordenar de manera aproximada estos miles o decenas de miles de resultados, y los modelos de filas gruesas también necesitan controlar el nivel de complejidad. Por lo tanto, consideramos almacenar en caché los resultados de recuperación de múltiples servicios de algoritmos de recomendación y luego colocarlos en el sistema de línea cercana para una puntuación integral para generar un conjunto de candidatos de cálculo de línea cercana correspondiente al usuario como una nueva recuperación. Después de que llegue la solicitud en línea, use este nuevo resultado de recuperación para realizar un cálculo en línea liviano y luego devuélvalo al usuario.

De esta forma, la escala de cálculo de la clasificación preliminar y la puntuación de la capa de recuperación aumenta en un orden de magnitud.

Los principales parámetros involucrados aquí incluyen:

1) Determine la frecuencia de cómputo de un usuario de acuerdo con la potencia de cómputo. Por ejemplo, cuando los recursos son suficientes, cada usuario solo cuenta una vez dentro de un cierto período de tiempo. Cuando los recursos son insuficientes, aumente gradualmente el intervalo de cómputo y reduzca el frecuencia de cómputo.

2) Calcule el tiempo de visita del usuario y actualice el resultado del cálculo de la línea cercana del usuario por adelantado de acuerdo con la redundancia de la capacidad del sistema. 

Aplicación típica 2: Clasificación de resultados de búsqueda

△ Diagrama esquemático del cálculo de línea cercana de la correlación de resultados de búsqueda

Otra aplicación típica es la implementación de computación casi lineal elástica en productos de búsqueda.

En este sistema, debido al complejo modelo basado en Transformer, se utiliza la computación mixta de recursos de XPU y recursos de CPU. De manera similar a la clasificación recomendada en los negocios, colocamos el cálculo de correlación de la búsqueda en el sistema informático de línea cercana para clasificar y calculamos la clasificación de correlación entre los términos de búsqueda y los resultados de búsqueda correspondientes.

A diferencia del escenario recomendado, en el escenario de búsqueda, el conjunto completo de términos de búsqueda es más grande, por lo que utilizamos un mecanismo de reducción de picos y llenado de valles más agresivo para este escenario. Si no hay suficiente poder de cómputo, la señal de activación ser almacenado en caché directamente Vaya a la cola de mensajes y complete el cálculo durante el período mínimo.

 

Resumir

Desde su lanzamiento en 2018, la computación casi en línea elástica ha admitido una potencia informática heterogénea, como CPU, GPU y chips Kunlun, y se ha implementado en el negocio de recomendación de Baidu Feed y en el negocio relacionado con la búsqueda. Se han implementado más de 10 escenarios comerciales en el negocio de recomendación de feeds, lo que ha traído un crecimiento de más de 2 dígitos en la duración y distribución del mercado. Hay 3 escenarios comerciales en el negocio de búsqueda y admite modelos semánticos complejos. En el negocio de búsqueda, la relevancia y la experiencia del usuario de la búsqueda de video de búsqueda y la búsqueda de preguntas y respuestas mejoran significativamente. Con la implementación de modelos más complejos y la superposición de modelos con más objetivos, el sistema de computación casi lineal elástico jugará un papel más importante y ayudará al crecimiento del negocio a un bajo costo.

△Evaluación de la experiencia del usuario del producto de búsqueda

 

Autor de este número |  Lu Jialong, ingeniero sénior de I+D de Baidu

                   Lu Huiming, ingeniero sénior de I+D de Baidu

                   Nie Yong, ingeniero sénior de I+D de Baidu

 

 

Beneficio de este período

Este número es enviado por los arquitectos de Baidu

¡20 copias de "City Silhouette · Taza que cambia de color"!

Inyecte 90-100 ℃ de agua caliente

El cuerpo de la copa presenta automáticamente el mapa de la silueta de la ciudad.

La combinación de tecnología y diseño.

Brinda calidez quedas en la ciudad este invierno

 

forma de participación

Responda a [Sorteo de lotería] en el fondo de la cuenta pública para participar en la lotería

También puedes invitar a amigos para que te ayuden a aumentar en gran medida tus posibilidades de ganar.

¡Ven y participa!

-------------------------------------------------- -------------------------------------------------- ---------------

 

Arquitecto Baidu

¡La cuenta pública técnica oficial de Baidu está en línea!

Productos secos técnicos · Información de la industria · Salón en línea · Conferencia de la industria

Información de contratación · Información de inserción interna · Libros técnicos · Periféricos de Baidu

¡Todos los estudiantes son bienvenidos a prestar atención!

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4939618/blog/4930246
Recomendado
Clasificación