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.