2024年6月1、2日工作记录

首先是昨天晚上放着跑的全参数微调不知道什么原因停了

运行评估的时候发现是服务器没存储空间了

看了以下原来是full_tuning 每次都要保存模型全部参数占了很大的空间

想了发现llama_factory中提供的评估只有cosine没有

  predict_bleu-4             =     8.5178
  predict_rouge-1            =    25.0013
  predict_rouge-2            =     6.1675
  predict_rouge-l            =    20.7462
  predict_runtime            = 0:07:59.74
  predict_samples_per_second =     15.934
  predict_steps_per_second   =        0.4

所以只好自己来一个checkpoint一个来run bash脚本

然后想了想用kimi来帮忙写个循环依次跑

点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cpdtk6sudu66ie9ag350

Lora微调

设置了epoch = 1000轮次的微调 

但是快要结束的时候还是

CUDA_VISIBLE_DEVICES=1 python src/train_bash.py \

    --stage sft \

    --do_train True \

    --model_name_or_path /mnt/user_database/model/Qwen1.5-0.5B-Chat \

    --finetuning_type lora \

    --template qwen \

    --dataset_dir data \

    --dataset 样例_内科 \

    --cutoff_len 1024 \

    --learning_rate 5e-05 \

    --num_train_epochs 1000.0 \

    --max_samples 100000 \

    --per_device_train_batch_size 16 \

    --gradient_accumulation_steps 8 \

    --lr_scheduler_type cosine \

    --max_grad_norm 1.0 \

    --logging_steps 5 \

    --save_steps 300 \

    --warmup_steps 0 \

    --optim adamw_torch \

    --report_to none \

    --output_dir saves/Qwen1.5-0.5B-Chat/lora/train_epoch=1000 \

    --bf16 True \

    --lora_rank 8 \

    --lora_alpha 16 \

    --lora_dropout 0.1 \

    --lora_target q_proj,v_proj \

    --plot_loss True

可以试试改进的地方

修改项目中的代码使其每次要保存的时候跑以下上面的那些指标

主要还是服务器内存有限不能每次都把中间的保存下来

首先是找到train的位置

(base) daichenrui2404@code:~/LLaMA-Factory$ find . -name "trainer.py"
./src/llmtuner/train/ppo/trainer.py
./src/llmtuner/train/pt/trainer.py
./src/llmtuner/train/dpo/trainer.py
./src/llmtuner/train/orpo/trainer.py
./src/llmtuner/train/sft/trainer.py
./src/llmtuner/train/rm/trainer.py

应该是这个./src/llmtuner/train/sft/trainer.py

他那个项目是支持训练的时候eval的

然后把他eval的loss指标换成上面的应该可以

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --do_train True \
    --model_name_or_path /mnt/user_database/model/Qwen1.5-0.5B-Chat \
    --finetuning_type full \
    --template qwen \
    --dataset_dir data \
    --dataset 儿科,内科,外科,妇产科,男科,肿瘤科 \
    --cutoff_len 1024 \
    --learning_rate 1e-06 \
    --num_train_epochs 1000.0 \
    --max_samples 10000 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --optim adamw_torch \
    --output_dir saves/Qwen1.5-0.5B-Chat/full/train_2024-06-01-13-53-17 \
    --bf16 True \
    --val_size 1 \
    --evaluation_strategy steps \
    --eval_steps 100 \
    --per_device_eval_batch_size 2 \
    --load_best_model_at_end True \
    --plot_loss True

对比没有eval时的命令

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --do_train True \
    --model_name_or_path /mnt/user_database/model/Qwen1.5-0.5B-Chat \
    --finetuning_type full \
    --template qwen \
    --dataset_dir data \
    --dataset 儿科,内科,外科,妇产科,男科,肿瘤科 \
    --cutoff_len 1024 \
    --learning_rate 1e-06 \
    --num_train_epochs 1000.0 \
    --max_samples 10000 \
    --per_device_train_batch_size 2 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 100 \
    --warmup_steps 0 \
    --optim adamw_torch \
    --output_dir saves/Qwen1.5-0.5B-Chat/full/train_2024-06-01-13-53-17 \
    --bf16 True \
    --plot_loss True

