Diseño de arquitectura de Pitaya, un enlace de ingeniería inteligente en el lado de ByteDance

Client AI es un equipo de inteligencia de extremo a extremo bajo la arquitectura de investigación de la industria de ByteDance.Es responsable de la construcción de marcos y plataformas de inteligencia artificial de extremo a extremo, así como de la investigación y desarrollo de modelos y algoritmos, para desarrollar nuevos escenarios. para inteligencia de extremo a extremo para ByteDance. Pitaya presentado en este artículo es un conjunto de enlaces de ingeniería inteligente de extremo a extremo construidos conjuntamente por el equipo de inteligencia artificial del cliente de ByteDance y el equipo de MLX.

Autor|Qin Liang

1, localización del cliente AI-Pitaya

A lo largo de los años, con el desarrollo del diseño de algoritmos y la potencia informática de los dispositivos, la aplicación integral de la IA ha pasado gradualmente de una exploración esporádica a una aplicación a gran escala. En la industria, FAANG y BAT tienen muchos escenarios de aterrizaje, crean una nueva experiencia interactiva o mejoran la eficiencia de la inteligencia empresarial.

Client AI es un equipo de inteligencia de extremo a extremo bajo la arquitectura de investigación e industria ByteDance Es responsable de la construcción de marcos y plataformas de inteligencia artificial de extremo a extremo, así como de la investigación y el desarrollo de modelos y algoritmos, para abrir nuevos escenarios de inteligencia empresarial para ByteDance.

Pitaya es un conjunto de enlaces de ingeniería inteligente de terminales construidos conjuntamente por el equipo de IA del cliente de ByteDance y el equipo MLX, que brinda soporte de enlace completo desde el desarrollo hasta la implementación para aplicaciones inteligentes de terminales.

La visión de Pitaya es crear una tecnología de inteligencia integral líder en la industria para facilitar la aplicación comercial de la inteligencia de bytes. Brindamos soporte de enlace completo para servicios inteligentes de extremo a extremo a través de enlaces de ingeniería de IA; a través de soluciones técnicas de IA, ayudamos a las empresas a mejorar los indicadores, reducir costos y mejorar la experiencia del usuario.

Hasta el momento, la inteligencia de terminal de Pitaya ha brindado soporte inteligente de terminal para más de 30 escenarios de Douyin, Toutiao, Xigua, aplicaciones novedosas y otras, de modo que el paquete de algoritmo inteligente de terminal puede ser válido billones de veces al día en el teléfono móvil, mientras que el tasa de error se controla dentro de menos de 1 en 100.000.

2. Arquitectura pitaya

En esta sección, presentaremos en detalle las dos partes principales de la arquitectura Pitaya: la plataforma Pitaya y el SDK de Pitaya.

  • La plataforma Pitaya proporciona una serie de capacidades de marco, como gestión de proyectos, acceso a datos, desarrollo de modelos, desarrollo de algoritmos y gestión de implementación de paquetes de algoritmos para la IA en el dispositivo. En el proceso de desarrollo de la estrategia del algoritmo en el terminal, la plataforma Pitaya apoya el experimento en la estrategia del algoritmo inteligente del terminal en la plataforma AB para verificar el efecto de la estrategia del algoritmo. Además, la plataforma Pitaya también admite monitoreo en tiempo real y configuración de alarmas del efecto de IA al final, y análisis y visualización multidimensional en el tablero Kanban.
  • El SDK de Pitaya proporciona un entorno de ejecución en el terminal para el paquete de algoritmo inteligente del terminal y admite el funcionamiento de alta eficiencia de la IA del terminal en diferentes dispositivos. Pitaya SDK también es compatible con el procesamiento de datos y la ingeniería de funciones en el terminal, lo que brinda la capacidad de proporcionar gestión de tareas y versiones para paquetes de algoritmos y modelos de IA, y para monitorear la estabilidad y el efecto de la IA que se ejecuta en el terminal en tiempo real.

3. Plataforma pitaya

3.1 Banco de trabajo Pitaya

*MLX: Plataforma universal de aprendizaje automático Byte

*Libra: plataforma de evaluación experimental AB en línea a gran escala Byte

*Slardar: plataforma APM de monitoreo de extremo a extremo con rendimiento de bytes y garantía de experiencia

