Motor de inferencia PAI BladeLLM: contexto ultralargo, mayor rendimiento

BladeLLM es un motor de inferencia de modelos grandes proporcionado por la plataforma PAI de Alibaba Cloud y se compromete a permitir a los usuarios implementar fácilmente servicios de modelos de lenguaje grandes de alto rendimiento y bajo costo. BladeLLM ha realizado una optimización del rendimiento y una optimización de ingeniería en profundidad en todo el enlace de inferencia y servicios de LLM para garantizar que diferentes modelos logren un rendimiento de costos óptimo en diferentes dispositivos.

Además de la optimización extrema del rendimiento bajo longitudes de contexto convencionales, BladeLLM también supera el límite de longitud de contexto de los sistemas de razonamiento LLM existentes y puede admitir longitudes de entrada y longitudes de generación de texto más largas, lo que permite a LLM desbloquear más escenarios de aplicaciones. en contextos ultralargos y tiene importantes ventajas de rendimiento en comparación con otros sistemas de servicios de inferencia LLM.

Este artículo presenta principalmente las ventajas de BladeLLM en contextos ultralargos, incluida la longitud máxima de contexto admitida y el rendimiento de razonamiento de contextos ultralargos.

fondo

El contexto ultralargo es una tendencia inevitable en el desarrollo de LLM

La capacidad de razonamiento de contexto ultralargo es una de las capacidades emergentes importantes de LLM. Esta capacidad ha generado una serie de escenarios de aplicación con un enorme valor potencial, incluidos robots de chat personalizados (Character.AI), herramientas de creación literaria (Jasper) y resúmenes de artículos. Herramientas (ChatPaper), etc. Los chatbots personalizados continuarán interactuando con los usuarios y brindándoles ayuda en el trabajo, las emociones, el aprendizaje y otros aspectos. LLM memorizará el contenido completo del chat durante el proceso de comunicación, y la longitud de entrada del modelo aumentará gradualmente, formando una secuencia de texto de entrada ultra larga después de múltiples interacciones. Las herramientas de creación literaria utilizan las capacidades de LLM para generar por lotes textos largos, como novelas. , historias y guiones. En comparación con el proceso de creación manual tradicional, las herramientas de creación literaria de LLM pueden generar una gran cantidad de antecedentes, tramas y diálogos en poco tiempo, lo que mejora en gran medida la eficiencia creativa de los escritores y guionistas y, al mismo tiempo, proporciona a los lectores materiales de lectura más ricos y diversos. La capacidad de razonamiento contextual ultralargo que surge de LLM se considera la única forma de obtener AGI. La importancia de esta capacidad se refleja principalmente en los siguientes aspectos:

  1. Explore más escenarios de aplicaciones: la compatibilidad con la generación de texto ultralargo permite que LLM se aplique a más escenarios de aplicaciones, como chatbots personalizados, generación de novelas, documentos técnicos, artículos académicos, etc. Estos escenarios de aplicación normalmente requieren la generación de contenido de texto más extenso.
  2. Generar texto más coherente contextualmente: el objetivo de LLM es generar texto en lenguaje natural que sea relevante para un contexto determinado. Cuando el límite de secuencia de generación es corto, puede provocar una coherencia insuficiente entre el texto generado y el contexto, lo que afecta la calidad del texto generado. LLM admite la generación de texto ultralargo, que puede mantener mejor la integridad del contexto y hacer que el texto generado sea más coherente, mejorando así la calidad del texto generado.
  3. Mejorar la diversidad del texto generado: las secuencias generadas más largas pueden proporcionar más espacio para explorar diferentes posibilidades de texto, mejorando así la diversidad del texto generado. LLM admite la generación de texto ultralargo, que puede capturar mejor cambios sutiles en el contexto y generar contenido de texto más diverso y rico.

