clareliu1234

Results 3 comments of clareliu1234

> 官方代码在训练时没有添加验证集指标,不太容易监测是否过拟合。经过尝试,增加`compute_metrics`也不行,`Trainer`的`evaluate`逻辑有点复杂走不到这里,最终还是得重构一下`evaluate`。下面分享一个很简单的重构供参考,训练过程中返回验证集的损失,只需正常添加`do_eval`、`eval_steps`、`evaluation_strategy`等参数就像。可以根据自己的需求完善验证的逻辑。 > > `trainer.py`里`class BiTrainer(Trainer):` > > ```python > def evaluate( > self, > test_dataset: Optional[Union[Dataset, Dict[str, Dataset]]] = None, > ignore_keys: Optional[List[str]] = None, > metric_key_prefix: str =...

#!/bin/bash num_gpus=2 # 保存模型的路径 output_dir=./bge-sft-output # 模型文件夹路径 model_path=./bge-m3/bge-m3 # 训练集文件夹路径 train_data=./newdata batch_size=4 query_max_len=256 # max 8192 passage_max_len=256 # max 8192 torchrun --nproc_per_node $num_gpus \ -m FlagEmbedding.BGE_M3.run \ --output_dir $output_dir \...

> 查看一下训练数据,可以用现有模型打一下分数看看,是否是负样本太简单,模型很容易区分。 感谢回复,我的正样本是从文中随机抽取的一句话,然后用大模型生成的正样本,负样本就是别的文中随机抽的某句话,也是用bge-large-en-v1.5打了分,不过分值是在0.4以下,出现loss为0是因为负样本和正样本太容易区分了吗?应该怎么解决呢?再次感谢您的回复