transformer大语言模型(LLM)部署方案整理

说明

大模型的基本特征就是大,单机单卡部署会很慢,甚至显存不够用。毕竟不是谁都有H100/A100, 能有个3090就不错了。

目前已经有不少框架支持了大模型的分布式部署,可以并行的提高推理速度。不光可以单机多卡,还可以多机多卡。
我自己没啥使用经验,简单罗列下给自己备查。不足之处,欢迎在评论区指出。

框架名称出品方开源地址
FasterTranaformer英伟达FasterTransformer github
TGIhuggingfacehuggingface/text-generation-inference
vLLM伯克利大学 LMSYS 组织github-vllm
deepspeed微软github.com/microsoft/DeepSpeed
lmdeployopen-mmlabInternLM/lmdeploy
TurboTransformers腾讯Tencent/TurboTransformers

FasterTranaformer/TensorRT-LLM

faster transformer是英伟达的大模型推理方案,但是后续可能不再维护,因为英伟达推出了一个更新的框架TensorRT-LLM,它目前还在申请使用阶段,未来应该会全面开源吧。

FasterTransformer支持的模型

ModelsFrameworkFP16INT8 (after Turing)Sparsity (after Ampere)Tensor parallelPipeline parallelFP8 (after Hopper)
BERTTensorFlowYesYes----
BERTPyTorchYesYesYesYesYes-
BERTTriton backendYes--YesYes-
BERTC++YesYes---Yes
XLNetC++Yes-----
EncoderTensorFlowYesYes----
EncoderPyTorchYesYesYes---
DecoderTensorFlowYes-----
DecoderPyTorchYes-----
DecodingTensorFlowYes-----
DecodingPyTorchYes-----
GPTTensorFlowYes-----
GPT/OPTPyTorchYes--YesYesYes
GPT/OPTTriton backendYes--YesYes-
GPT-MoEPyTorchYes--YesYes-
BLOOMPyTorchYes--YesYes-
BLOOMTriton backendYes--YesYes-
GPT-JTriton backendYes--YesYes-
LongformerPyTorchYes-----
T5/UL2PyTorchYes--YesYes-
T5TensorFlow 2Yes-----
T5/UL2Triton backendYes--YesYes-
T5TensorRTYes--YesYes-
T5-MoEPyTorchYes--YesYes-
Swin TransformerPyTorchYesYes----
Swin TransformerTensorRTYesYes----
ViTPyTorchYesYes----
ViTTensorRTYesYes----
GPT-NeoXPyTorchYes--YesYes-
GPT-NeoXTriton backendYes--YesYes-
BART/mBARTPyTorchYes--YesYes-
WeNetC++Yes-----
DeBERTaTensorFlow 2Yes--On-goingOn-going-
DeBERTaPyTorchYes--On-goingOn-going-

参考资料:

FasterTransformer github

H100推理飙升8倍!英伟达官宣开源TensorRT-LLM,支持10+模型

英伟达发布 TensorRT-LLM 模型,性能最高提升 8 倍,何时能正式发售?对此你有哪些期待?

TGI(huggingface/text-generation-inference)

huggingface官方的框架,根据小记:主流推理框架在Llama 2 的上性能比较的数据,TGI跑LLAMA-13b的性能好于vllm。

Optimized architectures

  • BLOOM
  • FLAN-T5
  • Galactica
  • GPT-Neox
  • Llama
  • OPT
  • SantaCoder
  • Starcoder
  • Falcon 7B
  • Falcon 40B
  • MPT
  • Llama V2
  • Code Llama

Other architectures are supported on a best effort basis using:

AutoModelForCausalLM.from_pretrained(<model>, device_map="auto")

or

AutoModelForSeq2SeqLM.from_pretrained(<model>, device_map="auto")

参考资料:

huggingface/text-generation-inference

vllm

vLLM 是伯克利大学 LMSYS 组织开源的大语言模型高速推理框架,极大地提升了实时场景下的 LLM 服务的吞吐与内存使用效率。

vllm支持的模型

vLLM seamlessly supports many Huggingface models, including the following architectures:

  • Aquila (BAAI/Aquila-7B, BAAI/AquilaChat-7B, etc.)
  • Baichuan (baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Chat, etc.)
  • BLOOM (bigscience/bloom, bigscience/bloomz, etc.)
  • Falcon (tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, etc.)
  • GPT-2 (gpt2, gpt2-xl, etc.)
  • GPT BigCode (bigcode/starcoder, bigcode/gpt_bigcode-santacoder, etc.)
  • GPT-J (EleutherAI/gpt-j-6b, nomic-ai/gpt4all-j, etc.)
  • GPT-NeoX (EleutherAI/gpt-neox-20b, databricks/dolly-v2-12b, stabilityai/stablelm-tuned-alpha-7b, etc.)
  • InternLM (internlm/internlm-7b, internlm/internlm-chat-7b, etc.)
  • LLaMA & LLaMA-2 (meta-llama/Llama-2-70b-hf, lmsys/vicuna-13b-v1.3, young-geng/koala, openlm-research/open_llama_13b, etc.)
  • MPT (mosaicml/mpt-7b, mosaicml/mpt-30b, etc.)
  • OPT (facebook/opt-66b, facebook/opt-iml-max-30b, etc.)
  • Qwen (Qwen/Qwen-7B, Qwen/Qwen-7B-Chat, etc.)

