前置准备
我是使用VSCode的,使用InternStudio需要与VSCode进行ssh链接
第一步:先在VSCode下载扩展Remote-SSH
第二步:之后扩展下面会有一个显示屏一样的图标,点击并让鼠标滑到新建远程
第三步: 上面搜索栏会让我们输入ssh链接命令,我们先回到开发机,复制登录命令黏贴上去,并点击C:\User\目录下的\.ssh\config进行连接,成功后右下角会弹出已连接成功,点击连接。
第四步:进入这个界面后,点击打开文件夹,选择/root/文件,就能像在在本地一样在开发机输入指令或者写代码了。
一、Llama 3 Web Demo 部署
第一步:环境配置
在终端输入以下命令进行文件配置
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
第二步:下载模型
mkdir -p ~/model
cd ~/model
使用软连接InternStudio的模型
ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct ~/model/Meta-Llama-3-8B-Instruct
第三步:开始进行Web demo部署
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial
进行依赖安装
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
我们打开端口
添加一个端口,输入8501,然后点击在浏览器打开
这样就可以进行聊天啦!
二、使用 XTuner 完成小助手认知微调
第一步:我们下载XTuner并安装相应的依赖
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .
第二步:我们运行gdata.py
cd ~/Llama3-Tutorial
python tools/gdata.py
生成了json格式的一堆数据对
第三步:开始训练模型
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
第四步:推理验证:
streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
/root/llama3_hf_merged
三、使用 LMDeploy 部署 Llama 3 模型
第一步:配置环境
# 如果你是InternStudio 可以直接使用
# 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]
第二步:在终端部署运行
conda activate lmdeploy
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct
此时的显卡使用如图:
1.设置最大KV Cache缓存大小
使用0.5的 最大KV Cache缓存大小部署
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/ --cache-max-entry-count 0.5
显卡使用如图 :
使用0.01的 最大KV Cache缓存大小部署
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct/ --cache-max-entry-count 0.01
显卡使用如图 :
2.使用W4A16量化
使用以下代码进行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
输入以下命令进行对话
lmdeploy chat /root/model/Meta-Llama-3-8B-Instruct_4bit --model-format awq --cache-max-entry-count 0.01
显卡使用会比上图更小
3.使用网页进行Lmdeploy部署
打开本地powershell输入
ssh -CNg -L 23333:127.0.0.1:23333 root@ssh.intern-ai.org.cn -p 你的端口号
首先需要输入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
新建一个终端以输入以下代码进行gradio连接
lmdeploy serve gradio http://localhost:23333 \
> --server-name 0.0.0.0 \
> --server-port 6006
这样就可以跟llama3聊天啦!