大模型框架基础
一、核心概念
- 框架的定义
框架是解决复杂问题的半成品,提供标准化组件和规范,帮助开发者快速实现业务逻辑。例如Java的Spring、前端的Vue等。
当你面对不同的硬件,不同的平台环境,你要如何去让代码适配并成功高效运行?难道要针对每个平台都写一套单独的代码吗?会不会工作量太大了?等等问题摆在面前。
针对以上问题, 我们不得不请出我们大模型推理框架: 大模型推理框架是一种基于深度学习技术的推理框架,旨在支持大规模深度学习模型的训练和部署。
它提供了一系列的工具和服务,使得开发者能够高效地在大规模数据集上训练和部署深度学习模型,并进行推理任务。
这一框架通常包括模型训练框架、分布式推理引擎、数据存储与检索等功能模块,以满足不同场景下的需求。
- 大模型推理框架的必要性
传统训练框架(如PyTorch、TensorFlow)在分布式训练和跨平台部署中存在性能瓶颈,需通过推理框架优化吞吐量(TPS)和延迟(Latency),支持多卡、多节点部署及硬件适配。
二、关键性能指标
- 吞吐量(Throughput)
单位时间处理的请求量(如每秒生成的token数),直接影响系统并发能力。 - 延迟(Latency)
生成完整输出的时间,直接影响用户体验(如对话响应速度)。
三、主流框架对比与特性
1. 高性能推理框架
- vLLM
- 优势:基于PagedAttention技术,吞吐量比HuggingFace高14-24倍,支持OpenAI接口,内存效率高。
- 局限:依赖GPU/CUDA,不支持LoRA等适配器。
- DeepSpeed
- 优势:微软开发,支持ZeRO优化和动态批处理,吞吐量优于vLLM。
- 局限:模型兼容性有限(如不支持Falcon)。
- TensorRT-LLM
- 优势:英伟达优化,支持层融合和自回归推理,编译后性能提升显著。
- 局限:非完全开源,需配合FastAPI实现流式输出。
2. 轻量级与跨平台框架
- llama.cpp/Llamafile
- 优势:C++开发,支持CPU/GPU推理,适合移动端(如Apple Silicon)。
- 局限:模型支持有限,需自行编译。
- MLC LLM
- 优势:全平台部署(iOS/Android/浏览器),支持边缘计算。
- 局限:功能受限(如不支持LoRA)。
3. HuggingFace生态工具
- Text Generation Inference (TGI)
- 优势:集成Flash Attention和量化技术,支持万亿参数模型。
- 局限:文档不全,适配器支持不足。
- OpenLLM
- 优势:支持LangChain集成和模型量化,社区活跃。
- 局限:缺乏分布式推理和批处理优化。
4. 推理框架
作为应用开发者,为了实现最优效率,如果针对不同环境都写一套代码去适配其最优推理框架,其耗费的学习成本和精力及代码量都将极其巨大。
这时候有大模型部署框架用武之地,大模型部署框架作为一种高效、灵活的部署方式,能够大大提高模型训练和部署的效率,降低模型在部署过程中的时间和成本。
模型部署框架 | Xinference | LocalAI | Ollama | FastChat |
---|---|---|---|---|
OpenAI API 接口对齐 | 支持 | 支持 | 支持 | 支持 |
加速推理引擎 | GPTQ, GGML, vLLM, TensorRT, mlx | GPTQ, GGML, vLLM, TensorRT | GGUF, GGML | vLLM |
接入模型类型 | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Text-to-Image, Vision | LLM, Vision |
Function Call | 支持 | 支持 | 支持 | / |
更多平台支持(CPU, Metal) | 支持 | 支持 | 支持 | 支持 |
异构 | 支持 | 支持 | / | / |
集群 | 支持 | 支持 | / | / |
操作文档链接 | https://inference.readthedocs.io/zh-cn/latest/models/builtin/index.html | https://localai.io/model-compatibility/ | https://github.com/ollama/ollama?tab=readme-ov-file#model-library | https://github.com/lm-sys/FastChat#install |
可用模型 | 支持上百种大模型,https://inference.readthedocs.io/zh-cn/latest/models/builtin/index.html | https://localai.io/model-compatibility/#/ | https://ollama.com/library#/ | https://github.com/lm-sys/Fast |
参考文献:
评论