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

在这里插入图片描述

文章目录

  • 大模型部署背景
  • LMDeploy简介
  • 动手实践
    • 创建环境
    • 服务部署
      • 在线转换
      • 离线转换
      • TurboMind推理+API服务
      • Gradio 作为前端 Demo演示
        • TurboMind 服务作为后端
        • TurboMind 推理作为后端
  • 作业

大模型部署背景

部署:将训练好的模型在特定软硬件环境中启动的过程
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第1张图片
挑战:存储问题
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第2张图片

LMDeploy简介

针对英伟达平台
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第3张图片
量化可以节省显存,提升推理速度
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第4张图片
访问数据占用了大量时间
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第5张图片
有一部分很重要的参数不量化,保留性能。其余部分量化节约显存
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第6张图片

动手实践

安装、部署、量化

创建环境

/root/share/install_conda_env_internlm_base.sh lmdeploy

书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第7张图片
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第8张图片
安装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 大模型量化部署实践_第9张图片

离线转换

需要先保存模型再加载

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

书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第10张图片
模型转换完成后,我们就具备了使用模型推理的条件,接下来就可以进行真正的模型推理环节。

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

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

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

书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第12张图片
新开一个窗口,执行下面的 Client 命令。如果使用官方机器,可以打开 vscode 的 Terminal,执行下面的命令。

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

书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第13张图片
本地使用SSH连接,并打开 http://localhost:23333/
在这里插入图片描述
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第14张图片
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第15张图片

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/
书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第16张图片

作业

  • 本地对话方式,生成300字小故事
    书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第17张图片

  • API 方式,生成300字小故事
    书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第18张图片
    书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第19张图片

  • 网页Gradio方式, 生成300字小故事
    书生·浦语大模型--第五节课笔记&作业--LMDeploy 大模型量化部署实践_第20张图片

你可能感兴趣的:(InternLM大模型,笔记)