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 排行榜上做出貢獻並表示興趣。

社群

註冊登入 發表評論

© . This site is unofficial and not affiliated with Hugging Face, Inc.