参考资料:

github-vllm

有人使用vLLM加速过自己的大语言模型吗?效果怎么样?

比HuggingFace快24倍!伯克利神级LLM推理系统开源,碾压SOTA,让GPU砍半

deepspeed

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):

  • Megatron-Turing NLG (530B)
  • Jurassic-1 (178B)
  • BLOOM (176B)
  • GLM (130B)
  • xTrimoPGLM (100B)
  • YaLM (100B)
  • GPT-NeoX (20B)
  • AlexaTM (20B)
  • Turing NLG (17B)
  • METRO-LM (5.4B)

参考资料:

github.com/microsoft/DeepSpeed

deepspeed入门教程

lmdeploy

LMDeploy 由 MMDeploy 和 MMRazor 团队联合开发,是涵盖了 LLM 任务的全套轻量化、部署和服务解决方案。
支持的模型:

Note

W4A16 推理需要 Ampere 及以上架构的 Nvidia GPU

模型模型并行FP16KV INT8W4A16W8A8
LlamaYesYesYesYesNo
Llama2YesYesYesYesNo
InternLMYesYesYesYesNo
QWen-7BYesYesYesNoNo
Baichuan-7BYesYesYesYesNo
Baichuan2-7BYesYesNoNoNo
Code LlamaYesYesNoNoNo

参考资料:

LLM 低成本 GPU 部署方案 lmdeploy 开源

InternLM/lmdeploy

TurboTransformers

TurboTransformers是腾讯开源的模型加速推理框架。

当前支持的模型种类不算多:

  • BERT [Python] [C++]
  • ALBERT [Python]
  • Roberta [Python]
  • Transformer Decoder [Python]
  • GPT2 [Python]

参考资料:

Tencent/TurboTransformers

腾讯开源TurboTransformers,推理加速性能超越TensorRT等主流优化引擎

参考资料

LLM推理优化技术综述:KVCache、PageAttention、FlashAttention、MQA、GQA

小记:主流推理框架在Llama 2 的上性能比较

vllm vs TGI 部署 llama v2 7B 踩坑笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78276.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

useGetState自定义hooks解决useState 异步回调获取不到最新值

setState 的两种传参方式 1、直接传入新值 setState(options); const [state, setState] useState(0); setState(state 1); 2、传入回调函数 setState(callBack); const [state, setState] useState(0); setState((prevState) > prevState 1); // prevState 是改变之…

【网络教程】超越平凡:一文揭示SSH-keygen的神秘世界

SSH(Secure Shell)是一种网络协议,用于安全地连接到远程计算机。SSH-keygen 是 SSH 协议的一部分,用于生成、管理和转换身份验证密钥对。 SSH-keygen 命令的基本语法如下: ssh-keygen [选项]以下是 ssh-keygen 命令的一些常用选项和参数: -t:指定要生成的密钥类型。例如…

