ChatPaper.aiChatPaper

Un accélérateur logiciel efficace pour l'inférence parcimonieuse des modèles de langage basés sur les Transformers sur les CPU

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

June 28, 2023
Auteurs: 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

Résumé

Ces dernières années, les modèles de langage basés sur l'architecture Transformer sont devenus l'approche standard pour les tâches de traitement du langage naturel. Cependant, les exigences strictes en matière de débit et de latence dans les applications industrielles limitent leur adoption. Pour combler cet écart, des techniques de compression de modèles telles que l'élagage structuré sont utilisées pour améliorer l'efficacité de l'inférence. Néanmoins, la plupart des moteurs d'inférence de réseaux neuronaux existants ne prennent pas suffisamment en charge la sparsité structurée. Dans cet article, nous proposons une pile logicielle d'inférence de deep learning sparse efficace pour les modèles de langage basés sur Transformer, où les poids sont élagués avec une taille de bloc constante. Notre accélérateur logiciel sparse exploite Intel Deep Learning Boost pour maximiser les performances de la multiplication de matrices sparse par des matrices denses (communément abrégée SpMM) sur les CPU. Notre noyau SpMM surpasse les bibliothèques sparse existantes (oneMKL, TVM et LIBXSMM) d'un ordre de grandeur sur une large gamme de formes GEMM sous 5 ratios de sparsité représentatifs (70 %, 75 %, 80 %, 85 %, 90 %). De plus, notre noyau SpMM montre une accélération jusqu'à 5x par rapport au noyau GEMM dense de oneDNN, une bibliothèque dense bien optimisée largement utilisée dans l'industrie. Nous appliquons notre accélérateur sparse à des modèles de langage basés sur Transformer largement utilisés, notamment Bert-Mini, DistilBERT, Bert-Base et BERT-Large. Notre logiciel d'inférence sparse montre une accélération jusqu'à 1,5x par rapport à Deepsparse de Neural Magic dans les mêmes configurations sur Xeon sous Amazon Web Services avec des contraintes de latence de production simulées. Nous comparons également notre solution à deux solutions d'inférence basées sur des frameworks, ONNX Runtime et PyTorch, et démontrons une accélération jusqu'à 37x par rapport à ONNX Runtime et 345x par rapport à PyTorch sur Xeon sous les contraintes de latence. L'ensemble du code source est disponible publiquement sur 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