La plataforma Pitaya proporciona un Pitaya Workbench completo y fácil de usar para el desarrollo, administración, depuración, lanzamiento, implementación, experimentación y monitoreo de paquetes de algoritmos.

  • Para mejorar la eficiencia del desarrollo de algoritmos, Pitaya Workbench proporciona a los ingenieros de algoritmos un entorno de desarrollo que puede configurar fácilmente datos, modelos y algoritmos.
  • Para simplificar la depuración, Pitaya Workbench implementa la depuración conjunta en máquina real en WebIDE y admite puntos de interrupción, ejecución de SQL y otras capacidades.
  • Para comprobar el efecto de la estrategia de IA, la plataforma Pitaya ha abierto Libra, la plataforma experimental A/B de Byte, para conseguir un entorno experimental más flexible.
  • Para garantizar el efecto y la estabilidad de la IA en el dispositivo, la plataforma Pitaya proporciona capacidades de monitoreo y alarma para monitorear el rendimiento y la tasa de éxito de los paquetes de algoritmos y otros indicadores operativos, así como la precisión del modelo en el dispositivo, AUC y otros modelos. indicadores de efectos, y visualícelos en la exhibición del Tablero.

3.2 Plataforma de aprendizaje automático

Con el fin de satisfacer las necesidades del procesamiento de big data y el entrenamiento del modelo de aprendizaje profundo, la plataforma Pitaya está conectada a la plataforma byte MLX para proporcionar una solución de cuaderno colaborativo en la nube de desarrollo propio para escenarios generales de aprendizaje automático.

MLX Notebook tiene motores de computación de big data integrados como Spark 3.0 y Flink, y varias colas de recursos como local, yarn, K8S, etc., que pueden combinar varias fuentes de datos (HDFS / Hive / Kafka / MySQL) y varias máquinas. motores de aprendizaje (TensorFlow, PyTorch), XGBoost, LightGBM, SparkML, Scikit-Learn) están conectados. Al mismo tiempo, MLX Notebook también expande los operadores MLSQL sobre la base de SQL estándar, que puede compilar consultas SQL en flujos de trabajo que se pueden ejecutar de manera distribuida en la capa inferior y completar la extracción de datos, procesamiento, entrenamiento de modelos, evaluación, predicción e interpretación de modelos.

4, SDK de Pitaya

4.1 Entorno de IA en el dispositivo

4.1.1 Máquina virtual integrada

El núcleo de Pitaya SDK es la máquina virtual en el dispositivo de desarrollo propio: PitayaVM, que proporciona el entorno necesario para que los paquetes de algoritmos y los modelos en el dispositivo se ejecuten en teléfonos móviles. Para permitir que la máquina virtual se ejecute en la terminal y resolver los problemas de bajo rendimiento y gran tamaño de la máquina virtual en la terminal, Pitaya ha realizado muchas optimizaciones en la máquina virtual conservando la mayoría de las funciones principales:

  • Ligero: el tamaño del paquete afecta la tasa de actualización y actualización del usuario. Al recortar las funciones del núcleo y la biblioteca estándar, optimizar la implementación del código y desarrollar herramientas de desarrollo propio para analizar el volumen del paquete en detalle, el volumen del paquete de PitayaVM se ha reducido a menos del 10 % del original, al tiempo que se asegura el núcleo. funciones, que se controla dentro de Dentro de 1 MB.
  • Eficiencia: PitayaVM se ha optimizado en términos de rendimiento sin dejar de ser ligero. El rendimiento de las operaciones de contenedores y el procesamiento de escenas de estadísticas numéricas incluso supera el rendimiento nativo en Android e iOS. Al mismo tiempo, la máquina virtual también admite la ejecución paralela de códigos de algoritmos, lo que mejora en gran medida la eficiencia de la ejecución. Además, PitayaVM también admite la optimización del rendimiento de ejecución en Android a través de JIT, lo que puede mejorar el rendimiento en casi un 30 % después de habilitar JIT.
  • Seguridad: PitayaVM utiliza códigos de bytes y formatos de archivo de desarrollo propio para garantizar la seguridad de los archivos y las máquinas virtuales.

Para las líneas de productos que requieren un volumen estricto (como los servicios ToB), también puede usar la solución MinVM de Pitaya SDK. A través del intérprete ligero de desarrollo propio, se realiza una optimización ligera extrema sobre la base de PitayaVM, y el tamaño del paquete es comprimido a menos de 100 KB.

4.2 Proceso central de inteligencia terminal

