本期问题聚焦于大模型的推理框架
本期问题快览
有哪些大模型推理框架
-
vllm:一个开源的大模型推理加速框架,通过pagedattention高效地管理attention中缓存的张量,实现了比huggingface transformers高14-24倍的吞吐量。它兼容openai的接口服务,并与huggingface模型无缝集成。
-
huggingface tgi (text generation inference):作为支持huggingface inference api的工具,旨在支持大型语言模型的优化推理。它支持多gpu多节点扩展,可推理万亿规模参数。
-
fastertransformer:nvidia推出的用于实现基于transformer的神经网络推理的加速引擎。它支持以分布式方式进行transformer大模型推理,减少计算延迟。
-
tensorrt-llm:nvidia在tensorrt推理引擎基础上,针对transformer类大模型推理优化的框架。它支持多种优化技术,如kernel融合、矩阵乘优化等,可提升推理性能。
-
deepspeed:微软开源的大模型训练加速库,其最新的deepspeed-inference也提供了推理加速能力。它通过内存优化、计算优化、通信优化,降低推理延迟和提升吞吐。
references
- 目前业界大模型推理框架很多,各有什么优缺点,应该如何选择? - 知乎
- 大模型常见推理框架简介:vllm、tensorrt-llm、deepspeed、text generation inference | 数据 …
- 深度解析大模型推理框架:原理、应用与实践 - csdn博客
- 大模型推理框架:从理论到实践的全面解析-csdn博客
- 深度解析大模型推理框架:原理、应用与实践_人工智能_百度开发者中心_infoq写作社区
了解vllm吗
vllm是一个开源项目,提供了一个高吞吐量和内存高效的引擎,用于运行和服务大规模语言模型(llms)。它支持许多流行的hugging face模型,各种解码算法,量化,流输出,以及nvidia和amd gpu。vllm以其快速和易用性而闻名,具有先进的服务吞吐量,高效的注意力键值内存管理,以及优化的cuda内核。
references
- github - vllm-project/vllm: a high-throughput and memory-efficient …
- welcome to vllm! — vllm - read the docs
- installation — vllm
- installation — vllm - read the docs
- vllm: revolutionizing ai with an open-source library for … - medium
介绍下vllm的核心技术
vllm(vectorized large language model serving system)是一个用于大型语言模型推理加速的工具。它的核心技术主要包括:
-
pagedattention技术:这是一种内存管理技术,可以在不连续的内存空间中存储注意力机制中的键和值,从而减少显存碎片并提高显存利用率。
-
连续批处理:vllm能够连续批处理接入的请求,充分利用gpu资源,提高吞吐量。
-
cuda核心优化:vllm对cuda核心进行了优化,确保了速度与效率。
-
分布式推理支持:vllm支持分布式推理,能够在多台gpu上并行运行模型,进一步提高推理速度。
这些技术的结合使得vllm能够有效地管理大型语言模型的推理过程,提高效率和吞吐量,同时降低显存需求。
references
- 大模型推理加速工具:vllm - 知乎 - 知乎专栏
- 使用vllm实现大模型推理加速 - 知乎 - 知乎专栏
- 大模型推理加速框架vllm部署实战 - 百度智能云
- github - vllm-project/vllm: a high-throughput and memory-efficient …
- vllm框架:从顶层概览到深入解析 - 百家号
了解faster transformer吗
faster transformer是由nvidia开发的一个库,它为transformer相关的模型提供了优化,包括bert、gpt等。它特别针对推理阶段进行了优化,能够在volta、turing和ampere gpu上自动使用tensor core来加速fp16数据和权重的计算。
faster transformer建立在cuda、cublas、cublaslt和c++之上。它为tensorflow、pytorch和triton后端提供了至少一个api,用户可以直接将faster transformer集成到这些框架中。此外,nvidia还提供了示例代码来展示如何使用faster transformer,并展示了在这些框架上的性能。
references
- github - nvidia/fastertransformer: transformer related optimization …
- faster transformer
- transformers are rnns: fast autoregressive transformers with linear attention (paper explained)
- how to “phase” two or more transformers & why
- fastertransformer/docs/bert_guide.md at main - github
- increasing inference acceleration of kogpt with nvidia …
- accelerated inference for large transformer models using nvidia triton …
介绍下faster transformer的核心技术
faster transformer是由nvidia开发的一种优化了的transformer模型实现,它专门针对推理阶段进行了加速。其核心技术包括:
-
高度优化的transformer层:faster transformer为编码器(encoder)和解码器(decoder)实现了高度优化的transformer层,用于推理。
-
tensor core的利用:在volta、turing和ampere gpu上,faster transformer能够自动利用tensor core来加速fp16精度的数据和权重的计算。
-
多框架支持:faster transformer提供了至少一个api支持以下框架:tensorflow、pytorch和triton后端。用户可以直接将faster transformer集成到这些框架中。
-
op融合:为了减少gpu内存读写的开销,faster transformer在内部将除矩阵乘法以外的所有kernel进行了尽可能的融合,这样可以减少kernel调用的次数。
-
支持多种计算模式:faster transformer支持fp16和fp32两种计算模式,其中fp16模式可以充分利用tensor core计算单元。
-
支持大模型和分布式推理:faster transformer能够以分布式方式跨越多个gpu和节点来实现基于transformer的大型神经网络模型的推理。
这些技术使得faster transformer在执行transformer模型推理时,能够提供更低的延迟和更高的吞吐量,特别是在处理大型模型时。这对于需要快速响应的在线服务来说是非常有价值的。
references
- github - nvidia/fastertransformer: transformer related optimization …
- 【cuda编程】faster transformer v1.0 源码详解 - 知乎
- faster transformer - 知乎
了解xinference吗
xinference 旨在服务于语言、语音识别和多模态模型。使用 xinference,可以轻松地部署和服务您的或最先进的内置模型,只需一个命令。它是一个开源平台,可以简化各种 ai 模型的操作和集成。
references
- xorbits inference: model serving made easy - github
- welcome to xinference! — xinference
- github - nymbo/xinference: replace openai gpt with another llm in your …
- xorbits inference (xinference) | ️ langchain
了解llama.cpp项目吗
这是一个开源项目,由 georgi gerganov 创建,旨在实现 c/c++ 中的 llm(大型语言模型)推理。项目的主要目标是在各种硬件上,包括本地和云端,以最少的设置和最佳性能启用 llm 推理。它是一个纯 c/c++ 实现,不依赖任何外部库,甚至可以在 apple silicon 芯片上优化运行。
该项目还特别关注在消费级硬件上运行大型模型的能力,通过量化技术减少模型权重的内存需求,使得在个人电脑上运行大型模型成为可能。例如,通过将模型精度从 16 位浮点数降低到 4 位,可以显著减少模型的大小,从而在内存和存储空间有限的设备上运行。
references
- github - ggerganov/llama.cpp: llm inference in c/c++
- 大模型应用的平民化:llama.cpp - 知乎 - 知乎专栏
- 探索llama.cpp:一个高效的c++模板库-csdn博客
- 开源大模型框架llama.cpp使用c++ api开发入门 - csdn博客
- 用cpu在windows上部署原版llama.cpp - 知乎 - 知乎专栏
llama.cpp项目突出的优势是什么
- 无需任何额外依赖:与python代码相比,c/c++可以直接编译出可执行文件,省去了在不同硬件上准备环境的复杂性。
- 支持apple silicon芯片的arm neon加速,以及x86平台的avx2。
- 具有f16和f32的混合精度,以及支持4-bit量化。
- 无需gpu,可以仅使用cpu运行。
- 高运行效率:例如,在m1 macbook pro上运行llama-7b模型时,推理过程每个词(token)耗时约60毫秒,换算每秒十多词,速度相当理想。
此外,由于llama.cpp是纯c/c++实现,它的运行效率很高,除了macbook pro外,甚至可以在android设备上运行。量化技术的应用使得大型模型可以在消费级硬件上运行,降低了硬件要求。
references
发表评论