KwaiKEG / KwaiAgents

A generalized information-seeking agent system with Large Language Models (LLMs).
Other
1.1k stars 105 forks source link

修复评估脚本(benchmark_eval.py)中的bug #11

Closed Emperorizzis closed 10 months ago

Emperorizzis commented 10 months ago

首先非常感谢您的开源!

我在运行benchmark_eval.py脚本时,发现如下bug,并做了相应修复:

  1. rouge.get_scores(Hypothesis, Reference)方法中,参数"Hypothesis"与"Reference"并不接受值仅为空格的字符串;

  2. 评测集中golden_result_list变量为List[Dict]类型,例如:

    [{'golden_result': '2023年9月29日'},
    {'golden_result': '今年的中秋节是在2023年9月29日。'},
    {'golden_result': '今年的中秋节是阳历2023年9月29日。'},
    {'golden_result': '今年的中秋节是2023年9月29日。'},
    {'golden_result': '根据已知信息,2023年的中秋节是阳历的9月29日。'}]

    因此通过rouge.get_scores(Hypothesis, Reference)方法计算时,Reference应为label['golden_result'].

另外,我发现评估脚本中颠倒了HypothesisReference的位置,但由于最终选取rouge的f值,故在此pr中并未修改。

最后非常期待训练集的开源!

Vincentyua commented 10 months ago

非常感谢关注项目!针对您提出两个bug,我查看代码后回复您的问题: 1、参数"Hypothesis"与"Reference"并不接受值仅为空格的字符串 我们的代码可以正常运行,get_scores不接受参数"Hypothesis"与"Reference"为空字符串,但是接受字符串为空格的字符串 2、Reference应为label['golden_result']的问题 您修改的代码前面部分,label_response_list这个变量经过append,本身就是包含string元素的label list,因此无需再改为label['golden_result'],具体可见代码的478和520行

image

十分感谢您对项目的关注和对代码的review,欢迎继续讨论😊

Emperorizzis commented 10 months ago

非常感谢关注项目!针对您提出两个bug,我查看代码后回复您的问题: 1、参数"Hypothesis"与"Reference"并不接受值仅为空格的字符串 我们的代码可以正常运行,get_scores不接受参数"Hypothesis"与"Reference"为空字符串,但是接受字符串为空格的字符串 2、Reference应为label['golden_result']的问题 您修改的代码前面部分,label_response_list这个变量经过append,本身就是包含string元素的label list,因此无需再改为label['golden_result'],具体可见代码的478和520行 image

十分感谢您对项目的关注和对代码的review,欢迎继续讨论😊

非常感谢您的回复!

针对您回复的两点: 1)我的rouge版本为1.0.1,如运行下述代码会报错: 情况1:Reference为空

from rouge import Rouge
rouge = Rouge()

rouge.get_scores('1 2 3 4 5', ' ')

报错: ValueError: Reference is empty.

情况2:Hypothesis为空

from rouge import Rouge
rouge = Rouge()

rouge.get_scores(' ', '1 2 3 4 5')

报错: ValueError: Hypothesis is empty.

2)感谢您的指正,但我发现repository中的benchmark_eval.py与huggingface中的benchmark_eval.py不一样,我使用的是后者的脚本,所以应该需要改正。

Vincentyua commented 10 months ago

问题1:在本地mac环境和物理机环境使用您提供的代码执行后,发现rouge包版本和您的版本一致的情况下,均可以正常运行 本地mac环境(python=3.11.5) 1704371882561

物理机环境(python=3.7.10) 1704371743745 问题2:对比发现确实huggingface的推理代码较github仓库少更新一次commit,目前已统一,感谢提醒! 训练数据在近期就会开源,再次感谢您对项目的关注😄

Emperorizzis commented 10 months ago

问题1:在本地mac环境和物理机环境使用您提供的代码执行后,发现rouge包版本和您的版本一致的情况下,均可以正常运行 本地mac环境(python=3.11.5) 1704371882561

物理机环境(python=3.7.10) 1704371743745 问题2:对比发现确实huggingface的推理代码较github仓库少更新一次commit,目前已统一,感谢提醒! 训练数据在近期就会开源,再次感谢您对项目的关注😄

问题1:我在物理机上使用与您相同的环境发现确实不报错了,应该是python版本的影响 (rouge=1.0.1时,python版本为3.7.5不报错,版本为3.10.13会报错)

感谢您的回复!

Vincentyua commented 10 months ago

感谢您的尝试! 我在您的python版本上重新进行尝试,发现在python版本为3.10.13,rouge版本为1.0.1时运行以上代码并不会报错,推测是否您python为3.10.13的环境存在和rouge包冲突的其他包导致rouge包不能正常计算。 1704424966052

感谢您的关注!