跳到主要內容
Jason Lab

01.2

分數怎麼算

從社群貼文到 0~100 分的完整數學:資料來源、評審團、收縮公式、加權總分、信心值,以及校準流程怎麼設計。

arena/posts/how-scores-work.md約 10 分鐘

這篇把 Lab Arena 的一個分數從頭拆到尾:資料怎麼收、態度怎麼判、數字怎麼算出來、信心值是什麼,以及校準流程是怎麼設計的。

原則先講一次:分數全部由公式算出來,評分模型不直接給分數。 榜上任何一個數字,你都能拿著這篇的公式手算回推。

資料來源

只收三個來源,都是工程師實際會去讀模型評價的地方:

來源 筆數 說明
Hacker News 79 工程師密度最高,但門檻也高:HN 的語氣本來就偏挑剔
Reddit 82 數量最大,r/LocalLLaMA 一類的版塊討論最熱
X(Twitter) 55 覆蓋最少,受限於平台的取得方式與登入憑證

這一版資料池共 216 則貼文,分屬 8 個模型,每個模型 19~35 則。

幾個收集階段就做掉的處理(都做在進資料池之前,不是事後補):

模型的定價不走社群,是另一條路來的:以人工維護的模型清單為主(只追值得追的),定價與 context length 附掛 OpenRouter 的公開 API(用 API,不爬 HTML)。所以榜上「定價」那欄是硬資料,獨立於任何人的主觀評價。

評分:四個 LLM 組成的評審團

評分這一步,一則貼文會被問 6 題:

題 問的是 可選標籤
overall(總評) 作者對這個模型的整體態度 正面/負面/中立
quality(智能) 能力與輸出品質:正確性、聰明度、可靠性 正面/負面/未談及
speed(速度) 回應速度、延遲、吞吐 正面/負面/未談及
tokenEfficiency(Token 效率) 囉嗦程度、上下文利用效率 正面/負面/未談及
tokenUsage(Token 用量) 完成任務要燒多少 token、額度消耗 正面/負面/未談及
priceValue(CP 值) 定價、訂閱、免費額度的性價比 正面/負面/未談及

「未談及」是這套設計的關鍵。 它不等於「中立」——neutral 只屬於總評題。社群其實很少認真比較各模型的 CP 值,一篇抱怨「太慢了」的貼文就是沒談 CP 值,記成「未談及」才是誠實的答案。硬把沒談過的面向填成中立,會憑空製造出一堆沒有訊息的 50 分。

每題由四位 LLM 評審各自獨立回答(同一份 prompt、同一份 rubric、溫度 0、四家不互看原始票),然後取多數決。四位是 deepseek-v4.1-flash、glm-5.3-flash、gpt-6-luna、qwen3.7-flash,都經同一個 API 呼叫。

平手記成「沒有結果」而不是硬猜,是刻意的:寧可少一筆樣本,也不要把五五波的爭議算成任何一邊。每位評審的原始票另外留著,之後要收斂成單一評審時還能回頭分析一致性。

跑完一整池 216 則 × 6 題 × 4 家的成本大約是 0.13 美元。這個數字小到可以每天重跑——榜單能被重跑本身就是設計目標,不是附帶功能。

這裡有個值得記的歷史教訓:最初的評分器是一個幾百 MB 的小分類模型,跑起來幾乎不花錢,但在標註考卷上準確率只有 0.44,跟擲硬幣差不多——它太小了,做不來這種語意判斷。換成四家 LLM 評審團之後成本還是可忽略,準確度卻完全不同。評分器要選對,不是選便宜的。

從態度到分數

有了每一面向的正面數 P 與負面數 N(「未談及」不計入),n = P + N。

n = 0 就直接判定資料不足——那個面向根本沒被討論過,不能變成一個數字。榜上顯示「資料不足」,排序時一律墊底。

有表態時,公式是:

raw      = (P − N) / n
dimScore = 50 × (raw + 1) × n / (n + 10)  +  50 × 10 / (n + 10)

拆開看,其實是把「觀察到的比例」和「先驗的中立值 50」依樣本數加權平均:n 越大越相信觀察值,n 越小越往 50 靠。這個 K = 10 叫偽樣本收縮——10 則的證據只被當成 10 份,而不是假裝能代表整個社群。

