diff --git a/src/lighteval/utils/utils.py b/src/lighteval/utils/utils.py index 3ab5976d8..7f7006b63 100644 --- a/src/lighteval/utils/utils.py +++ b/src/lighteval/utils/utils.py @@ -56,7 +56,7 @@ def rec(nest: dict, prefix: str, into: dict): ) # Need this for markdown into[prefix + k + sep + str(i)] = vv.tolist() if isinstance(vv, np.ndarray) else vv elif isinstance(v, np.ndarray): - into[prefix + k + sep + str(i)] = v.tolist() + into[prefix + k] = v.tolist() else: v = clean_markdown(v) into[prefix + k] = v diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py index 68e844712..7fef084cc 100644 --- a/tests/unit/utils/test_utils.py +++ b/tests/unit/utils/test_utils.py @@ -22,7 +22,21 @@ import unittest -from lighteval.utils.utils import remove_reasoning_tags +import numpy as np + +from lighteval.utils.utils import flatten_dict, remove_reasoning_tags + + +class TestFlattenDict(unittest.TestCase): + def test_numpy_array_value(self): + result = flatten_dict({"scores": np.array([1, 2])}) + + self.assertEqual(result, {"scores": [1, 2]}) + + def test_numpy_array_value_does_not_reuse_list_index(self): + result = flatten_dict({"items": ["a", "b"], "scores": np.array([1, 2])}) + + self.assertEqual(result, {"items/0": "a", "items/1": "b", "scores": [1, 2]}) class TestRemoveReasoningTags(unittest.TestCase):