noticias

¡Marco de paleta voladora avanzado 3.0!Un artículo explica las cinco nuevas funciones, entre ellas “Entrenamiento y empuje integrados de modelos grandes”

2024-08-01

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Como software básico, el marco de aprendizaje profundo no solo promueve el rápido progreso de la tecnología de aprendizaje profundo, sino que también sienta una base sólida para la aplicación generalizada de la tecnología de inteligencia artificial.

El marco de aprendizaje profundo proporciona a los desarrolladores interfaces de desarrollo convenientes y fáciles de usar que abstraen datos y operaciones en gran medida, lo que les permite centrarse más en el diseño de algoritmos y modelos sin tener que atascarse en los detalles del procesamiento de datos subyacente. A través de estas interfaces, los desarrolladores no necesitan percibir ni tratar directamente con complejos detalles de desarrollo de hardware subyacentes, lo que mejora en gran medida la eficiencia y la experiencia del desarrollo. En segundo lugar, el marco de aprendizaje profundo también proporciona la poderosa función de diferenciación automática. Los desarrolladores generalmente solo necesitan escribir el código para la red de propagación hacia adelante, mientras que el marco completa automáticamente la engorrosa red de propagación hacia atrás.

Como la primera plataforma de aprendizaje profundo, abierta, de código abierto y rica en funciones de desarrollo propio de China, Fei Paddle ha sido lanzada desde la versión 1.0, que usa imágenes estáticas de forma predeterminada, a la versión 2.0, que usa imágenes dinámicas de forma predeterminada y puede realizar la integración. de imágenes dinámicas y estáticas y entrenamiento y push. Fei Paddle Framework ha podido integrar perfectamente la flexibilidad de los gráficos dinámicos y la eficiencia de los gráficos estáticos, y recientemente admite el entrenamiento híbrido paralelo de modelos, que se ha perfeccionado para el; ¡La era de los modelos grandes ha sido lanzada oficialmente! ¡Flying Paddle ha abierto oficialmente una nueva generación de innovación en tecnología de cuadros!

El pensamiento de diseño

El diseño del marco de aprendizaje profundo es crucial para promover el desarrollo de la tecnología de inteligencia artificial, y su objetivo principal de diseño es facilitar la innovación y la aplicación de la tecnología de aprendizaje profundo.

¿Como hacer esto?

El marco debe considerar plenamente las necesidades de los desarrolladores y fabricantes de hardware.

Desde la perspectiva del usuario, un excelente marco de aprendizaje profundo debería proporcionar a los desarrolladores la mejor experiencia de desarrollo. Esto no solo significa proporcionar un entorno de desarrollo fácil de usar, sino que, lo que es más importante, debe poder reducir significativamente los costos de aprendizaje y el tiempo de los desarrolladores, al tiempo que mejora significativamente la conveniencia del desarrollo. Con este fin, Flying Paddle Framework propone el concepto de "unificación de movimiento y estática, integración de entrenamiento y empuje, y paralelismo automático", lo que mejora enormemente la eficiencia del desarrollo.

Desde la perspectiva de la adaptación del hardware, las aplicaciones modernas de aprendizaje profundo a menudo necesitan ejecutarse en diversas plataformas de hardware. Por lo tanto, el marco debe ser compatible y adaptable a una variedad de dispositivos de hardware diferentes. Esto requiere que el marco aísle inteligentemente las diferencias entre diferentes interfaces de hardware y logre una amplia adaptabilidad del hardware. Al mismo tiempo, para aprovechar al máximo el rendimiento del hardware, el marco también debe tener la capacidad de que el software y el hardware trabajen juntos para garantizar un rendimiento óptimo al utilizar los recursos de hardware.

Al mismo tiempo, un buen marco también debe tener en cuenta la tendencia general del desarrollo de la tecnología de IA y las necesidades reales de aplicación de la industria.