4.2.1 Preparación de datos

El SDK de Pitaya proporciona una gama de soporte para el proceso de preparación de datos. Brinda la capacidad de obtener datos de características de dispositivos, aplicaciones, servicios, centros de características en el dispositivo, plataformas de retratos de dispositivos en la nube y módulos de promoción de búsqueda. Al mismo tiempo, Pitaya SDK también admite el etiquetado dinámico en el terminal para etiquetar datos, mejorar la calidad de los datos de entrenamiento y luego mejorar el efecto del modelo en el terminal.

4.2.2 Ingeniería de características al final

La ingeniería de funciones finales se divide en tres partes principales: "gestión de funciones", "almacenamiento de funciones finales", "centro de funciones finales".

Almacenamiento de funciones

Pitaya SDK proporciona almacenamiento de características de varias maneras, como KV y SQL lite, e implementa módulos de almacenamiento de datos similares a Redis y Hive al final. Al mismo tiempo, Pitaya SDK también proporciona bibliotecas básicas como numpy, MobileCV, MLOps, etc. que están optimizadas para la personalización en el extremo, a fin de ser compatibles con datos en más formatos y proporcionar un procesamiento de datos en el extremo más complejo. capacidades.

Pitaya SDK proporciona características de secuencia larga, multidimensionales y de alta eficiencia y datos privados permitidos por el cumplimiento. Además de respaldar una proporción considerable de la toma de decisiones en el dispositivo, las características y las muestras se pueden procesar aún más para proporcionar soporte para el modelo de nube. inferencia y entrenamiento, y luego Admite diferentes escenarios inteligentes en el dispositivo, como CV, NLP y flujo de información.

centro de características finales

Pitaya SDK proporciona un módulo de centro de funciones en el dispositivo, que permite que diferentes escenarios comerciales en el dispositivo consuman, compartan, personalicen y reutilicen de manera fácil y eficiente sus propias funciones a través de la integración multidimensional y la gestión de datos de funciones ricas y diversas en el dispositivo. datos El centro de funciones en el dispositivo puede integrar y producir automáticamente datos de funciones a lo largo del tiempo, el ciclo de vida de la aplicación e incluso sesiones personalizadas en forma de implementación centralizada, y luego proporcionarlos a diferentes módulos para su uso, mejorando significativamente la eficiencia del desarrollo de funciones. Al mismo tiempo, dado que la producción y el consumo de datos son locales, todo el proceso puede lograr una puntualidad de datos de milisegundos.

Gestión de características

Las fuentes de datos en el dispositivo son abundantes y la producción de funciones es flexible. Las funciones en el dispositivo complejas y de alto nivel se pueden obtener después de la ingeniería de funciones en el dispositivo, y el cruce de funciones secundarias se puede realizar antes de proporcionarlas a los escenarios comerciales para el consumo. En respuesta a esta función de funciones en el dispositivo, Pitaya SDK mantiene un conjunto de mecanismos de gestión de funciones en el dispositivo para garantizar una producción de funciones ascendente y descendente confiable, mantenible y rastreable. También proporciona las siguientes capacidades:

  • Monitoreo de funciones en el dispositivo: el módulo de administración de funciones establece una serie de calibraciones y monitoreos para las funciones en el dispositivo, y monitorea la falta de funciones en el dispositivo, los valores propios anormales y los cambios de valores propios en tiempo real para garantizar la producción normal de las funciones en el dispositivo. .
  • Mapa de funciones en el dispositivo: para realizar la colaboración y el uso compartido de funciones entre equipos, el módulo de administración de funciones proporciona la capacidad del mapa de funciones en el dispositivo, para que los diferentes equipos comerciales puedan descubrir, recuperar, contribuir y administrar funciones en el dispositivo a través de el mapa de características. El mapa de funciones del dispositivo proporciona un conjunto de especificaciones estándar para agregar y usar funciones, y puede maximizar el costo de comprender el significado de las funciones y mejorar la eficiencia de la construcción y reutilización de funciones al establecer grupos de funciones y agregar información de metadatos a las funciones.

4.2.3 Inferencia del modelo en el dispositivo

