分享
大模型LLM推理框架整理
输入“/”快速插入内容
大模型LLM推理框架整理
2024年7月19日修改
作者:爱吃牛油果的璐璐
原文:
https://zhuanlan.zhihu.com/p/664106696
学习大模型,先了解一下大模型的推理框架。
自 ChatGPT 面世以来,引领了大模型时代的变革,除了大模型遍地开花以外,承载大模型进行推理的框架也是层出不穷,本文主要整理了业界知名度较高的一些大模型推理框架。可以根据吞吐量,性能,机器,算法模型库这几个方向进行选择。
vLLM
vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。
PagedAttention 是 vLLM 的核心技术,它解决了LLM服务中内存的瓶颈问题。传统的注意力算法在自回归解码过程中,需要将所有输入Token的注意力键和值张量存储在GPU内存中,以生成下一个Token。这些缓存的键和值张量通常被称为KV缓存。
代码仓库
GitHub:
https:// github.com/vllm-project /vllm
主要特性
•
通过PagedAttention对 KV Cache 的有效管理
•
传入请求的continus batching,而不是static batching
•
支持张量并行推理
•
支持流式输出
•
兼容 OpenAI 的接口服务
•
与 HuggingFace 模型无缝集成
业界案例
vLLM 已经被用于 Chatbot Arena 和 Vicuna 大模型的服务后端。
存在的问题
同样的模型、参数和prompt条件下,vLLM推理和Huggingface推理结果不一致。
与其他框架(HF、TGI)的性能对比
vLLM 的吞吐量比 HF 高 14 - 24 倍,比 TGI 高 2.2 - 2.5 倍。
HuggingFace TGI
Text Generation Inference(TGI)是 HuggingFace 推出的一个项目,作为支持 HuggingFace Inference API 和 Hugging Chat 上的LLM 推理的工具,旨在支持大型语言模型的优化推理。
代码仓库
GitHub:
https:// github.com/huggingface/ text-generation-inference
主要特性
•
支持张量并行推理
•
支持传入请求 Continuous batching 以提高总吞吐量
•
使用 flash-attention 和 Paged Attention 在主流的模型架构上优化用于推理的 transformers 代码。注意:并非所有模型都内置了对这些优化的支持。
•
使用bitsandbytes(LLM.int8())和GPT-Q进行量化
•
内置服务评估,可以监控服务器负载并深入了解其性能
•
轻松运行自己的模型或使用任何 HuggingFace 仓库的模型
•
自定义提示生成:通过提供自定义提示来指导模型的输出,轻松生成文本
•
使用 Open Telemetry,Prometheus 指标进行分布式跟踪
支持的模型
•
BLOOM