En términos de desarrollo tecnológico, tecnologías de vanguardia como el modelo de lenguaje grande (LLM), la MOE (mezcla de expertos), la multimodalidad y la inteligencia científica (IA para la ciencia) se han convertido gradualmente en nuevos focos de investigación. A medida que aumenta la complejidad del modelo, problemas como cuellos de botella informáticos, cuellos de botella de almacenamiento, cuellos de botella de acceso a la memoria y cuellos de botella de comunicación se vuelven gradualmente más prominentes, y la necesidad de capacitación distribuida y optimización general del rendimiento se vuelve cada vez más urgente.

En el nivel de industrialización, el marco debe tener capacidades de proceso completo que respalden la integración de entrenamiento, compresión y razonamiento. Esto significa que, desde el entrenamiento del modelo hasta la optimización y la implementación e inferencia reales, el marco debe proporcionar una solución completa y eficiente para satisfacer las necesidades reales de la industria en cuanto a tecnología de aprendizaje profundo.

Solo un marco que pueda mantenerse al día con las tendencias y resistir el pulido puede brindar soporte continuo y estable a desarrolladores de todos los ámbitos de la vida en la industria, la academia y la investigación.


Concepto de diseño y características principales de Flying Paddle Frame 3.0

Para resumir los requisitos anteriores, Feipiao proporcionará a los desarrolladores un marco de aprendizaje profundo que "unifica lo dinámico y lo estático, integra capacitación y empuje, paralelización automática, optimización automática y una amplia adaptación de hardware". solo código, sin la necesidad de percibir una lógica de programación y comunicación compleja, puede realizar el desarrollo de modelos grandes. Puede escribir redes neuronales en Python como escribir fórmulas matemáticas, sin usar lenguajes de desarrollo de hardware para escribir códigos de kernel de operadores complejos; y podrá lograr un funcionamiento eficiente.

Nació la versión 3.0 de Flying Paddle Framework, continuando el concepto de diseño de la versión 2.x de entrenamiento y push integrados, dinámicos y estáticos unificados. Su interfaz de desarrollo es totalmente compatible con la versión 2.x. Esto significa que el código desarrollado con la versión 2.x se puede ejecutar directamente en la versión 3.0 sin modificaciones en la mayoría de los casos. Se centra en el lanzamiento de cuatro nuevas características: paralelización automática unificada dinámica y estática, optimización automática del compilador, entrenamiento de modelos grandes e integración push, y adaptación de hardware múltiple de modelos grandes. Estas características se han desarrollado desde la versión 2.6 o anterior de Flying Paddle Framework y ahora han alcanzado la etapa de uso de prueba externa. Estas nuevas características han traído mejoras significativas en términos de experiencia de usuario, rendimiento, conveniencia del desarrollo secundario y adaptabilidad del hardware. Fei Paddle lanzó oficialmente la versión 3.0. Esta versión contiene mejoras a algunas funciones existentes de la versión framework 2.x y es madura y estable sin utilizar nuevas funciones.

Descripción general de la arquitectura del marco

Para lograr las características mencionadas anteriormente del marco de aprendizaje profundo, la arquitectura del marco debe diseñarse cuidadosamente para garantizar que pueda admitir la construcción de varios modelos complejos y lograr una integración perfecta con diversos chips. A continuación, se utilizará un diagrama de arquitectura intuitivo para demostrar en detalle los módulos funcionales cubiertos en el marco de nueva generación de Flying Paddle, así como las interacciones y conexiones entre estos módulos. El siguiente es el diagrama de arquitectura de Flying Paddle Framework 3.0.


Diagrama de arquitectura de Flying Paddle Framework 3.0

Interfaces ricas: Flying Paddle Framework proporciona una variedad de interfaces de desarrollo relacionadas con el aprendizaje profundo, como representación de tensores, cálculos matemáticos, redes de modelos, estrategias de optimización, etc. A través de estas interfaces, los desarrolladores pueden crear y entrenar fácilmente sus propios modelos de aprendizaje profundo sin entrar en detalles técnicos subyacentes.

Bajo la interfaz de desarrollo, Flying Paddle Framework se puede dividir en cuatro niveles: capa de presentación, capa de programación, capa de operador y capa de adaptación.

