NPHardEval 排行榜:通过复杂度类和动态更新揭示大型语言模型的推理能力

发布日期:2024 年 2 月 2 日
在 GitHub 上更新

我们很高兴推出NPHardEval 排行榜,该排行榜使用由密歇根大学和罗格斯大学的研究人员开发的尖端基准测试工具 NPHardEval

NPHardEval 引入了一个动态的、基于复杂度的框架,用于评估大型语言模型(LLM)的推理能力。它提出了 900 个算法问题,涵盖 NP-Hard 复杂性类及以下,旨在严格测试 LLM,并每月更新以防止过度拟合!

LLM 评估的独特方法

NPHardEval 采用计算复杂度类,提供了 LLM 推理能力的量化和稳健度量。基准测试的任务模拟了现实世界的决策挑战,增强了其相关性和适用性。基准测试数据点每月定期更新,以降低模型过拟合的风险,确保可靠的评估。

NPHardEval 的主要贡献在于采用了新的基准测试策略(提出了一种自动化和动态的基准测试),并引入了一种评估 LLM 推理能力的新方法。

在基准测试策略方面,NPHardEval 使用了一种**自动化机制**,可以自动生成和检查基准测试中的问题。由于这些问题基于算法可计算问题,因此无需人工干预即可确定 LLM 响应的正确性。这也使得 NPHardEval 成为一个**动态基准测试**:由于问题可以自动生成,因此基准测试可以每月更新。这种每月刷新的基准测试有助于防止模型过拟合,因为我们总是可以生成具有不同难度级别的新颖问题进行评估。

问题本身采用了一种新的系统来评估 LLM 推理能力。基准测试中的问题以计算复杂度层次结构为基础,这是一个在理论计算机科学中广泛研究的成熟概念。这一基础使我们能够利用现有研究,通过**通过复杂度类定义推理**来严格和定量地衡量 LLM 的逻辑推理程度。基准测试还特意将数值计算从问题中排除,因为这对 LLM 来说是一项 notoriously 困难的任务。**专注于逻辑问题**可以更准确地评估 LLM 的纯逻辑推理能力,因为数值问题可能会模糊这一评估。

数据合成

NPHardEval 对 9 种不同算法中的每种算法使用 100 个问题,共 10 个难度级别,从而在复杂性和难度上产生 900 个问题。这 9 种算法,包括 3 种 P、3 种 NP 完全和 3 种 NP 难问题,根据计算理论进行表征。这 900 个问题都是合成的,并每月更新。

Tasks in NPHardEval

更多背景和见解可参阅这些幻灯片

评估指标

我们使用两个指标来评估 LLM 的推理能力:加权准确度 (Weighted Accuracy) 和失败率 (Failure Rate)。

加权准确度 (WA)

加权准确度 (WA) 用于评估解决问题的准确性。此方法适用于每个问题,通过与正确答案进行比较,或对于没有单一答案的问题,通过逐步结果检查。为了更有效地反映比较准确性,我们为不同难度级别分配权重。每个级别的权重对应其相对重要性或挑战性,难度级别越高,权重呈线性递增(例如,级别 1 的权重为 1,级别 2 的权重为 2,依此类推)。

加权准确度的公式如下:

WA=i=110(wi×Ai)i=110wi WA = \frac{\sum\limits_{i=1}^{10} (w_i \times A_i)}{\sum\limits_{i=1}^{10} w_i}

在此方程中,wiw_i 表示分配给难度级别 ii 的权重(范围从 1 到 10),AiA_i 是该级别的准确度。

失败率 (FR)

我们考虑的另一个关键指标是失败率 (FR)。此指标有助于评估不同问题和难度级别的失败结果频率。它在识别 LLM 结果与预期输出格式不匹配的情况时特别有用。

失败率是通过考虑每个难度级别的失败尝试次数与总尝试次数的比例来计算的。如果模型生成的结果无法在所有端点调用中成功解析,则将尝试计为失败。我们将最大尝试次数设置为 10 次。对于每个问题,失败率随后将汇总所有难度级别,考虑每个级别的总共 10 次尝试。

失败率的正式定义为

FR=i=110Fi100 FR = \frac{\sum\limits_{i=1}^{10} F_i}{100}

其中,Fi F_i 表示难度级别 i i 的失败尝试次数。

实验与洞察

该基准测试包含全面的实验,用于分析不同复杂性类别和难度级别下的 LLM。它深入探讨了 LLM 性能的细微差别,为其推理能力和局限性提供了有价值的见解。总的来说:

  • 闭源模型通常比开源模型表现更好,其中 GPT 4 Turbo 总体表现最佳。
  • 模型通常在复杂度较低的问题(即更容易的复杂度类别)上表现更好,尽管其性能并不总是随复杂度级别线性下降。Claude 2 等模型在 NP 完全(中等复杂度)问题上表现最佳。
  • 一些开源模型在特定问题上可以超越闭源模型。领先的开源模型包括 Yi-34b、Qwen-14b、Phi-2 和 Mistral-7b。
Weighted Accuracy and Failure Rate
Zeroshot Heatmap

在您的机器上重现 NPHardEval 基准测试结果

要设置 NPHardEval 基准测试,您需要执行以下几个步骤:

  1. 环境设置:将仓库克隆到本地机器后,使用 conda 安装所需的 Python 库。
    conda create --name llm_reason python==3.10
    conda activate llm_reason
    git clone https://github.com/casmlab/NPHardEval.git
    pip install -r requirements.txt
    
  2. API 密钥设置:获取 API 密钥并更改 secrets.txt 中相应的条目。
  3. 示例命令:使用 NPHardEval 基准测试评估您的模型!

例如,要使用 GPT 4 Turbo 模型 (GPT-4-1106-preview) 和编辑距离问题 (EDP) 进行评估:

  • 对于其零样本实验,我们可以使用
  cd Close/run
  python run_p_EDP.py gpt-4-1106-preview
  • 对于其少样本实验,
  cd Close/run
  python run_p_EDP_few.py gpt-4-1106-preview self

我们目前支持来自相同问题(self)的少样本示例,未来可能会支持来自其他问题(other)的示例。

加入讨论

NPHardEval 排行榜数据集代码可在 Github 和 Hugging Face 上获取,供社区访问和贡献。

我们期待社区在 NPHardEval 的 GitHub 仓库Hugging Face 排行榜上做出贡献并表示兴趣。

社区

注册登录 发表评论