Con la expansión de escenarios de aplicaciones relacionados, están surgiendo uno tras otro modelos que admiten contextos ultralargos, incluido MPT StoryWriter que admite contexto de 84K, Claude 2 con contexto de 200K, LongLLaMA con contexto de 256K, etc. (consulte la figura a continuación). A nivel de sistema, aunque algunos frameworks (como DeepSpeed) ya soportan y optimizan contextos ultralargos, todavía están centrados en la fase de entrenamiento. En la etapa de inferencia, todos los marcos populares se enfrentan al problema de que la entrada y salida ultralargas no pueden ejecutarse o funcionan de manera ineficiente. Se puede decir que la entrada y salida de texto ultralargo plantea nuevos desafíos para los motores de inferencia de modelos grandes.

El desafío de los contextos muy largos

En primer lugar, es difícil que los motores de inferencia LLM existentes satisfagan las necesidades de modelos grandes para procesar información de contexto ultralarga. La configuración de los recursos de almacenamiento y el diseño de los operadores informáticos en estos sistemas limitarán en gran medida la longitud máxima de entrada y salida del modelo. Por lo tanto, el soporte contextual a gran escala requiere estrategias informáticas y de almacenamiento más eficientes; además, una información contextual más larga hace que el tiempo de inferencia aumente dramáticamente, provocando un aumento en los costos y una disminución en la experiencia del usuario. Este problema es particularmente obvio en los LLM existentes. motor de inferencia. . La razón principal del aumento en el tiempo de razonamiento es el mecanismo de Atención de LLM, que necesita calcular la importancia relativa entre cada Token y otros Tokens. A medida que aumenta la longitud del contexto, el cálculo de Atención necesita procesar más Tokens, lo que resulta en un tiempo de cálculo más largo. ., por lo que un método de cálculo de atención más rápido y eficiente es la clave para acelerar la generación de texto ultralargo de LLM.

Tomando el modelo HuggingFace Llama2-13B como ejemplo, a medida que aumenta la longitud del contexto, el tiempo para generar un token aumenta significativamente. La tendencia de crecimiento específica se muestra en la siguiente figura. Cuando la longitud del contexto es de 34 K, el tiempo que tarda el modelo de código abierto de HuggingFace en generar un token es 3,5 veces mayor que cuando la longitud del contexto es de 1 K.

Soluciones técnicas

El siguiente es el diagrama de arquitectura técnica del motor de inferencia BladeLLM, que contiene muchos componentes principales. Este artículo presenta principalmente RaggedAttention y AutoTuner basado en DNN.

Atención irregular

Recientemente, ha habido dos trabajos influyentes sobre el cálculo de Transformer Multi Head Attention, a saber, FlashAttention y PagedAttention, que han tenido un profundo impacto en el paradigma de diseño de los sistemas de inferencia y entrenamiento LLM.

PagedAttention se inspira en las ideas de memoria virtual y paginación en el sistema operativo y almacena claves y valores continuos en un espacio de memoria de video discontinuo. PagedAttention divide el caché kv de cada secuencia en bloques, y cada bloque contiene claves y valores. ​de un número fijo de tokens.valores. Dado que estos bloques no tienen que ser consecutivos en la memoria de video, la fragmentación de la memoria de video se reduce considerablemente y no es necesario reservar una gran cantidad de memoria de video por adelantado para cada secuencia, de modo que los valiosos recursos de la memoria de video se utilizan en su totalidad. La máxima utilización de la memoria combinada con el procesamiento por lotes contiguo mejora enormemente el rendimiento del servicio de inferencia LLM. En consecuencia, también trae una desventaja: los bloques de memoria de video discontinuos afectan la eficiencia del acceso a la memoria del kernel hasta cierto punto, afectando así el rendimiento.

Aunque el problema que debe resolver el RaggedAttention de desarrollo propio de BladeLLM en el mismo período es similar al de PagedAttention, existen ciertas diferencias en los métodos de implementación, específicamente, existen diferentes compensaciones entre el rendimiento del kernel y la utilización de la memoria de video.