El SDK de Pitaya optimiza profundamente la implementación y la aplicación práctica de los modelos de IA en el terminal, y conecta el marco del motor de razonamiento heterogéneo de alto rendimiento desarrollado por Byte, el motor de razonamiento del árbol de decisiones de aprendizaje automático ByteDT desarrollado por el equipo de IA del Cliente y el equipo de AML El motor Byte TVM permite que los modelos de IA se implementen rápidamente y realicen inferencias de alto rendimiento al final. Actualmente, el motor de inferencia en el dispositivo compatible con el SDK de Pitaya puede cubrir la mayoría de los escenarios de IA en el dispositivo y brindar compatibilidad completa con la cadena de herramientas, que incluye:

  • Alta compatibilidad: admite la conversión de modelos entrenados por los principales marcos comerciales (Caffe, Pytorch (ONNX), TensorFlow (tflite), XGBoost, CatBoost, LightGBM, ...) en formatos de modelo compatibles y comprimirlos y cuantificarlos. Cubre OP comunes en múltiples campos comerciales, como CV, audio y NLP, y es compatible con todos los modelos de Android e iOS en la terminal.
  • Altamente versátil: admite CPU/GPU/NPU/DSP/CUDA y otros procesadores, y puede realizar una selección y programación óptimas en combinación con las condiciones del hardware del procesador y la ocupación actual de los recursos del sistema.
  • Alto rendimiento: admite aceleración paralela multinúcleo y computación de bajo bit (int8, int16, fp16), reduce el consumo de energía y mejora el rendimiento, y el rendimiento general continúa liderando la industria.

4.3 Capacidades básicas de apoyo de la inteligencia terminal

4.3.1 Supervisión de terminales

El módulo de monitoreo final proporciona un monitoreo activo del consumo de tiempo de IA, la tasa de éxito, la estabilidad del mercado y el efecto del modelo al final.

Durante la ejecución de la tarea de inferencia, el cliente monitoreará automáticamente el desempeño de los enlaces clave de la operación del paquete de algoritmos y enterrará los puntos, y luego informará a diferentes plataformas para la visualización correspondiente de diferentes tipos de puntos de entierro.

Correspondiente a diferentes plataformas, el monitoreo de terminales admite:

  • En la plataforma de monitoreo de componentes, la estabilidad del mercado más amplio se logra a través de una configuración personalizada, como el tiempo de ejecución del paquete de algoritmos general, la cantidad de activadores per cápita y otros indicadores para personalizar la configuración y la frecuencia de las alarmas.
  • En el sistema de análisis de comportamiento, se muestran los resultados de ejecución y los comportamientos del paquete de algoritmo integrado, y se muestra información como la tasa de éxito de la operación del paquete de algoritmo y la precisión de la inferencia del modelo a través de informes/kanbans.
  • En la plataforma de seguimiento de un solo punto, por el problema de que el razonamiento lleva demasiado tiempo, verifique el tiempo detallado del árbol de métodos.

4.3.2 Gestión de paquetes de algoritmos

Gestión de recursos La gestión de recursos tiene la capacidad de actualizar, desconectarse y compatibilidad de versiones de paquetes de algoritmos, de modo que los paquetes de algoritmos se puedan implementar de forma automática y sin problemas en el terminal; al mismo tiempo, también mantiene un conjunto completo de IA del lado del cliente entorno de ejecución. Después de un largo período de perfeccionamiento, ofrecemos estas características:

  • Entrega personalizada: admite diferentes métodos de entrega, como la entrega bajo demanda y la entrega manual, teniendo en cuenta la disponibilidad y la experiencia del usuario.
  • Activación flexible: Admite múltiples métodos de activación para paquetes de algoritmos y puede ejecutar modelos o estrategias de IA en el momento deseado del negocio a través de métodos personalizados, eventos y tiempo.
  • Aislamiento del entorno: para diferentes dependencias de entorno de diferentes paquetes de algoritmos, así como la compatibilidad entre diferentes versiones de la misma dependencia, proporciona un entorno para el aislamiento de módulos; al mismo tiempo, proporciona capacidades de almacenamiento en caché y liberación de módulos, evitando el cambio frecuente de módulos. , y teniendo en cuenta la velocidad de ejecución y el uso de la memoria.

administración de tareas