Capa de presentación: se centra en la expresión y conversión de gráficos computacionales y proporciona funciones centrales como dinámica a estática (gráficos dinámicos a gráficos estáticos), diferenciación automática, paralelismo automático, combinación de operadores y optimización de gráficos computacionales a través de una representación intermedia PIR altamente escalable. Soporte sólido.

Capa de programación: responsable de la orquestación inteligente y la programación eficiente de códigos o gráficos de cálculo, y la capacidad de administrar y optimizar la memoria gráfica y la memoria de acuerdo con las necesidades reales, y admitir la ejecución eficiente de gráficos dinámicos y gráficos estáticos. Ya sea que los desarrolladores opten por utilizar gráficos dinámicos o gráficos estáticos para el desarrollo de modelos, Flying Paddle Framework puede proporcionar un entorno de ejecución eficiente y al mismo tiempo garantizar una utilización óptima de los recursos.

Capa de operador: está compuesta por el compilador de redes neuronales CINN y la biblioteca de operadores PHI, y cubre funciones clave como la definición de tensor, la definición de operador, la fusión automática de operadores y la implementación del núcleo del operador.

Capa de adaptación: se utiliza para implementar la adaptación al chip subyacente, incluidas funciones como administración de dispositivos, adaptación del operador, adaptación de la comunicación y acceso a la compilación.

Lo siguiente se centrará en la nueva e importante actualización de la arquitectura de la versión Flying Paddle 3.0. Esta actualización incluye principalmente los siguientes módulos:

1) PIR de representación intermedia altamente escalable, al crear una representación intermedia unificada para toda la arquitectura, rompe las barreras de cada módulo en la capa de marco y mejora el potencial de Flying Paddle en los campos de la informática científica, la optimización de la compilación y los modelos grandes. ;

2) El compilador de redes neuronales optimiza automáticamente y mejora en gran medida el rendimiento de un extremo a otro del modelo mediante la fusión automática y el ajuste de políticas;

3) La paralelización automática reduce el costo del desarrollo del modelo y la optimización del rendimiento de escenas de modelos grandes y mejora en gran medida la experiencia del usuario de escenas de modelos grandes.

Representación intermedia PIR muy extendida

La representación intermedia (IR) de gráficos computacionales es una piedra angular importante de la optimización del rendimiento del marco de aprendizaje profundo, la implementación de inferencias y los compiladores. En los últimos años, cada vez más marcos e investigadores han introducido la tecnología de compilación en la optimización de modelos de redes neuronales para el aprendizaje profundo y, sobre esta base, han utilizado conceptos, tecnologías y herramientas de compilación para optimizar y codificar automáticamente las redes neuronales. En la era de los modelos grandes, existen mayores requisitos para IR en términos de flexibilidad, escalabilidad e integridad.

Por lo tanto, en la versión 3.0, Feipiao estandariza la definición de representación intermedia IR a nivel de infraestructura para lograr una representación unificada de toda la arquitectura y compartir los resultados del desarrollo en todas las direcciones ascendentes y descendentes. La arquitectura IR de nueva generación de Feipiao se centra en las dos dimensiones importantes de alta flexibilidad y alta escalabilidad. Se desarrolla a través de capacidades de expresión semántica más completas y robustas, una representación unificada de toda la arquitectura y un mecanismo eficiente de estrategia de optimización del rendimiento (Pass) conectable para lograr una semántica compleja. Admite, admite de manera más conveniente estrategias de segmentación enriquecidas bajo paralelización automática de modelos grandes y se conecta sin problemas con el compilador de redes neuronales para lograr la optimización automática del rendimiento y la adaptación de múltiples hardware.



