LMDeploy 量化部署 LLM-VLM 实践——作业

news2024/12/26 20:48:25

LMDeploy 量化部署 LLM-VLM 实践——作业

  • 一、 基础作业
    • 1.1、配置 LMDeploy 运行环境
    • 1.2、以命令行方式与 InternLM2-Chat-1.8B 模型对话
  • 二、进阶作业
    • 2.1、设置 KV Cache 最大占用比例为0.4,开启 W4A16 量化,以命令行方式与模型对话
      • 2.1.1、初始显存占用情况
      • 2.1.2、KV Cache == 0.4
      • 2.1.3、开启 W4A16 量化
      • 2.1.4、 KV Cache == 0.4 + W4A16 量化
    • 2.2、以 API Server 方式启动 lmdeploy,开启 W4A16 量化,调整 KV Cache 的占用比例为0.4,分别使用命令行客户端与 Gradio 网页客户端与模型对话
      • 2.2.1、命令行客户端
      • 2.2.2、Gradio 网页客户端
    • 2.3、使用 W4A16 量化,调整 KV Cache 的占用比例为 0.4,使用 Python 代码集成的方式运行 internlm2-chat-1.8b 模型
    • 2.4、使用 LMDeploy 运行视觉多模态大模型 llava gradio demo
    • 2.5、将 LMDeploy Web Demo 部署到 OpenXLab

详细视频:LMDeploy 量化部署 LLM-VLM 实践
详细文档:看这里

一、 基础作业

1.1、配置 LMDeploy 运行环境

studio-conda -t lmdeploy -o pytorch-2.1.2

conda activate lmdeploy

pip install lmdeploy[all]==0.3.0

1.2、以命令行方式与 InternLM2-Chat-1.8B 模型对话

lmdeploy chat /root/internlm2-chat-1_8b

在这里插入图片描述

在这里也比较了下使用 Transformer 运行模型和用 LMDeploy直接推理的速度。

在这里插入图片描述

可以看到,LMDeploy 的推理速度是 Transformer库 的 6.74 倍!差别还是很大的。

二、进阶作业

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

2.1.1、初始显存占用情况

在这里插入图片描述

在这里插入图片描述

2.1.2、KV Cache == 0.4

在这里插入图片描述

在这里插入图片描述

可以看到,设置 KV Cache == 0.4 后,显存占用一下子减少了约 35%,提升是非常明显的。

2.1.3、开启 W4A16 量化

在这里插入图片描述

在这里插入图片描述

这个地方,按理来说,显存占用应该会降低很多的,但不知道为什么我运行下来以后提升只有一点点。

2.1.4、 KV Cache == 0.4 + W4A16 量化

在这里插入图片描述
在这里插入图片描述
在双重加持下,显存占用率也是下降到了 50% 以下,效果显著。

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

2.2.1、命令行客户端

在这里插入图片描述

在这里插入图片描述

2.2.2、Gradio 网页客户端

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

这里要分析的图片长这样:

在这里插入图片描述

  • 安装 llava 依赖库
    在这里插入图片描述

  • 创建 pipeline 文件
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述
    可以看到,这里的英文回答对图片的分析还是比较清楚的。

  • 使用中文提问
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述
    好一个 ☞ 🐅 → 🦅 ,虽然在括号里有说明这可能是一只老虎,但全篇回答以老鹰描述还是架不住,只能说 Llava 模型对中文的支持性还是比较低。

  • 用中文拼英提问
    在这里插入图片描述

  • 运行结果
    在这里插入图片描述
    出人意料的是,用中文拼英提问,得到的回答还可以,虽然不如前两次提问时回答的详细,但这次能肯定的回答这是只老虎,还是比直接用中文好上不少的。难道说拼英介于中文和英文?

2.5、将 LMDeploy Web Demo 部署到 OpenXLab

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

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

相关文章

交通公路气象站:监测公路沿线气象

TH-GQX8交通公路气象站是一种专门用于监测公路沿线气象状况的设备系统。它通常由分布在公路沿线的若干个自动气象站联网组成,主要任务是实时监测和记录多种气象数据,为交通管理部门和驾驶员提供准确的路况信息。这些气象数据包括气温、湿度、风速、风向、…

【Linux】权限(shell运行原理、概念,Linux权限)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12625432.html 目录 shell命令以及运行原理 创建和删除用户 创建新普通用户 删除用户 Linux权…

毕设学习:联邦学习梯度聚合加密算法

原本的加密算法大致思路:各个客户端上传梯度时进行加密,服务端直接用有扰乱的梯度当成真梯度来计算,这样一来谁也不知道谁是真梯度 为了避免原本的算法的一些问题,本文提出了加密-解密结构,并证明了这种结构带来的误差…

视频编码芯片软硬件实现的一些总结(1)

C-Model硬件架构设计的算法模型 视频编码芯片硬件实现时一般都会重新设计一个C-Model,接下来简单介绍下什么是C-Model,怎么设计硬件友好的C_Model。 实现视频编码的软件编码器(比如x264/x265),其主要目的是提升CPU执行效率&#x…

java中多线程的创建方式及常用的方法

目录 概述 继承Thread类: 实现Runnable接口: 实现Callable接口: 示例代码 继承Thread类示例 实现Runnable接口示例 实现Callable接口示例 调用三种线程测试示例 线程常用的成员方法 概述 常见的创建线程的方式包括:继承…

vue整合Echarts

