前言
使用XTuner 微调个人小助手认知
一、下载模型
#安装魔搭依赖包
pip install modelscope
- 新建download.py内容如下
其中Shanghai_AI_Laboratory/internlm2-chat-1_8b是魔搭对应的模型ID
cache_dir='/home/aistudio/data/model’为指定下载到本地的目录
from modelscope import snapshot_download
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm2-chat-1_8b',cache_dir='/home/aistudio/data/model')
二、安装 XTuner
1.创建环境
#新建一个code文件夹
mkdir -p /home/aistudio/data/code
#切换到该目录下
cd /home/aistudio/data/code
#从 Github 上下载源码
git clone -b v0.1.21 https://github.com/InternLM/XTuner
#进入源码目录
cd XTuner
# 执行安装
pip install -e '.[deepspeed]'
2.结果验证
xtuner version
三. 快速开始
这里我们用 internlm2-chat-1_8b 模型,通过 QLoRA 的方式来微调一个自己的小助手认知作为案例来进行演示
1.准备数据
#新建datas文件夹
mkdir -p datas
#创建json文件
touch datas/assistant.json
2.数据生成
1.新建一个xtuner_generate_assistant.py内容如下
2.修改neme由“伍鲜同志”改为“阿豪”
3.修改数据写入路径为刚刚创建的json文件
import json
# 设置用户的名字
name = '阿豪'
# 设置需要重复添加的数据次数
n = 8000
# 初始化数据
data = [
{
"conversation": [{
"input": "请介绍一下你自己", "output": "我是{}的小助手,内在是上海AI实验室书生·浦语的1.8B大模型哦".format(name)}]},
{
"conversation": [{
"input": "你在实战营做什么", "output": "我在这里帮助{}完成XTuner微调个人小助手的任务".format(name)}]}
]
# 通过循环,将初始化的对话数据重复添加到data列表中
for i in range(n):
data.append(data[0])
data.append(data[1])
# 将data列表中的数据写入到'datas/assistant.json'文件中
with open('datas/assistant.json', 'w', encoding='utf-8') as f:
# 使用json.dump方法将数据以JSON格式写入文件
# ensure_ascii=False 确保中文字符正常显示
# indent=4 使得文件内容格式化,便于阅读
json.dump(data, f, ensure_ascii=False, indent=4)
3.初始化数据
#执行
python xtuner_generate_assistant.py
4.获取训练脚本
xtuner copy-cfg internlm2_chat_1_8b_qlora_alpaca_e3 .
修改内容如下
# Copyright (c) OpenMMLab. All r