Flying Paddle Intermediate Representation (PIR) abstrae un conjunto de componentes básicos altamente escalables en la capa inferior, que cubren tipo, atributo, operación, rasgo e interfaz, e introduce el concepto de dialecto, brindando a los desarrolladores la capacidad de expandirse y personalizar de manera flexible y libre, por lo tanto Proporciona capacidades de expresión semántica completas y sólidas. En la capa de representación del modelo, a través de la gestión modular de múltiples dialectos y la representación unificada de múltiples terminales, se logra una representación unificada de toda la arquitectura que integra entrenamiento e inferencia, se logra una conexión perfecta entre operadores y compiladores, y optimización automática y adaptación de múltiples hardware. son compatibles. . En la capa de transformación de gráficos, al unificar los módulos subyacentes y simplificar los conceptos básicos, proporciona a los usuarios una experiencia de desarrollo de bajo costo, fácil de usar y de alto rendimiento, así como un mecanismo de optimización Pass rico y conectable. Flying Paddle PIR se adhiere al principio de asignación única estática (SSA) para garantizar que el modelo sea equivalente a un gráfico acíclico dirigido y utiliza Valor y Operación para abstraer el gráfico de cálculo, donde Operación representa el nodo y Valor representa el borde.

La operación representa un nodo en el gráfico de cálculo: cada operación representa un operador y contiene cero o más regiones. La región representa un cierre, que puede contener cero o más bloques. El bloque representa un bloque básico que se ajusta al principio de asignación única estática (SSA) y contiene cero o más operaciones. Mediante el anidamiento de bucles entre estos tres, se pueden construir estructuras gramaticales arbitrariamente complejas.

El valor representa un borde dirigido en el gráfico de cálculo: se utiliza para conectar dos operaciones, describiendo así la cadena Usar-Definir (es decir, la cadena UD) en el programa. Entre ellos, OpResult sirve como final de definición y se utiliza para definir un Valor, mientras que OpOperand sirve como final de uso y describe el uso de un determinado Valor.

Feipiao proporciona dos mecanismos de desarrollo de Pass, PatternRewriter y Declarative Rewrite Rule (DRR para abreviar), que tienen en cuenta la flexibilidad de personalización y la facilidad de desarrollo. El método de desarrollo Pass de tres etapas permite a los desarrolladores centrarse más en el procesamiento de la lógica Pass sin prestar atención a los detalles del IR subyacente. Al utilizar el mecanismo de desarrollo Pass de PIR, los costos de desarrollo Pass se reducen en un 58%; aplicado a escenarios de inferencia, más del 84% de las inferencias del modelo se aceleran en más del 10%.

Optimización automática del compilador de redes neuronales.

Hay tres razones por las que necesitamos desarrollar tecnología de compilación:

1) Tendencia de desarrollo de hardware: combinando la historia del desarrollo de hardware y las características de la evolución tecnológica, la potencia informática se desarrolla mucho más rápido que el rendimiento de acceso a la memoria, el rendimiento de la CPU y el rendimiento del acceso a la memoria del bus afectan el rendimiento de los operadores con acceso intensivo a la memoria (clase normal); , activación, etc.), el rendimiento de la CPU y el ancho de banda del bus afectan la programación y el rendimiento. La tecnología de optimización general de fusión automática basada en compiladores puede fusionar múltiples operadores en un operador grande. Al reducir la cantidad de acceso a la memoria y la cantidad de operadores, puede mejorar en gran medida el rendimiento del modelo.

2) Tendencia de desarrollo del modelo: la estructura del modelo tiene las características de diversidad y la demanda de diversidad depende en gran medida de la optimización general del compilador.

3) Optimización de hardware múltiple: existen muchos tipos de hardware en el mercado. Las diferentes plataformas de hardware tienen diferentes características y requisitos de optimización. Cada hardware requiere mucha mano de obra para optimizarse. Con la ayuda de la tecnología de compilación, este tipo de tecnología de optimización se puede realizar. reducirse considerablemente.

Ilustremos esto con un ejemplo. Tomemos como ejemplo la normalización RMS (normalización de capa cuadrática media), que se usa a menudo en el modelo Llama. Su fórmula de cálculo es relativamente simple y clara.



