5、LMDeploy 量化部署 LLMVLM实战(homework)

基础作业(结营必做)

完成以下任务,并将实现过程记录截图:

  • 配置lmdeploy运行环境

由于环境依赖项存在torch,下载过程可能比较缓慢。InternStudio上提供了快速创建conda环境的方法。打开命令行终端,创建一个名为lmdeploy的环境:

studio-conda -t lmdeploy -o pytorch-2.1.2

# 接下来,激活刚刚创建的虚拟环境。
conda activate lmdeploy

# 安装0.3.0版本的lmdeploy。
pip install lmdeploy[all]==0.3.0

# 等待安装结束就OK了!

  • 下载internlm-chat-1.8b模型
## OpenXLab平台支持通过Git协议下载模型。首先安装git-lfs组件。

## 对于root用于请执行如下指令:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
apt update
apt install git-lfs   
git lfs install  --system

## 对于非root用户需要加sudo,请执行如下指令:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt update
sudo apt install git-lfs   
sudo git lfs install  --system

## 安装好git-lfs组件后,由OpenXLab平台下载InternLM2-Chat-1.8B模型:

git clone https://code.openxlab.org.cn/OpenLMLab/internlm2-chat-1.8b.git
  • 以命令行方式与模型对话

进阶作业

完成以下任务,并将实现过程记录截图:

  • 设置KV Cache最大占用比例为0.4,开启W4A16量化,以命令行方式与模型对话。(优秀学员必做)
## 模型W4A16量化
lmdeploy lite auto_awq /root/models/Shanghai_AI_Laboratory/internl
m2-chat-1_8b --calib-dataset 'ptb' --calib-samples 128 --calib-seqlen 1024 --w-bits 4 --w-group-size 128 --work-dir /root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b-4bit


## KV Cache最大占用比例为0.4,开启W4A16量化,以命令行方式与模型对话。
lmdeploy chat /root/internlm2-chat-1_8b-4bit --model-format awq --cache-max-entry-count 0.4

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

通过以下命令启动API服务器,推理internlm2-chat-1_8b模型:

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

## 运行命令行客户端:

lmdeploy serve api_client http://localhost:23333

命令行客户端:

Gradio网页端:

lmdeploy serve gradio http://localhost:23333 \
    --server-name 0.0.0.0 \
    --server-port 6006

  • 使用W4A16量化,调整KV Cache的占用比例为0.4,使用Python代码集成的方式运行internlm2-chat-1.8b模型。(优秀学员必做)
from lmdeploy import pipeline, TurbomindEngineConfig
backend_config = TurbomindEngineConfig(cache_max_entry_count=0.2)

pipe = pipeline('/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b',
                backend_config=backend_config)
# pipe = pipeline('/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b')
response = pipe(['Hi, pls intro yourself', '上海是'])
print(response)

  • 使用 LMDeploy 运行视觉多模态大模型 llava gradio demo (优秀学员必做)
from lmdeploy import pipeline
from lmdeploy.vl import load_image

# pipe = pipeline('liuhaotian/llava-v1.6-vicuna-7b') 非开发机运行此命令
pipe = pipeline('/share/new_models/liuhaotian/llava-v1.6-vicuna-7b')

image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
response = pipe(('describe this image', image))
print(response)

  • 将 LMDeploy Web Demo 部署到 OpenXLab (OpenXLab cuda 12.2 的镜像还没有 ready,可先跳过,一周之后再来做)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目实现:Boost搜索引擎

一.项目背景 当前已经有许多上市公司做了搜索引擎,比如说百度,搜狗,360等等,这些项目都是很大的项目,有很高的技术门槛,我们自己实现一个完整的搜索引擎是不可能的,但是我们可以写一个简单的搜…

【ARM 裸机】硬件平台简介

硬件平台采用的是正点原子的 I.MX6ULL-MINI 开发板,分为底板和核心板; 1、底板 正点原子 Mini 开发板的外形尺寸为 100mm*130mm,I.MX6U-Mini 开发板底板板载资源如下: ◆ 1 个核心板接口,支持 I.MX6ULL 核心板。 ◆ 1…

梯度提升树(Gradient Boosting Trees)

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个梯度提升树(Gradient Boosting Trees)模型程序,最后打印5个条件分别的影响力。 示例一 梯…

RobotFramework功能自动化测试框架基础篇

概念 RobotFramework是什么? Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试…

力扣练习题(2024/4/14)

1接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2…

基于 net/http 抽象出 go 服务优雅停止的一般思路

