如何驗證模型真實性
一條通道如何證明自己真的是所售的模型、通過之後靠什麼繼續保持誠實,以及為此開源的兩個專案。
任何人都可以宣稱自己在賣 claude-opus-4-5。連線是真的,usage 欄位能解析,通道也確實出現在市場上——但協定裡沒有任何東西能證明那些 token 真的來自被宣稱的那個模型。把用戶端改一改,悄悄把請求轉給價格只有百分之一的模型,一般市場會做的檢查一條都不會觸發。這個價差就是套利,堵住它是本頁的全部內容。
遠端證明堵不住:沒有辦法證明一台陌生機器上跑的是哪個執行檔。能堵住的是行為差距——向通道提出一些答案取決於生成它的模型本身的問題,再看回答像不像它宣稱的那個模型。
三個要分開問的問題
| 問題 | 怎麼回答 |
|---|---|
| 可用性——這條通道到底能不能回應? | 每一次探測都是從閘道正門發出的一次普通購買。連不上的通道在這裡就已經失敗,後面的判斷都輪不到。 |
| 真實性——它是不是所宣稱的模型? | 分難度的行為探測,打分得出判決;只要還在售,就會不預先通知地反覆重跑。 |
| 計費準確性——回報的 token 數誠不誠實? | 定價以服務商自己的 usage 為準,閘道同時獨立數一遍同一個請求,再把兩個數放在一起比。 |
上市之前
- 你打開賣出開關
用戶端列出該帳號能提供的每一個模型。每一個都是一條通道——
(裝置, 服務商, 模型)三元組,各自獨立驗證:在便宜模型上拿到的判決,絕不能拿來替貴的模型背書。 - 平台向你買幾次
不是走後門:同一個閘道、同一種派工訊框、和買方請求完全相同的路徑,只是被釘在你這台裝置上。如果你的上游帳號拒絕了這次請求,執行結果裡回報的就是這件事。
- 寫下判決
十來次短回覆,進度條走一兩分鐘。這次執行兩側都以零結算——不扣買方的錢,也不給賣方結錢。它仍然會消耗你自己的訂閱額度,而這是自查一個帳號唯一該有人承擔的成本。
在通過之前,買方看不到這條通道。未驗證的通道不是「上線慢」,而是被設計成不在市場上;離開這個狀態的唯一途徑,就是平台從它這裡買一次。
通過之後,靠抽檢維持誠實
預告過的考試就是一場可以被應付的考試。真想作弊的賣方,只要在對話框開著的九十秒裡提供真模型,之後一直給便宜的,這道門檻就只花了他一次補完的成本。
所以門檻不是安全控制,影子抽檢才是:已驗證的通道會在它無法預測的時刻被重新探測,走同一個正門,外層與任何一次購買完全一樣——而且賣方按市價拿到這筆錢。這不是慷慨。不付錢的抽檢會在收益流水裡留下一個缺口,而缺口正是作弊者可以盯的標記。
| 已驗證通道被影子抽檢的流量占比 | 1% |
處於 watch、或所屬帳號出過拒絕判決時的占比 | 10% |
| 在售通道最長多久必被抽檢一次(無論流量多少) | 72 小時 |
| 一個通過判決的有效期,過後需重新贏得 | 7 天 |
時間上限和百分比一樣重要。沒有它,一條沒有買方的通道就永遠不會被檢查——而「讓自己在兩次抽檢之間沒有買方」恰恰是作弊者安排得出來的事。
一次抽檢還會被攤開到將近一小時,而不是打成一梭子:二十一個請求按固定順序連著發是一種形狀,形狀是可以被認出來的。
判決只在一個方向上保守
| 判決 | 含義 | 後果 |
|---|---|---|
| Pass | 分數 ≥ 75,且沒有硬閘門命中 | 正常出售 |
| Watch | 結論不明確,或分數偏低但沒有硬證據 | **仍然可以賣。**抽檢率提高十倍,排序下降 |
| Reject | 命中硬閘門,或讀數為偽造——而且估計器自身的信心值不低於 0.6 | 該通道下架;該帳號下所有通道抽檢加重 |
一次不明確的執行不是詐欺的證據。一個在兩次執行之間能整整跳一階的統計量,拿來把誠實賣方趕出市場是很糟的做法,所以我們不這麼做:watch 對賣方的代價只有更高的抽檢率,這會在幾天之內把問題變成答案,而不是為一次擲硬幣懲罰誰。
自動判決也從不凍結賣方未釋放的收益。下架一條通道是可逆的;憑一個分數把人鎖在自己餘額之外則不可逆。這個手把仍然存在,但只留給看過證據的營運人員。
決定判決的那些題目不公開
llm-verify 是公開的,這正是它的價值——任何人都可以稽核它問了什麼。這同時也是天花板:被探測的賣方同樣讀得到這套題,於是可以老老實實答這些題,而把其餘流量轉給更便宜的地方。節奏攤開能隱藏執行發生的時間;題目一旦躺在公開儲存庫裡,就沒有什麼能隱藏它問了什麼。
所以真正決定判決的評分題,是在我們這一側依每次執行的伺服器隨機種子現場產生的——多步推導、答案唯一且可驗證,由我們本地算出而非查表得到。賣方看到的是一道他從沒見過、也不會再見到第二次的題。一份固定的私有題庫不過是延遲公開的公開題庫;用產生而不是手寫,是為了讓輪替不必仰賴有人記得去做。種子會寫進報告,因此有爭議的判決可以逐題重現。
題目刻意不是常識問答。常識問答測的是訓練語料,一個語料很大的便宜模型也能過。現實中值得抓的詐欺不是把雜訊當 Opus 賣——那第一道身分探測就露餡了——而是把中階模型或量化鏡像當旗艦賣。這兩者都能正確回答「你是誰做的」。真正區分它們的,是最難那一檔他們能做對多少。
每條通道還會和同儕比
市場有一個獨立工具沒有的優勢:它同時看到很多條在賣同一個模型的通道。於是它不必抽象地回答「這是不是 Opus」,而可以回答「這條通道的表現,和另外三十九條 Opus 通道一樣嗎」——後者要容易得多,也穩定得多。
只追蹤那些能穿過中繼依然成立的數字:這條通道寫多長、開始生成後有多快、各難度檔的正確率。不涉及任何提示內容,也不包含任何能指認賣方的資訊。一個模型至少要有八條通道,它的群體輪廓才被允許說話;偏離三個標準差以上的通道會被安排一次更深的鑑識式複檢——而不是被拒絕。某個模型的第一個賣方、某個地區唯一的賣方、家裡網路特別快的那個賣方,都是離群點,但沒有一個是騙子。
計費準確性
價格以上游服務商回報的 usage 為準。圍繞它的一切,都是為了保證進入結算的就是那個數:
- 閘道自己也數一遍同一個請求並做對照。偏差超過 25%(且請求大於 200 token——低於這個量級估算器自身誤差就佔了主導)會計入賣方信譽,但不改變價格。
- 輸出以派工簽章裡的預算封頂。賣方報不出比平台授權更多的輸出。
- prompt 依閘道自身估算的三倍封頂。超出後,所有計數按比例整體縮小,以維持各類 token 之間的比例。
這裡的坑並不玄,而且錯了沒有聲音。Anthropic 的 input_tokens 不含快取 token,OpenAI 的 prompt_tokens 和 Gemini 的 promptTokenCount 含——把兩者映射到同一個欄位,快取部分就會被收兩遍,而且正好收在 agent 類 prompt 最大的那一塊上。Gemini 的 thoughtsTokenCount 依輸出價計費,卻不包含在 candidatesTokenCount 裡。GPT 家族的工具清單,計費的是它被改寫成的 TypeScript 宣告,而不是你送過去的 JSON。一張 1024×1024 的截圖在 Claude 那邊是一千多 token,不是樸素估算器以為的 85。
計量與結算逐步講了交叉核對、封頂與結算交易。
兩個專案都已開源
驗證引擎和 token 計量並沒有埋在平台內部。它們是獨立的 crate,Apache-2.0,發布在 crates.io 上,可以對著任何端點跑——包括我們自己的。
llm-verify
針對任意 LLM 端點的黑箱真實性、計費與效能驗證。七組共 40 個探測——協定契約、串流、計量與計費、通道來源、效能、模型身分、跨請求一致性——在兩個彼此獨立的軸上打分,輸出一份用瀏覽器打開的 HTML 報告。你可以拿它去檢驗自己的供應商,也可以拿來檢驗我們。
token-meter
涵蓋 Claude、GPT 家族與 Gemini 的跨服務商 token 計量與成本核算。每一個計數都帶著自己的來源,因此你永遠知道手裡拿的是實測還是估算——而且錢從不經過浮點數。
llm-verify 可以直接當命令列用(cargo install llm-verify,或用安裝指令稿),分數不及格時以非零碼結束,因此拿來當 CI 門檻盯自己的供應商是開箱即用的。本平台以函式庫的形式內嵌同一個 crate,這也是它的結果和公開工具的結果能夠對得上的原因。
這套東西證明不了什麼
黑箱行為檢測給出的是機率,永遠不是「哪套權重回答了你」的證明。直說:
- 解析度止於階層。同一階裡相鄰的版本區分不出來。
- 一次執行只描述一個時刻。逐漸降級靠反覆重跑發現,不靠單次判決。
- 提供高於所宣稱階層的服務不算詐欺,不計任何風險權重。只有測出低於宣稱值才算。
- 公開的題目,被探測的端點同樣讀得到。私有題庫抬高了自適應作弊的成本,但沒有把它堵死。
這是一層,而且它被設計成只是一層——上面還有給偵測留出時間窗的收益釋放延遲、基於日常真實流量的信譽評分,以及一個會去看離群點的人。它不是讓這些變得不必要的那樣東西。