书生作业:LMDeploy

自己随便说几句。

关于模型部署,很有趣的一件事就是,它一路随着深度学习训练一起发展,尽管例如tensorrt等工具的出现,不断试图降低部署门槛,但是实际上,每一次AI的升级,似乎让这个细分领域没有因为工具易用性的提高而萎缩,反而量化,蒸馏,各个细分领域开支散叶。你说未来的模型部署是什么样呢?

作业链接:Tutorial/lmdeploy/homework.md at camp2 · InternLM/Tutorial · GitHub

LLDeploy项目链接: GitHub - InternLM/lmdeploy: LMDeploy is a toolkit for compressing, deploying, and serving LLMs.

项目纵览

看一下repo的更新日志可以看到:

支持的模型种类很多,提到的就包括:

Qwen-7B, Qwen1.5-MOE and dbrx.Baichuan2-7B, Qwen 1.5, Gemma, Mistral, Mixtral, Deepseek-MOE, LLama 1--3

支持的量化方法也很多: AWQ 4bit GQA, W4A16 inference for sm_75 multi-model

性能优化的方式也很多: flash-attention2, dynamic NTK-RoPE scaling, dynamic logN scaling,Paged Attention, faster attention kernels without sequence length limitation, 2x faster KV8 kernels, Split-K decoding (Flash Decoding)

online int8/int4 KV cache quantization; Support VLM offline inference pipeline and serving;

Support DeepSeek-VL offline inference pipeline and serving.

部署的硬件支持也很多: multi-machine, multi-card inference
 真的够卷。据说MMDeploy基本不维护了,这个转型也是迅雷不及掩耳。

安装

可以直接通过pip安装,也可以通过源码安装,源码安装的流程明显更复杂。

参考: lmdeploy/docs/en/build.md at main · InternLM/lmdeploy · GitHub

conda activate lmdeploy
pip install lmdeploy[all]==0.3.0

离线demo的调用也很直接

import lmdeploy
pipe = lmdeploy.pipeline("internlm/internlm-chat-7b")
response = pipe(["Hi, pls intro yourself", "Shanghai is"])
print(response)

 或者通过:

lmdeploy chat /root/internlm2-chat-1_8b

进阶作业:

以API Server方式启动 lmdeploy,开启 W4A16量化,调整KV Cache的占用比例为0.4,分别使用命令行客户端与Gradio网页客户端与模型对话。

基于下列指令,我们可以启动serve

lmdeploy serve api_server internlm2-chat-1_8b --model-format hf\
--quant-policy 0\
--server-name 0.0.0.0\
--server-port 23333\
--tp 1

然后,我们可以尝试性能优化

程序默认cache-max-entry-count = 0.8

原始参数下,显存占用为 7800MB, 改成 0.4后,显存占用为6000MB。可以推测,KV cache的降低将减小模型的显存占用。

lmdeploy chat /root/internlm2-chat-1_8b --cache-max-entry-count 0.4

接下来,针对awq功能,我们进行量化优化。awq的更多细节可以参考:EfficientAI Lab: 大模型AWQ量化-CSDN博客

time lmdeploy lite auto_awq \/root/internlm2-chat-1_8b \--calib-dataset 'ptb' \--calib-samples 128 \--calib-seqlen 1024 \--w-bits 4 \--w-group-size 128 \--work-dir /root/internlm2-chat-1_8b-4bit

可以在目录中找到新生成的文件,并运行

lmdeploy chat /root/internlm2-chat-1_8b-4bit --model-format awq

值得注意的是,目前该方法只支持图灵架构及之后的设备,也就是20系列之后的显卡。

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

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

相关文章

python代码学习案例-用turtle库绘制爱心图形效果

