老师您好,我们最近在微调 bge_v1.5 base 模型。
数据量为1百万,数据类型为: 问句+相似问列表,这种形式,已经全部转换为{"q":"", "pos":[], "neg":[]}形式。
现在遇到的问题是每次还没跑完一轮,基本上loss就收敛了。
下面这个是bge模型训练过程中的測试集准确率。

这个是以bert模型为基地同样训练方式的测试集准确率。

训练参数如下:
# 训练参数:2x80G A100
torchrun --nproc_per_node 2 \
-m FlagEmbedding.baai_general_embedding.finetune.run \
--output_dir {path to save model} \
--model_name_or_path ./models/bge-large-zh-v1.5 \
--train_data ./data/sampled/mt-1000000-20-uniform-both-both.jsonl \
--learning_rate 2e-5 \
--num_train_epochs 5 \
--per_device_train_batch_size 64 \
--dataloader_drop_last True \
--normlized True \
--temperature 0.02 \
--query_max_len 64 \
--passage_max_len 256 \
--train_group_size 21 \
--logging_steps 10
我们尝试使用过 in-batch negatives 和 cross-device negatives, 也试过调整learning rate为1e-5,但整体能达到的效果和上图基本一致。
我们初步觉得是训练方式的问题,老师看看能不能给我们一些建议?
老师您好,我们最近在微调 bge_v1.5 base 模型。
数据量为1百万,数据类型为: 问句+相似问列表,这种形式,已经全部转换为
{"q":"", "pos":[], "neg":[]}形式。现在遇到的问题是每次还没跑完一轮,基本上loss就收敛了。
下面这个是bge模型训练过程中的測试集准确率。

这个是以bert模型为基地同样训练方式的测试集准确率。

训练参数如下:
# 训练参数:2x80G A100 torchrun --nproc_per_node 2 \ -m FlagEmbedding.baai_general_embedding.finetune.run \ --output_dir {path to save model} \ --model_name_or_path ./models/bge-large-zh-v1.5 \ --train_data ./data/sampled/mt-1000000-20-uniform-both-both.jsonl \ --learning_rate 2e-5 \ --num_train_epochs 5 \ --per_device_train_batch_size 64 \ --dataloader_drop_last True \ --normlized True \ --temperature 0.02 \ --query_max_len 64 \ --passage_max_len 256 \ --train_group_size 21 \ --logging_steps 10我们尝试使用过 in-batch negatives 和 cross-device negatives, 也试过调整learning rate为1e-5,但整体能达到的效果和上图基本一致。
我们初步觉得是训练方式的问题,老师看看能不能给我们一些建议?