书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践

在这里插入图片描述

大模型部署背景

部署:将训练好的模型在特定软硬件环境中启动的过程
在这里插入图片描述
挑战:存储问题
在这里插入图片描述

LMDeploy简介

针对英伟达平台
在这里插入图片描述
量化可以节省显存,提升推理速度
在这里插入图片描述
访问数据占用了大量时间
在这里插入图片描述
有一部分很重要的参数不量化,保留性能。其余部分量化节约显存
在这里插入图片描述

动手实践

安装、部署、量化

创建环境

/root/share/install_conda_env_internlm_base.sh lmdeploy

在这里插入图片描述
在这里插入图片描述
安装lmdeploy

# 解决 ModuleNotFoundError: No module named 'packaging' 问题
pip install packaging
# 使用 flash_attn 的预编译包解决安装过慢问题
pip install /root/share/wheels/flash_attn-2.4.2+cu118torch2.0cxx11abiTRUE-cp310-cp310-linux_x86_64.whl
pip install 'lmdeploy[all]==v0.1.0'

服务部署

在线转换

可以直接加载 Huggingface 模型

直接启动本地的 Huggingface 模型

lmdeploy chat turbomind /share/temp/model_repos/internlm-chat-7b/  --model-name internlm-chat-7b

可以在bash中对话
在这里插入图片描述

离线转换

需要先保存模型再加载

lmdeploy convert internlm-chat-7b  /root/share/temp/model_repos/internlm-chat-7b/

在这里插入图片描述
模型转换完成后,我们就具备了使用模型推理的条件,接下来就可以进行真正的模型推理环节。

# Turbomind + Bash Local Chat
lmdeploy chat turbomind ./workspace

在这里插入图片描述

TurboMind推理+API服务

在上面的部分我们尝试了直接用命令行启动 Client,接下来我们尝试如何运用 lmdepoy 进行服务化

”模型推理/服务“目前提供了 Turbomind 和 TritonServer 两种服务化方式。

首先,通过下面命令启动服务。

# ApiServer+Turbomind   api_server => AsyncEngine => TurboMind
lmdeploy serve api_server ./workspace \
	--server_name 0.0.0.0 \
	--server_port 23333 \
	--instance_num 64 \
	--tp 1

在这里插入图片描述
新开一个窗口,执行下面的 Client 命令。如果使用官方机器,可以打开 vscode 的 Terminal,执行下面的命令。

# ChatApiClient+ApiServer(注意是http协议,需要加http)
lmdeploy serve api_client http://localhost:23333

在这里插入图片描述
本地使用SSH连接,并打开 http://localhost:23333/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Gradio 作为前端 Demo演示

TurboMind 服务作为后端
# Gradio+ApiServer。必须先开启 Server,此时 Gradio 为 Client
lmdeploy serve gradio http://0.0.0.0:23333 \
	--server_name 0.0.0.0 \
	--server_port 6006 \
	--restful_api True
TurboMind 推理作为后端

Gradio 也可以直接和 TurboMind 连接,如下所示

# Gradio+Turbomind(local)
lmdeploy serve gradio ./workspace

打开http://localhost:6006/
在这里插入图片描述

作业

  • 本地对话方式,生成300字小故事
    在这里插入图片描述

  • API 方式,生成300字小故事
    在这里插入图片描述
    在这里插入图片描述

  • 网页Gradio方式, 生成300字小故事
    在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 16:02:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 16:02:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 16:02:02       82 阅读
  4. Python语言-面向对象

    2024-01-25 16:02:02       91 阅读

热门阅读

  1. 数据结构——链式栈

    2024-01-25 16:02:02       59 阅读
  2. [力扣 Hot100]Day13 最大子数组和

    2024-01-25 16:02:02       58 阅读
  3. redis 分布式锁的原理

    2024-01-25 16:02:02       52 阅读
  4. uniapp使用uQRCode插件生成二维码的简单使用

    2024-01-25 16:02:02       55 阅读
  5. K8S的安全机制

    2024-01-25 16:02:02       60 阅读
  6. Shell条件判断与流控匹配

    2024-01-25 16:02:02       49 阅读
  7. EasyExcel表头宽度根据数据内容自适应+自动换行

    2024-01-25 16:02:02       63 阅读