El nombre RaggedAttention está inspirado en RaggedTensor en el marco de Tensorflow. Ragged significa irregular, lo que significa que el caché kv de RaggedAttention no es un tensor normal, pero permite que la longitud de cada secuencia sea diferente, de modo que pueda cooperar eficientemente con Contiguous Batching para mejorar el rendimiento del sistema. Sin embargo, a diferencia de PagedAttention, RaggedAttention garantiza que la clave y el valor de la misma secuencia se almacenen continuamente, por lo que puede mejorar la eficiencia del acceso a la memoria del kernel y, por lo tanto, mejorar el rendimiento. De manera similar, el almacenamiento continuo causará cierta fragmentación de la memoria de video y problemas de reserva de la memoria de video, lo que afectará la utilización de la memoria de video. Esta es una compensación de ingeniería típica y no existe una respuesta estándar, porque diferentes proporciones de memoria y potencia de procesamiento, diferentes longitudes de entrada y salida e incluso diferentes requisitos comerciales de demora conducirán a diferencias en los cuellos de botella del sistema. Como plataforma de inteligencia artificial, BladeLLM se compromete a encontrar la configuración más adecuada para diferentes modelos, diferentes dispositivos, diferentes cargas de trabajo y diferentes escenarios comerciales de forma automatizada.

Por ejemplo, para longitudes de contexto que varían mucho, con la ayuda de AutoTuner, que se presentará en la siguiente sección, RaggedAttention puede mantener cálculos eficientes y acceso a la memoria en diferentes longitudes de contexto. Medimos que la longitud del contexto cambia de 1 a 512000, y RaggedAttention puede obtener el máximo rendimiento. 

AutoTuner basado en DNN

La inferencia LLM es un escenario típico de forma dinámica fuerte: no solo la dimensión del tamaño del lote cambiará dinámicamente, sino que la dimensión de la longitud de la secuencia también cambiará aún más dramáticamente. Uno de los métodos principales para lograr el máximo rendimiento del Kernel en el escenario de forma dinámica es realizar ajustes en función del tamaño de ejecución real, es decir, para cada conjunto específico de tamaños de entrada, se selecciona el mejor programa mediante la ejecución y medición reales. Los trabajos que utilizan este método incluyen AutoTVM, Ansor et al. Aunque este método puede lograr un rendimiento extremo, tiene el problema de una alta sobrecarga de ajuste. En particular, los resultados del ajuste solo se pueden aplicar a formas específicas, lo cual es muy hostil para escenarios de formas dinámicas: si todas las formas posibles se ajustan de antemano fuera de línea, El tiempo de ajuste y los recursos informáticos necesarios son enormes; si cada nuevo conjunto de formas se ajusta en línea en tiempo real, provocará graves perturbaciones en el rendimiento en línea.

En respuesta a los puntos débiles anteriores, BladeLLM utiliza AutoTuner basado en DNN, que se basa completamente en los resultados predichos por el modelo DNN sin ejecutar mediciones para seleccionar el mejor programa. Hemos trabajado mucho en la recopilación de datos de entrenamiento y la estructura del modelo. , extracción de características, diseño de funciones de pérdida, etc. Explore e intente mejorar continuamente la precisión de predicción del modelo DNN. Actualmente, el rendimiento promedio de los operadores de computación intensiva de GPU basados ​​en AutoTuner basado en DNN alcanza el 99,39% del rendimiento de ajuste basado en Tuning. en mediciones reales de funcionamiento.

