当前位置:   article > 正文

精调训练中文LLaMA模型实战教程,民间羊驼模型_llama训练实战

llama训练实战

羊驼实战系列索引

博文1:本地部署中文LLaMA模型实战教程,民间羊驼模型
博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型
博文3:精调训练中文LLaMA模型实战教程,民间羊驼模型(本博客)

简介

在学习完上篇【博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型】后,我们已经学会了使用无监督的语料预训练LLaMA模型,无监督的语料能让模型学会预测下一个字符是什么,但是还不能让模型理解人类的对话意图,经过指令精调之后模型就可以具备对话能力了。
本博客主要包含以下内容:
1训练数据准备,精调指令.json。
2训练脚本编写,主要参数讲解,消耗显存控制在24GB以内
3训练实战,测评。

系统配置

系统:Ubuntu 20.10
CUDA Version: 11.8
GPU: RTX3090 24G
内存: 64 G
anaconda(python版本管理)
RTX3090 24G显存刚好够用,设置合理的参数可以正常训练!

项目下载

GitHub地址
v3.2版本代码 https://github.com/ymcui/Chinese-LLaMA-Alpaca/archive/refs/tags/v3.2.zip

环境安装

requirements.txt

torch==1.13.1
peft==0.3.0dev
transformers==4.28.1
sentencepiece==0.1.97
wandb
datasets
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这个我写的比作者仓库的多了wandb、datasets,亲测这个是需要安装的。

1 torch大家可以去官网寻找安装命令 https://pytorch.org/
我的cuda是11.8,使用官方教程的cu117安装,也是可以使用的

pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
  • 1

2 peft可能提示找不到包,选择手动安装,下载代码peft 0.3.0 zip 解压后,进入代码目录,然后安装

cd peft-0.3.0
python setup.py install
  • 1
  • 2

3 其余的使用pip install 命令安装

pip install transformers==4.28.1
pip install sentencepiece==0.1.97
pip install wandb
pip install datasets
  • 1
  • 2
  • 3
  • 4

词表参数冻结

词表无需训练,一个3090 24g一方面显存会不够用,另一方面词表训练需要很大训练量。![在这里插入图片描述](https://img-blog.csdnimg.cn/faa05cbe172c4e01b6dfca43ba977c62.png在这里插入图片描述

在scripts/run_clm_sft_with_peft.py文件365行新增一行代码

modules_to_save=None
  • 1

torchrun.sh

lr=1e-4
lora_rank=8
lora_alpha=32
lora_trainable="q_proj,v_proj,k_proj,o_proj,gate_proj,down_proj,up_proj"
modules_to_save="embed_tokens,lm_head"
lora_dropout=0.05
RANDOM=0
pretrained_model=/home/zhaoxin/workspace/chatGPT/model/llama_hf_chinese
chinese_tokenizer_path=/home/zhaoxin/workspace/chatGPT/model/llama_hf_chinese/tokenizer.model
dataset_dir=/home/zhaoxin/workspace/chatGPT/datas/alpaca/train
per_device_train_batch_size=1
per_device_eval_batch_size=1
training_steps=100
gradient_accumulation_steps=1
output_dir=/home/zhaoxin/workspace/chatGPT/model/buddy_alphca
validation_file=/home/zhaoxin/workspace/chatGPT/datas/alpaca/val/alpaca_data_val.json
deepspeed_config_file=ds_zero2_no_offload.json
torchrun --nnodes 1 --nproc_per_node 1 run_clm_sft_with_peft.py \
--deepspeed ${deepspeed_config_file} \
--model_name_or_path ${pretrained_model} \
--tokenizer_name_or_path ${chinese_tokenizer_path} \
--dataset_dir ${dataset_dir} \
--validation_split_percentage 0.001 \
--per_device_train_batch_size ${per_device_train_batch_size} \
--per_device_eval_batch_size ${per_device_eval_batch_size} \
--do_train \
--do_eval \
--seed $RANDOM \
--fp16 \
--max_steps ${training_steps} \
--lr_scheduler_type cosine \
--learning_rate ${lr} \
--warmup_ratio 0.03 \
--weight_decay 0 \
--logging_strategy steps \
--logging_steps 10 \
--save_strategy steps \
--save_total_limit 3 \
--evaluation_strategy steps \
--eval_steps 250 \
--save_steps 500 \
--gradient_accumulation_steps ${gradient_accumulation_steps} \
--preprocessing_num_workers 8 \
--max_seq_length 500 \
--output_dir ${output_dir} \
--overwrite_output_dir \
--ddp_timeout 30000 \
--logging_first_step True \
--lora_rank ${lora_rank} \
--lora_alpha ${lora_alpha} \
--trainable ${lora_trainable} \
--lora_dropout ${lora_dropout} \
--torch_dtype float16 \
--validation_file ${validation_file} \
--ddp_find_unused_parameters False
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55

validation_file是从项目下的data/alpaca_data_zh_51k.json取了部分数据,大家可根据实际情况制作验证集。
在这里插入图片描述
ds_zero2_no_offload.json在项目的scripts/下面

精调指令.json

项目目录下data/alpaca_data_zh_51k.json是一份精调训练数据
在这里插入图片描述
每一条训练数据包含三个部分:instruction、input、output
其中input可以没有,这样就相当于是一个问答数据集。数据集可以通过调用gpt3.5turbo接口来制作。

测评

稍后发布哦

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号