首先打开网址https://echarts.apache.org/examples/zh/index.html 进入Echars官网找到自己想要的图形我这里选择的是柱形图 点开完整代码直接cv大法 下载Echars的npm npm install echarts 在vue里面挂在个div 导入相关包 写个方法 就是cv过来的 然后改成后端传过来的值…

跨语言大模型最新综述

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总…

家用洗地机哪款好用?目前口碑最好的家用洗地机

随着科技的不断发展,洗地机已经成为家庭中不可或缺的智能清洁电器。它们能够帮助我们轻松地完成地面清洁工作,节省时间和精力。但是,面对市场上琳琅满目的洗地机品牌,我们该如何选择呢?本文将为您介绍洗地机的挑选指南…

WEB攻防-ASP安全-ASP后门植入连接

windows2003环境搭建,可参考上一篇WEB攻防-ASP安全-MDB下载-CSDN博客 将aspcms解压到C:\inetpub\wwwroot,创建网站并赋予internet来宾用户权限 配置启用父路径和主页指向 上一篇文章提到,数据库文件后缀为asp、asa会被执行解析,所以当进行访…

vue实现光标插入模板和删除指定模板内容

需求&#xff1a; 文本可插入模板文字&#xff1b;同时在“%虚拟机名称%”后一个%删除,会将“%虚拟机名称%”选中删除 以下代码可以直接复制使用&#xff1a; <template><div><div><b>需求&#xff1a;</b> <br> 文本可插入模板文字&am…

AI大模型日报#0422:深扒「全球TOP 10大模型团队」、扎克伯格 Llama 3访谈

导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 标题: 文本生成8K、360度全景世界&#xff01;Model 3重磅发布 摘要: Blockade Labs发布了新模型Model 3&#xff0c;相比Model 2&#…

【漏洞复现】Linksys RE7000无线扩展器 命令注入漏洞(CVE-2024-25852)

0x01 产品简介 Linksys RE7000无线扩展器是一款功能强大、操作便捷的产品,旨在为用户提供无缝的网络覆盖和更快速、更稳定的网络连接体验。 0x02 漏洞概述 Linksys RE7000无线扩展器存在命令注入漏洞,未授权的攻击者可以通过该漏洞执行任意命令,控制服务器。 0x03 测绘语…

【RSGIS数据资源】1995-2015年亚洲主要国家多种植制度水稻4km单产栅格数据集

文章目录 1. 数据集概况2.数据格式3. 文件命名规则4. 数据生产单位5.元数据6. 引用参考文献 1. 数据集概况 针对大范围高时空分辨率水稻单产数据集缺失的现状&#xff0c;基于亚洲水稻年分布图&#xff0c;提出了一种基于机器学习的精细化格网水稻产量估算方法&#xff0c;利用…

镜像VS快照详细对比

不同之处 依赖性&#xff1a; 快照通常依赖于原始系统的状态或之前的快照。 而镜像是独立的&#xff0c;包含了所需的全部数据。 目的&#xff1a; 镜像用于创建或恢复整个系统&#xff0c;适用于系统迁移、备份或恢复等场景。 快照用于数据恢复&#xff0c;可以快速回滚到之前…

【C++】---STL之vector详解

【C】---STL之vector详解 一、vector的介绍&#xff1a;二、vector的成员函数&#xff1a;1、vector类的构造函数2、vector的元素访问符3、vector的迭代器4、vector的模版5、vector的拷贝构造6、vector的容量&#xff08;1&#xff09;vector的增容机制&#xff08;2&#xff0…

机器人实验室CNRS-AIST JRL, IRL介绍

一、背景 作为搞机器人方向的学生&#xff0c;必须时常关注国际上顶尖实验室的研究成果&#xff0c;以免自己做的方向out&#xff0c;除了大家耳熟能详的Boston Dynamics&#xff0c;还有许多非常厉害的机器人实验室值得我们关注&#xff0c;如日本的CNRS-AIST JRL, IRL实验室…

GenVideo、SkelFormer、EfficientGS、HOLD、Motion Synthesis、Learn2Talk

本文首发于公众号&#xff1a;机器感知 GenVideo、SkelFormer、EfficientGS、HOLD、Motion Synthesis、Learn2Talk Enabling Stateful Behaviors for Diffusion-based Policy Learning While imitation learning provides a simple and effective framework for policy learni…

web前端框架设计第五课-计算属性与监听属性

web前端框架设计第五课-计算属性与监听属性 一.预习笔记 1.计算属性 computed split():拆分 reverse():倒序 join():拼接 计算属性与方法&#xff0c;两者效果一致&#xff0c;但是computed 是基于它的依赖缓存&#xff0c;只有相关依赖发生改变时才会重新取值。而使用 met…

Rumble Club加速器哪个好用 稳定好用的联机加速器推荐

Rumble Club加速器哪个好用 稳定好用的联机加速器推荐 说到Rumble Club这款游戏&#xff0c;各位休闲玩家肯定不陌生&#xff0c;这是一款基于物理定律的在线玩家对战游戏&#xff0c;玩法独特且充满乐趣。玩家可以使用各种富有想象力的方式推搡、击打和超越对手&#xff0c;以…

路由过滤,路由策略小实验

目录 一&#xff0c;实验拓扑&#xff1a; 二&#xff0c;实验要求&#xff1a; 三&#xff0c;实验思路&#xff1a; 四&#xff0c;实验过程&#xff1a; 1&#xff0c;IP配置&#xff1a; 2、R1 和R2 运行 RIPv2&#xff0c;R2&#xff0c;R3 和R4运行 oSPF&#xff0…