【InternLM实战营第二期笔记】05:LMDeploy 量化部署 LLM 实践

news2024/10/7 12:27:06

文章目录

  • 课程
    • 背景
    • 常见部署方法
    • LMDeploy
    • 安装、部署、量化
    • 量化
      • 默认比例 KV cache
      • cache-max-entry-count=0.5
      • cache-max-entry-count=0.01
      • 4bit 量化
    • Serve a model
      • 启动服务
      • 链接 API 服务器
      • 网页客户端访问服务器 API
    • 代码集成
      • Python 代码运行 1.8B 模型
      • 向 TurboMind 后端传递参数
    • 拓展
      • 运行 llava
      • 速度比较
  • 作业
      • 设置KV Cache最大占用比例为0.4,开启W4A16量化,以命令行方式与模型对话
      • 以API Server方式启动 lmdeploy,开启 W4A16量化,调整KV Cache的占用比例为0.4,分别使用命令行客户端与Gradio网页客户端与模型对话。
        • 命令行
        • 网页对话
      • 使用W4A16量化,调整KV Cache的占用比例为0.4,使用Python代码集成的方式运行internlm2-chat-1.8b模型。
      • 使用 LMDeploy 运行视觉多模态大模型 llava gradio demo

课程

(这节也是边看课边装环境~)
在这里插入图片描述

背景

在这里插入图片描述
我自己的理解,就是一个“固化”模型让它能够持续吞吐的操作。
在这里插入图片描述
性能捉紧是啥……
在这里插入图片描述
在这里插入图片描述
这几页对我来说是新知了,之前很少了解这些计算细节。

常见部署方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LMDeploy

在这里插入图片描述
在这里插入图片描述
这么强的性能,这下不得不试了~
在这里插入图片描述

安装、部署、量化

还是尽量提前装好环境节省时间。
看看,卡在这也不动,不知道干啥呢。
在这里插入图片描述
推理延迟也有点不对劲,按说 A100 跑1.8B模型不可能这么慢,快赶上CPU了。难道是显存切分机制导致的吗?
另外……问英文你回答中文,你这模型严格来说训坏了啊……
在这里插入图片描述
换成 LMDeploy 推理,哇 stream 模式下确实立杆见影,目测是3倍以上的提速:
在这里插入图片描述

量化

默认比例 KV cache

在这里插入图片描述

cache-max-entry-count=0.5

在这里插入图片描述

cache-max-entry-count=0.01

在这里插入图片描述

4bit 量化

KV cache 的调试结束,接下来该尝试 AWQ 量化了:在这里插入图片描述
卧槽,祈祷这个较长别太折磨人……
之前没接触过低 bit 量化,也不知道 ptb 是啥数据集,就从代码里搜了一下,确认是指这个:
https://huggingface.co/datasets/ptb-text-only/ptb_text_only
特定年份的华尔街日报全集的数字版。
好奇不同的量化数据会不会影响量化后的效果……
(按理说应该会)
在这里插入图片描述

结束了,比我预想得居然快很多,看来就像之前说的,(至少我这台)开发机的IO有些问题。
在这里插入图片描述
确实贼快,百字秒出的感觉。但显存占用还是7.4G+

降低 kv cache 比例到最小:
在这里插入图片描述
这下非常小了。在这里插入图片描述
单个测试用例下,输出速度没有明显体感变化。
在这里插入图片描述
小模型都不太聪明的样子。讲笑话太难了。(Claude/ChatGPT 也没有很好)

Serve a model

在这里插入图片描述
好奇这三部分怎么合并成一块。

启动服务

在这里插入图片描述
这个启动过程居然很快,
在这里插入图片描述
(VS Code 本地客户端远程模式下可以自动转发端口,课程中太省事了。推荐给各位同学使用。)

链接 API 服务器

在这里插入图片描述

网页客户端访问服务器 API

在这里插入图片描述
在这里插入图片描述
哇,太冷了,依然 get 不到这个“大模型”的笑点。

代码集成

Python 代码运行 1.8B 模型

按照教程生成文件并执行,好像不太对:
在这里插入图片描述
在这里插入图片描述
第二遍对了,有点奇怪。随机性这会儿发挥作用了?

向 TurboMind 后端传递参数

啊,跑到这儿才想起来忘记截图显存占用了:
在这里插入图片描述