拿榜上的一格實際手算(Claude Sonnet 5.5 的智能欄,12 則有表態:11 正面、1 負面):

raw      = (11 − 1) / 12 = 0.8333
dimScore = 50 × 1.8333 × 12/22 + 50 × 10/22
         = 50.00 + 22.73
         = 72.7        ← 榜上顯示的就是 72.7

對得上。這個收縮有實際效果:單一面向的樣本通常薄到不能用。 榜上「Token 用量」那一欄,8 個模型有 3 個直接是資料不足,有資料的五個「有表態的樣本數」只有 1~3 則——最高那格 61.5 是 3 則貼文全為正面算出來的,最低的 41.7 只有 2 則。這些數字不是「模型在 Token 用量上表現好或差」,是「只有兩三則貼文在談,談不出結論」。

總分

總分是五個面向的加權平均:

面向 權重
智能 0.50
速度 0.20
CP 值 0.20
Token 效率 0.05
Token 用量 0.05

品質權重最高,因為社群談模型時本來就在談好不好用;兩個 Token 相關面向權重很低,因為社群幾乎不談,樣本也就少。

兩個必須知道的細節:

樣本數與信心值

這兩個東西量的是同一件事的不同面:這個分數可不可信。

Wilson 下界的用意是「往壞處估」。樣本少的時候,正面率這個點估計值會很不可靠——10 則裡 7 則正面,看起來 70% 很漂亮,但它的 95% 下界只有約 40%。榜上給的是那個下界,所以分數低的模型是真的比較沒把握,不是被算出來。

這一版資料的信任度全部落在「低」到「中」之間(最高的也只有 30%),因為 8 個模型分攤 216 則貼文,每個模型的樣本本來就薄。 榜單要拿來看趨勢與相對位置,不是拿來宣稱精確數值。

校準流程的設計

評審團也是模型,它判得準不準必須量,不能靠感覺。這一節只講流程怎麼設計,以及現況。

流程是四步:

  1. 建標註考卷(gold)。 抽一批貼文,交給四家真實的 LLM(刻意跟評審團不同家,避免自己考自己)逐則標註六個面向,溫度 0,規則照同一份標註指南,三比二以上定案。這一版考卷定案 117 列。
  2. 跑評審團。 對同一批貼文跑正式評分。
  3. 比對。 算評審團跟考卷的準確率。
  4. 看門檻。

門檻的設計有個關鍵修正,值得單獨講:

總評題:準確率要達到 0.80 以上。

五個面向:門檻不是絕對 0.80,而是「準確率要勝過全猜『未談及』的常數基準」。

為什麼要改?因為實測發現九成的貼文在面向題上都是「未談及」。這種分布下,一個什麼都沒學、每題都回答「未談及」的常數策略,本來就能拿到 0.9 的準確率。拿絕對 0.80 去卡一個上限是 0.9 的指標,等於獎勵最沒-information 的做法。改成「贏過常數基準」之後,指標才真的在問「評審團有沒有學到東西」。

還有一條誠實性規則:某個面向「有討論的列數」少於 10,就標「樣本不足」,不得據以下結論。 一兩列之差是雜訊,不是訊號。

現況。 校準的流程與門檻已經定案、報告也產出了,但「校準是否算通過」在兩個專案的文件之間還沒對齊——資料產物上的旗標與工具端的計畫文件說法不一致。在這裡對齊之前,本站只呈現流程設計與各面向的可信度標示,不宣稱校準已通過。想看當期數字,請看排行榜頁面上由資料產物驅動的「校準」那一欄,不要把這篇文章當成結論。

自己驗一遍

整條鏈路的每一段都可以重跑,而且可重現:

collect  抓近 30 天貼文 → 去重、過濾、歸屬 → evidence/*.jsonl
score    評審團逐則判斷六題(溫度 0)    → 回填 votes 與原始票
build    votes 依本文公式聚合成 scores.json(自動驗證格式)

build 的輸出除了時間戳之外逐位元組可重現,寫入是原子的(先寫暫存檔再改名),中途失敗不會留下半截檔案;寫完自動跑格式檢查,不合格就不覆蓋原檔並以非 0 結束碼收場。原料與分數都以檔案進版控,所以任何一個數字都能沿著 git 歷史追回去。

相關閱讀:〈Lab Arena 是什麼〉|〈這個排行榜的限制〉