Python实现猎人猎物优化算法(HPO)优化Catboost分类模型(CatBoostClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 猎人猎物优化搜索算法(Hunter–prey optimizer, HPO)是由Naruei& Keynia于2022年提出的一种最新的…

基于BLIP-2的看图问答原理及实现

大型语言模型 (LLM) 最近获得了很大的关注&#xff0c;出现了许多流行的模型&#xff0c;如 GPT、OPT、BLOOM 等。 这些模型擅长学习自然语言&#xff0c;非常适合构建聊天机器人、编码助手、决策助手或翻译系统。 然而&#xff0c;他们缺乏其他模式的知识—例如&#xff0c;他…

GIS地图服务数据可视化

GIS地图服务数据可视化 OSM&#xff08;Open Street Map&#xff0c;开放街道地图&#xff09;Bing地图&#xff08;必应地图&#xff09;Google地图&#xff08;谷歌地图&#xff09; 地图服务数据可视化是根据调用的地图服务请求Web服务器端的地图数据&#xff0c;实现地图数…

python自学

自学第一步 第一个简单的基础&#xff0c;向世界说你好 启动python 开始 print是打印输出的意思&#xff0c;就是输出引号内的内容。 标点符号必须要是英文的&#xff0c;因为他只认识英文的标点符号。 exit&#xff08;&#xff09;推出python。 我们创建一个文本文档&…

SpringBoot+MySQL+Vue前后端分离的宠物领养救助管理系统(附论文)

文章目录 项目介绍主要功能截图:后台:登录个人中心宠物用品管理宠物领养管理用户管理用户领养管理宠物挂失管理论坛管理系统管理订单管理前台首页宠物挂失论坛信息宠物资讯部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创

前端面试的话术集锦第 6 篇:高频考点(事件机制 跨域 存储机制 浏览器缓存等)

这是记录前端面试的话术集锦第六篇博文——高频考点(事件机制 & 跨域 & 存储机制 & 浏览器缓存等),我会不断更新该博文。❗❗❗ 1. ⼿写 call、apply 及 bind 函数 ⾸先从以下⼏点来考虑如何实现这⼏个函数: 不传⼊第⼀个参数,那么上下⽂默认为window 改变了…

Java 复习笔记 - 常用API 下

文章目录 一&#xff0c;JDK7以前时间相关类&#xff08;一&#xff09;Date 时间&#xff08;二&#xff09;SimpleDateFormat 格式化时间&#xff08;三&#xff09;Calendar 日历 二&#xff0c;JDK8新增时间相关类&#xff08;一&#xff09;时区、时间和格式化&#xff08…

Layui + Flask 使用(01)

Layui 是一套开源免费的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,极易上手,拿来即用,非常适合网页界面的快速构建。在使用了很久之后,也发现了一些问题。 先说优点: layui 采用的是原生的 HTML/CSS/JavaScript 技术开发,上…

R-YOLOv7-tiny检测浸水玉米胚乳裂纹

Detecting endosperm cracks in soaked maize using μCT technology and R-YOLOv7-tiny 1、模型1.1 C3_TR module(自己提出修改)1.2 CoT block注意力1.3 GhostConv模块2、模型整体流程图3、实验采用r - yolov7微模型和μCT技术对浸水玉米胚乳裂纹进行了检测。提出的ryolov7微…

Nginx参数配置详细说明【全局、http块、server块、events块】【已亲测】

Nginx重点参数配置说明 本文包含Nginx参数配置说明全局块、http块、server块、events块共计30多个参数配置与解释&#xff0c;其中常见参数包含配置错误出现的错误日志&#xff0c;能让你更快的解决问题。 该文的所有参数大部分经过单独测试&#xff0c;错误都是自己收集出来的…

iOS开发 蓝牙功能

iOS开发蓝牙功能主要分扫描中心和外设设备 Central: 中心设备,发起蓝牙连接的设备(一般指手机)Peripheral: 外设,被蓝牙连接的设备(一般是运动手环/蓝牙模块)Service:服务,每个设备会提供服务,一个设备有很多服务Characteristic:特征,每个服务中包含很多个特征,这些特征的权限…

付费进群搭建二维码

如今&#xff0c;在互联网时代&#xff0c;群组聊天已经成为人们高效沟通和合作的重要方式。然而&#xff0c;对于一些专业团队或机构来说&#xff0c;免费的系统可能无法满足他们对安全性、稳定性和个性化功能的要求。因此&#xff0c;他们需要寻找付费的群组系统&#xff0c;…

如何将安防视频监控系统/视频云存储EasyCVR平台推流到公网直播间?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

基于PyTorch使用LSTM实现新闻文本分类任务

本文参考 PyTorch深度学习项目实战100例 https://weibaohang.blog.csdn.net/article/details/127154284?spm1001.2014.3001.5501 文章目录 本文参考任务介绍做数据的导入 环境介绍导入必要的包介绍torchnet和keras做数据的导入给必要的参数命名加载文本数据数据前处理模型训…

防火墙概述及实战

目录 前言 一、概述 &#xff08;一&#xff09;、防火墙分类 &#xff08;二&#xff09;、防火墙性能 &#xff08;三&#xff09;、iptables &#xff08;四&#xff09;、iptables中表的概念 二、iptables规则匹配条件分类 &#xff08;一&#xff09;、基本匹配条…

echarts常用参数详解汇总(饼图,柱形图,折线图)持续更新中

常用配置&#xff1a; X/Y轴线的基础设置《通用》 细微的差距只能去官网查看了&#xff0c;基本一致 这里只是做了个汇总方便查看 xAxis/yAxis: {show:false, // 不显示坐标轴线、坐标轴刻度线和坐标轴上的文字axisTick:{// 不显示坐标轴刻度线show:false, alignWithLabel: tru…

sklearn中的数据集使用

导库 from sklearn.datasets import load_iris 实现 # 加载数据集 iris load_iris() print(f查看数据集&#xff1a;{iris}) print(f查看数据集的特征&#xff1a;{iris.feature_names}) print(f查看数据集的标签&#xff1a;{iris.target_names}) print(f查看数据集的描述…

看板管理:以可视化方式确定任务优先级

确定工作的优先级是我们今天都要面对的挑战。若处理不当&#xff0c;我们就可能试图一心多用&#xff0c;从而严重损害工作效率。 使用看板方法来设定工作优先级是一种非常直观、快速的方法。 确定工作优先级的看板方法 看板工作流程管理方法的核心在于工作可视化。工作被划…