Otimização de Desempenho de Inferência para Modelos de Linguagem Grandes em CPUs
Inference Performance Optimization for Large Language Models on CPUs
July 10, 2024
Autores: Pujiang He, Shan Zhou, Wenhuan Huang, Changqing Li, Duyi Wang, Bin Guo, Chen Meng, Sheng Gui, Weifei Yu, Yi Xie
cs.AI
Resumo
Os grandes modelos de linguagem (LLMs) têm demonstrado um desempenho excepcional e um vasto potencial em diversas tarefas. No entanto, a implantação de LLMs com alto desempenho em ambientes de recursos limitados tem recebido significativa atenção na indústria. Quando os recursos de hardware da GPU são limitados, podemos explorar opções alternativas nos CPUs. Para mitigar o ônus financeiro e aliviar as restrições impostas pelos recursos de hardware, é necessário otimizar o desempenho da inferência. Neste artigo, apresentamos uma solução de otimização de desempenho de inferência facilmente implantável, com o objetivo de acelerar LLMs nos CPUs. Nesta solução, implementamos uma maneira eficaz de reduzir o tamanho do cache KV enquanto garantimos precisão. Propomos uma abordagem de otimização de inferência distribuída e a implementamos com base na Biblioteca de Comunicações Coletivas oneAPI. Além disso, propomos abordagens de otimização para LLMs em CPU e realizamos otimizações personalizadas para os modelos mais comumente utilizados. O código está disponível em código aberto em https://github.com/intel/xFasterTransformer.
English
Large language models (LLMs) have shown exceptional performance and vast
potential across diverse tasks. However, the deployment of LLMs with high
performance in low-resource environments has garnered significant attention in
the industry. When GPU hardware resources are limited, we can explore
alternative options on CPUs. To mitigate the financial burden and alleviate
constraints imposed by hardware resources, optimizing inference performance is
necessary. In this paper, we introduce an easily deployable inference
performance optimization solution aimed at accelerating LLMs on CPUs. In this
solution, we implement an effective way to reduce the KV cache size while
ensuring precision. We propose a distributed inference optimization approach
and implement it based on oneAPI Collective Communications Library.
Furthermore, we propose optimization approaches for LLMs on CPU, and conduct
tailored optimizations for the most commonly used models. The code is
open-sourced at https://github.com/intel/xFasterTransformer.