训练
模型下载
编写Python脚本下载模型:使用transformers
库提供的接口来下载并保存模型。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "chatglm2-6b-32k"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 指定本地保存路径
model_save_path = "/home/mnt/workspace/model/chatglm2-6b-32k"
tokenizer_save_path = "/home/mnt/workspace/model/chatglm2-6b-32k"
# 保存模型和tokenizer
model.save_pretrained(model_save_path)
tokenizer.save_pretrained(tokenizer_save_path)
后续使用:当模型下载并保存到本地后,你可以通过相同的路径加载模型进行使用或微调:
from transformers import AutoModelForCausalLM, AutoTokenizer
# 使用本地模型路径加载模型
model = AutoModelForCausalLM.from_pretrained("/home/mnt/workspace/model/chatglm2-6b-32k")
tokenizer = AutoTokenizer.from_pretrained("/home/mnt/workspace/model/chatglm2-6b-32k")
编写训练脚本大致结构框架
编写如下.sh
文件,实现一个训练的基本执行脚本,并引入各自参数来实际训练模型:
.sh
文件是一种Shell脚本文件,用于在类Unix操作系统(如Linux和macOS)上执行一系列命令。.sh
文件通常由一组Shell命令组成,这些命令可以在终端中执行。Shell脚本文件可以用来自动化任务、启动程序、配置环境等。
根据你提供的文件内容,这是一个用于训练机器学习模型的Shell脚本,具体来说是调用accelerate
工具来启动一个训练脚本src/train_sft.py
。以下是对这个脚本每个部分的分析:
accelerate launch src/train_sft.py
:- 使用
accelerate
工具来启动Python脚本src/train_sft.py
。accelerate
是一个用于加速和分布式训练的工具。
- 使用
--model_name_or_path /home/mnt/workspace/model/chatglm2-6b-32k
:- 指定了预训练模型的路径或名称,这里是
/home/mnt/workspace/model/chatglm2-6b-32k
。
- 指定了预训练模型的路径或名称,这里是
--dataset judgement
:- 指定了要使用的数据集名称,这里是
judgement
。
- 指定了要使用的数据集名称,这里是
--do_train
:- 指定脚本进行训练。
--finetuning_type lora
:- 指定微调的类型为具体的微调参数策略
--output_dir /home/mnt/workspace/trained
:- 指定训练后的模型和其他输出的保存路径,这里是
/home/mnt/workspace/trained
。
- 指定训练后的模型和其他输出的保存路径,这里是
--overwrite_cache
:- 指定是否覆盖缓存。
--per_device_train_batch_size 1
:- 指定每个设备的训练批量大小。
--gradient_accumulation_steps 1
:- 指定梯度累积的步数。
--lr_scheduler_type cosine
:- 指定学习率调度器的类型为余弦调度。
--logging_steps 10
:- 指定记录日志的步数间隔。
--save_steps 1000
:- 指定保存模型的步数间隔。
--learning_rate 1e-3
:- 指定学习率,这里是0.001。
--num_train_epochs 15.0
:- 指定训练的轮数。
--plot_loss
:- 指定是否绘制损失图。
--fp16
:- 指定使用16位浮点数进行训练,以节省显存和加速训练。
accelerate launch src/train_sft.py \ 具体训练策略的代码
--model_name_or_path /home/mnt/workspace/model/chatglm2-6b-32k \
--dataset judgement \
--do_train \
--finetuning_type lora \ 具体的微调方式
--output_dir /home/mnt/workspace/trained \
--overwrite_cache \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 1 \
--lr_scheduler_type cosine \
--logging_steps 10 \
--save_steps 1000 \
--learning_rate 1e-3 \
--num_train_epochs 15.0 \
--plot_loss \
--fp16
保存这个文件为train_strategy.sh
,然后你可以在终端中执行以下命令来运行这个脚本:
bash train_strategy.sh
这个脚本会按照指定的参数进行模型训练