和其他语言相比,Go 中有相同也有不同,相同的是实现思路上和其他语言没啥差异,不同在于 Go 采用的是 goroutine channel 的并发模型,与传统的进程线程相比,实现细节上存在差异。 本文将从实际场景和它的一般实现方式展…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及国赛省赛真题及代码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及国、省赛真题及代码 链接:https://pan.baidu.com/s/1pXnsMHE0t4RLCeluFhFpAg?pwdq497 提取码:q497

3D室内装潢设计 Sweet Home 3D for Mac 中文直装版

Sweet Home 3D 是一款非常棒的家装辅助设计软件,支持包括中文在内的16中语言,它能帮您通过二维的家居平面图来设计和布置您的家具,还可以用三维的视角浏览整个装修布局的全貌。是一款操作起来简单方便,使用起来快捷、迅速,拥有超高…

在Mac主机上连接Linux虚拟机

前言 最近醉心于研究Linux,于是在PD上安装了一个Debian Linux虚拟机,用来练练手。但是每次在mac和Linux之间切换很是麻烦,有没有一种方法,可以在mac终端直接连接我的虚拟机,这样在mac终端上就可以直接操控我的Linux虚…

Redis之路系列(1)千里之行始于足下

01 千里之行始于足下 文章内容基于redis6 安装与运行 无论你一名极客还是一名工程师,Redis安装我都推荐源码安装,请前往官方下载地址:http://redis.io/download 进行源码下载,偶数为稳定版 奇数为不稳定版。 如果你是类linux系统…

传统图机器学习的特征工程-全图

将整张图表示成为一个低维向量,反映全图的特征 key idea:Bag-of-Words(BOW)把图看作文章,把节点看作单词 Kernel mothods

【python】python汽车之家数据抓取分析可视化(代码+报告+数据)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

盲人独立出行的新里程:“盲人软件”赋能无障碍生活

作为一名资深记者,我始终致力于探索并分享那些以科技之力提升特殊群体生活质量的故事。最近,一款名为蝙蝠避障的盲人软件进入了我的视野,其强大的避障导航功能正悄然改变着视障人士的出行方式,赋予他们前所未有的独立生活能力。 …

小贴士:Windows下docker挂载目录填坑记录

为便于代码调试和维护,一般在生成 Docker 容器时,会将宿主机的目录挂载到容器里。在macOS里使用终端运行 Shell 脚本,调试一切正常,但是在 Windows 里使用 Git Bash 终端运行同样的脚本时,发现挂载失败。 1 问题描述 …

【产品经理修炼之道】- 融资租赁相关业务介绍

一、什么是融资租赁? 根据《民法典》第735条的规定,融资租赁合同是出租人根据承租人对出卖人、租赁物的选择,向出卖人购买租赁物,提供给承租人使用,承租人支付租金的合同。 例如,A工厂因业务发展需要欲购置…

赋能Web3用户:增强在线隐私

随着数字化时代的发展,人们越来越依赖互联网来进行各种活动,从社交互动到金融交易,几乎所有的日常生活都离不开网络。然而,随之而来的是个人隐私安全面临的挑战。在传统的互联网架构下,用户的个人数据往往被中心化的平…

971: 统计利用先序遍历创建的二叉树的深度

解法&#xff1a; 1.先序遍历创建二叉树链表形式 2.求二叉树的深度 用后序遍历实现&#xff1a; 1.后序遍历求节点A左右子树高度 2.对节点A&#xff1a; 1.取左右子树较大高度 2.返回高度1&#xff08;即以节点A为根节点的子树的最大深度&#xff09; 例如 #include <ios…

fast_bev 学习笔记

目录 一. 简述二. 输入输出三. github资源四. 复现推理过程4.1 cuda tensorrt 版 训练修改图像数 一. 简述 原文:Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline FAST BEV是一种高性能、快速推理和部署友好的解决方案&#xff0c;专为自动驾驶车载芯片设计…

python画神经网络图

代码1(画神经网络连接图&#xff09; from math import cos, sin, atan import matplotlib.pyplot as plt # 注意这里并没有用到这个networkx这个库&#xff0c;完全是根据matploblib这个库来画的。 class Neuron():def __init__(self, x, y,radius,nameNone):self.x xself.y …

为什么要部署IP SSL证书?怎么申请?

我们需要知道什么是IP SSL证书。SSL&#xff0c;全称为Secure Sockets Layer&#xff0c;即安全套接层&#xff0c;是为网络通信提供安全及数据完整性的一种安全协议。而IP SSL证书就是基于SSL协议的一种证书&#xff0c;它能够为网站和用户的数据传输提供加密处理&#xff0c;…