论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
人工智能
›
人工智能
›
Llama 3 Web Demo 部署- XTuner 小助手微调- LMDeploy ...
Llama 3 Web Demo 部署- XTuner 小助手微调- LMDeploy 部署 Llama 3 ...
我爱普洱茶
论坛元老
|
2024-9-6 15:33:56
|
显示全部楼层
|
阅读模式
楼主
主题
1802
|
帖子
1802
|
积分
5406
1 Llama 3 Web Demo 部署
本博客为基于机智流、Datawhale、ModelScope:Llama3-Tutorial(Llama 3 超级课堂)的作业。
1.1 环境部署
使用VSCode远程连接InterStudio开发机,并设置 VSCode 端口映射
使用conda创建虚拟环境,并安装对应的库
conda create -n llama3 python=3.10
conda activate llama3
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
复制代码
1.2 实践教程(InternStudio 版)
新建文件夹
mkdir -p ~/model
cd ~/model
复制代码
从OpenXLab中获取权重(开发机中不需要使用此步)
安装 git-lfs 依靠
# 如果下面命令报错则使用 apt install git git-lfs -y
conda install git-lfs
git-lfs install
复制代码
下载模子或软链接 InternStudio 中的模子(建议使用软链接方式)
#下载模型
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct
#软链接方式
ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct ~/model/Meta-Llama-3-8B-Instruct
复制代码
1.3 WebDemo部署
下载课程代码
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial
复制代码
安装 XTuner (会主动安装其他依靠)
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .
复制代码
运行 web_demo.py
streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
~/model/Meta-Llama-3-8B-Instruct
复制代码
设置端口转发
最终效果
2 XTuner 微调
2.1 自我认知练习数据集准备
cd ~/Llama3-Tutorial
python tools/gdata.py
复制代码
2.2 XTuner设置文件准备
使用 configs/assistant/llama3_8b_instruct_qlora_assistant.py 设置文件
2.3 练习模子
cd ~/Llama3-Tutorial
# 开始训练,使用 deepspeed 加速,A100 40G显存 耗时24分钟
xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth
# Adapter PTH 转 HF 格式
xtuner convert pth_to_hf /root/llama3_pth/llama3_8b_instruct_qlora_assistant.py \
/root/llama3_pth/iter_500.pth \
/root/llama3_hf_adapter
# 模型合并
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/model/Meta-Llama-3-8B-Instruct \
/root/llama3_hf_adapter\
/root/llama3_hf_merged
#注意,路径前面要加空格,否则merge.py会报错,识别不到save_dir.
复制代码
2.4 验证
streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
/root/llama3_hf_merged
复制代码
3 LMDeploy 部署 Llama 3
3.1 环境设置
# studio-conda -t lmdeploy -o pytorch-2.1.2
# 初始化环境
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
复制代码
安装lmdeploy最新版
pip install -U lmdeploy[all]
复制代码
3.2 LMDeploy Chat CLI 工具
在终端运行
conda activate lmdeploy
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct
复制代码
3.3 LMDeploy模子量化(lite)
3.3.1 设置最大KV Cache缓存巨细
模子在运行时,占用的显存可大致分为三部分:模子参数自己占用的显存、KV Cache占用的显存,以及中心运算效果占用的显存。LMDeploy的KV Cache管理器可以通过设置--cache-max-entry-count参数,控制KV缓存占用剩余显存的最大比例。默认的比例为0.8。
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/
# 如果你是InternStudio 就使用
# studio-smi
nvidia-smi
复制代码
此时模子的占用为33236M。下面,改变--cache-max-entry-count参数,设为0.5。
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/ --cache-max-entry-count 0.5
复制代码
新建一个终端运行
# 如果你是InternStudio 就使用
# studio-smi
nvidia-smi
复制代码
把--cache-max-entry-count参数设置为0.01,约等于克制KV Cache占用显存。
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/ --cache-max-entry-count 0.01
复制代码
3.3.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 chat /root/model/Meta-Llama-3-8B-Instruct_4bit --model-format awq --cache-max-entry-count 0.01
复制代码
可以看到,显存占用变为6738MB,明显低落。
3.3.3 在线量化 KV
自 v0.4.0 起,LMDeploy KV 量化方式有原来的离线改为在线。并且,支持两种数值精度 int4、int8。量化方式为 per-head per-token 的非对称量化。
3.4 LMDeploy服务(serve)
3.4.1 启动API服务器
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
复制代码
3.4.2 命令行客户端连接API服务器
通过VS Code新建一个终端: 激活conda环境
conda activate lmdeploy
复制代码
运行命令行客户端
lmdeploy serve api_client http://localhost:23333
复制代码
3.4.3 网页客户端连接API服务器
关闭刚刚的VSCode终端,但服务器端的终端不要关闭。 运行之前确保自己的gradio版本低于4.0.0。
pip install gradio==3.50.2
复制代码
新建一个VSCode终端,激活conda环境。使用Gradio作为前端,启动网页客户端。
conda activate lmdeploy
lmdeploy serve gradio http://localhost:23333 \
--server-name 0.0.0.0 \
--server-port 6006
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
我爱普洱茶
论坛元老
这个人很懒什么都没写!
楼主热帖
事务
KAFKA EAGLE 监控MRS kafka之操作实践 ...
Java 中怎样将 bytes 转换为 long 类型 ...
初学Vue(全家桶)-第16天(vue-router ...
大数据揭秘丨疫情影响下亚马逊女性夹克 ...
Metasploit(msf)利用ms17_010(永恒 ...
OpenHarmony轻量系统开发【1】初始Open ...
ICA:1靶场
如何优雅的备份MySQL数据?看这篇文章 ...
信息系统安全运维整改参考
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表