大模型推理框架有哪些?

1个回答

写回答

18019781538

2026-02-17 19:25

+ 关注

百度
百度

大模型掀起了一场技术变革。除了大模型层出不穷,用于推理的框架也快速发展,呈现出百花齐放的局面。本文将对一些在行业内较为知名的大模型推理框架进行简要介绍和概述。vLLM是一款开源的大模型推理加速框架,它借助PagedAttention技术高效管理attention缓存张量,从而将吞吐量提升至远超HuggingFace Transformers的水平,最高可达14到24倍。PagedAttention是vLLM的关键技术,有效破解了大语言模型服务中的内存限制问题。在传统注意力机制下,自回归解码时需把所有输入Token对应的键和值张量存于GPU内存,用于生成下一个Token。这类缓存的键值张量常被称为KV缓存。通过优化,PagedAttention提升了内存使用效率。vLLM吞吐量显著提升,较HF高出14至24倍,相对TGI则提升2.2到2.5倍。

vLLM 已应用于 Chatbot Arena 和 Vicuna 大模型的服务后端,提供强大支持。

基于HuggingFace模型的场景,无需为核心模型添加多个适配器。若想深入学习模型推理加速和推理引擎相关知识,可以关注深蓝学院新推出的深度学习模型推理加速实践课程。该课程以百度文心ERNIE大模型的部署实践为例,聚焦推理加速技术,系统讲解常见方法与优化策略,帮助学员掌握实际任务中分析和解决问题的能力。课程采用小班制,结合专家讲师直播与录播教学,适合希望提升实战能力的学习者,有兴趣的朋友不妨了解下。NVIDIA FasterTransformer (FT) 是一款专门用于加速 Transformer 类神经网络推理的引擎。它提供了高度优化的 Transformer 模块实现,涵盖编码器和解码器部分。借助这一工具,用户能够高效运行多种架构模型的推理任务,包括编码器-解码器结构的模型(如 T5)、纯编码器模型(如 BERT)以及纯解码器模型(如 GPT)。这为不同应用场景下的高性能推理提供了有力支持。FT 框架采用 C++/CUDA 开发,基于高度优化的 cuBLAS、cuBLASLt 和 cuSPARSELt 库,能够实现 GPU 上高效的 Transformer 推理运算。与其他编译器如 NVIDIA TensorRT 相比,FT 的显著优势在于,能够支持分布式环境下的 Transformer 大模型推理任务。下图展示了通过张量并行和流水线并行技术,将 Transformer 架构的神经网络分解到多个 GPU 和节点上的方法。

专家
专家

在底层,节点间或节点内通信依靠MPI、NVIDIA NCCL和Gloo等工具实现。借助FasterTransformer,您能够通过张量并行的方式在多个GPU上运行大规模Transformer模型,从而有效降低计算延迟。此外,张量并行(TP)与管道并行(PP)可以协同工作,在多GPU节点的环境中部署包含数十亿甚至数万亿参数的超大Transformer模型,满足高性能计算需求。FasterTransformer 不仅以 C++ 作为后端部署,还支持通过 TensorFlow(借助 TensorFlow op)、PyTorch(利用 PyTorch op)以及 Triton 等多种后端框架进行部署。目前,TensorFlow op 仅适用于单 GPU 环境,而 PyTorch op 和 Triton 后端则具备更强的扩展性,能够兼容多 GPU 与多节点场景,从而满足不同规模的应用需求。这种灵活的设计为用户提供了更多选择,可以根据具体场景优化性能和资源利用率。相比深度学习训练的通用框架,FT 可实现更快的推理流程,让基于 Transformer 的神经网络拥有更低延迟与更高吞吐量。 FT 对 GPT-3 等大型 Transformer 模型优化的技术包含:在预处理阶段,有一组技术可将多层神经网络整合为单一神经网络,并通过单一核(kernel)完成计算。该方法减少了数据传输,提升了数学运算密度,从而加快了推理阶段的计算速度。例如,可以将 multi-head attention 模块中的所有操作融合到一个核(kernel)中实现高效处理。为了避免Transformer在生成每个新token时重新计算生成器的先前key和value,FT分配了一个缓冲区,用于存储每一步的这些值。尽管会增加内存使用,但FT能节省重新计算的开销。,相同缓存机制应用于神经网络多个部分。

