ChatPaper.aiChatPaper

Ein effizienter Softwarebeschleuniger für dünnbesetzte Inferenz in transformerbasierten Sprachmodellen auf CPUs

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

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

Zusammenfassung

In den letzten Jahren haben Transformer-basierte Sprachmodelle den Standardansatz für Aufgaben der natürlichen Sprachverarbeitung (NLP) gebildet. Strenge Anforderungen an Durchsatz und Latenz in industriellen Anwendungen schränken jedoch deren Verbreitung ein. Um diese Lücke zu schließen, werden Modellkompressionsverfahren wie strukturiertes Pruning eingesetzt, um die Inferenzeffizienz zu verbessern. Allerdings bieten die meisten bestehenden Inferenzlaufzeitumgebungen für neuronale Netze nur unzureichende Unterstützung für strukturierte Sparsity. In diesem Artikel präsentieren wir einen effizienten Software-Stack für die Inferenz von tiefen Lernmodellen auf Basis von Transformer-Architekturen, bei denen die Gewichte mit konstanter Blockgröße gepruned werden. Unser sparser Software-Beschleuniger nutzt Intel Deep Learning Boost, um die Leistung der Multiplikation von sparsen mit dichten Matrizen (häufig als SpMM abgekürzt) auf CPUs zu maximieren. Unser SpMM-Kernel übertrifft die bestehenden sparsen Bibliotheken (oneMKL, TVM und LIBXSMM) um eine Größenordnung bei einer Vielzahl von GEMM-Formen unter fünf repräsentativen Sparsity-Verhältnissen (70 %, 75 %, 80 %, 85 %, 90 %). Darüber hinaus zeigt unser SpMM-Kernel eine bis zu 5-fache Beschleunigung gegenüber dem dichten GEMM-Kernel von oneDNN, einer hochoptimierten dichten Bibliothek, die in der Industrie weit verbreitet ist. Wir wenden unseren sparsen Beschleuniger auf weit verbreitete Transformer-basierte Sprachmodelle wie Bert-Mini, DistilBERT, Bert-Base und BERT-Large an. Unsere sparsen Inferenzsoftware zeigt unter denselben Konfigurationen auf Xeon in Amazon Web Services unter Proxy-Produktionslatenzbeschränkungen eine bis zu 1,5-fache Beschleunigung gegenüber Neural Magic’s Deepsparse. Wir vergleichen unsere Lösung auch mit zwei framework-basierten Inferenzlösungen, ONNX Runtime und PyTorch, und zeigen eine bis zu 37-fache Beschleunigung gegenüber ONNX Runtime und eine 345-fache gegenüber PyTorch auf Xeon unter den Latenzbeschränkungen. Der gesamte Quellcode ist öffentlich auf GitHub verfügbar: 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