Dado que tanto los datos como los modelos se calculan e infieren al final, no hay dependencia de red ni latencia de red. Por lo tanto, el tiempo que consume la IA en el dispositivo es mucho menor que el de la IA basada en la nube, por lo que la IA en el dispositivo puede lograr una frecuencia más alta y una respuesta más rápida. La gestión de tareas está especialmente diseñada para corresponder a las características de la IA en el terminal y admite una variedad de capacidades:

  • Alta simultaneidad: el modo de gestión de tareas admite la simultaneidad de tareas múltiples y la programación de subprocesos múltiples para garantizar un entorno de ejecución eficiente para las tareas de IA.
  • Protección de disyuntores: para garantizar la estabilidad de los escenarios comerciales principales, el módulo de administración de tareas admite la protección de disyuntores. Para los paquetes de algoritmos que no se ejecutan N veces consecutivas o causan fallas N veces consecutivas, los fusionaremos para evitar que corran.
  • Programación de prioridades: cuando hay muchos escenarios comerciales, la activación de alta frecuencia de tareas de inferencia puede conducir a la acumulación de tareas. Para garantizar la prioridad de las tareas de alta calidad, admitimos la programación de tareas por prioridad; además, en escenarios con un alto rendimiento en tiempo real, también admitimos la fusión de tareas intermedias en estado pendiente para garantizar la respuesta en tiempo real de las tareas. .
  • Antibloqueo: el código del algoritmo es muy dinámico y puede introducir un bucle infinito.Si la tarea de inferencia que contiene el código de bucle infinito se ejecuta en el terminal, los recursos seguirán ocupados. Con este fin, hemos desarrollado una función de detección de atascos. Después de detectar un bucle infinito, saldrá del bucle infinito en el nivel del intérprete, limpiará el entorno y restaurará el intérprete para garantizar la programación normal de tareas.

4.3.3 Aprendizaje federado

Para proteger la privacidad de los datos de los usuarios, Pitaya SDK proporciona el módulo de aprendizaje federado de Pitaya, que admite el entrenamiento de modelos de IA sin cargar ningún dato privado. En este proceso, el entrenamiento del modelo de IA solo se basa en los resultados de la actualización del modelo de extremo a extremo procesado por la protección de la privacidad y la tecnología de encriptación. Los datos relacionados con el usuario no se transmitirán a la nube para su almacenamiento, ni la información de datos original se puede transferir. invertido, que realiza el entrenamiento del modelo.Desacoplamiento del almacenamiento de datos en la nube. Además, Pitaya SDK también admite la capacitación, implementación e iteración de modelos directamente en la terminal para lograr un modelo personalizado por el usuario con miles de modelos o miles de modelos.

Para garantizar la experiencia del usuario, Pitaya FL implementa un conjunto de soluciones de programación automática en el terminal. El entrenamiento de aprendizaje federado solo se llevará a cabo cuando el dispositivo esté inactivo, cargado y conectado a wifi al mismo tiempo. Todo el proceso no causar ningún impacto en el dispositivo.

Pitaya futura construcción

Pitaya, la arquitectura de inteligencia de terminal del equipo de AI de Byte Client, ha proporcionado una plataforma de desarrollo completa y madura para la inteligencia de terminal, y proporciona módulos funcionales completos y fáciles de usar para cada enlace en el flujo de trabajo de desarrollo de inteligencia de terminal, y proporciona en SDK Admite máquinas virtuales, características, monitoreo y motores de inferencia líderes en la industria.

En los próximos meses, Byte Pitaya se comprometerá a seguir construyendo un enlace de ingeniería de IA de extremo a extremo, que cubra los procesos de desarrollo, iteración y monitoreo, y mejore la eficiencia energética de la investigación y el desarrollo de algoritmos de IA empresarial. Al mismo tiempo, planeamos acumular más capacidades de aplicaciones de IA reutilizables en la arquitectura inteligente del terminal que actualmente se acerca a la madurez, realizar la migración eficiente de capacidades de IA entre aplicaciones y hacia B, y aplicar IA en el terminal a aplicaciones a gran escala.


El equipo de Client AI ha estado reclutando talentos destacados, incluidos ingenieros de algoritmos inteligentes de terminales, ingenieros de aplicaciones inteligentes de terminales (iOS/Android), ingenieros de I+D de datos inteligentes de terminales y otros puestos, para que podamos crear nuestra propia influencia en este campo. Si tiene entusiasmo, motivación y experiencia en inteligencia de extremo a extremo, bienvenido a unirse a nuestro equipo y explorar juntos la posibilidad de inteligencia de extremo a extremo ~

Correo electrónico: [email protected]

 

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

Supongo que te gusta

Origin my.oschina.net/u/4180867/blog/5571316
Recomendado
Clasificación