diff --git a/opencompass/openicl/icl_evaluator/__init__.py b/opencompass/openicl/icl_evaluator/__init__.py index 1fd1683b..fa8f25ab 100644 --- a/opencompass/openicl/icl_evaluator/__init__.py +++ b/opencompass/openicl/icl_evaluator/__init__.py @@ -12,3 +12,4 @@ from .icl_misc_evaluator import AveragePPLEvaluator # noqa from .icl_plugin_evaluator import TEvalEvaluator # noqa from .icl_toxic_evaluator import ToxicEvaluator # noqa from .lm_evaluator import LMEvaluator # noqa +from .math_evaluator import MATHEvaluator # noqa diff --git a/opencompass/openicl/icl_evaluator/math_evaluator.py b/opencompass/openicl/icl_evaluator/math_evaluator.py index c790c17b..48764252 100644 --- a/opencompass/openicl/icl_evaluator/math_evaluator.py +++ b/opencompass/openicl/icl_evaluator/math_evaluator.py @@ -1,7 +1,3 @@ -from latex2sympy2_extended import NormalizationConfig -from math_verify import (ExprExtractionConfig, LatexExtractionConfig, parse, - verify) - from opencompass.openicl.icl_evaluator import BaseEvaluator from opencompass.registry import ICL_EVALUATORS @@ -10,6 +6,14 @@ from opencompass.registry import ICL_EVALUATORS class MATHEvaluator(BaseEvaluator): def score(self, predictions, references): + try: + from latex2sympy2_extended import NormalizationConfig + from math_verify import (ExprExtractionConfig, + LatexExtractionConfig, parse, verify) + except ImportError: + raise ImportError('Failed to import required modules. Please ' + 'install the necessary packages: ' + 'pip install math_verify latex2sympy2_extended') self.is_num_equal(predictions, references) @@ -75,7 +79,7 @@ class MATHEvaluator(BaseEvaluator): if __name__ == '__main__': import sympy - + from math_verify import parse test_cases = [ # 1. Basic arithmetic operations r'Simple fraction: \boxed{\frac{1}{2}}',