ChatGLM ptuning-v2 训练参数解析

PRE_SEQ_LEN=128
LR=2e-2

CUDA_VISIBLE_DEVICES=0 python3 main.py \
    --do_train \
    --train_file AdvertiseGen/train.json \
    --validation_file AdvertiseGen/dev.json \
    --prompt_column content \
    --response_column summary \
    --overwrite_cache \
    --model_name_or_path THUDM/chatglm-6b \
    --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \
    --overwrite_output_dir \
    --max_source_length 64 \
    --max_target_length 64 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 16 \
    --predict_with_generate \
    --max_steps 3000 \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate $LR \
    --pre_seq_len $PRE_SEQ_LEN \
    --quantization_bit 4

这段代码是一个命令行脚本,用于执行一个名为"main.py"的Python程序。以下是逐行对代码的解释:

  1. PRE_SEQ_LEN=128: 定义了一个名为PRE_SEQ_LEN的变量,并将其设置为128。这个变量的作用在后续的代码中会用到。

  2. LR=2e-2: 定义了一个名为LR的变量,并将其设置为2e-2,即0.02。这个变量表示学习率,在后续的代码中会用到。

  3. CUDA_VISIBLE_DEVICES=0 python3 main.py \:设置CUDA可见设备的环境变量,将其值设置为0,表示使用第一个可见的GPU设备。然后使用Python 3解释器运行名为"main.py"的Python程序。\表示命令继续到下一行。

  4. --do_train \: 一个命令行参数,指示程序执行训练任务。

  5. --train_file AdvertiseGen/train.json \: 指定训练数据文件的路径和文件名为"AdvertiseGen/train.json"。

  6. --validation_file AdvertiseGen/dev.json \: 指定验证数据文件的路径和文件名为"AdvertiseGen/dev.json"。

  7. --prompt_column content \: 指定输入数据中作为提示的列名为"content"。

  8. --response_column summary \: 指定输入数据中作为响应的列名为"summary"。

  9. --overwrite_cache \: 一个命令行参数,指示在缓存存在的情况下覆盖缓存。

    扫描二维码关注公众号,回复: 15518330 查看本文章
  10. --model_name_or_path THUDM/chatglm-6b \: 指定使用的模型的名称或路径为"THUDM/chatglm-6b"。

  11. --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR \: 指定输出目录的路径和名称为"output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR"。这是训练结果和日志的保存位置。

  12. --overwrite_output_dir \: 一个命令行参数,指示在输出目录存在的情况下覆盖输出目录。

  13. --max_source_length 64 \: 指定输入序列的最大长度为64。

  14. --max_target_length 64 \: 指定输出序列的最大长度为64。

  15. --per_device_train_batch_size 1 \: 指定每个训练设备的训练批次大小为1。

  16. --per_device_eval_batch_size 1 \: 指定每个评估设备的评估批次大小为1。

  17. --gradient_accumulation_steps 16 \: 指定梯度累积的步数为16。在每个更新步骤之前,将计算并累积一定数量的梯度。

  18. --predict_with_generate \: 一个命令行参数,指示在生成模型的预测时使用生成模式。

  19. --max_steps 3000 \: 指定训练的最大步数为3000。

  20. --logging_steps 10 \: 指定每隔10个步骤记录一次日志。

  21. --save_steps 1000 \: 指定每隔1000个步骤保存一次模型。

  22. --learning_rate $LR \: 指定学习率为之前定义的LR变量的值。

  23. --pre_seq_len $PRE_SEQ_LEN \: 指定预设序列长度为之前定义的PRE_SEQ_LEN变量的值。

  24. --quantization_bit 4 \: 指定量化位数为4。这个参数可能是与模型相关的特定设置。

总体而言,这段代码是为了执行一个聊天生成模型的训练任务,其中使用了指定的数据集、模型和超参数设置。

  1. 代码的第一行 PRE_SEQ_LEN=128 和第二行 LR=2e-2 是用于定义变量的。PRE_SEQ_LEN 的值被设置为128,LR 的值被设置为0.02。

  2. 第三行 CUDA_VISIBLE_DEVICES=0 python3 main.py \ 是一个命令行命令,将可见的GPU设备设置为设备编号为0的设备,并使用Python 3解释器运行名为"main.py"的Python程序。这个命令使用了反斜杠 \ 表示命令在下一行继续。

  3. 接下来的多行是命令行参数,用于向程序传递配置信息和数据路径。这些参数包括:

  • --do_train:指示程序执行训练任务。

  • --train_file AdvertiseGen/train.json:指定训练数据文件的路径和文件名为"AdvertiseGen/train.json"。

  • --validation_file AdvertiseGen/dev.json:指定验证数据文件的路径和文件名为"AdvertiseGen/dev.json"。

  • --prompt_column content:指定输入数据中作为提示的列名为"content"。

  • --response_column summary:指定输入数据中作为响应的列名为"summary"。

  • --overwrite_cache:指示在缓存存在的情况下覆盖缓存。

  • --model_name_or_path THUDM/chatglm-6b:指定使用的模型的名称或路径为"THUDM/chatglm-6b"。

  • --output_dir output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR:指定输出目录的路径和名称为"output/adgen-chatglm-6b-pt-$PRE_SEQ_LEN-$LR",其中$PRE_SEQ_LEN$LR 是之前定义的变量的值。

  • --overwrite_output_dir:指示在输出目录存在的情况下覆盖输出目录。

  • --max_source_length 64:指定输入序列的最大长度为64。

  • --max_target_length 64:指定输出序列的最大长度为64。

  • --per_device_train_batch_size 1:指定每个训练设备的训练批次大小为1。

  • --per_device_eval_batch_size 1:指定每个评估设备的评估批次大小为1。

  • --gradient_accumulation_steps 16:指定梯度累积的步数为16。在每个更新步骤之前,将计算并累积一定数量的梯度。

  • --predict_with_generate:指示在生成模型的预测时使用生成模式。

  • --max_steps 3000:指定训练的最大步数为3000。

  • --logging_steps 10:指定每隔10个步骤记录一次日志。

  • --save_steps 1000:指定每隔1000个步骤保存一次模型。

  • --learning_rate $LR:指定学习率为之前定义的LR变量的值。

  • --pre_seq_len $PRE_SEQ_LEN:指定预设序列长度为之前定义的PRE_SEQ_LEN变量的值。

  • --quantization_bit 4:指定量化位数为4。

这些参数将被传递给名为"main.py"的Python程序,用于配置训练任务的行为和设置。

Regenerate response

猜你喜欢

转载自blog.csdn.net/sinat_37574187/article/details/131401654