Supongamos que necesitamos implementar el cálculo de la normalización RMS. La forma más sencilla es que podemos utilizar la interfaz de desarrollo de operaciones tensor proporcionada por el marco de la paleta voladora y llamar a operaciones como cuadrado, suma, división, raíz, etc. El código es el siguiente:



El código anterior es simple de desarrollar, pero su rendimiento es deficiente y ocupa mucha memoria de video. Los desarrolladores pueden implementar FusedRMSNorm, pero los requisitos para los desarrolladores son mayores y el costo es mayor.

Con la tecnología de compilación de redes neuronales, podemos lograr importantes mejoras de rendimiento manteniendo un alto grado de flexibilidad y facilidad de uso. Los siguientes resultados de las pruebas de rendimiento del operador RMSNorm en la plataforma A100 son una evidencia clara: en comparación con la implementación que utiliza una combinación de interfaces de desarrollo Python, el operador compilado y optimizado se ejecuta 4 veces más rápido incluso si está integrado con el operador manual; , también se logró una mejora del rendimiento del 14%. Este resultado demuestra plenamente el equilibrio ideal entre flexibilidad y rendimiento que encuentra el marco del remo de mosca.

Por esta razón, Feipiao considera la tecnología del compilador de redes neuronales como una importante dirección de investigación y desarrollo. El siguiente es el diagrama de arquitectura general del compilador Feipiao.



En la capa de presentación, con la ayuda de las capacidades de expansión de PIR, se implementa el módulo frontal CINN para procesar transformaciones relacionadas con la capa, incluida la división de operadores, el recálculo, la división de subgrafos, los módulos de derivación de dimensiones y otros módulos, y finalmente obtiene múltiples backends del compilador. Generar subgrafos optimizados. En el backend del compilador, para estos subgrafos fusionables, el compilador llamará además a la función Compute para convertirlos en una representación intermedia (IR) de bajo nivel compuesta por un árbol de sintaxis abstracta (AST) y realizará un bucle sobre esta base. para garantizar que se pueda integrar en un kernel, se realizará un análisis de ajuste de rendimiento en el IR subyacente de CINN para obtener la configuración óptima y, finalmente, el IR subyacente se convertirá cuidadosamente en una implementación de código específico;

Los resultados experimentales en el modelo generativo de lenguaje grande Llama y el modelo de gráfico vicentino Difusión estable muestran que al utilizar la tecnología de optimización del compilador, en comparación con la versión básica sin optimización manual del rendimiento, la velocidad de inferencia es un 36% y un 30% más rápida, respectivamente.

Unificación dinámica y estática y paralelización automática.

¿Por qué hacemos paralelismo automático?

Los métodos de entrenamiento convencionales actuales para modelos grandes utilizan una variedad de estrategias paralelas. Estas estrategias paralelas se basan en el método paralelo "manual" implementado en el modo de gráfico dinámico, es decir, sobre la base de una sola tarjeta, procesamiento manual de segmentación ( segmentación de tensores, gráficos de cálculo), comunicación (agregar operadores de comunicación), optimización de la memoria de video (compartición de memoria de video, recomputación), optimización de la programación (orquestación de canalizaciones, cálculo y comunicación asincrónicos) y otras estrategias que los desarrolladores no solo deben conocer. La estructura del modelo, pero también tiene una comprensión profunda de las estrategias y marcos paralelos. La lógica de programación hace que el desarrollo y la optimización del rendimiento de modelos grandes sean muy altos. Además de tener un equipo de algoritmos dedicado responsable de la innovación del algoritmo del modelo, también debe haber un equipo dedicado responsable de la optimización paralela del modelo. Esto trae muchos obstáculos a la innovación y la iteración de modelos grandes.

Tomemos un ejemplo simple para ilustrar la diferencia entre el desarrollo de modelos grandes y la lógica de una sola tarjeta. Dado que la estrategia paralela hará que cambie la forma del tiempo de ejecución de Tensor, los operadores relacionados con el procesamiento de formas deben considerar si se verán afectados por la estrategia paralela. Como se muestra en el procesamiento de remodelación a continuación, la estrategia de segmentación hace que la forma de entrada se transforme, por lo que la forma de salida debe ajustarse razonablemente de acuerdo con la estrategia de segmentación:



