FlagOpen / FlagEmbedding

Retrieval and Retrieval-augmented LLMs
MIT License
7.69k stars 560 forks source link

BGE-M3评估效果提问 #683

Open zeruiz99 opened 7 months ago

zeruiz99 commented 7 months ago

想问下,我在用evaluate的过程中,先执行的对bge-m3的dense retrieval的评估,然后pooling_method不管选mean还是cls,recall20 100的分数都是0.0,非常奇怪,参数没有修改,但是用了自己的qa数据集

  1. Generate Corpus Embedding python step0-generate_embedding.py --encoder /bge-m3 --index_save_dir /step1 --max_passage_length 512 --batch_size 256 --fp16 --pooling_method cls --normalize_embeddings True

  2. Search Results python step1-search_results.py --encoder /bge-m3 --languages zh_cn --index_save_dir /step1 --result_save_dir /result --qa_data_dir /qa--threads 16 --batch_size 32 --hits 1000 --pooling_method mean --normalize_embeddings True --add_instruction False

  3. Print and Save Evaluation Results python step2-eval_dense_mkqa.py --encoder /bge-m3 --languages zh_cn --search_result_save_dir /result --qa_data_dir qa --eval_result_save_dir /evalresult --metrics recall@20 recall@100 --threads 32 --pooling_method mean --normalize_embeddings True 第二次试mean的时候忘记把第一步的也改成mean了,但是三个都是cls的时候是直接0.0 我的数据集有1760条,有些回答是重复的,因为是单个长回答对应的几个问题,我就拆分放在不同行单独放开了,很奇怪为什么是0.0,按道理数据集小应该也不至于到0.0? 感觉和mean cls没有关系,是因为第一步generate corpus embedding里对应的不是自己的数据集,还是自己的数据集的回答有点长,所以导致0.0

zeruiz99 commented 7 months ago

是不是我的问答对里面回答直接是最早放给step0里去embedding的行列目标所导致的

staoxiao commented 7 months ago

没有太理解这个问题。您确定把corpus、query以及qrel文件都换成自己的数据集了吗? 建议参考该评测脚本:https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/baai_general_embedding/finetune/eval_msmarco.py 更加简单,只需准备187和188行的两个数据

zeruiz99 commented 7 months ago

没有太理解这个问题。您确定把corpus、query以及qrel文件都换成自己的数据集了吗? 建议参考该评测脚本:https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/baai_general_embedding/finetune/eval_msmarco.py 更加简单,只需准备187和188行的两个数据

挺确定的,还有一个问题,在MLDR里面dense_retrieval的step2的171行里: script_path = download_evaluation_script('trec_eval') 这个trec_eval在哪啊

sevenandseven commented 6 months ago

没有太理解这个问题。您确定把corpus、query以及qrel文件都换成自己的数据集了吗? 建议参考该评测脚本:https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/baai_general_embedding/finetune/eval_msmarco.py 更加简单,只需准备187和188行的两个数据

你好,想请问一下可以用eval_msmarco.py 这个方法去评测reranker模型吗?如果可以的话,应该怎么去使用?