Después de resolver el problema de la precisión de la predicción, reducir el tiempo de ejecución y los recursos informáticos ocupados por el modelo de predicción DNN se ha convertido en un desafío clave para que esta tecnología se aplique a escenarios de razonamiento en línea en tiempo real. El uso directo de marcos y motores existentes (como PyTorch, TorchScript, OnnxRuntime, etc.) para construir modelos de predicción no puede satisfacer las altas necesidades del servicio en tiempo real. Mediante la optimización conjunta del sistema modelo, hemos reducido la predicción del modelo AutoTuner DNN. retraso a 2us Optimización definitiva del sistema En comparación con los modelos creados con PyTorch, TorchScript y OnnxRuntime, el rendimiento del modelo de predicción mejora 36 veces, 19,5 veces y 4,3 veces respectivamente (consulte la figura a continuación), y los recursos del sistema ocupados por el proceso de inferencia son extremadamente bajos. El modelo de predicción solo utiliza un núcleo de CPU. Recursos que no son de GPU para garantizar que no haya interferencia con el rendimiento del modelo de GPU del servicio en sí. Debido a la baja latencia de predicción de nivel de microsegundos y a una precisión de predicción de más del 99%, AutoTuner no solo se utiliza en los servicios de inferencia en línea de LLM, sino que también sirve con éxito en escenarios comerciales de Dynamic Shape, que incluyen promoción de búsqueda, reconocimiento de voz, difusión estable y otros escenarios comerciales de Dynamic Shape. .

Resultados comparativos

Tomamos la longitud máxima de generación de texto y el tiempo de generación correspondiente como ejemplos para comparar la longitud máxima de contexto admitida y el rendimiento correspondiente de diferentes sistemas de razonamiento LLM. Los resultados son los siguientes:

  • lmDeploy (basado en FasterTransformer) se bloqueará después de generar una longitud superior a 10K
  • vLLM obtiene un error de dirección ilegal después de que la longitud de generación supera los 12 K
  • El modelo Llama original de Huggingface alcanza los OOM después de que la longitud generada supera los 34K
  • La duración máxima de generación de LightLLM (67K) es cercana a la de BladeLLM (70K), pero el tiempo requerido es 3 veces mayor que el de BladeLLM.

Nota: Para que la comparación sea justa, los resultados anteriores se basan en el peso de fp16 y las mediciones de caché de kv de fp16. BladeLLM ahora admite la cuantificación de caché de kv, lo que puede aumentar aún más la longitud máxima de contexto admitida de una sola tarjeta a 280 K; todo lo anterior Las mediciones no son especulativas. Muestreo; las mediciones anteriores se completaron en agosto. Actualmente, los motores de inferencia LLM en la industria todavía se están desarrollando rápidamente. Esperamos comparaciones de resultados actualizadas. Al mismo tiempo, el desarrollo de una nueva versión de BladeLLM que También está a punto de completarse un contexto más largo y un mayor rendimiento. Continuaremos compartiendo los resultados con usted.

Resumir

El contexto ultralargo es una tendencia inevitable en el desarrollo de LLM, pero la longitud del contexto respaldada por los principales motores de inferencia y servicios de LLM actuales y el rendimiento de razonamiento del contexto ultralargo están lejos de ser suficientes. Lo anterior compartió información sobre BladeLLM soporte para contexto ultralargo y contexto ultralargo Rendimiento de razonamiento de contexto largo, todos son bienvenidos a comunicarse y discutir. Además, además de centrarse en escenarios de contexto ultralargo, BladeLLM también continuará centrándose en múltiples direcciones técnicas para el razonamiento, incluida la compresión de cuantificación de bits bajos, el diálogo de múltiples rondas, la optimización extrema del kernel, la optimización de la compilación, etc. También tenemos más tecnologías para compartir con el mundo exterior en el futuro. Abierto al público, ¡todos pueden seguir prestando atención!

Multado con 200 yuanes y más de 1 millón de yuanes confiscados You Yuxi: La importancia de los documentos chinos de alta calidad El servidor de migración de núcleo duro de Musk Solon para JDK 21, ¡los hilos virtuales son increíbles! ! ! El control de congestión TCP salva Internet Flutter para OpenHarmony está aquí El período LTS del kernel de Linux se restaurará de 6 años a 2 años Go 1.22 solucionará el error de la variable del bucle for Google celebra su 25 aniversario Svelte ha construido una "nueva rueda" - runes
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5583868/blog/10111879
Recomendado
Clasificación