eval-scope icon indicating copy to clipboard operation
eval-scope copied to clipboard

多指标基准测试评分结果疑惑

Open eightHundreds opened this issue 8 months ago • 2 comments

问题描述 / Issue Description

请简要描述您遇到的问题。 / Please briefly describe the issue you encountered.

比如chinese_simpleqa 评测, 它有3个指标(相关代码如下)

class ChineseSimpleQAAdapter(DataAdapter):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # register metrics
        metric_registry.register(Metric(name='is_correct', object=mean))
        metric_registry.register(Metric(name='is_incorrect', object=mean))
        metric_registry.register(Metric(name='is_not_attempted', object=mean))

        # whether to use LLM as a judge
        self.llm_as_a_judge = True

这回导致最终report中统计的数据量乘3倍. 并且评测总分的计算也是粗暴地做平均。

例如我只评测2条数据,1个数据是is_correct为1, 另一个数据是is_incorrect为1

这是最终report

// 20250414_xxx/reports/模型名称/evalscope_data.json
{
    "name": "data_collection",
    "dataset_name": "evalscope_data",
    "model_name": "grok-3-beta",
    "score": 0.8009,
    "metrics": [
         "categories": [{
                    "name": [
                        "事实性知识"
                    ],
                    "num": 70,
                    "score": 0.5286,
                    "macro_score": 0.6902,
                    "subsets": [
                        {
                            "name": "chinese_simpleqa/中华文化",
                            "score": 0.3333,  // 粗暴的平均分
                            "num": 6   // 这里从2变成6
                     },
        ],

这个数据子集的期望得分是0.5(因为模型答对一个题,答错一个题), 但实际是0.3333

算平均分的代码在这里 (只有一条数据的数据集测试结果, 无论模型怎么回答, 算出的分都是0.3333) Image

EvalScope 版本 / Version (必须)

v0.13.2

eightHundreds avatar Apr 14 '25 12:04 eightHundreds

我这边是用evalscope app 看报告

eightHundreds avatar Apr 14 '25 12:04 eightHundreds

使用collection目前确实有这个问题,后续将修复

Yunnglin avatar Apr 14 '25 13:04 Yunnglin

目前已修复该问题,默认展示is_correct分数

感谢你的反馈!我们将关闭此问题。如果您有任何疑问,请随时重新打开它。如果EvalScope对您有所帮助,欢迎给我们点个STAR以示支持,谢谢!

Yunnglin avatar Nov 04 '25 09:11 Yunnglin