XTuner 微调个人小助手

1 克隆项目相关文件,并创建环境

git clone https://github.com/InternLM/Tutorial.git -b camp4
mkdir -p /root/finetune && cd /root/finetune
conda create -n xtuner-env python=3.10 -y
conda activate xtuner-env

2. 安装 XTuner

git clone https://github.com/InternLM/xtuner.git
cd /root/finetune/xtuner

pip install  -e '.[all]'

-e:表示以“editable”(可编辑)模式安装。这样做的好处是,安装的库与源代码直接链接,因此对源代码的任何更改都会立即反映在库中,适合开发和调试。

安装其他库

pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121
pip install transformers==4.39.0

验证安装

xtuner list-cfg

3.修改训练用数据

mkdir -p /root/finetune/data && cd /root/finetune/data
cp -r /root/Tutorial/data/assistant_Tuner.jsonl  /root/finetune/data

调整后的训练数据 

4.训练启动

4.1软连接开发机准备好的训练模型
mkdir /root/finetune/models

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2_5-7b-chat /root/finetune/models/internlm2_5-7b-chat

4.2修改官方配置模板

复制官方配置模板

修改配置模板中的模型路径,训练数据路径

4.3运行命令,开始微调
xtuner train ./config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py --deepspeed deepspeed_zero2 --work-dir ./work_dirs/assistTuner

 损失率下降中

5.训练结束后的模型保存处理

转换成huggingface格式 

cd /root/finetune/work_dirs/assistTuner
export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU
xtuner convert pth_to_hf ./internlm2_5_chat_7b_qlora_alpaca_e3_copy.py /root/finetune/work_dirs/assistTuner/iter_864.pth ./hf

与原模型合并(三个参数分别为原模型,adapter增量模型, 合并后模型路径)

cd /root/finetune/work_dirs/assistTuner
conda activate xtuner-env

export MKL_SERVICE_FORCE_INTEL=1
export MKL_THREADING_LAYER=GNU
xtuner convert merge /root/finetune/models/internlm2_5-7b-chat ./hf ./merged --max-shard-size 2GB

合并完成 

6.运行训练后的模型

进行端口映射

启动模型对话应用

进行对话,对话助手不同于基座模型,通过微调把自己定义为老六助手^o^!

### 使用 XTuner 进行大模型微调的方法教程 #### 1. 构建数据集 为了使模型能够学习特定的任务或行为,首先需要准备高质量的数据集。根据需求,可以创建一个对话形式的数据集,其中包含提问和对应的理想回答。这些数据将用于指导模型的学习方向[^1]。 ```bash # 数据集应保存为 JSONL 文件格式,每条记录是一个独立的对话样本。 { "instruction": "解释什么是机器学习", "input": "", "output": "机器学习是一种通过算法让计算机从经验中自动改进的技术..." } ``` #### 2. 配置文件编写 XTuner 的配置文件定义了训练的具体参数以及使用的模型架构等信息。以 `internlm_chat_7b` 模型为例,可以通过修改现有的 `.py` 配置模板来适配自己的任务场景[^3]。 以下是简化版配置文件的一个片段: ```python from xtuner.engine import Config model = dict( type='InternLM', version='chat-7b' ) train_dataset_type = 'CustomDataset' data_root = '/path/to/dataset' max_epochs = 3 per_device_train_batch_size = 4 gradient_accumulation_steps = 8 learning_rate = 5e-5 weight_decay = 0.01 warmup_ratio = 0.05 lr_scheduler_type = 'cosine' logging_dir = './logs' save_total_limit = 3 checkpointing_steps = 1000 fp16 = True bf16 = False deepspeed_config_path = "/root/deepspeed_zero2.json" work_dir = "./work_dirs/assistTuner" cfg = Config(locals()) ``` #### 3. 开始微调过程 利用 XTuner 提供的命令行工具可以直接运行指定配置下的微调流程。下面展示了一个典型的执行指令案例: ```bash xtuner train ./config/internlm2_5_chat_7b_qlora_alpaca_e3_copy.py \ --deepspeed deepspeed_zero2 \ --work-dir ./work_dirs/assistTuner ``` 此命令会加载预设好的超参设置并基于 DeepSpeed 技术加速计算效率,在工作目录下逐步存储中间结果与最终完成后的权重文件。 #### 4. 转换至 Hugging Face 格式 当微调完成后如果希望分享成果或者进一步部署应用,则可能需要用到标准框架支持的形式。XTuner 支持把内部生成的结果导出成兼容 Hugging Face Transformers 库的标准结构化存档[^2]。 转换操作如下所示: ```bash xtuner convert-to-hf-model \ ./work_dirs/assistTuner/best_model.pth \ /root/output/huggingface_model/ ``` 这样就可以轻松地与其他依赖该生态系统的项目集成起来了。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值