ChatPaper.aiChatPaper

Un acelerador de software eficiente para inferencia dispersa en modelos de lenguaje basados en transformadores para CPUs

An Efficient Sparse Inference Software Accelerator for Transformer-based Language Models on CPUs

June 28, 2023
Autores: Haihao Shen, Hengyu Meng, Bo Dong, Zhe Wang, Ofir Zafrir, Yi Ding, Yu Luo, Hanwen Chang, Qun Gao, Ziheng Wang, Guy Boudoukh, Moshe Wasserblat
cs.AI

Resumen

En los últimos años, los modelos de lenguaje basados en Transformers se han convertido en el enfoque estándar para las tareas de procesamiento de lenguaje natural. Sin embargo, los estrictos requisitos de rendimiento y latencia en aplicaciones industriales están limitando su adopción. Para mitigar esta brecha, se están utilizando técnicas de compresión de modelos, como la poda estructurada, para mejorar la eficiencia en la inferencia. No obstante, la mayoría de los tiempos de ejecución de inferencia de redes neuronales existentes carecen de un soporte adecuado para la dispersión estructurada. En este artículo, proponemos una pila de software eficiente para la inferencia de aprendizaje profundo disperso en modelos de lenguaje basados en Transformers, donde los pesos se podan con un tamaño de bloque constante. Nuestro acelerador de software disperso aprovecha Intel Deep Learning Boost para maximizar el rendimiento de la multiplicación de matriz dispersa por matriz densa (comúnmente abreviada como SpMM) en CPUs. Nuestro núcleo SpMM supera a las bibliotecas dispersas existentes (oneMKL, TVM y LIBXSMM) en un orden de magnitud en una amplia gama de formas GEMM bajo 5 ratios de dispersión representativos (70%, 75%, 80%, 85%, 90%). Además, nuestro núcleo SpMM muestra una aceleración de hasta 5x sobre el núcleo GEMM denso de oneDNN, una biblioteca densa altamente optimizada y ampliamente utilizada en la industria. Aplicamos nuestro acelerador disperso en modelos de lenguaje basados en Transformers ampliamente utilizados, incluyendo Bert-Mini, DistilBERT, Bert-Base y BERT-Large. Nuestro software de inferencia disperso muestra una aceleración de hasta 1.5x sobre Deepsparse de Neural Magic bajo las mismas configuraciones en Xeon en Amazon Web Services bajo restricciones de latencia de producción proxy. También comparamos nuestra solución con dos soluciones de inferencia basadas en frameworks, ONNX Runtime y PyTorch, y demostramos una aceleración de hasta 37x sobre ONNX Runtime y 345x sobre PyTorch en Xeon bajo las restricciones de latencia. Todo el código fuente está disponible públicamente en Github: https://github.com/intel/intel-extension-for-transformers.
English
In recent years, Transformer-based language models have become the standard approach for natural language processing tasks. However, stringent throughput and latency requirements in industrial applications are limiting their adoption. To mitigate the gap, model compression techniques such as structured pruning are being used to improve inference efficiency. However, most existing neural network inference runtimes lack adequate support for structured sparsity. In this paper, we propose an efficient sparse deep learning inference software stack for Transformer-based language models where the weights are pruned with constant block size. Our sparse software accelerator leverages Intel Deep Learning Boost to maximize the performance of sparse matrix - dense matrix multiplication (commonly abbreviated as SpMM) on CPUs. Our SpMM kernel outperforms the existing sparse libraries (oneMKL, TVM, and LIBXSMM) by an order of magnitude on a wide range of GEMM shapes under 5 representative sparsity ratios (70%, 75%, 80%, 85%, 90%). Moreover, our SpMM kernel shows up to 5x speedup over dense GEMM kernel of oneDNN, a well-optimized dense library widely used in industry. We apply our sparse accelerator on widely-used Transformer-based language models including Bert-Mini, DistilBERT, Bert-Base, and BERT-Large. Our sparse inference software shows up to 1.5x speedup over Neural Magic's Deepsparse under same configurations on Xeon on Amazon Web Services under proxy production latency constraints. We also compare our solution with two framework-based inference solutions, ONNX Runtime and PyTorch, and demonstrate up to 37x speedup over ONNX Runtime and 345x over PyTorch on Xeon under the latency constraints. All the source code is publicly available on Github: https://github.com/intel/intel-extension-for-transformers.
PDF40December 15, 2024