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

课程

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

背景

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

常见部署方法

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

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

(见拓展部分截图)

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 08:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 08:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 08:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 08:24:02       18 阅读

热门阅读

  1. 从零手写实现 nginx-13-nginx.conf 是 HOCON 的格式吗?

    2024-06-10 08:24:02       10 阅读
  2. 使用cython将现有c/c++库移植为python模块

    2024-06-10 08:24:02       13 阅读
  3. 【冲刺秋招,许愿offer】第 二 天

    2024-06-10 08:24:02       8 阅读
  4. React antd 怎么封装枚举字典组件

    2024-06-10 08:24:02       10 阅读
  5. 常用的国内外公共DNS服务

    2024-06-10 08:24:02       8 阅读
  6. JVM详解

    JVM详解

    2024-06-10 08:24:02      8 阅读
  7. OJ3829大石头的搬运工

    2024-06-10 08:24:02       8 阅读