From 20660ab5071ab66215345d5fe8c4344df8bfcca6 Mon Sep 17 00:00:00 2001 From: Junnan Liu Date: Thu, 10 Apr 2025 19:47:21 +0800 Subject: [PATCH] [Fix] Fix compare error when k is list in base_evaluator (#2010) * fix gpass compare error of list k * fix compare error in 177 --- opencompass/openicl/icl_evaluator/icl_base_evaluator.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/opencompass/openicl/icl_evaluator/icl_base_evaluator.py b/opencompass/openicl/icl_evaluator/icl_base_evaluator.py index f7ff0277..10cc3fe4 100644 --- a/opencompass/openicl/icl_evaluator/icl_base_evaluator.py +++ b/opencompass/openicl/icl_evaluator/icl_base_evaluator.py @@ -159,9 +159,10 @@ class BaseEvaluator: can_calculate = True c += int(example['detail']['is_correct']) - if can_calculate and n > 1 and k > 1: + k_list = [k] if isinstance(k, int) else k + if can_calculate and n > 1 and max(k_list) > 1: thresholds = [0.0, 0.25, 0.5, 0.75, 1.0] - for _k in [k] if isinstance(k, int) else k: + for _k in k_list: for threshold in thresholds: g_pass = compute_g_pass_at_k(n=n, c=c, @@ -174,7 +175,7 @@ class BaseEvaluator: eval_details.append(detail) - if can_calculate and n > 1 and k > 1: + if can_calculate and n > 1 and max(k_list) > 1: eval_results.update(self.reduce(eval_details)) # Store eval_details in eval_results