Kolibri 的 78B 參數裡,每個 token 只動用約 3.46B,這個數字寫在模型卡上,權重公開,原則上你可以自己數。Aleph Alpha 發表文裡那句「with no foreign control」,你數不出來。
Kolibri:384 選 6,主權怎麼驗
Aleph Alpha 的發表文把 Kolibri 寫成「an English-German Mixture-of-Experts Transformer with 78B total parameters, 3B active」。Hugging Face 上的模型卡把同一組數字寫到個位:總參數 78,103,074,560,每個 token 啟用 3,457,573,120。發表文的「3B active」看起來是把 3.46B 往下取整,兩份文件在這一點上互相吻合。
這篇文章要做的事,是把 Kolibri 的說法分成兩堆。第一堆是結構與算術:層數、專家數、視窗長度、參數量。權重公開,這些原則上可以自己讀出來,或者至少能拿文件裡的數字互相驗算。第二堆是基準分數、同類比較和「主權」,證據握在 Aleph Alpha 手上,讀者只能決定信多少。文中寫「兩份文件都沒說」,只指我讀的發表文與模型卡這兩頁,沒有查其他來源。
先把規格擺出來。專家部分,發表文的規格表寫「Experts (total / active): 384 / 6」,模型卡的欄位寫成「Routed experts per MoE layer: 384」,另有「Shared experts per MoE layer: 1」,發表文的層數列則寫「50 (all MoE, 1 shared expert)」。50 層全是 MoE 層,每層除了 384 位 routed 專家,還有 1 個 shared expert,兩份文件一致。發表文的同一列裡,Origin 是 2 個 dense 層加 48 個 MoE 層,Kolibri 則是 50 層全為 MoE。注意力部分,發表文寫「Out of 50 total layers, only 10 process full context, while the remaining 40 use a tight 512-token focused window」;模型卡給的樣式是「4:1 causal sliding-window GQA to full causal GQA」,視窗的定義是「Sliding window 512 preceding tokens plus the current token」。
長度與詞表也各有出處。context 長度,模型卡寫 1,048,576 tokens,發表文寫「up to 1M tokens」;詞表大小 128,000,搭配一個為英德雙語特製的 tokenizer,發表文的說法是「We built a bilingual English-German tokenizer, trained and specialized on each model's pre-training dataset」。授權方面,發表文說「The model can be downloaded with the full weights on Hugging Face and used under the Apache 2.0 license terms」,模型卡的授權段落先說「The model weights are published by Aleph Alpha GmbH under Apache 2.0 license.」,接著把範圍收窄到「The rights granted thereunder only apply to the weights and configuration files published in this repository.」,並寫明「The license especially does not extend to underlying code, model architecture, parameter settings or any training method.」授權涵蓋的是權重與設定檔,後面談「開放」到哪裡時要回頭看這段。
384 選 6:算力看 3.46B,記憶體看 78.1B
6/384 等於 1.5625%,但活躍參數占總參數的比例,是 3,457,573,120 除以 78,103,074,560,約 4.4%。兩個比例差了近三倍,原因留到下一節拆。這一節先看另一件事:每個 token 只走 6 位專家,並不代表其餘 378 位可以不在場。MoE 層的做法是:路由器替每個 token 打分,只把 token 送進分數最高的 6 位專家,其餘 378 位這一步不運算。模型卡把 MoE router 列在以 bfloat16 保留的元件裡,路由用較高的精度,專家權重則是 FP8。路由器每個 token 都要跑,屬於後面要反推的常開部分;專家一旦被選中,權重就得在記憶體裡。
下面的模擬把這件事畫出來。每個 token 隨機挑 6 位專家,格子的亮度隨被選次數累積,讀數旁邊附上理論值 1−(63/64)^n 做對照。這是示意,用的是均勻亂數,Kolibri 真實路由的偏斜程度未知。
press play to route tokens one by one · 384 experts, 6 per token, uniform random
示意模擬,亂數為均勻分布,單層 384 位專家
每個 token 只啟用 384 位專家中的 6 位,但在均勻路由的假設下,約 256 個 token 就碰過 98% 的專家,所以全部權重得常駐記憶體。
在均勻路由的假設下,一位專家被某個 token 選中的機率是 6/384,也就是 1/64;n 個 token 之後它至少被選中一次的機率是 1−(63/64)^n。n 等於 64 時約 64%,n 等於 256 時約 98%。真實路由多半沒有這麼均勻(推測),但一段稍長的輸入仍會碰到大部分專家,同時服務多個請求時更是如此。所以推論時的算力跟著 3.46B 走,記憶體卻得容納全部 78.1B。
權重精度寫在模型卡上,是「float8_e4m3fn」,每個參數大約一個 byte,78.1B 個參數就約 78 GB。這是粗算,沒有計入量化尺度,也沒有計入模型卡另外提到、以 bfloat16 保留的部分。模型卡列的最低硬體是「2× A100 80 GB, 2× H100 SXM5, 1× H200, 1× B200 or 1× B300」:A100 與 H100 要兩張,H200、B200、B300 一張即可。兩張 80 GB 的卡合計 160 GB,約 78 GB 的權重放進去後,剩下的空間給 KV cache 與 activations。
3.46B 是怎麼湊出來的
如果 78.1B 全是大小相同的專家,每次只啟用 6/384,活躍參數應該是 78.1B 乘上 6/384,約 1.22B。模型卡回報的是 3.46B,多出約 2.24B。這一段應該來自每個 token 一定會經過的參數,例如注意力層、詞嵌入與路由器。模型卡另外提到 embeddings、LM head、norms 與 MoE router 以 bfloat16 保留,這些元件每個 token 都會經過,與反推出的常開部分方向一致。每個 MoE 層的 1 個 shared expert 也屬於這一類:50 層共 50 個,每個 token 都會走過。下面的反推不拆分各項的大小,把它們合併成一個常開參數。
下面的滑桿把「常開參數占總參數的比例」當成未知數。假設只有兩種參數:一種每個 token 都用,另一種是均分給 384 位專家的 routed 參數。拖到約 2.91%,兩者相加剛好等於回報的 3.46B,也就是常開部分約 2.27B,被選中的專家約 1.18B。這是由兩個回報值反推的單參數模型,沒有用到隱藏維度等細節,代價是假設很粗。
drag the slider to change the always-on share · 0% to 10% of 78.10B
反推的結果是,3.46B 裡約三分之二屬於不分 token 一律執行的部分,這個比例來自上述假設。再往下推,若每個 MoE 層各有 384 位 routed 專家、共 50 層,且 routed 參數平均分給 19,200 個專家模組,每個模組約 395 萬個參數。這一步疊了兩個假設:所有層一樣、所有專家一樣大,只能當量級參考。
四十層只看 512 個 token
注意力是另一個稀疏來源。50 層裡,40 層只看當前位置往前的 513 個位置(512 個前文加自己),10 層看完整前文。對 KV cache 來說,每層要保存的條目數與它能看到的位置數成正比。把所有層的條目數加總,再除以「50 層全是全注意力」的條目數:序列長度 L 不超過 513 時是 100%,更長時是 (40×513 + 10×L) 除以 (50×L),也就是 0.2 加上 410.4/L。以 L = 4,096 為例,40 層各讀 513 個位置,10 層讀 4,096 個,總條目約 61,480,是全注意力 204,800 的 30%。
下面圖上的把手可以拖,也能用鍵盤方向鍵移動。L 拉到 1,048,576 時比例是 20.04%,拉到 262,144 時是 20.16%。在 1,048,576 時,40 層視窗層合計只有 20,520 條 KV,10 層全注意力層是 10,485,760 條,後者占總數的 99.8%。曲線從 513 之後急速下降,到 4K 左右已經低於三分之一,之後只是緩慢貼近 20% 這條漸近線。滑動視窗層的注意力範圍固定在 513 個位置,序列再長,這 40 層每個 token 讀的 KV 數量也不變;10 層全注意力要讀整段前文,序列拉到百萬 token 時就成為成本的主體,也是遠距離資訊唯一能直接傳遞的路徑。省下的是保存與讀取成本,代價落在長距離依賴上。GQA 讓多個 query head 共用一組 KV head,KV cache 本來就比逐頭獨立的設計小,視窗與 GQA 是兩層疊加的省法,疊加後的絕對大小取決於分組數。算式的前提是兩種層的 KV head 數與維度相同,並且只算 KV cache 條目。
drag the handle along the context axis · 256 to 1,048,576 tokens, log scale
圖上三個三角形是發表文寫的三個訓練階段序列長度:16k、64k、256k。模型卡建議服務時用「262,144 tokens」以內,剛好等於 256k(256×1024)。最長的訓練階段到 256k 為止,規格卻寫 1M;1,048,576 恰為 262,144 的四倍,前兩級也各差四倍,但最後這一級沒有對應的訓練階段。發表文沒有解釋這一段,模型卡的說法是「Because positional encoding is applied only in the sliding-window layers, the context can be extended beyond that length without any position scaling, in principle to arbitrary lengths.」,並稱「We have validated quality and serving efficiency up to 1,048,576 tokens.」位置編碼只放在視窗層是模型卡給的機制,驗證到 1M 則是廠商自述。模型卡的 LongBench Pro 一列,Kolibri 是 64.5,同一列有模型的分數高於它。
20T、德語,以及差的 0.5T
訓練規模的數字,兩份文件對得很整齊。發表文寫「We trained Kolibri on 768 B200 GPUs in three stages: 20T tokens of pre-training at a 16k sequence length over 21 days, 3.44T tokens of mid-training at 64k, and 200B tokens of long-context adaptation at 256k」;模型卡寫「768 NVIDIA B200 (96 HGX 8xB200 nodes)」與「Time: 21 days (511h, 392k GPUh)」。768 乘 511 小時是 392,448 GPU 小時,與 392k 吻合。三個階段加起來 23.64T,發表文說「nearly 24T tokens in total」。長文脈絡階段的 token 數,發表文寫 200B,模型卡寫 201B,是四捨五入層級的差異。96 個 HGX 8xB200 節點,每節點 8 張,也正好是 768 張;511 小時約 21.3 天,與「21 days」相容。
以下占比是我的算術:預訓練的 20T 約占總量 85%,mid-training 的 3.44T 約占 15%,長文脈絡的 200B 不到 1%,三個階段的序列長度每級乘 4(mid-training 是 65,536)。模型卡建議的服務長度上限對應最後一個階段,而這個階段的訓練量遠小於預訓練。語料方面,照模型卡的比例,英語 12.5T、德語 4.78T、code 2.72T,德語量約是英語的 38%。
語料比例是兩份文件不太一致的地方。發表文寫「German accounts for more than a fifth of the pre-training mix, about 4.3T tokens, against roughly 62% English and 14% code」,並交代德語的來源:「a 2.4T-token unique pool, 80% of it curated or generated by us and 20% from open datasets」,模型看到它的比例是「21.3% of pre-training tokens, roughly 4.3T over the 20T run through upsampling」。4.3T 因此是上取樣後的量,不重複的德語是 2.4T,我的算術是約 1.8 倍。這 2.4T 有 80% 是 Aleph Alpha 自建或生成的資料,只有 20% 來自開放資料集,所以能從公開資料核對的部分只占一小塊。模型卡寫「~62.5% English, ~23.9% German, ~13.6% code」,德語 23.9% 換算是 4.78T。真正的不一致在這裡:發表文 21.3%(約 4.3T),模型卡約 23.9%(約 4.78T)。以下差距是我的算術:約 0.5T(2.6 個百分點),兩份文件都沒有調和。
重複計入的疑問,發表文的上取樣說明已經回答:4.3T 含重複,所以與 2.4T 不同。這解釋不了它與模型卡 4.78T 的差,那一段仍是兩個版本。差距約是模型卡德語量的一成;英德雙語是 Kolibri 的定位,「德語占多少」卻有兩種數字,單讀任何一份文件都看不出來。語料占比只能當旁證,模型卡的德語整體分數是 70.8,同一列最高的是 Qwen3.8 27B 的 79.9,兩者都出自廠商的評測。
主權的兩面,宣稱與證據
發表文先給了定義:「Sovereignty, for us, combines two dimensions: how we built the model, and how it transfers to our customers.」主權因此有兩面,一面是造的過程,一面是交到客戶手上的方式。兩面的證據性質不同:造的過程是已經發生的事,只能靠紀錄證明;交付方式是眼前的檔案,下載就看得到。目標用戶也寫得明確:「Kolibri is a specialized language model built for sovereign mission-critical work in regulated areas including public administration, industrials and aerospace.」
造的這一面,發表文寫的是「Our teams built the model in Germany, trained it on infrastructure in Germany and Finland, under European and German law, with no foreign control.」另一句是「We offer full supply-chain integrity and account for every decision, from data ingestion, through pre- and post-training, to the final evaluations.」模型卡連到一份依歐盟執委會範本寫成的訓練內容摘要,並說 Aleph Alpha 是 EU GPAI Code of Practice 的簽署者,發表文也說 Kolibri 是在 EU AI Act、General-Purpose AI Code of Practice 與 GDPR 的考量下建造。那份 PDF 我沒讀,不能說它涵蓋什麼。兩頁都沒有稽核報告或第三方憑證,模型卡也沒有專門談地點或主權的段落。所以這一面的證據,目前就是 Aleph Alpha 的說法本身。發表文把兩面放在「主權」同一個詞下,讀者看到交付面能驗證,就容易預設流程面也驗過了。
這幾句宣稱各自要不同的證據才查得動。「Germany and Finland」是地點,要看資料中心與合約;「under European and German law」是管轄,要看契約與簽約的法人;「no foreign control」是控制權,要看股權與存取權限;「account for every decision」是紀錄,要看紀錄是否開放稽核。這四種證據都不在權重或模型卡裡。發表文列出的環節是資料攝取、預訓練、後訓練與最終評測,宣稱的單位是每一個決定,查證也得以決定紀錄為單位,最終權重只能證明結果。
交付的這一面反而最容易驗證:權重在 Hugging Face,授權是 Apache 2.0,模型卡列出的最低硬體包含單張 H200 或單張 B200。一個機構能不能把模型放在自己的機房裡跑,看這三件事就知道,不必信任任何人的說法。交付的東西還包括 tokenizer:發表文說它是為各模型的預訓練資料特製的,詞表 128,000,所以權重與 tokenizer 得成套使用。要留意的是授權範圍:模型卡寫明「any other artifacts not included in the repository are excluded from the license」,授權也不延伸到程式碼、模型架構、參數設定與任何訓練方法。所以 Kolibri 屬於 open-weight:你能下載、執行成品,授權之外的材料不在權利範圍內,需要追溯資料來源的稽核流程得另外向 Aleph Alpha 追問。
基準與幻覺:誰跑評測,跟誰比
基準分數的證據同樣握在廠商手上。發表文說「Benchmarks were run using our own harnesses and, where applicable, all models used the highest respective reasoning effort.」評測工具是自家的,同一句還交代適用時所有模型都用各自最高的推理強度。發表文給的 AIME 2025,英文 96.9、德文 87.5(原文寫成「AIME 2025: 96.9」與「AIME 2025 (DE): 87.5」);同一張表裡,Qwen3.8 27B 是 97.9 與 96.5,Nemotron 3 Super 120B-A12B 是 91.7 與 85.6。模型卡的表格逐模型列出分數:Kolibri 的整體英文是 75.5,整體德文 70.8,AIME 2025 英文 96.9。這三列的最高值都是 Qwen3.8 27B,分別是 80.2、79.9 與 97.9,差距是 4.7 分、9.1 分與 1.0 分,Kolibri 在這三列都不是最高;哪一個是最高值,是我讀各欄後的整理。同一張表裡,Kolibri Origin 在這三列是 54.1、46.4 與 81.9。
發表文那句「Across math, coding, grounding, and long-context tasks, Kolibri matches models with up to four times its active parameter count, such as Nemotron 3 Super」,與這些列並不衝突:Nemotron 3 Super 120B-A12B 的型號標示約 12B 活躍參數,是 Kolibri 的約 3.5 倍(按型號推算,我的算術),它在發表文表裡的 AIME 2025 是 91.7(英文)與 85.6(德文),都低於 Kolibri 的 96.9 與 87.5。比較對象由 Aleph Alpha 選。
幻覺那一句更要看對照組:「Kolibri hallucinates far less than Kolibri Origin: it abstains instead of answering wrong on 44% of AA-Omniscience items (Origin: 15%)」。對照組是 Aleph Alpha 自家的 Kolibri Origin,沒有外部模型。發表文另外說,Kolibri 的訓練總量約是 Origin 的三倍,表格列出的預訓練量是 Origin 7.51T、Kolibri 20T,約 2.7 倍(我的算術),所以這個對比混合了多出將近兩倍(我的算術)的預訓練資料與其他改動的效果,單憑這一句分不出哪一個起了作用。棄答比例從 15% 升到 44%,說明模型更常承認不知道;棄答的代價是沒有答案,答錯的代價是答案不可信,答對的比例有沒有跟著掉,這兩個數字看不出來。
十一條說法的歸類
下面的表把前面談過的說法逐條列出,分成可核對、可重跑、只能採信三類。點欄位標題可以排序,按「類型」排序時,同一類會聚在一起。同一條說法的不同部分可能落在不同類別,例如 20T 這個規模,兩份文件互相吻合,實際訓練卻只能採信。
click column header to sort · 4 columns × 11 rows
| 說法 | 出處 | 怎麼查證 | 類型 |
|---|---|---|---|
| 總參數 78,103,074,560,活躍 3,457,573,120 | 模型卡 | 載入公開權重後計數;活躍量要對照結構自行推算 | 可核對 |
| 50 層,40 層 512 視窗、10 層全注意力 | 發表文、模型卡 | 檢查公開權重的層結構 | 可核對 |
| 384 選 6,每個 MoE 層另有 1 個 shared expert | 發表文、模型卡 | 同上,並可觀察路由實際分布 | 可核對 |
| 權重與設定檔採 Apache 2.0 | 模型卡授權段落 | 讀授權段落全文;授權不延伸到程式碼、架構、參數設定與訓練方法 | 可核對 |
| 1M context,建議 262,144 以內 | 發表文、模型卡 | 模型卡稱已驗證到 1,048,576 tokens(廠商自述),可自行餵長輸入測試 | 可重跑 |
| AIME 2025 英 96.9、德 87.5 | 發表文 | 權重公開可重跑;發表文用的是自家評測工具 | 可重跑 |
| matches models with up to four times its active parameter count | 發表文 | 比較群由 Aleph Alpha 選;模型卡的整體英文、整體德文與 AIME 英文三列,Kolibri 都不是最高 | 可重跑 |
| 棄答 44%,對照 Origin 15% | 發表文 | 對照組是自家 Origin;要有 AA-Omniscience 才能重跑 | 可重跑 |
| 20T 預訓練、768 B200、21 天、392k GPUh | 發表文、模型卡 | 兩份文件互相吻合(768×511 = 392,448),實際訓練只能採信 | 只能採信 |
| 德語 21.3%(約 4.3T,上取樣)或約 23.9% | 發表文、模型卡 | 兩個版本差約 0.5T(2.6 個百分點,我的算術),未見調和 | 只能採信 |
| 德國與芬蘭基礎設施、no foreign control、完整供應鏈 | 發表文 | 兩頁都沒附稽核或憑證,屬於流程宣稱 | 只能採信 |
供應鏈與管轄的宣稱只有發表文一個出處,沒有第二份文件可以對照。自架的受管制環境因此有兩個問題要分開問:權重與授權能不能滿足需求,答案現在就寫在 Hugging Face 的頁面上;供應鏈與管轄的宣稱,要等 Aleph Alpha 提供稽核報告、第三方憑證或決定紀錄,稽核流程才有東西可以接受或拒絕。
What to check:結構與算術能自己數,基準分數要自己跑,主權說法要等對方附稽核、憑證或紀錄。三類說法的證據在不同人手上,Kolibri 的發表文把它們寫在同一頁,讀的時候得拆開。