排行榜文件
分數歸一化
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
分數歸一化
本頁解釋了在開放大語言模型排行榜(Open LLM Leaderboard)上,針對六個基準測試的分數是如何進行歸一化的。我們可以將所有任務分為三類:包含子任務的任務、不包含子任務的任務以及生成式評估。
注意: 點選上方按鈕,在互動式筆記本中探索分數歸一化過程(建立副本以進行編輯)。
什麼是歸一化?
歸一化是將不同尺度上測量的值調整到同一通用尺度的過程,從而可以跨不同任務比較分數。對於開放大語言模型排行榜,我們進行分數歸一化是為了:
- 考慮不同任務的難度差異和隨機猜測基線。
- 為所有任務提供一個一致的尺度(0-100),以便進行公平比較。
- 確保對隨機猜測的改進在分數中得到恰當反映。
通用歸一化過程
基本的歸一化過程包括兩個步驟:
- 減去隨機基線分數(下界)。
- 將結果縮放到 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 謀殺懸疑案,num_choices = 2,lower_bound = 0.5
- MUSR 物體放置,num_choices = 5,lower_bound = 0.2
- MUSR 團隊分配,num_choices = 3,lower_bound = 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 這樣的生成式評估需要採用不同的方法:
- MATH: 使用精確匹配準確率。下界實際上是 0,因為隨機猜測不太可能產生正確答案。
- IFEval
- 對於例項級評估(
ifeval_inst
),我們使用嚴格準確率。 - 對於提示級評估(
ifeval_prompt
),我們也使用嚴格準確率。 - 兩者的下界都是 0,因為隨機生成不太可能產生正確答案。
- 對於例項級評估(
這種方法確保即使對於生成式任務,我們也能提供可在不同評估之間進行比較的歸一化分數。
更多資訊
有關更詳細的資訊和示例,請參閱我們關於分數歸一化的部落格文章。
如果您有任何問題或需要澄清,請在排行榜頁面上發起新的討論。
< > 在 GitHub 上更新