项目实训8-模型下载和训练脚本编写

训练

模型下载

编写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。以下是对这个脚本每个部分的分析:

  1. accelerate launch src/train_sft.py
    • 使用accelerate工具来启动Python脚本src/train_sft.pyaccelerate是一个用于加速和分布式训练的工具。
  2. --model_name_or_path /home/mnt/workspace/model/chatglm2-6b-32k
    • 指定了预训练模型的路径或名称,这里是/home/mnt/workspace/model/chatglm2-6b-32k
  3. --dataset judgement
    • 指定了要使用的数据集名称,这里是judgement
  4. --do_train
    • 指定脚本进行训练。
  5. --finetuning_type lora
    • 指定微调的类型为具体的微调参数策略
  6. --output_dir /home/mnt/workspace/trained
    • 指定训练后的模型和其他输出的保存路径,这里是/home/mnt/workspace/trained
  7. --overwrite_cache
    • 指定是否覆盖缓存。
  8. --per_device_train_batch_size 1
    • 指定每个设备的训练批量大小。
  9. --gradient_accumulation_steps 1
    • 指定梯度累积的步数。
  10. --lr_scheduler_type cosine
    • 指定学习率调度器的类型为余弦调度。
  11. --logging_steps 10
    • 指定记录日志的步数间隔。
  12. --save_steps 1000
    • 指定保存模型的步数间隔。
  13. --learning_rate 1e-3
    • 指定学习率,这里是0.001。
  14. --num_train_epochs 15.0
    • 指定训练的轮数。
  15. --plot_loss
    • 指定是否绘制损失图。
  16. --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

这个脚本会按照指定的参数进行模型训练

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值