您的位置:首页 > 游戏 > 手游 > 静态网页模板免费下载秋季_想要推广页_免费的h5制作网站模板_关键词排名优化易下拉霸屏

静态网页模板免费下载秋季_想要推广页_免费的h5制作网站模板_关键词排名优化易下拉霸屏

2025/4/27 6:49:44 来源:https://blog.csdn.net/qq_39780701/article/details/147523327  浏览:    关键词:静态网页模板免费下载秋季_想要推广页_免费的h5制作网站模板_关键词排名优化易下拉霸屏
静态网页模板免费下载秋季_想要推广页_免费的h5制作网站模板_关键词排名优化易下拉霸屏

        首先给大家介绍一下LMDeploy推理框架。LMDeploy 是一个高效且友好的 LLMs 模型部署工具箱,功能涵盖了量化推理分布式服务。LMDeploy在推理方面开发了 Persistent Batch(即Continuous Batch),Blocked K/V Cache,动态拆分和融合,张量并行,高效的计算 kernel等重要特性。官方宣称推理性能是 vLLM 的 1.8 倍。 LMDeploy 支持权重量化和 k/v 量化。4bit 模型推理效率是 FP16 下的 2.4 倍。量化模型的可靠性已通过 OpenCompass 评测得到充分验证。LMDeploy 通过请求分发服务,LMDeploy 支持多模型在多机、多卡上的推理服务。

         有后续我会发文分享有关它的技术实现原理(虽说我也是一知半解,但我会努力的!)。下面我们一同来操作一下如果使用它来进行模型推理、在线量化推理和分布式推理吧!

〇、快速安装

        建议使用python3.10(2025年4月25日)哦!使用conda创建一个全新的环境,然后再安装lmdeploy命令如下:

# 创建环境
conda create -n lmdeploy python=3.10 -y
# 激活环境
conda activate lmdeploy

        激活环境后,推荐pip安装lmdeploy==0.7.1版本,最新的0.7.2有点问题。如果后续测试没有问题了就当我没说0.0

pip install lmdeploy==0.7.1

另外还有个重要的安装方式,从源码进行安装,命令如下:

# 拉取官方仓库
git clone https://github.com/InternLM/lmdeploy.git
# 进入本地lmdeploy仓库
cd lmdeploy# 从源码进行可编辑模式安装
pip install -e .

一、LMDeploy基础推理

它最基础的部署推理的用法,就是使用lmdeploy cli工具,在lmdeploy项目路径下执行命令:

lmdeploy serve api_server internlm/internlm2_5-1.8b-chat

【注】如果你执行lmdeploy输出:ModuleNotFoundError: No module named 'partial_json_parser'错误别怕,只需要安装 pip install partial-json-parser 就能解决。 

正确开启api服务后的后台

api_server启动时的参数可以通过下面这个命令查看

lmdeploy serve api_server -h

我给大家列出几个关键的:

参数描述默认值类型
--server-name SERVER_NAME服务绑定的主机 IP 地址。0.0.0.0str
--server-port SERVER_PORT服务监听的端口号。23333int
--model-name MODEL_NAME被服务模型的名称,可通过 RESTful API /v1/models 访问。如果未指定,则采用 model_pathNonestr
--tp TP用于张量并行计算的 GPU 数量,应为 2 的幂。1int
--session-len SESSION_LEN单个序列的最大会话长度。Noneint
--cache-max-entry-count ...k/v 缓存占用的空闲 GPU 内存百分比(不包括权重)。0.8float

除serve之外cli还有其他几个命令我给大家列在下面:

CLI命令描述
lite使用 lmdeploy.lite 模块压缩和加速大语言模型 (LLMs)。
serve使用 Gradio、OpenAI API 或 Triton 服务器部署大语言模型 (LLMs)。
convert将大语言模型 (LLMs) 转换为 Turbomind 格式。
list列出支持的模型名称。
check_env检查环境信息。
chat使用 PyTorch 或 Turbomind 引擎与模型进行聊天交互。

【注】如果你在客户端推理的时候出现了下面这个报错,这说明你的显卡架构是 Turing 架构,比如你用的是RTX20系列,那么它的算力是sm_75无法直接支持 .bf16,而最新的lmdeploy只支持sm_80算力的卡(比如A100、RTX 30 系列显卡)

RuntimeError: Internal Triton PTX codegen error `ptxas` stderr: ptxas /tmp/tmpy4hhoi2w.ptx, line 97; error : Feature '.bf16' requires .target sm_80 or higher ptxas /tmp/tmpy4hhoi2w.ptx, line 97; error : Feature 'cvt with .f32.bf16' requires .target sm_80 or higher”

  • ptxas 是 NVIDIA 提供的 PTX 汇编器,用于将 PTX 中间代码编译为二进制代码(CUBIN)。它明确指出 .bf16 和相关指令需要 sm_80 或更高的架构版本。

二、LMDeploy在线量化推理

        这部分重点给大家介绍Key-Value(KV) Cache 量化,从直观上看,量化 kv 有利于增加 kv block 的数量。与 fp16 相比,int4/int8 kv 的 kv block 分别可以增加到 4 倍和 2 倍。这意味着,在相同的内存条件下,kv 量化后,系统能支撑的并发数可以大幅提升,从而最终提高吞吐量。而且int8 kv 精度几乎无损,int4 kv 略有损失

        那么具体咋操作呢?只需要在CLI命令后面加一个 --quant-policy 参数就行了:

lmdeploy serve api_server 模型绝对路径 --quant-policy 8
正确开启8位量化的后台

        关于KV Cache量化的原理我用单独一篇文章来阐述清楚(这个技术很吊)。这里还有个关键,就是KV Cache量化虽然厉害,但不是所有的显卡的都支持的哦!你可以移步官方文档的对应部分查看,链接在这里:lmdploy 官方文档 kv_cache量化技术

量化后的显存占用

 【注】从后台看显存占用会发现并没有减少,其实是因为lmdeploy框架自己事先向系统申请了80%多的显存。并不是都是模型的显存占用。

三、LMDeploy分布式推理

        这部分,我只讲单机多卡如何设置(因为我只有单机多卡环境,笑哭)。上面我们在api_server参数中提到了一个tp参数,它就是分布式推理的关键。用来开启张量并行,关于分布式我另外单独写一篇文章介绍(敬请期待!挖坑大师)

lmdeploy serve api_server 模型绝对路径 --tp 2

        上面这个命令里面--tp设置成2意思就是单机双卡来进行分布式推理。如果你不带这个参数,默认是用一张卡来推理,这里我想吐槽一下llamafactory的cli工具,默认就是用所有GPU一起推理。

单机多卡推理正确开启的后台显示

我们使用nvitop工具来看看显卡的显存占用和利用率情况。

单机多卡显存占用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com