Para ello, proponemos un esquema paralelo automático que unifica condiciones dinámicas y estáticas. Los desarrolladores solo necesitan una pequeña cantidad de anotaciones de segmentación de tensores, y el marco puede derivar automáticamente el estado de segmentación distribuida de todos los tensores y operadores, y agregar operadores de comunicación apropiados para garantizar la exactitud de los resultados, finalmente se basará en la estructura del modelo; y la información del clúster, combinada con la memoria de gráficos y la optimización de la capa de programación, encuentra automáticamente la estrategia paralela distribuida más eficiente.

En el diseño paralelo automático, los desarrolladores solo necesitan una pequeña cantidad de anotaciones de segmentación de tensores. Abstraemos los métodos de segmentación y requerimos dos tipos de métodos de segmentación: tensores de segmentación (parámetros, entradas) y gráficos de cálculo de segmentación (canalización). Para implementar estos dos tipos de métodos de segmentación, el marco necesita un mecanismo para describir la relación de mapeo entre tensores distribuidos y dispositivos informáticos. Con este fin, presentamos los dos conceptos distribuidos de ProcessMesh y Placements. El proceso asigna múltiples dispositivos en matrices unidimensionales o multidimensionales compuestas por múltiples procesos. La siguiente figura muestra dos representaciones abstractas de ProcessMesh diferentes compuestas por 8 dispositivos.



Las ubicaciones son una lista compuesta por tres etiquetas distribuidas: Replicate, Shard y Partial. La longitud es consistente con la dimensión de ProcessMesh. Se usa para indicar qué etiqueta distribuida se usa para dividir el tensor distribuido en la dimensión del dispositivo informático correspondiente. . This Las descripciones detalladas de las tres etiquetas distribuidas son las siguientes:

Como se muestra en la figura siguiente, Replicar significa que el tensor existirá en forma de replicación en diferentes dispositivos; Fragmento significa que el tensor se dividirá en diferentes dispositivos de acuerdo con dimensiones específicas. Parcial significa que el tensor en el dispositivo está incompleto y; requiere Reducir Suma o Reducir. El estado completo solo se puede obtener después de la Media y otras operaciones de diferentes maneras.



Después de completar la abstracción de etiquetas distribuidas, llamamos
La interfaz paddle.distributed.shard_tensor() implementa el marcado de fragmentación tensorial. Mediante el marcado y la derivación automática de la división del tensor, podemos representar un paralelismo híbrido distribuido complejo. La siguiente figura muestra un ejemplo específico de paralelismo híbrido compuesto por paralelismo de datos, paralelismo de modelo tensorial y paralelismo de canalización.



El siguiente código muestra un ejemplo específico de paralelismo mixto.



Al adoptar un enfoque de desarrollo paralelo automático, los desarrolladores ya no necesitan considerar una lógica de comunicación compleja. Tomando la tarea Llama como ejemplo, la cantidad de código central de entrenamiento distribuido se ha reducido en un 50%, lo que reduce en gran medida la dificultad de desarrollo. De algunos de nuestros experimentos, se puede ver que con la ayuda del análisis global y otras optimizaciones. , el rendimiento también es mejor que el rendimiento de la paralelización manual de gráficos dinámicos.

En el futuro, exploraremos más a fondo el paralelismo totalmente automático sin utilizar marcadores de división tensorial, lo que permitirá a los desarrolladores escribir código distribuido como si escribieran código independiente, mejorando aún más la experiencia de desarrollo de modelos grandes.

Ventajas industriales

En general, el marco de nueva generación de Flying Paddle - Flying Paddle Framework 3.0-Beta está diseñado específicamente para modelos grandes y multinúcleos heterogéneos. Se adapta hacia abajo a múltiples núcleos heterogéneos y libera completamente el potencial del hardware para integrar modelos grandes. Entrenamiento e inferencia de modelos. Al mismo tiempo, tiene cuatro capacidades principales: paralelización automática unificada dinámica y estática, optimización automática del compilador, entrenamiento de modelos grandes e integración push, y adaptación de hardware múltiple de modelos grandes, lo que mejora integralmente la capacidad de servir a la industria.

