排行榜文件

分數歸一化

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

分數歸一化

此頁面解釋了Open LLM排行榜上六個基準測試分數的歸一化方法。我們可以將所有任務分為帶有子任務的任務、不帶子任務的任務以及生成式評估。

Open In Colab

注意: 點選上方的按鈕,即可在互動式筆記本(製作副本以便編輯)中探索分數歸一化過程。

什麼是歸一化?

歸一化是調整不同尺度上的度量值以實現共同尺度的過程,使得跨不同任務的得分比較成為可能。對於Open LLM排行榜,我們將分數歸一化到

  1. 考慮不同任務的不同難度和隨機猜測基線。
  2. 為所有任務提供一致的尺度(0-100),以實現公平比較。
  3. 確保超過隨機猜測的提升在分數中得到適當體現。

一般歸一化過程

基本的歸一化過程包括兩個步驟

  1. 減去隨機基線分數(下限)。
  2. 將結果縮放到0-100的範圍。

我們使用以下歸一化函式

def normalize_within_range(value, lower_bound, higher_bound):
    return (value - lower_bound) / (higher_bound - lower_bound)

不帶子任務的任務的歸一化

對於不帶子任務的任務(例如 GPQA, MMLU-PRO),歸一化過程很簡單

  • 確定下限(隨機猜測基線)。
  • 應用歸一化函式。
  • 縮放到百分比。

示例:歸一化 GPQA 分數

GPQA 有 4 個 num_choices,因此下限為 0.25 (1/num_choices = 1/4 = 0.25)。

raw_score = 0.6  # Example raw score
lower_bound = 0.25
higher_bound = 1.0

if raw_score < lower_bound:
    normalized_score = 0
else:
    normalized_score = normalize_within_range(raw_score, lower_bound, higher_bound) * 100

print(f"Normalized GPQA score: {normalized_score:.2f}")
# Output: Normalized GPQA score: 46.67

帶子任務的任務的歸一化

對於帶有子任務的任務(例如 MUSR, BBH),我們遵循以下步驟

  • 計算每個子任務的下限。
  • 歸一化每個子任務的分數。
  • 對歸一化後的子任務分數取平均值。

示例:歸一化 MUSR 分數

MUSR 有三個具有不同選項數量的子任務

  • MUSR 謀殺之謎,選項數 = 2,下限 = 0.5
  • MUSR 物品放置,選項數 = 5,下限 = 0.2
  • MUSR 團隊分配,選項數 = 3,下限 = 0.33
subtasks = [
    {"name": "murder_mysteries", "raw_score": 0.7, "lower_bound": 0.5},
    {"name": "object_placement", "raw_score": 0.4, "lower_bound": 0.2},
    {"name": "team_allocation", "raw_score": 0.6, "lower_bound": 0.333}
]

normalized_scores = []

for subtask in subtasks:
    if subtask["raw_score"] < subtask["lower_bound"]:
        normalized_score = 0
    else:
        normalized_score = normalize_within_range(
            subtask["raw_score"], 
            subtask["lower_bound"], 
            1.0
        ) * 100
    normalized_scores.append(normalized_score)
    print(f"{subtask['name']} normalized score: {normalized_score:.2f}")

overall_normalized_score = sum(normalized_scores) / len(normalized_scores)
print(f"Overall normalized MUSR score: {overall_normalized_score:.2f}")

# Output:
# murder_mysteries normalized score: 40.00
# object_placement normalized score: 25.00
# team_allocation normalized score: 40.00
# Overall normalized MUSR score: 35.00

生成式評估

像 MATH 和 IFEval 這樣的生成式評估需要不同的方法

  1. MATH: 使用完全匹配準確率。下限實際上為 0,因為隨機猜測不太可能產生正確答案。
  2. IFEval
    • 對於例項級評估(ifeval_inst),我們使用嚴格準確率。
    • 對於提示級評估(ifeval_prompt),我們也使用嚴格準確率。
    • 兩者的下限均為 0,因為隨機生成不太可能產生正確答案。

這種方法確保即使對於生成任務,我們也可以提供可跨不同評估進行比較的歸一化分數。

更多資訊

有關更詳細的資訊和示例,請參閱我們關於分數歸一化的部落格文章

如果您有任何疑問或需要澄清,請在排行榜頁面上發起新的討論。

在 GitHub 上更新

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