什么是框架?
框架(framework)是一个框子,指其约束性,也是一个架子,指其支撑性。它是一个基本概念上的结构,用于去解决或者处理复杂的问题。在 IT 软件领域,软件框架的标准定义:通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
简而言之,框架其实就是某种应用的半成品,就是一组组件。开发可以基于框架已有的规范和标准,快速实现自己的需求,让开发者聚焦业务领域代码。
常见的 Java 后端框架:Mybatis、Spring、SpringMVC、SpringBoot。前端框架有:Bootstrap、jQuery、Vue、React。这些框架无一例外都是让开发者快速开发业务逻辑。按照框架规范,定义自己业务参数。
为什么需要大模型推理框架
之前介绍过《Transformer 原理》,我们知道现在 LLM 都是基于深度学习模型开发、训练。深度学习开发、训练等常见框架有 TensorFlow、PyTorch 以及 Mxnet 等。这些框架提供了丰富的函数库和模块,可以帮助研究人员快速构建和训练复杂的深度学习模型。
但是现在单卡资源难以满足大模型训练,我们需要分布式、多卡等方式训练和推理。
对于一个深度学习工程师而言,当你在 PyTorch 或者 TensorFlow 写好了一个大模型,要怎么样分布式训练起来?你要怎么才能把它实际部署到云端或具体的设备上给用户使用?当你面对不同的硬件,不同的平台环境,你要如何去让代码适配并成功高效运行?难道要针对每个平台都写一套单独的代码吗?会不会工作量太大了?等等问题摆在面前。
针对以上问题,我们不得不请出我们大模型推理框架:大模型推理框架是一种基于深度学习技术的推理框架,旨在支持大规模深度学习模型的训练和部署。它提供了一系列的工具和服务,使得开发者能够高效地在大规模数据集上训练和部署深度学习模型,并进行推理任务。这一框架通常包括模型训练框架、分布式推理引擎、数据存储与检索等功能模块,以满足不同场景下的需求。
大模型推理框架指标
模型推理框架最重要的 2 个指标:
- 吞吐量:吞吐量告诉我们我们的系统可以有效处理多少用户。吞吐量代表推理服务器在用户的多个请求中每秒生成的 token 数。
- 延迟:另一方面反映了服务器和模型在输出序列中生成完整输出所花费的时间,简而言之,延迟是用户的感受——从聊天机器人收到答案所需的时间。
大模型推理框架对比
| 框架特点说明 | 优点 | 缺点 |
|---|---|---|
| vLLM 一个开源的大模型推理加速框架,通过 PagedAttention 高效地管理 attention 中缓存的张量,实现了比 HuggingFace Transformers 高 14-24 倍的吞吐量。它兼容 OpenAI 的接口服务,并与 HuggingFace 模型无缝集成。 | - 高效的服务吞吐量:vLLM 可以快速处理大量的并发请求。 - 支持模型种类多。 - 内存高效:vLLM 使用了一种名为 PagedAttention 的技术,可以高效地管理注意力键和值的内存。 - 文本生成的速度:实验多次,发现 vLLM 的推理速度是最快的; - 高吞吐量服务:支持各种解码算法,比如 parallel sampling, beam search 等; - 与 OpenAI API 兼容:如果使用 OpenAI API,只需要替换端点的 URL 即可; | - 你需要确保你的设备有 GPU,CUDA 或者 RoCm. - 添加自定义模型:虽然可以合并自己的模型,但如果模型没有使用与 vLLM 中现有模型类似的架构,则过程会变得更加复杂。例如,增加 Falcon 的支持,这似乎很有挑战性; - 缺乏对适配器(LoRA、QLoRA 等)的支持:当针对特定任务进行微调时,开源 LLM 具有重要价值。然而,在当前的实现中,没有单独使用模型和适配器权重的选项,这限制了有效利用此类模型的灵活性。 - 缺少权重量化:有时,LLM 可能不需要使用 GPU 内存,这对于减少 GPU 内存消耗至关重要。 |
| Transformers Hugging Face 推出的库 | - 自动模型下载 - 提供代码片段 - 非常适合实验和学习 | - 需要对 ML 和 NLP 有深入了解 - 需要编码和配置技能 |
| 作为支持 HuggingFace Inference API 的工具,旨在支持大型语言模型的优化推理。它支持多 GPU 多节点扩展,可推理万亿规模参数 |


