排行榜文件
分數歸一化
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
分數歸一化
此頁面解釋了Open LLM排行榜上六個基準測試分數的歸一化方法。我們可以將所有任務分為帶有子任務的任務、不帶子任務的任務以及生成式評估。
注意: 點選上方的按鈕,即可在互動式筆記本(製作副本以便編輯)中探索分數歸一化過程。
什麼是歸一化?
歸一化是調整不同尺度上的度量值以實現共同尺度的過程,使得跨不同任務的得分比較成為可能。對於Open LLM排行榜,我們將分數歸一化到
- 考慮不同任務的不同難度和隨機猜測基線。
- 為所有任務提供一致的尺度(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 謀殺之謎,選項數 = 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 這樣的生成式評估需要不同的方法
- MATH: 使用完全匹配準確率。下限實際上為 0,因為隨機猜測不太可能產生正確答案。
- IFEval
- 對於例項級評估(
ifeval_inst),我們使用嚴格準確率。 - 對於提示級評估(
ifeval_prompt),我們也使用嚴格準確率。 - 兩者的下限均為 0,因為隨機生成不太可能產生正確答案。
- 對於例項級評估(
這種方法確保即使對於生成任務,我們也可以提供可跨不同評估進行比較的歸一化分數。
更多資訊
有關更詳細的資訊和示例,請參閱我們關於分數歸一化的部落格文章。
如果您有任何疑問或需要澄清,請在排行榜頁面上發起新的討論。
在 GitHub 上更新