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