五一 Llama 3 超级课堂 | LMDeploy 高效部署 Llama3 实践笔记

五一 Llama 3 超级课堂 | LMDeploy 高效部署 Llama3 实践笔记

    正在检查是否收录...

准备环境与模型

环境配置
conda create -n lmdeploy python=3.10 conda activate lmdeploy conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia pip install -U lmdeploy[all]
模型准备:使用开发机软链接
​mkdir -p ~/model cd ~/model ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct ~/model/Meta-Llama-3-8B-Instruct

使用LMDeploy Chat CLI 工具

conda activate lmdeploy lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct

LMDeploy模型量化(lite)

1. 设置最大KV Cache缓存大小(30%A100)

模型在运行时,占用的显存可大致分为三部分:模型参数本身占用的显存、KV Cache占用的显存,以及中间运算结果占用的显存。LMDeploy的KV Cache管理器可以通过设置--cache-max-entry-count参数,控制KV缓存占用剩余显存的最大比例。默认的比例为0.8。

不加该参数(默认0.8),运行 Llama3-8b 模型
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/
设为0.5
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/ --cache-max-entry-count 0.5
参数设置为0.01,约等于禁止KV Cache占用显存

2. 使用W4A16量化

lmdeploy lite auto_awq \ /root/model/Meta-Llama-3-8B-Instruct \ --calib-dataset 'ptb' \ --calib-samples 128 \ --calib-seqlen 1024 \ --w-bits 4 \ --w-group-size 128 \ --work-dir /root/model/Meta-Llama-3-8B-Instruct_4bit
使用Chat功能运行W4A16量化后的模型。
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct_4bit --model-format awq
将KV Cache比例再次调为0.01,查看显存占用情况。

LMDeploy服务(serve)

之前都是在本地直接推理大模型,这种方式成为本地部署。在生产环境下,我们有时会将大模型封装为 API 接口服务,供客户端访问。

1. 启动API服务器

通过以下命令启动API服务器,推理Meta-Llama-3-8B-Instruct模型:

lmdeploy serve api_server \ /root/model/Meta-Llama-3-8B-Instruct \ --model-format hf \ --quant-policy 0 \ --server-name 0.0.0.0 \ --server-port 23333 \ --tp 1

2. 使用命令行客户端连接API服务器

lmdeploy serve api_client http://localhost:23333
运行后,可以通过命令行窗口直接与模型对话

3. 网页客户端连接API服务器

Gradio作为前端,启动网页客户端。

pip install gradio==3.50.2 lmdeploy serve gradio http://localhost:23333 \ --server-name 0.0.0.0 \ --server-port 6006

打开浏览器,访问地址http://127.0.0.1:6006 与模型进行对话

推理速度

使用 LMDeploy 在 A100(80G)推理 Llama3,每秒请求处理数(RPS)高达 25,是 vLLM 推理效率的 1.8+ 倍。

但是本文使用的是30%的A100(重在参与?)

克隆仓库,下载数据
cd ~ git clone https://github.com/InternLM/lmdeploy.git cd /root/lmdeploy wget https://hf-mirror.com/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/resolve/main/ShareGPT_V3_unfiltered_cleaned_split.json
执行 benchmark 命令(显存较小,本文调低--cache-max-entry-count至0.5)
python benchmark/profile_throughput.py \ ShareGPT_V3_unfiltered_cleaned_split.json \ /root/model/Meta-Llama-3-8B-Instruct \ --cache-max-entry-count 0.8 \ --concurrency 256 \ --model-format hf \ --quant-policy 0 \ --num-prompts 10000

使用LMDeploy运行视觉多模态大模型Llava-Llama-3

安装依赖

pip install git+https://github.com/haotian-liu/LLaVA.git

运行模型

运行touch /root/pipeline_llava.py 新建一个文件,复制以下代码保存

from lmdeploy import pipeline, ChatTemplateConfig from lmdeploy.vl import load_image pipe = pipeline('xtuner/llava-llama-3-8b-v1_1-hf', chat_template_config=ChatTemplateConfig(model_name='llama3')) image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg') response = pipe(('describe this image', image)) print(response.text)

使用python命令运行该文件

总结

### 文章总结
本文详细介绍了如何使用LMDeploy工具来配置环境、准备模型、进行模型量化(lite),并通过CLI工具、API服务以及网页客户端三种方式与一系列Llama和视觉多模态大模型进行交互。以下是详细步骤及要点:
#### 1. 环境配置与模型准备
- 使用Conda创建并激活名为“lmdeploy”的环境,安装PyTorch和相关依赖库。
- 通过软链接方式将大模型(如Meta-Llama-3-8B-Instruct)导入到工作目录。
#### 2. 使用LMDeploy Chat CLI
- 激活lmdeploy环境后,使用`lmdeploy chat`命令与模型进行直接交互。
#### 3. 模型量化(lite)
- **调整KV Cache缓存大小**:通过`--cache-max-entry-count`参数调整缓存大小以降低显存占用。
- **W4A16量化**:使用`lmdeploy lite auto_awq`对模型进行自动量化处理,提高模型推理效率。
#### 4. LMDeploy服务
- **启动API服务器**:通过`lmdeploy serve api_server`命令启动API服务,提供模型的RESTful API接口。
- **连接API服务**:
- 使用命令行客户端:`lmdeploy serve api_client`连接到API服务器。
- 使用网页客户端:结合Gradio前端,通过浏览器与API进行交互。
#### 5. 推理速度
- 在A100 GPU上(使用30%资源)测得Llama3模型每秒请求处理数(RPS)高达25,显示出高效的推理能力。
#### 6. 视觉多模态大模型Llava-Llama-3
- **安装依赖**:通过pip安装LLaVA的git仓库。
- **运行模型**:使用LMDeploy的pipeline功能加载视觉多模态模型,对图片进行描述性生成。
通过以上步骤,无论是单一模态的语言模型还是视觉多模态模型,LMDeploy都提供了一套完善的环境配置与部署方案,支持从本地推理到API服务部署的全方位操作。这不仅提高了模型的易用性与可访问性,同时也优化了模型的资源占用与推理效率。 llamaapichatapi服务git客户端api服务器服务器大模型cli多模态pytorchsharegradiopythongptgithub命令行iva浏览器
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-20879.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

Ai绘画|如何安装使用最简单的秋叶版ComfyUI 整合包,万字长文手把手详细教你安装部署,快速生成你的第一张AI图像!

上一篇

AI写作助力自媒体,传统模式将被颠覆

下一篇
  • 复制图片
按住ctrl可打开默认菜单