本文探讨了在评估大型语言模型时,LaTeX公式解析所面临的挑战。特别是在Hugging Face的数学评估基准中,模型输出的LaTeX公式与标准答案的解析和比较困难重重。由于Sympy库无法完全解析所有LaTeX表达式,导致评估准确率受限。为了解决这个问题,文章提出了通过添加字符串比较检查来缓解解析问题,并展示了修复前后模型表现的对比结果。
🧐 **LaTeX解析的困境**: 在评估大型语言模型时,尤其是在涉及数学计算和符号的场景中,LaTeX公式的解析成为一个难题。Sympy库虽然被用于解析LaTeX,但其解析能力有限,无法处理所有标准的LaTeX表达式,导致评估准确率下降。
🤔 **问题示例**: 文章列举了Sympy库无法正确解析的LaTeX表达式示例,如区间表示、集合运算等,这些问题直接影响了评估结果的准确性。
💡 **解决方案**: 为了缓解LaTeX解析问题,文章提出了在代码中添加字符串比较检查的方法。这种方法能够识别并处理Sympy库无法解析的表达式,从而提高评估的准确性。
📊 **修复效果**: 文章展示了LM评估工具修复前后模型Top 25的对比结果,表明通过添加字符串比较检查,可以有效提高模型在LaTeX公式解析方面的表现。
原创 Hugging Face 2025-05-07 22:00 广东
缓解评估输入中带有 LaTeX 公式场景下的解析问题

这是 大模型评估排障指南 系列文章的第二篇,敬请关注系列文章:关于推理关于 公式解析关于可复现性解析 LaTeX 很难。这个问题在评估输出为 的模型时经常会遇到,例如 Hugging Face 的数学评估基准。https://hf.co/datasets/lighteval/MATH这个基准使用 来表示数学领域的计算和符号。评估难点在于对模型输出与标准答案的解析和比较。 结果表明,解析 没有标准方法。
摘自sympy文档lm-evaluation 框架使用sympy(一个用于符号数学的 Python 库) 来对 LaTeX 进行解析和比较。 使用 sympy
解析真值 (用真值自身对比测试) 只能得到约 0.94 的准确率。 怎么会是这样呢?后来发现 sympy
无法解析某些 (标准的 ) 表达式。https://github.com/sympy/sympy例如:couldn't parse one of [0,1) 或 [0,1), I expected one of these: ']'
[0,1)
~~^
couldn't parse one of (-\iny,-5]\cup[5,\iny) or (-\iny,-5]\cup[5,\iny), I expected something else here
(-\iny,-5]\cup[5,\iny)
~~~~~~^
couldn't parse one of -\frac{1}{{}2x} or -\frac{1}{{}2x}, I don't understand this
-\frac{1}{{}2x}
~~~~~~~~~~~^
如何缓解这个问题?
重写 语法解析模块并在代码中添加必须功能;或者往代码里添加人工检查来提高模型得分。 在几乎陷入问题陷阱之后,我们认为在代码中添加字符串比较检查差不多就能缓解这个问题了。https://github.com/sympy/sympy/blob/master/sympy/parsing/latex/lark/grammar/latex.lark
LM 评估工具修复结果
修复前后模型 Top 25 对比结果表格如下:
英文原文: https://raw.githubusercontent.com/huggingface/evaluation-guidebook/refs/heads/main/contents/troubleshooting/troubleshooting-math-parsing.md
原文作者: Nathan Habib
译者: SuSung-boy
审校: Adeena








阅读原文
跳转微信打开