当前位置:   article > 正文

五一 Llama 3 超级课堂 | LMDeploy 高效部署 Llama3 实践笔记_llama3加速框架deplo

llama3加速框架deplo

准备环境与模型

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

使用LMDeploy Chat CLI 工具

  1. conda activate lmdeploy
  2. 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量化

  1. lmdeploy lite auto_awq \
  2. /root/model/Meta-Llama-3-8B-Instruct \
  3. --calib-dataset 'ptb' \
  4. --calib-samples 128 \
  5. --calib-seqlen 1024 \
  6. --w-bits 4 \
  7. --w-group-size 128 \
  8. --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模型:

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

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

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

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

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

  1. pip install gradio==3.50.2
  2. lmdeploy serve gradio http://localhost:23333 \
  3. --server-name 0.0.0.0 \
  4. --server-port 6006

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

推理速度

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/648656
推荐阅读
相关标签