Python爱心代码,我们可以使用多种方法,包括使用turtle库来绘制图形,或者使用字符打印来在控制台中显示爱心。 首先,确保你已经安装了Python,并且你的环境支持turtle库(它通常是Python标准库的一部分&#…

Mybatis-Plus常用的增删改查坑

添加依赖 <!--实体类上加上Data注解就不用写get&#xff0c;set&#xff0c;toString&#xff0c;equals等方法了--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional…

STL——queue容器【队列】

queue的基本概念&#xff1a; 概念&#xff1a;queue是一种先进先出的数据结构&#xff0c;它有两个出口 queue的构造函数&#xff1a; 构造函数&#xff1a; queue<T>que:采用模板类实现&#xff0c;queue对象的默认构造形式 queue(const queue &que):拷贝构造函…

利用OpenShift的ImageStream部署临时版本

公司是港企&#xff0c;项目都部署在OpenShift上统一管理&#xff0c;因为运行环境为香港网络(外网)&#xff0c;配置、中间件等大陆无法直接访问联通。因此在大陆开发时&#xff0c;测试是个很大的问题。为了避免往Git上频繁提交未确定可用的版本&#xff0c;选择用利用OpenSh…

Python 日志模块Loguru基本使用和封装使用

【一】介绍 Loguru是一个用于Python的日志库&#xff0c;它的设计目标是使日志记录变得简单、快速且易于阅读。 &#xff08;1&#xff09;Loguru介绍 简洁的API&#xff1a;Loguru提供了一个简洁的API&#xff0c;使得在Python项目中使用日志变得更加容易。只需导入loguru模…

智慧公厕的技术基础、保障技术和应用价值

近年来&#xff0c;随着信息技术的快速发展&#xff0c;智慧公厕逐渐成为城市管理的热点项目。智慧公厕利用物联网技术与大数据、云计算、网络通信、自动化控制等先进技术相结合&#xff0c;公共厕所的管理变得更加快捷高效&#xff0c;实现了真正的智能化使用和智慧化管理。下…

LeetCode例题讲解:844.比较含退格的字符串

给定 s 和 t 两个字符串&#xff0c;当它们分别被输入到空白的文本编辑器后&#xff0c;如果两者相等&#xff0c;返回 true 。# 代表退格字符。 注意&#xff1a;如果对空文本输入退格字符&#xff0c;文本继续为空。 示例 1&#xff1a; 输入&#xff1a;s "ab#c&qu…

大米自动化生产线揭秘:包装设备选择与维护之道

在现代化的大米生产过程中&#xff0c;自动化生产线的应用已经越来越广泛。其中&#xff0c;包装设备作为生产线上的重要一环&#xff0c;其选择与维护直接关系到产品的质量和生产效率。与星派一起探讨大米自动化生产线中包装设备的选择与维护之道。 一、包装设备的选择 在选择…

【C#】 SortedDictionary,查找字典中是否存在给定的关键字

欢迎来到《小5讲堂》 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景场景说明红黑树原理判断代码Dictionary知识点相关文章 背景 最近…

全网最详细IOS系统APP上架教程(一)

准备材料 1、邮箱 2、手机号 3、官网&#xff08;网站必须能打的开&#xff0c;且为一级域名&#xff0c;域名必须与组织相关联&#xff09; 4、公司信息 5、申请人名字、电话号码、邮箱、身份证号码&#xff08;注册过程中会需要人脸识别认证&#xff09; 7、需要苹果手机和苹…

以太网技术介绍

随着通信和计算机技术的不断发展&#xff0c;无论是骨干网还是接入网&#xff0c;以太网都已成为应用场景最多&#xff0c;应用范围最广泛的技术之一。对于初次应用以太网的读者&#xff0c;本文主要给出以太网技术的基础知识&#xff0c;并对以太网涉及的部分协议进行简要说明…

【csdn】数据工程实践:从网络抓取到API调用,解析共享单车精准投放所需要的数据

共享单车作为一种便捷的出行方式&#xff0c;有效缓解了“最后一公里”难题&#xff0c;同时促进了绿色出行。然而&#xff0c;在高峰时段&#xff0c;供需不均和停车难成为普遍挑战&#xff0c;尤其是在通勤时间&#xff0c;热门地点如地铁站附近和办公区常常面临车辆短缺或停…