您好 我在微调bge 1.5的过程中,想在训练的过程中同时加入评估集,然后根据评估集合的loss去保存最优模型,于是我新增了一下一个参数
eval_dataset=eval_dataset,
evaluation_strategy "epoch",
save_strategy "epoch",
save_total_limit 3
load_best_model_at_end True
但是结果遇到了报错,在评估的过程中找不到对应的loss
Traceback (most recent call last):
File "C:\Users\Lichengyang\Desktop\FlagEmbedding-master\FlagEmbedding-master\FlagEmbedding\baai_general_embedding\finetune\run.py", line 116, in
main()
File "C:\Users\Lichengyang\Desktop\FlagEmbedding-master\FlagEmbedding-master\FlagEmbedding\baai_general_embedding\finetune\run.py", line 102, in main
trainer.train()
File "E:\Anaconda3-2022.05\envs\insight\lib\site-packages\transformers\trainer.py", line 1555, in train
return inner_training_loop(
File "E:\Anaconda3-2022.05\envs\insight\lib\site-packages\transformers\trainer.py", line 1937, in _inner_training_loop
self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
File "E:\Anaconda3-2022.05\envs\insight\lib\site-packages\transformers\trainer.py", line 2282, in _maybe_log_save_evaluate
self._save_checkpoint(model, trial, metrics=metrics)
File "E:\Anaconda3-2022.05\envs\insight\lib\site-packages\transformers\trainer.py", line 2407, in _save_checkpoint
metric_value = metrics[metric_to_check]
KeyError: 'eval_loss'
我应该如何解决呢,我直接在模型的forward中统一计算了loss(不管训练还是评估),结果还是找不到这个eval_loss 。。。
期待您的回复~
您好,这个需要在run.py中进行修改,传入eval_dataset
您好,这个需要在run.py中进行修改,传入eval_dataset
您好,我就是传入了这个参数之后,报错了,KeyError: 'eval_loss',打印的评估信息里面没有这个字段。。。
期待您的再次回复~
我们在llm_embedder中实现了训练过程中的评估,可以参考https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/llm_embedder/src/retrieval/trainer.py#L50