与传统模型如 BERT 不同,大规模 Transformer 模型参数量可达数万亿,占用数百 GB 存储空间。即便采用半精度存储,GPT-3 175b 仍需 350 GB。因此,减少其他部分的内存消耗显得尤为必要。以 FasterTransformer 为例,通过在不同解码器层重用激活与输出的内存缓冲区,有效减少了内存需求。在 GPT-3 中,由于共有 96 层,因此只需分配相当于单层激活所需内存 1/96 的量,大幅优化了资源利用效率。FasterTransformer 同时支持张量并行和流水线并行技术。在张量并行方面,它借鉴了 Megatron 的设计理念。针对自注意力模块和前馈网络模块,FasterTransformer 对第一个矩阵权重按行分割,对第二个矩阵权重按列分割。经过这些优化处理后,每个 Transformer 模块中的归约操作可减少至两次,从而有效提升计算效率和资源利用率。这种设计使得模型在大规模分布式训练中表现出更佳的性能。在流水线并行中,FasterTransformer 把整批任务分成多个小批处理,消除了通信空泡。它能根据实际情况自动调节小批的大小,提升效率。矩阵乘法是 Transformer 神经网络中核心且计算密集的操作。FT 借助 CuBLAS 和 CuTLASS 库实现此类操作。需要注意的是,MatMul 可通过多种底层算法,在硬件层面以数十种不同方式执行,这为优化提供了广阔空间。GemmBatchedEx 函数用于实现矩阵乘法(MatMul)操作,其接受 cublasGemmALGo_t 类型参数。通过该参数,用户能够选择不同的底层算法来执行计算任务。FasterTransformer 库会利用该参数对所有底层算法进行实时基准测试,从而为模型参数和输入数据(如注意力层大小、注意力头数量及隐藏层大小)挑选最优算法。同时,FT 在网络的部分计算中采用了硬件加速的底层函数,例如 __expf 和 __shfl_xor_sync,以提升性能表现。FT 的核支持 fp16 和 int8 低精度数据推理,通过减少数据传输与内存需求实现加速。此外,int8 和 fp16 计算能在特定硬件上运行,比如 Tensor Core(适用于自 Volta 起的所有 GPU 架构)。这种设计有效提升了推理效率。此外,还包括快速的 C++ BeamSearch 实现,以及在模型权重分配到八个 GPU 时,针对 TensorParallelism 8 模式优化的高效 all-reduce 操作。当前,FT 已兼容 Megatron-LM GPT-3、GPT-J、BERT、ViT、Swin Transformer、Longformer、T5 与 XLNet 等多种模型。如需了解最新支持情况,可访问 GitHub 上的 FasterTransformer 仓库查看详细的支持矩阵信息。FT 支持计算能力 7.0 或更高的 GPU,如 V100、A10、A100 等型号。下图显示了对 GPT-J 6B 参数模型推理加速的对比结果:

DeepSpeed-MII 是 DeepSpeed 的开源 Python 新库,专注于实现模型的低延迟、低成本推理,同时提升易用性。下图展示了 MII 如何借助 DS-Inference 对 OSS 模型进行自动优化;之后,可通过 GRPC 实现本地部署,或者利用 AML Inference 在 Microsoft Azure 平台上完成部署。

MII 的底层依托于 DeepSpeed-Inference。根据模型类型、规模、批量大小以及可用硬件资源,MII 能够自动选择 DeepSpeed-Inference 中适合的系统优化方案,从而有效降低延迟并提升吞吐量。这一过程通过应用多种预设的模型注入策略来完成,这些策略使 MII 和 DeepSpeed-Inference 能够识别底层 PyTorch 模型架构,并将其替换为经过优化的实现版本。借助这种方式,MII 将 DeepSpeed-Inference 内部的一系列优化技术自动化,使其能够广泛支持数千种流行的模型,从而显著提高模型部署效率和性能表现。

当前,MII支持以下HuggingFace Transformers模型系列:MII使Big-Science Bloom 176B模型的延迟降低5.7倍,成本减少40倍以上。同时,MII也将Stable Diffusion的部署延迟和成本降低了1.9倍,显著提升了效率与经济性。

FlexFlow Serve 是一款开源编译器与分布式系统,专为低延迟、高性能的大型语言模型服务设计。FlexFlow Serve 加速大语言模型服务的关键在于推测性推理技术。该技术通过整合多个集体优化调校的小型投机模型,协同预测大语言模型的输出结果,从而提升效率与性能表现。预测结果被构建为一棵 token 树,每个节点对应一个候选 token 序列。通过一种创新的树状并行解码方法,依据大语言模型的输出,同时验证 token 树中所有候选序列的准确性。这种方法显著提升了处理效率和精度。FlexFlow Serve 将 LLM 用作 token 树验证器而非增量解码器,显著降低了生成式 LLM 的端到端推理延迟与计算需求,同时确保模型质量不受影响。这种方法有效优化了性能,提升了效率,适用于大规模部署场景。

FlexFlow Serve 支持通过任务卸载方式,在单个 GPU 上运行大型模型(如 llama-7B),实现高效推理。CPU卸载是指将张量存储在CPU内存里,计算时才复制到GPU。这样可以节省显存空间。FlexFlow Serve 支持 int4 和 int8 量化。 压缩张量存储于 CPU,复制到 GPU 后会解压并恢复为原始精度。 这有助于节省内存和带宽,同时保持推理准确性。FlexFlow Serve 目前支持所有适用于以下模型架构的 Hugging Face 模型:以下是已测试并可使用SSM的模型列表:FlexFlow Serve 在单节点多GPU推理上,性能比现有系统提升1.3到2.0倍;在多节点多GPU推理中,性能提升达到1.4到2.4倍。

FlexFlow 提供五个提示数据集,用于评估 FlexFlow Serve 的性能表现。FlexFlow Serve正处于积极开发阶段,重点致力于以下任务:LMDeploy由MMDeploy与MMRazor团队共同打造,针对LLM任务提供完整的轻量化、部署及服务解决方案。这一高效工具箱具备以下关键功能:

LMDeploy兼容TurboMind与Pytorch两种推理后端,满足不同场景需求。

场景一:固定输入、输出token数为1,2048,测试输出token吞吐量。场景二:采用真实数据,对请求吞吐量进行测试。测试配置:LLaMA-7B模型,NVIDIA A100显卡(80G内存)。TurboMind 的输出令牌吞吐量超过每秒 2000 个令牌,整体性能相比 DeepSpeed 提升约 5% 至 15%,相较于 Hugging Face Transformers 提高了 2.3 倍。在请求吞吐量指标方面,TurboMind 的效率比 vLLM 高出 30%。这表明 TurboMind 在处理大规模语言生成任务时,不仅速度更快,而且资源利用率更高,展现出显著的优势。无论是在高并发场景还是对低延迟的要求下,TurboMind 都能提供更优的解决方案。

大模型推理框架的主要目标是减少延迟,同时尽量提高吞吐量。从现有框架来看,它们各具优劣,但目前尚未有哪一个框架能独占鳌头,统一LLM推理领域,各方仍在快速迭代优化中。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号