发现是这个

    --val_size 1 \
    --evaluation_strategy steps \
    --eval_steps 100 \
    --per_device_eval_batch_size 2 \
    --load_best_model_at_end True \

看看评估的时候的bash命令

这是要保存预测结果

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path /mnt/user_database/model/Qwen1.5-0.5B-Chat \
    --finetuning_type full \
    --template qwen \
    --dataset_dir data \
    --dataset 样例_内科 \
    --cutoff_len 1024 \
    --max_samples 100000 \
    --per_device_eval_batch_size 8 \
    --predict_with_generate True \
    --max_new_tokens 128 \
    --top_p 0.7 \
    --temperature 0.95 \
    --output_dir saves/Qwen1.5-0.5B-Chat/full/eval_2024-06-01-13-53-17 \
    --do_predict True 

不保存预测结果

CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
    --stage sft \
    --model_name_or_path /mnt/user_database/model/Qwen1.5-0.5B-Chat \
    --finetuning_type full \
    --template qwen \
    --dataset_dir data \
    --dataset 儿科 \
    --cutoff_len 1024 \
    --max_samples 100000 \
    --per_device_eval_batch_size 8 \
    --predict_with_generate True \
    --max_new_tokens 128 \
    --top_p 0.7 \
    --temperature 0.95 \
    --output_dir saves/Qwen1.5-0.5B-Chat/full/eval_2024-06-01-13-53-17 \
    --do_eval True 

 所有的参数