拓展

运行 llava

命令行模式:
在这里插入图片描述
网页模式:
在这里插入图片描述
在这里插入图片描述

咦……?随手找了张插画,也是用英文提问,但回答居然是中文,跟老师说的不太一样?(老师说这个模型对中文支持不太好)
换一张:
在这里插入图片描述
这回倒是对了。

速度比较

在这里插入图片描述
确实是六倍的差距!

作业

基础作业见上方,下面是优秀学员作业。因为不像之前需要额外做很多事情(主要瓶颈在开发机的IO上,太花时间了导致完全不想折腾)就顺手做了。

设置KV Cache最大占用比例为0.4,开启W4A16量化,以命令行方式与模型对话

在这里插入图片描述
在这里插入图片描述
要不后面我自己微调个专门讲笑话的模型吧……

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

教程没直接写这时候参数该怎么填,-h 也没提供有效信息。不过可以猜嘛,只要教程编写者和项目开发者没有太离谱,大概率是能直接跑的:

lmdeploy serve api_server     /root/internlm2-chat-1_8b-4bit/     --model-format awq     --quant-policy 0     --server-name 0.0.0.0     --server-port 23333     --tp 1 --cache-max-entry-count 0.4

在这里插入图片描述

命令行

在这里插入图片描述
忽然觉得挺奇怪的。按说语料里不应该没有笑话,但为啥似乎所有的(出于严谨随手找了三个 chat 网页端测试)大模型都在这方面表现很烂呢?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确实没记错……

网页对话

在这里插入图片描述

使用W4A16量化,调整KV Cache的占用比例为0.4,使用Python代码集成的方式运行internlm2-chat-1.8b模型。

在这里插入图片描述
在这里插入图片描述

使用 LMDeploy 运行视觉多模态大模型 llava gradio demo

(见拓展部分截图)

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

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

相关文章

AOP案例

黑马程序员JavaWeb开发教程 文章目录 一、案例1.1 案例1.2 步骤1.2.1 准备1.2.2 编码 一、案例 1.1 案例 将之前案例中增、删、改相关节后的操作日志记录到数据库表中。 操作日志:日志信息包含:操作人、操作时间、执行方法的全类名、执行方法名、方法…

苍穹外卖笔记-02-借助小乌龟创建gitee仓库,apifox代替YApi,Swagger

TOC 1 借助小乌龟创建gitee苍穹外卖仓库 这里建议看视频bilibili比特鹏哥视频 使用软件 git TortoiseGit https://git-scm.com/downloads https://tortoisegit.org/ 使用代码托管平台gitee,git的使用和gitee的账号创建需要查询其他资料 在一个从未克隆仓库的…

yolov8-obb 旋转目标检测 瑞芯微RKNN芯片部署、地平线Horizon芯片部署、TensorRT部署

特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。 模型和完整仿真测试代码,放在github上参考链接 模型和代码。 折腾旋转目标检测的小伙伴们看过来,yolov8旋转目标检测部署…

ShowDoc item_id 未授权SQL注入漏洞复现

0x01 产品简介 ShowDoc 是一个开源的在线文档协作平台,它支持Markdown、图片等多种格式,方便团队成员共同编辑和分享文档。企业常见使用场景是使用其进行接口文档、内部知识库管理。 0x02 漏洞概述 2024年6月,ShowDoc官方发布新版本修复了一个SQL注入漏洞。鉴于该漏洞无前…

速通数据挖掘课程

速通 数据挖掘课程 大的分类 标签预测(分类) 和 数值预测(预测呀) 监督 非监督 是否 需要预先训练模型 然后预测 聚类:拿一个比一个,看看相似否,然后归一类 数据四种类型 数据属性有四种&…

C++实现,简单的命令行交互框架

目录 背景背景 在实际开发中,经常需要有对端测试程序,配合自己的程序,验证功能、逻辑等。面对繁杂、多变的需求,如果对端程序设计得不够灵活,则无法提升工作效率,如果能够与对端程序交互,通过命令行输入命令的方式完成测试验证,将大大提升工作效率,下面的示例程序是一…

weak的底层原理

weak 引用在 iOS 中通过维护一个全局的弱引用表来实现。当弱引用的对象被释放时,所有指向它的弱引用会被自动置为 nil,从而防止悬挂指针。 弱引用表(Weak Table)的键和值 理解弱引用表的键和值对于理解 weak 引用的底层机制非常重…

