1、创建虚拟环境
# 创建虚拟环境
conda create -n xtuner0121 python=3.10 -y
# 激活虚拟环境
conda activate xtuner0121
# 安装一些必要的库
pip install torch==2.0.1 torchaudio==2.0.2 torchvision==0.15.2 modelscope==1.15.0
2、安装 XTuner
# 创建一个目录,用来存放源代码
mkdir -p /root/InternLM/code
cd /root/InternLM/code
git clone -b v0.1.21 https://github.com/InternLM/XTuner
# 进入到源码目录
cd /root/InternLM/code/XTuner
# 执行安装
pip install -e '.[deepspeed]'
# 验证安装
xtuner version
3、模型准备
# 创建一个目录,用来存放微调的资料
# mkdir -p 命令用于创建目录,并且如果父目录不存在,会自动创建父目录。
mkdir -p /root/InternLM/XTuner
cd /root/InternLM/XTuner
mkdir -p Shanghai_AI_Laboratory
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b Shanghai_AI_Laboratory/internlm2-chat-1_8b
如果自己想要微调的模型在开发机中没找到,也可以自己下载相关模型文件。
from modelscope import snapshot_download
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm2-1_8b', cache_dir="/root/InternLM/XTuner/")
4、微调准备
QLoRA
的方式来微调一个自己的小助手认知作为案例来进行演示。
新建一个 NoteBook,部署好环境。
# 将conda环境一键添加到jupyterlab:
lab add {YOUR_CONDA_ENV_NAME}
开始编写:
# 准备数据文件
mkdir -p datas
touch datas/assistant.json
[
{"conversation": [{"input": "请介绍一下你自己", "output": "我是伍鲜同志的小助手,内在是上海AI实验室书生·浦语的1.8B大模型哦"}]},
{"conversation": [{"input": "你在实战营做什么", "output": "我在这里帮助伍鲜同志完成XTuner微调个人小助手的任务"}]},
]
xtuner list-cfg -p internlm2
xtuner list-cfg
命令用于列出内置的所有配置文件。参数 -p
或 --pattern
表示模式匹配,后面跟着的内容将会在所有的配置文件里进行模糊匹配搜索,然后返回最有可能得内容。比如我们这里微调的是书生·浦语的模型,我们就可以匹配搜索 internlm2
。
xtuner copy-cfg internlm2_chat_1_8b_qlora_alpaca_e3 .
xtuner copy-cfg
命令用于复制一个内置的配置文件。该命令需要两个参数:CON