Closed YYY-MMW closed 7 months ago
方便贴一下训练的tensorboard loss曲线吗
这是我的一次的训练loss,曲线看似正常,很快下降到1左右,然后一直震荡,推理时输出为换行符或者空🤔️
我仔细检查了我的数据格式应该没问题;我用的是八张A100 80G,为了和你初始16个batch梯度回传一次,我每个GPU设置两个batch;学习率为1e-5;
{"id": 0, "image": "train2017/000000203564.jpg", "conversations": [{"from": "human", "value": "<image>\nAccurately describe the picture in one sentence."}, {"from": "gpt", "value": "A bicycle replica with a clock as the front wheel."}]}
非常感谢🙏你的回复
感谢反馈,请问您使用的数据是COCO Caption吗?其实我还没有完整地用Lora的setting跑完一次训练+测试,不太确定lora部分是否有问题(full tune应该是没问题的),我等下在COCO Caption上跑个Lora的验证试验。
我是使用的COCO Caption数据集,非常感谢能抽空验证🙏期待您的结果
InternVL-Chat-Chinese-V1-2-Plus以这个模型为基础进行微调,checkpoint文件中缺少推理相关文件,我简单的将InternVL-Chat-Chinese-V1-2-Plus里的配置文件拷贝到checkpoint中
@YYY-MMW 请问您是在finetune之后 inference时, 是使用的官方预训练模型的inference示例吗,如下的finetuned_path 是finetune后的模型地址
model = AutoModel.from_pretrained(
finetuned_path,
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=True).eval().cuda()
# Otherwise, you need to set device_map='auto
我采用以上示例代码推理finetune之后的模型,提示缺少configuration_internvl_chat.py 等系列py文件
@Pro-flynn 是的,但是会提示缺少文件,在下载的pretrained文件下有推理相关的脚本,做直接copy过来了。你是用的lora finetune,结果怎么样
@Pro-flynn 是的,但是会提示缺少文件,在下载的pretrained文件下有推理相关的脚本,做直接copy过来了。你是用的lora finetune,结果怎么样
你好,finetune完保存的checkpoint里没有模型的代码文件,可以从pretrain的模型里拷贝过去,就可以用AutoModel加载了
@czczup 请问lora微调的实验结果怎么样,是我处理错了吗
@czczup 请问lora微调的实验结果怎么样,是我处理错了吗
昨晚跑完了一个coco caption的lora微调,输出结果是正常的,但coco caption的karp. test评测没涨点,训完一个epoch反而从143.4掉到了142.3。
我的setting是这样的,可能还要再调一下学习率或者lora rank看看:
set -x
GPUS=${GPUS:-8}
BATCH_SIZE=${BATCH_SIZE:-256}
PER_DEVICE_BATCH_SIZE=${PER_DEVICE_BATCH_SIZE:-32}
GRADIENT_ACC=$((BATCH_SIZE / PER_DEVICE_BATCH_SIZE / GPUS))
export PYTHONPATH="${PYTHONPATH}:$(pwd)"
export MASTER_PORT=34223
export LAUNCHER=pytorch
OUTPUT_DIR='work_dirs/internvl_chat_v1_2_hermes2_yi34b_448_finetune_continue_lora_coco'
if [ ! -d "$OUTPUT_DIR" ]; then
mkdir -p "$OUTPUT_DIR"
fi
# number of gpus: 8
# batch size per gpu: 32
# gradient accumulation steps: 1
# total batch size: 256
# epoch: 1
torchrun \
--nnodes=1 \
--node_rank=0 \
--master_addr=127.0.0.1 \
--nproc_per_node=${GPUS} \
--master_port=${MASTER_PORT} \
${SRUN_ARGS} \
internvl/train/internvl_chat_finetune.py \
--model_name_or_path "./pretrained/InternVL-Chat-Chinese-V1-2-Plus" \
--conv_style "Hermes-2" \
--output_dir ${OUTPUT_DIR} \
--meta_path "shell/data/coco_caption.json" \
--overwrite_output_dir True \
--force_image_size 448 \
--down_sample_ratio 0.5 \
--drop_path_rate 0.0 \
--pad2square False \
--freeze_llm True \
--freeze_mlp True \
--freeze_backbone True \
--use_llm_lora 16 \
--vision_select_layer -1 \
--use_data_resampling False \
--dataloader_num_workers 2 \
--bf16 True \
--num_train_epochs 1 \
--per_device_train_batch_size ${PER_DEVICE_BATCH_SIZE} \
--gradient_accumulation_steps ${GRADIENT_ACC} \
--evaluation_strategy "no" \
--save_strategy "steps" \
--save_steps 200 \
--save_total_limit 1 \
--learning_rate 1e-5 \
--weight_decay 0.05 \
--warmup_ratio 0.03 \
--lr_scheduler_type "cosine" \
--logging_steps 1 \
--max_seq_length 2048 \
--group_by_length True \
--do_train True \
--grad_checkpoint True \
--deepspeed "zero_stage3_config.json" \
--report_to "tensorboard" \
2>&1 | tee -a "${OUTPUT_DIR}/training_log.txt"
请问方便看一下loss曲线吗,我按照这个参数再跑一次
可能还有问题,loss其实没降,我Lora跑的少,还要再研究一下
@czczup 好的,非常感谢你的回复🙏
@Pro-flynn 是的,但是会提示缺少文件,在下载的pretrained文件下有推理相关的脚本,做直接copy过来了。你是用的lora finetune,结果怎么样
@YYY-MMW @czczup 我是做的Grounding任务的finetune(基于lora) ,我跑了一个epoch的微调,目前看结果有问题:用微调之后模型测试了一下训练集,发现连指令遵循都做不到了:prompt是Grounding的prompt(训练集中的prompt) , 但不回答框了,预训练模型虽然Grounding的结果不对,但最起码指令遵循是可以做到的(回答是框)
@Pro-flynn 可能正如作者所说基于lora微调还有待探索
@Pro-flynn 可能正如作者所说基于lora微调还有待探索
大佬们,再给我点时间调一调LORA,QAQ
@czczup 大佬辛苦🙏
@Pro-flynn 可能正如作者所说基于lora微调还有待探索
大佬们,再给我点时间调一调LORA,QAQ
大佬,现在LORA 异常的问题解决了吗
@Pro-flynn 是的,但是会提示缺少文件,在下载的pretrained文件下有推理相关的脚本,做直接copy过来了。你是用的lora finetune,结果怎么样
@YYY-MMW @czczup 我是做的Grounding任务的finetune(基于lora) ,我跑了一个epoch的微调,目前看结果有问题:用微调之后模型测试了一下训练集,发现连指令遵循都做不到了:prompt是Grounding的prompt(训练集中的prompt) , 但不回答框了,预训练模型虽然Grounding的结果不对,但最起码指令遵循是可以做到的(回答是框)
@czczup 我把r调到128以上 现在 Grounding finetune之后可以指令遵循了
@Pro-flynn 你说的是这个参数吗--use_llm_lora 16
@Pro-flynn 你说的是这个参数吗--use_llm_lora 16
是的
@Pro-flynn 可能正如作者所说基于lora微调还有待探索
大佬们,再给我点时间调一调LORA,QAQ
大佬,现在LORA 异常的问题解决了吗
LoRA的rank调大一点就可以了,比如上面的大佬设置--use_llm_lora 128
COCO caption Finetune有点难搞,只用COCO数据,可以把InternVL−Chat−V1.2从113.9的CIDEr finetune到142-143。但finetune InternVL−Chat−V1.2-Plus不会涨点。
多谢大佬🙏
@czczup 大佬,是否可以用lora微调vision的backbone呢?我尝试了一下,loss都是不收敛的。
InternVL-Chat-Chinese-V1-2-Plus以这个模型为基础进行微调,checkpoint文件中缺少推理相关文件,我简单的将InternVL-Chat-Chinese-V1-2-Plus里的配置文件拷贝到checkpoint中