酱菜产业:传承美味,点亮生活

酱菜,这道深受人们喜爱的传统美食,以其独特的风味和营养价值,点亮了我们的日常生活。酱菜产业作为美食文化的重要组成部分,正以其独特的魅力,吸引着越来越多的消费者。 酱菜产业的赵总说:酱菜的制作过程&am…

Nginx网站服务【☆☆☆】

市面上常用Linux的web服务器:apache、Nginx。 apache与nginx的区别? 最核心的区别在于NGINX采用异步非阻塞机制,多个连接可以对应一个进程;apache采用的是同步阻塞多进程/线程模型,一个连接对应一个进程。apache美国…

【C语言】一节课拿捏---动态内存分配

谢谢观看!希望以下内容帮助到了你,对你起到作用的话,可以一键三连加关注!你们的支持是我更新地动力。 因作者水平有限,有错误还请指出,多多包涵,谢谢! 目录 一、 为什么要有动态内存…

关于IDEA创建Maven一直爆红无法下载的问题

你能看到这我就知道你肯定已经试过了网上的很多方法了,我之前也是,试过了很多一直无法正常下载,我也是找人给 线下看了看解决了,我总结一下从头到尾排除问题,试到最后要是还解决不了你直接私信我,我给你看看…

vue3+uniapp

1.页面滚动 2.图片懒加载 3.安全区域 4.返回顶部,刷新页面 5.grid布局 place-self: center; 6.模糊效果 7.缩放 8.微信小程序联系客服 9.拨打电话 10.穿透 11.盒子宽度 12.一般文字以及盒子阴影 13.选中文字 14.顶部安全距离 15.onLoad周期函数在setup语法糖执行后…

微信小程序-案例:本地生活-首页(不使用网络数据请求)

一、 1.页面效果: 二、 1.新建项目并添加页面 在app.json文件中: "pages": ["pages/home/home","pages/message/message","pages/contact/contact"] 2.配置导航栏效果 在app.json文件中: &quo…

DVWA-XSS(DOM)

Low 后端没有代码,点击select按钮动作是前端的JS代码进行处理的 function addEventListeners() {var source_button document.getElementById ("source_button");if (source_button) {source_button.addEventListener("click", function() {v…

Doris Connector 结合 Flink CDC 实现 MySQL 分库分表

1. 概述 在实际业务系统中为了解决单表数据量大带来的各种问题,我们通常采用分库分表的方式对库表进行拆分,以达到提高系统的吞吐量。 但是这样给后面数据分析带来了麻烦,这个时候我们通常试将业务数据库的分库分表同步到数据仓库时&#x…

【杂谈】AIGC之ChatGPT-与智能对话机器人的奇妙对话之旅

与智能对话机器人的奇妙对话之旅 引言 在数字时代的浪潮中,ChatGPT如同一位智慧的旅伴,它不仅能够与我们畅谈古今,还能解答我们的疑惑,成为我们探索知识海洋的得力助手。今天,就让我们走进ChatGPT的世界,…

Capture One Pro 23:专业 Raw 图像处理的卓越之选

在当今的数字摄影时代,拥有一款强大的图像处理软件至关重要。而 Capture One Pro 23 for Mac/Win 无疑是其中的佼佼者,为摄影师和图像爱好者带来了前所未有的体验。 Capture One Pro 23 以其出色的 Raw 图像处理能力而闻名。它能够精准地解析和处理各种…

题号:BC19 题目:反向输出一个四位数

题号:BC19 题目:反向输出一个四位数 废话不多说,上题目: 解题思路: 我们发现可以用%和/两个操作符就可以解决。 代码如下: int main() {int a 0;scanf("%d ",& a);while (a){printf("%d "…

基于googlenet深度学习网络的睁眼闭眼识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .................................................................. % 对测试集进行分类预…

如何通过 6 种简单方法将照片从华为转移到 PC?

华为作为全球领先的智能手机供应商之一,最近推出了其自主研发的操作系统——HarmonyOS 2.0,旨在为智能手机、平板电脑和智能手表等设备提供更流畅的用户体验。随着Mate 40/P40等系列手机计划升级到HarmonyOS 2.0,用户可能需要将手机中的文件备…