train_bash.py [-h] --model_name_or_path MODEL_NAME_OR_PATH [--adapter_name_or_path ADAPTER_NAME_OR_PATH] [--cache_dir CACHE_DIR]
                     [--use_fast_tokenizer [USE_FAST_TOKENIZER]] [--resize_vocab [RESIZE_VOCAB]] [--split_special_tokens [SPLIT_SPECIAL_TOKENS]]
                     [--model_revision MODEL_REVISION] [--low_cpu_mem_usage [LOW_CPU_MEM_USAGE]] [--no_low_cpu_mem_usage] [--quantization_bit QUANTIZATION_BIT]
                     [--quantization_type {fp4,nf4}] [--double_quantization [DOUBLE_QUANTIZATION]] [--no_double_quantization] [--quantization_device_map {auto}]
                     [--rope_scaling {linear,dynamic}] [--flash_attn [FLASH_ATTN]] [--shift_attn [SHIFT_ATTN]] [--use_unsloth [USE_UNSLOTH]]
                     [--moe_aux_loss_coef MOE_AUX_LOSS_COEF] [--disable_gradient_checkpointing [DISABLE_GRADIENT_CHECKPOINTING]]
                     [--upcast_layernorm [UPCAST_LAYERNORM]] [--upcast_lmhead_output [UPCAST_LMHEAD_OUTPUT]] [--infer_backend {huggingface,vllm}]
                     [--vllm_maxlen VLLM_MAXLEN] [--vllm_gpu_util VLLM_GPU_UTIL] [--vllm_enforce_eager [VLLM_ENFORCE_EAGER]] [--offload_folder OFFLOAD_FOLDER]
                     [--use_cache [USE_CACHE]] [--no_use_cache] [--hf_hub_token HF_HUB_TOKEN] [--ms_hub_token MS_HUB_TOKEN] [--export_dir EXPORT_DIR]
                     [--export_size EXPORT_SIZE] [--export_quantization_bit EXPORT_QUANTIZATION_BIT] [--export_quantization_dataset EXPORT_QUANTIZATION_DATASET]
                     [--export_quantization_nsamples EXPORT_QUANTIZATION_NSAMPLES] [--export_quantization_maxlen EXPORT_QUANTIZATION_MAXLEN]
                     [--export_legacy_format [EXPORT_LEGACY_FORMAT]] [--export_hub_model_id EXPORT_HUB_MODEL_ID] [--print_param_status [PRINT_PARAM_STATUS]]
                     [--template TEMPLATE] [--dataset DATASET] [--dataset_dir DATASET_DIR] [--split SPLIT] [--cutoff_len CUTOFF_LEN]
                     [--reserved_label_len RESERVED_LABEL_LEN] [--train_on_prompt [TRAIN_ON_PROMPT]] [--streaming [STREAMING]] [--buffer_size BUFFER_SIZE]
                     [--mix_strategy {concat,interleave_under,interleave_over}] [--interleave_probs INTERLEAVE_PROBS] [--overwrite_cache [OVERWRITE_CACHE]]
                     [--preprocessing_num_workers PREPROCESSING_NUM_WORKERS] [--max_samples MAX_SAMPLES] [--eval_num_beams EVAL_NUM_BEAMS]
                     [--ignore_pad_token_for_loss [IGNORE_PAD_TOKEN_FOR_LOSS]] [--no_ignore_pad_token_for_loss] [--val_size VAL_SIZE] [--packing PACKING]
                     [--tokenized_path TOKENIZED_PATH] --output_dir OUTPUT_DIR [--overwrite_output_dir [OVERWRITE_OUTPUT_DIR]] [--do_train [DO_TRAIN]]
                     [--do_eval [DO_EVAL]] [--do_predict [DO_PREDICT]] [--evaluation_strategy {no,steps,epoch}] [--prediction_loss_only [PREDICTION_LOSS_ONLY]]
                     [--per_device_train_batch_size PER_DEVICE_TRAIN_BATCH_SIZE] [--per_device_eval_batch_size PER_DEVICE_EVAL_BATCH_SIZE]
                     [--per_gpu_train_batch_size PER_GPU_TRAIN_BATCH_SIZE] [--per_gpu_eval_batch_size PER_GPU_EVAL_BATCH_SIZE]
                     [--gradient_accumulation_steps GRADIENT_ACCUMULATION_STEPS] [--eval_accumulation_steps EVAL_ACCUMULATION_STEPS] [--eval_delay EVAL_DELAY]
                     [--learning_rate LEARNING_RATE] [--weight_decay WEIGHT_DECAY] [--adam_beta1 ADAM_BETA1] [--adam_beta2 ADAM_BETA2]
                     [--adam_epsilon ADAM_EPSILON] [--max_grad_norm MAX_GRAD_NORM] [--num_train_epochs NUM_TRAIN_EPOCHS] [--max_steps MAX_STEPS]
                     [--lr_scheduler_type {linear,cosine,cosine_with_restarts,polynomial,constant,constant_with_warmup,inverse_sqrt,reduce_lr_on_plateau}]
                     [--lr_scheduler_kwargs LR_SCHEDULER_KWARGS] [--warmup_ratio WARMUP_RATIO] [--warmup_steps WARMUP_STEPS]
                     [--log_level {detail,debug,info,warning,error,critical,passive}] [--log_level_replica {detail,debug,info,warning,error,critical,passive}]
                     [--log_on_each_node [LOG_ON_EACH_NODE]] [--no_log_on_each_node] [--logging_dir LOGGING_DIR] [--logging_strategy {no,steps,epoch}]
                     [--logging_first_step [LOGGING_FIRST_STEP]] [--logging_steps LOGGING_STEPS] [--logging_nan_inf_filter [LOGGING_NAN_INF_FILTER]]
                     [--no_logging_nan_inf_filter] [--save_strategy {no,steps,epoch}] [--save_steps SAVE_STEPS] [--save_total_limit SAVE_TOTAL_LIMIT]
                     [--save_safetensors [SAVE_SAFETENSORS]] [--no_save_safetensors] [--save_on_each_node [SAVE_ON_EACH_NODE]]
                     [--save_only_model [SAVE_ONLY_MODEL]] [--no_cuda [NO_CUDA]] [--use_cpu [USE_CPU]] [--use_mps_device [USE_MPS_DEVICE]] [--seed SEED]
                     [--data_seed DATA_SEED] [--jit_mode_eval [JIT_MODE_EVAL]] [--use_ipex [USE_IPEX]] [--bf16 [BF16]] [--fp16 [FP16]]
                     [--fp16_opt_level FP16_OPT_LEVEL] [--half_precision_backend {auto,apex,cpu_amp}] [--bf16_full_eval [BF16_FULL_EVAL]]
                     [--fp16_full_eval [FP16_FULL_EVAL]] [--tf32 TF32] [--local_rank LOCAL_RANK] [--ddp_backend {nccl,gloo,mpi,ccl,hccl}]
                     [--tpu_num_cores TPU_NUM_CORES] [--tpu_metrics_debug [TPU_METRICS_DEBUG]] [--debug DEBUG [DEBUG ...]]
                     [--dataloader_drop_last [DATALOADER_DROP_LAST]] [--eval_steps EVAL_STEPS] [--dataloader_num_workers DATALOADER_NUM_WORKERS]
                     [--dataloader_prefetch_factor DATALOADER_PREFETCH_FACTOR] [--past_index PAST_INDEX] [--run_name RUN_NAME] [--disable_tqdm DISABLE_TQDM]
                     [--remove_unused_columns [REMOVE_UNUSED_COLUMNS]] [--no_remove_unused_columns] [--label_names LABEL_NAMES [LABEL_NAMES ...]]
                     [--load_best_model_at_end [LOAD_BEST_MODEL_AT_END]] [--metric_for_best_model METRIC_FOR_BEST_MODEL] [--greater_is_better GREATER_IS_BETTER]
                     [--ignore_data_skip [IGNORE_DATA_SKIP]] [--fsdp FSDP] [--fsdp_min_num_params FSDP_MIN_NUM_PARAMS] [--fsdp_config FSDP_CONFIG]
                     [--fsdp_transformer_layer_cls_to_wrap FSDP_TRANSFORMER_LAYER_CLS_TO_WRAP] [--accelerator_config ACCELERATOR_CONFIG] [--deepspeed DEEPSPEED]
                     [--label_smoothing_factor LABEL_SMOOTHING_FACTOR]
                     [--optim {adamw_hf,adamw_torch,adamw_torch_fused,adamw_torch_xla,adamw_torch_npu_fused,adamw_apex_fused,adafactor,adamw_anyprecision,sgd,adagrad,adamw_bnb_8bit,adamw_8bit,lion_8bit,lion_32bit,paged_adamw_32bit,paged_adamw_8bit,paged_lion_32bit,paged_lion_8bit,rmsprop,rmsprop_bnb,rmsprop_bnb_8bit,rmsprop_bnb_32bit,galore_adamw,galore_adamw_8bit,galore_adafactor,galore_adamw_layerwise,galore_adamw_8bit_layerwise,galore_adafactor_layerwise}]
                     [--optim_args OPTIM_ARGS] [--adafactor [ADAFACTOR]] [--group_by_length [GROUP_BY_LENGTH]] [--length_column_name LENGTH_COLUMN_NAME]
                     [--report_to REPORT_TO [REPORT_TO ...]] [--ddp_find_unused_parameters DDP_FIND_UNUSED_PARAMETERS] [--ddp_bucket_cap_mb DDP_BUCKET_CAP_MB]
                     [--ddp_broadcast_buffers DDP_BROADCAST_BUFFERS] [--dataloader_pin_memory [DATALOADER_PIN_MEMORY]] [--no_dataloader_pin_memory]
                     [--dataloader_persistent_workers [DATALOADER_PERSISTENT_WORKERS]] [--skip_memory_metrics [SKIP_MEMORY_METRICS]] [--no_skip_memory_metrics]
                     [--use_legacy_prediction_loop [USE_LEGACY_PREDICTION_LOOP]] [--push_to_hub [PUSH_TO_HUB]] [--resume_from_checkpoint RESUME_FROM_CHECKPOINT]
                     [--hub_model_id HUB_MODEL_ID] [--hub_strategy {end,every_save,checkpoint,all_checkpoints}] [--hub_token HUB_TOKEN]
                     [--hub_private_repo [HUB_PRIVATE_REPO]] [--hub_always_push [HUB_ALWAYS_PUSH]] [--gradient_checkpointing [GRADIENT_CHECKPOINTING]]
                     [--gradient_checkpointing_kwargs GRADIENT_CHECKPOINTING_KWARGS] [--include_inputs_for_metrics [INCLUDE_INPUTS_FOR_METRICS]]
                     [--fp16_backend {auto,apex,cpu_amp}] [--push_to_hub_model_id PUSH_TO_HUB_MODEL_ID] [--push_to_hub_organization PUSH_TO_HUB_ORGANIZATION]
                     [--push_to_hub_token PUSH_TO_HUB_TOKEN] [--mp_parameters MP_PARAMETERS] [--auto_find_batch_size [AUTO_FIND_BATCH_SIZE]]
                     [--full_determinism [FULL_DETERMINISM]] [--torchdynamo TORCHDYNAMO] [--ray_scope RAY_SCOPE] [--ddp_timeout DDP_TIMEOUT]
                     [--torch_compile [TORCH_COMPILE]] [--torch_compile_backend TORCH_COMPILE_BACKEND] [--torch_compile_mode TORCH_COMPILE_MODE]
                     [--dispatch_batches DISPATCH_BATCHES] [--split_batches SPLIT_BATCHES] [--include_tokens_per_second [INCLUDE_TOKENS_PER_SECOND]]
                     [--include_num_input_tokens_seen [INCLUDE_NUM_INPUT_TOKENS_SEEN]] [--neftune_noise_alpha NEFTUNE_NOISE_ALPHA]
                     [--optim_target_modules OPTIM_TARGET_MODULES] [--sortish_sampler [SORTISH_SAMPLER]] [--predict_with_generate [PREDICT_WITH_GENERATE]]
                     [--generation_max_length GENERATION_MAX_LENGTH] [--generation_num_beams GENERATION_NUM_BEAMS] [--generation_config GENERATION_CONFIG]
                     [--use_galore [USE_GALORE]] [--galore_target GALORE_TARGET] [--galore_rank GALORE_RANK] [--galore_update_interval GALORE_UPDATE_INTERVAL]
                     [--galore_scale GALORE_SCALE] [--galore_proj_type {std,reverse_std,right,left,full}] [--galore_layerwise [GALORE_LAYERWISE]]
                     [--dpo_beta DPO_BETA] [--dpo_loss {sigmoid,hinge,ipo,kto_pair}] [--dpo_label_smoothing DPO_LABEL_SMOOTHING] [--dpo_ftx DPO_FTX]
                     [--orpo_beta ORPO_BETA] [--ppo_buffer_size PPO_BUFFER_SIZE] [--ppo_epochs PPO_EPOCHS] [--ppo_score_norm [PPO_SCORE_NORM]]
                     [--ppo_target PPO_TARGET] [--ppo_whiten_rewards [PPO_WHITEN_REWARDS]] [--ref_model REF_MODEL] [--ref_model_adapters REF_MODEL_ADAPTERS]
                     [--ref_model_quantization_bit REF_MODEL_QUANTIZATION_BIT] [--reward_model REWARD_MODEL] [--reward_model_adapters REWARD_MODEL_ADAPTERS]
                     [--reward_model_quantization_bit REWARD_MODEL_QUANTIZATION_BIT] [--reward_model_type {lora,full,api}]
                     [--additional_target ADDITIONAL_TARGET] [--lora_alpha LORA_ALPHA] [--lora_dropout LORA_DROPOUT] [--lora_rank LORA_RANK]
                     [--lora_target LORA_TARGET] [--loraplus_lr_ratio LORAPLUS_LR_RATIO] [--loraplus_lr_embedding LORAPLUS_LR_EMBEDDING]
                     [--use_rslora [USE_RSLORA]] [--use_dora [USE_DORA]] [--create_new_adapter [CREATE_NEW_ADAPTER]]
                     [--name_module_trainable NAME_MODULE_TRAINABLE] [--num_layer_trainable NUM_LAYER_TRAINABLE] [--pure_bf16 [PURE_BF16]]
                     [--stage {pt,sft,rm,ppo,dpo,orpo}] [--finetuning_type {lora,freeze,full}] [--use_llama_pro [USE_LLAMA_PRO]] [--plot_loss [PLOT_LOSS]]
                     [--do_sample [DO_SAMPLE]] [--no_do_sample] [--temperature TEMPERATURE] [--top_p TOP_P] [--top_k TOP_K] [--num_beams NUM_BEAMS]
                     [--max_length MAX_LENGTH] [--max_new_tokens MAX_NEW_TOKENS] [--repetition_penalty REPETITION_PENALTY] [--length_penalty LENGTH_PENALTY]

训练结果

在lora微调0.5B的千问时

前1000的epoch一直开始loss设置为5e-5

然后到要结束的时候

用了1e-07的学习率就一直loss就一直卡在了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值