Closed Chunhui-Zou closed 2 years ago
非常感谢,我在prmopt微调的时候,同时打开--do-train和--do-eval,模型最后会使用test数据,并输出test的结果,但是,我在SAVE_PATH的目录下没有看到保存的模型参数,是我的脚本设置不对吗。
WORKING_DIR=/amax/home/zouchunhui/CPM-2-Finetune-master
NUM_WORKERS=1 NUM_GPUS_PER_WORKER=4
HOST_FILE="${WORKING_DIR}/configs/host_files/hostfile-cpm2"
MP_SIZE=4
DATA_EXT=".txt" DATA_PATH="/amax/home/zouchunhui/CPM-2-Finetune-master/dataset/lcsts/lcsts"
LR=${1-0.1} GRAD_ACC=${2-2} SEED=${3-1234}
CONFIG_PATH="${WORKING_DIR}/configs/model/cpm2_config.json" CKPT_PATH="/amax/home/zouchunhui/CPM-2-Finetune-master/chickpoint/CPM-2-zh"
SAVE_PATH="${WORKING_DIR}/results/lcsts/cpm2_prompt_lcsts_lr${LR}const_G${GRAD_ACC}_prompt_seed${SEED}/" LOG_FILE="${SAVE_PATH}/log.txt" DS_CONFIG="${WORKING_DIR}/configs/deepspeed/ds_lcsts_prompt.json" TOKENIZER_PATH="${WORKING_DIR}/bpe_cn"
PROMPT_CONFIG="${WORKING_DIR}/configs/prompt/lcsts/lcsts_10_0_0.json"
BATCH_SIZE=8 EVAL_BATCH_SIZE=64 TRAIN_ITER=-1 EPOCHS=4
OPTS="" OPTS+=" --model-config ${CONFIG_PATH}" OPTS+=" --model-parallel-size ${MP_SIZE}" OPTS+=" --batch-size ${BATCH_SIZE}" OPTS+=" --eval-batch-size ${EVAL_BATCH_SIZE}" OPTS+=" --gradient-accumulation-steps ${GRAD_ACC}" OPTS+=" --train-iters ${TRAIN_ITER}" OPTS+=" --save ${SAVE_PATH}" OPTS+=" --log-file ${LOG_FILE}" OPTS+=" --load ${CKPT_PATH}" OPTS+=" --data-path ${DATA_PATH}" OPTS+=" --data-ext ${DATA_EXT}" OPTS+=" --data-name lcsts" OPTS+=" --distributed-backend nccl" OPTS+=" --lr ${LR}" OPTS+=" --no-load-optim" OPTS+=" --lr-decay-style constant" OPTS+=" --weight-decay 1e-2" OPTS+=" --clip-grad 1.0" OPTS+=" --warmup 0.0" OPTS+=" --tokenizer-path ${TOKENIZER_PATH}" OPTS+=" --save-interval 100000" OPTS+=" --eval-interval 100" OPTS+=" --eval-iters 10" OPTS+=" --log-interval 10" OPTS+=" --checkpoint-activations" OPTS+=" --deepspeed-activation-checkpointing" OPTS+=" --fp16" OPTS+=" --deepspeed" OPTS+=" --deepspeed_config ${DS_CONFIG}" OPTS+=" --do-train" OPTS+=" --do-valid" OPTS+=" --train-ratio 0.5" OPTS+=" --seed ${SEED}" OPTS+=" --do-eval" OPTS+=" --prompt-tune" OPTS+=" --prompt-config ${PROMPT_CONFIG}"
OPTS+=" --epochs ${EPOCHS}"
CMD="deepspeed --num_nodes ${NUM_WORKERS} --num_gpus ${NUM_GPUS_PER_WORKER} --hostfile ${HOST_FILE} ${WORKING_DIR}/finetune_cpm2.py ${OPTS}"
echo ${CMD} mkdir -p ${SAVE_PATH} ${CMD} 2>&1 | tee ${SAVE_PATH}/train_log
SAVE_PATH下只有三个文件
@Chunhui-Zou OPTS+=" --save-interval 100000" 需要达到 global_step % args.save_interval == 0, 才能保存。你可以把这个数 设置小一些。
再次感谢,我现在还有一个问题,我打开--do_infer跑模型的时候报错了: finetune_cpm2.py: error: unrecognized arguments: --do_infer
@Chunhui-Zou --do-infer, not --do_infer
1、模型微调时,使用的验证集是 valid.jsonl。
2、训练好的模型参数 保存在 脚本里 SAVE_PATH 指定的目录下。 3、测试模型的推理,可以 修改一下脚本和 finetune_cpm2.py:
OPTS+=" --do-train"