Paralelización automática estática y dinámica unificada: esta función reduce en gran medida el costo de desarrollo industrial y capacitación. Los usuarios solo necesitan marcar una pequeña cantidad de segmentación tensorial en una sola tarjeta, y Flying Paddle Framework completará automáticamente la derivación de información de segmentación distribuida y agregará operadores de comunicación para garantizar la exactitud de la lógica. Al mismo tiempo, basándose en la estructura del modelo y la información del clúster, combinado con la optimización de la memoria de video y la capa de programación, Flying Paddle puede encontrar automáticamente la estrategia paralela distribuida más eficiente, lo que reduce en gran medida el costo de desarrollo del entrenamiento paralelo híbrido y permite los desarrolladores se centren más en modelos y algoritmos de innovación.

Optimización automática del compilador: esta característica reduce significativamente el costo de optimización del rendimiento. El compilador de Fei Paddle está diseñado para integrarse con el marco y puede admitir un entrenamiento eficiente y un razonamiento de forma variable de varios modelos, como modelos generativos y modelos informáticos científicos, proporcionando un buen equilibrio entre flexibilidad informática y alto rendimiento. Mediante la fusión automática de operadores y tecnología de generación de código, el rendimiento de inferencia de modelos generativos como Llama2 y Stable Diffusion se ha mejorado en más del 30%.

Capacitación integrada y promoción de modelos grandes: esta característica proporciona a la industria la mejor experiencia de desarrollo. Permite reutilizar las capacidades de entrenamiento e inferencia entre sí, proporcionando una experiencia de desarrollo unificada y la máxima eficiencia de entrenamiento para todo el proceso de modelos grandes. Al pasar del movimiento a la quietud, el trabajo de entrenamiento y razonamiento se pueden conectar perfectamente. Los cálculos generativos durante el proceso de entrenamiento RLHF (aprendizaje por refuerzo con retroalimentación humana) se pueden reutilizar para la optimización de la inferencia, logrando una aceleración de 2,1 veces. Al mismo tiempo, la eficiencia de la estrategia paralela automática distribuida para el entrenamiento de reutilización de escenarios de razonamiento y cuantificación aumenta 3,8 veces.

Adaptación de múltiples hardware de modelos grandes: una de las características importantes de Flying Paddle es adaptarse a múltiples núcleos heterogéneos y liberar completamente el potencial del hardware. En términos de mecanismo de acceso, Flying Paddle proporciona una interfaz abstracta simple y eficiente y un sistema de operador básico, lo que reduce los costos de adaptación. En términos de mecanismo operativo, optimiza la programación, el intercambio de almacenamiento y otros mecanismos para mejorar la eficiencia de la programación. Desde la perspectiva de los núcleos de operador, Feipiao proporciona una solución de ajuste de fusión automática del compilador para mejorar el rendimiento de un extremo a otro. Al mismo tiempo, Feipiao también ha creado infraestructura de I+D, como integración de código, integración continua y pruebas de regresión de modelos para nuevos fabricantes de hardware. Estos mecanismos garantizan que se incluya nuevo hardware en el sistema de lanzamiento normal de Feipiao, y que los usuarios puedan instalarlo y probarlo directamente sin compilar. El mecanismo de acceso totalmente funcional y de bajo costo de Flying Paddle ha atraído a los fabricantes de hardware a contribuir conjuntamente con 3456 RP a Flying Paddle, incluido un total de más de 25 000 compromisos.

Este es el marco 3.0 de nueva generación de Fei Paddle. Actualmente, la versión 3.0-Beta está abierta a los desarrolladores y todas las interfaces de desarrollo son totalmente compatibles con 2.0. Los desarrolladores pueden utilizarlo y proporcionar sus comentarios.