大模型的基本特征就是大,单机单卡部署会很慢,甚至显存不够用。毕竟不是谁都有H100/A100, 能有个3090就不错了。
目前已经有不少框架支持了大模型的分布式部署,可以并行的提高推理速度。不光可以单机多卡,还可以多机多卡。
我自己没啥使用经验,简单罗列下给自己备查。不足之处,欢迎在评论区指出。
框架名称 | 出品方 | 开源地址 |
---|---|---|
FasterTranaformer | 英伟达 | FasterTransformer github |
TGI | huggingface | huggingface/text-generation-inference |
vLLM | 伯克利大学 LMSYS 组织 | github-vllm |
deepspeed | 微软 | github.com/microsoft/DeepSpeed |
lmdeploy | open-mmlab | InternLM/lmdeploy |
TurboTransformers | 腾讯 | Tencent/TurboTransformers |
faster transformer是英伟达的大模型推理方案,但是后续可能不再维护,因为英伟达推出了一个更新的框架TensorRT-LLM,它目前还在申请使用阶段,未来应该会全面开源吧。
FasterTransformer支持的模型
Models | Framework | FP16 | INT8 (after Turing) | Sparsity (after Ampere) | Tensor parallel | Pipeline parallel | FP8 (after Hopper) |
---|---|---|---|---|---|---|---|
BERT | TensorFlow | Yes | Yes | - | - | - | - |
BERT | PyTorch | Yes | Yes | Yes | Yes | Yes | - |
BERT | Triton backend | Yes | - | - | Yes | Yes | - |
BERT | C++ | Yes | Yes | - | - | - | Yes |
XLNet | C++ | Yes | - | - | - | - | - |
Encoder | TensorFlow | Yes | Yes | - | - | - | - |
Encoder | PyTorch | Yes | Yes | Yes | - | - | - |
Decoder | TensorFlow | Yes | - | - | - | - | - |
Decoder | PyTorch | Yes | - | - | - | - | - |
Decoding | TensorFlow | Yes | - | - | - | - | - |
Decoding | PyTorch | Yes | - | - | - | - | - |
GPT | TensorFlow | Yes | - | - | - | - | - |
GPT/OPT | PyTorch | Yes | - | - | Yes | Yes | Yes |
GPT/OPT | Triton backend | Yes | - | - | Yes | Yes | - |
GPT-MoE | PyTorch | Yes | - | - | Yes | Yes | - |
BLOOM | PyTorch | Yes | - | - | Yes | Yes | - |
BLOOM | Triton backend | Yes | - | - | Yes | Yes | - |
GPT-J | Triton backend | Yes | - | - | Yes | Yes | - |
Longformer | PyTorch | Yes | - | - | - | - | - |
T5/UL2 | PyTorch | Yes | - | - | Yes | Yes | - |
T5 | TensorFlow 2 | Yes | - | - | - | - | - |
T5/UL2 | Triton backend | Yes | - | - | Yes | Yes | - |
T5 | TensorRT | Yes | - | - | Yes | Yes | - |
T5-MoE | PyTorch | Yes | - | - | Yes | Yes | - |
Swin Transformer | PyTorch | Yes | Yes | - | - | - | - |
Swin Transformer | TensorRT | Yes | Yes | - | - | - | - |
ViT | PyTorch | Yes | Yes | - | - | - | - |
ViT | TensorRT | Yes | Yes | - | - | - | - |
GPT-NeoX | PyTorch | Yes | - | - | Yes | Yes | - |
GPT-NeoX | Triton backend | Yes | - | - | Yes | Yes | - |
BART/mBART | PyTorch | Yes | - | - | Yes | Yes | - |
WeNet | C++ | Yes | - | - | - | - | - |
DeBERTa | TensorFlow 2 | Yes | - | - | On-going | On-going | - |
DeBERTa | PyTorch | Yes | - | - | On-going | On-going | - |
参考资料:
FasterTransformer github
H100推理飙升8倍!英伟达官宣开源TensorRT-LLM,支持10+模型
英伟达发布 TensorRT-LLM 模型,性能最高提升 8 倍,何时能正式发售?对此你有哪些期待?
huggingface官方的框架,根据小记:主流推理框架在Llama 2 的上性能比较的数据,TGI跑LLAMA-13b的性能好于vllm。
Other architectures are supported on a best effort basis using:
AutoModelForCausalLM.from_pretrained(
or
AutoModelForSeq2SeqLM.from_pretrained(
参考资料:
huggingface/text-generation-inference
vLLM 是伯克利大学 LMSYS 组织开源的大语言模型高速推理框架,极大地提升了实时场景下的 LLM 服务的吞吐与内存使用效率。
vllm支持的模型
vLLM seamlessly supports many Huggingface models, including the following architectures:
BAAI/Aquila-7B
, BAAI/AquilaChat-7B
, etc.)baichuan-inc/Baichuan-7B
, baichuan-inc/Baichuan-13B-Chat
, etc.)bigscience/bloom
, bigscience/bloomz
, etc.)tiiuae/falcon-7b
, tiiuae/falcon-40b
, tiiuae/falcon-rw-7b
, etc.)gpt2
, gpt2-xl
, etc.)bigcode/starcoder
, bigcode/gpt_bigcode-santacoder
, etc.)EleutherAI/gpt-j-6b
, nomic-ai/gpt4all-j
, etc.)EleutherAI/gpt-neox-20b
, databricks/dolly-v2-12b
, stabilityai/stablelm-tuned-alpha-7b
, etc.)internlm/internlm-7b
, internlm/internlm-chat-7b
, etc.)meta-llama/Llama-2-70b-hf
, lmsys/vicuna-13b-v1.3
, young-geng/koala
, openlm-research/open_llama_13b
, etc.)mosaicml/mpt-7b
, mosaicml/mpt-30b
, etc.)facebook/opt-66b
, facebook/opt-iml-max-30b
, etc.)Qwen/Qwen-7B
, Qwen/Qwen-7B-Chat
, etc.)参考资料:
github-vllm
有人使用vLLM加速过自己的大语言模型吗?效果怎么样?
比HuggingFace快24倍!伯克利神级LLM推理系统开源,碾压SOTA,让GPU砍半
DeepSpeed是微软推出的大规模模型分布式训练的工具,主要实现了ZeRO并行训练算法。
这个框架可以做训练,也可以推理。我同事使用这个框架对baichuan-13进行推理,功能正常。
DeepSpeed has been used to train many different large-scale models, below is a list of several examples that we are aware of (if you’d like to include your model please submit a PR):
参考资料:
github.com/microsoft/DeepSpeed
deepspeed入门教程
LMDeploy 由 MMDeploy 和 MMRazor 团队联合开发,是涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。
支持的模型:
Note
W4A16 推理需要 Ampere 及以上架构的 Nvidia GPU
模型 | 模型并行 | FP16 | KV INT8 | W4A16 | W8A8 |
---|---|---|---|---|---|
Llama | Yes | Yes | Yes | Yes | No |
Llama2 | Yes | Yes | Yes | Yes | No |
InternLM | Yes | Yes | Yes | Yes | No |
QWen-7B | Yes | Yes | Yes | No | No |
Baichuan-7B | Yes | Yes | Yes | Yes | No |
Baichuan2-7B | Yes | Yes | No | No | No |
Code Llama | Yes | Yes | No | No | No |
参考资料:
LLM 低成本 GPU 部署方案 lmdeploy 开源
InternLM/lmdeploy
TurboTransformers是腾讯开源的模型加速推理框架。
当前支持的模型种类不算多:
参考资料:
Tencent/TurboTransformers
腾讯开源TurboTransformers,推理加速性能超越TensorRT等主流优化引擎
LLM推理优化技术综述:KVCache、PageAttention、FlashAttention、MQA、GQA
小记:主流推理框架在Llama 2 的上性能比较
vllm vs TGI 部署 llama v2 7B 踩坑笔记