[{"data":1,"prerenderedAt":2271},["ShallowReactive",2],{"post-shared-trunk-four-modalities":3,"site-info":1374,"related-en-shared-trunk-four-modalities":1470},{"zh":4,"en":728},{"id":5,"title":6,"author":7,"body":8,"cover":709,"coverAlt":710,"date":711,"description":712,"draft":713,"extension":714,"featured":713,"lang":715,"meta":716,"navigation":129,"ogImage":717,"path":718,"seo":719,"slug":720,"stem":721,"tags":722,"translationKey":720,"updated":726,"__hash__":727},"blog\u002Fblog\u002Fzh-TW\u002Fshared-trunk-four-modalities.md","共用維度：升維的新方向","Jecision",{"type":9,"value":10,"toc":689},"minimark",[11,18,22,25,28,31,47,53,56,59,65,71,77,83,87,93,104,107,110,115,118,135,138,141,146,150,153,158,161,168,174,178,181,187,190,194,197,204,207,210,221,224,227,233,236,239,243,246,249,255,262,265,268,274,277,281,284,287,290,296,300,303,369,372,538,541,544,550,556,562,568,571,574,577,583,589,595,605,616,622,626,629,635,638,651,657,663,666],[12,13,14],"blockquote",{},[15,16,17],"p",{},"這篇沒有我們的實測。數字都來自論文與模型卡，連結在文末；判斷是我們的，會標明。",[19,20,21],"h2",{"id":21},"先講一個場景",[15,23,24],{},"假設你要做一個「公司內部什麼都能搜」的系統。",[15,26,27],{},"合約是 PDF，發票是掃描件，會議是錄音，產品照是圖檔。",[15,29,30],{},"多模態過去有兩條路：一條是養四個模型——文字嵌入、視覺嵌入、語音轉文字、音訊分類，四套向量空間互不相通，最後再加一層對齊；另一條是把一個模型做得很大，大到能吞下所有模態。",[15,32,33,34,41,42,46],{},"2026 年 10 月，Google 的 ",[35,36,40],"a",{"href":37,"rel":38},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2610.37364",[39],"nofollow","EmbeddingGemma 2"," 示範了第三條：",[43,44,45],"strong",{},"共用語意 backbone，把不同模態的容量隔離在分支裡","。純文字跑起來只要 271M；需要視覺再打開視覺分支，需要聲音再打開音訊分支。",[15,48,49,50],{},"它真正值錢的地方不是「一個模型吃四種資料」，而是：",[43,51,52],{},"升維不必讓整個模型一起變胖。",[19,54,55],{"id":55},"升維的舊帳單",[15,57,58],{},"要理解這條新路，先看舊路的成本。",[15,60,61,64],{},[43,62,63],{},"第一是乘法。"," 稠密模型的帳單是參數量乘上 token 數。想多一種能力，就得把所有東西一起放大。",[15,66,67,70],{},[43,68,69],{},"第二是梯度打架。"," 同一組權重要同時滿足「這個像素是貓」和「這個詞是主詞」。兩邊梯度方向不同，互相拉扯。多任務學習裡叫負遷移。",[15,72,73,76],{},[43,74,75],{},"第三是輸入幾何不同。"," 文字是離散的 token、影像是像素網格、聲音是波形。它們連「什麼是一個單位」都不一樣。",[15,78,79,80],{},"這三個帳單不是要證明多模態不可行，而是說明為什麼舊路走到某個尺寸就開始不划算。",[43,81,82],{},"新方向的價值，就是換一種付帳方式。",[19,84,86],{"id":85},"新方向共用維度隔離容量","新方向：共用維度，隔離容量",[15,88,89,90],{},"EmbeddingGemma 2 的做法是：",[43,91,92],{},"拆在入口，合在語意。",[94,95,100],"pre",{"className":96,"code":98,"language":99},[97],"language-text","圖片\u002F影片\u002F聲音 ──[各自的編碼器]──> soft token ──[同一個 24 層 transformer]──> 向量\n                   ↑ 分開                              ↑ 共用\n","text",[101,102,98],"code",{"__ignoreMap":103},"",[15,105,106],{},"模態編碼器各自處理低階特徵（像素、波形），輸出變成「soft token」——連續向量，跟文字 token 一樣可以排進序列，但不需要對應任何一個字。高階語意則全部交給同一個 transformer。",[15,108,109],{},"參數這樣分：主幹（文字也走這裡）271M、視覺編碼器 167M、音訊編碼器 305M。",[15,111,112],{},[43,113,114],{},"注意那個 305M：音訊編碼器比整個文字主幹還大。",[15,116,117],{},"這正是新方向的關鍵。容量掛在分支上，於是它可以被關掉：",[119,120,123,124,123,131],"figure",{"className":121},[122],"article-figure","\n  ",[125,126],"video",{"src":127,"poster":128,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":130},"\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fsplit.mp4","\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fsplit-poster.jpg",true,"參數分配與實際載入記憶體",[132,133,134],"figcaption",{},"左邊是參數分配；右邊是實際載入。分支可以按需打開——這就是「升維不必變胖」的機制。",[15,136,137],{},"在 Pixel 11 Pro 上、Q4_C 量化下，峰值記憶體（含 runtime 編譯開銷）：純文字 191 MB、文字加影像 447 MB、全模態 567 MB。",[15,139,140],{},"而且文字品質沒有犧牲。它的 271M 文字路徑，多語 MTEB 平均 61.36；前一代 308M 是 61.15。參數更少、還多扛三種模態，文字沒有掉。",[15,142,143],{},[43,144,145],{},"這就是這條路最有希望的地方：升維可以是「選擇性打開」，不是「整體膨脹」。",[19,147,149],{"id":148},"兩種拆法兩張帳單","兩種拆法，兩張帳單",[15,151,152],{},"同樣是「共用主幹、隔離容量」，可以拆在不同地方。目前兩種主流答案：",[154,155,157],"h3",{"id":156},"moe拆在模型中間","MoE：拆在模型中間",[15,159,160],{},"同一層裡放很多專家，每個 token 只走其中幾個，由 router 決定。",[15,162,163,164,167],{},"它換到的是：",[43,165,166],{},"容量與「每 token 計算量」脫鉤。"," 參數可以很多，但每個 token 只碰一小塊。",[15,169,170,171],{},"代價是訓練變難：router 崩塌、專家負載不均、梯度稀疏。",[43,172,173],{},"MoE 用訓練的難度，換推論的成本。",[154,175,177],{"id":176},"embeddinggemma-2拆在入口","EmbeddingGemma 2：拆在入口",[15,179,180],{},"異質的模態交給設計好的編碼器，同質的語意交給共用主幹。",[15,182,163,183,186],{},[43,184,185],{},"容量與「常駐記憶體」脫鉤。"," 你不需要為了偶爾用一次影片檢索，讓整個模型常駐。",[15,188,189],{},"兩者解的不是同一道題，也不互斥。一個在計算上省，一個在記憶體上省。",[19,191,193],{"id":192},"早融合與晚融合在哪一層開始對齊","早融合與晚融合：在哪一層開始對齊",[15,195,196],{},"如果你聽過 CLIP，會覺得「這不就是多模態嗎」。",[15,198,199,200,203],{},"差別在",[43,201,202],{},"合併點","。",[15,205,206],{},"晚融合（CLIP、SigLIP）：兩個完整編碼器各自跑完，最後用對比損失對齊。兩塔之間沒有資訊交換。",[15,208,209],{},"早融合（EmbeddingGemma 2）：編碼完就變成 soft token，塞進同一個 transformer，所有模態在上面混在一起。",[119,211,123,213,123,218],{"className":212},[122],[125,214],{"src":215,"poster":216,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":217},"\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fflow.mp4","\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fflow-poster.jpg","晚融合與早融合的資料流",[132,219,220],{},"差別不在「有沒有對齊」，在「在哪一層開始對齊」——這決定能不能學到跨模態的交互。",[15,222,223],{},"晚融合的好處是兩個塔可以各自很強；代價是學不到跨模態的交互——圖片裡的文字、影片的原聲、簡報裡圖表跟標題的關係。",[15,225,226],{},"早融合的代價是所有模態要擠進同一個狹窄通道。它的模型維度只有 512，總共 24 層。（這是我們的解讀：刻意選窄。）",[15,228,229,230],{},"它的賭注是：",[43,231,232],{},"語意空間夠窄，才逼得出真正的共同表示。",[19,234,235],{"id":235},"三個支持這條路的證據",[15,237,238],{},"論文做了消融實驗，其中三個對「共用主幹」這個方向特別有說服力。",[154,240,242],{"id":241},"拿掉文字專屬的機制全部變好","拿掉文字專屬的機制，全部變好",[15,244,245],{},"Gemma 的 per-layer embeddings 原本多一個查找表，作用是把 token 資訊注入中間層。EmbeddingGemma 2 把查找表拿掉，只保留投影。",[15,247,248],{},"整體從 55.07 變成 55.46；影像 54.57 → 54.67、影片 47.13 → 47.82、視覺文件 61.76 → 62.37。這些消融是訓練過程中的中間配方，不等於最終模型（最終 MMEB-v2 整體是 59.01）。",[15,250,251,254],{},[43,252,253],{},"拿掉反而全部變好","，連純文字也是。論文給的理由是：查找表對非文字模態「沒有直接訊號」，還額外佔記憶體。",[15,256,257,258,261],{},"我們的解讀是：",[43,259,260],{},"共同空間不是靠加東西達成的，是靠拿掉東西。"," 任何讓某一模態「繞過」共同空間的機制，都會拉低整體。",[154,263,264],{"id":264},"視覺編碼器不能凍結",[15,266,267],{},"可訓練的整體 52.27、影像 50.10、影片 43.26；凍結後掉到 48.18、44.35、39.24，差 4.1 分。",[15,269,270,271],{},"很多多模態模型會凍結模態編碼器，省成本又保留原本能力。這篇的結果是：",[43,272,273],{},"編碼器要被訓練去適應共同空間。",[15,275,276],{},"對這條路來說這是好消息也是提醒——共用主幹不是免費的，它要求每個分支往同一個地方收斂，而收斂是可以被訓練出來的。",[154,278,280],{"id":279},"音訊編碼器是凍結的而音訊剛好只打平","音訊編碼器是凍結的，而音訊剛好只打平",[15,282,283],{},"論文寫得很清楚：音訊編碼器跟 Gemma 4 E2B\u002FE4B 完全相同，訓練期間凍結。",[15,285,286],{},"而音訊是它跟對手最接近的一項：MAEB 的 Mean(Task) 49.87，Jina Omni Nano 50.14，差 0.27 分。Mean(Type) 則是 48.65 對 55.31，沒有打平。對照之下，影像 57.28 對 55.43、影片 50.67 對 35.87，都是明顯領先。",[15,288,289],{},"作者自己也留了一句：「透過進一步訓練音訊編碼器，可能也會有類似的增益。」",[15,291,292,295],{},[43,293,294],{},"這是我們的推測，不是論文的結論","：把音訊解凍，這一項可能拉開。但他們沒做，所以只能說「有這個可能」——這正是這條路還沒走完的地方。",[19,297,299],{"id":298},"怎麼用選型不是排名","怎麼用：選型不是排名",[15,301,302],{},"選型要看的是「你的場景需要什麼」，不是「誰第一名」。",[304,305,306,322],"table",{},[307,308,309],"thead",{},[310,311,312,316,319],"tr",{},[313,314,315],"th",{},"你的用途",[313,317,318],{},"可以這樣選",[313,320,321],{},"理由",[323,324,325,337,348,358],"tbody",{},[310,326,327,331,334],{},[328,329,330],"td",{},"純文字檢索／RAG",[328,332,333],{},"Qwen3 或 Jina 的純文字模型",[328,335,336],{},"同尺寸下分數更高、模型更小",[310,338,339,342,345],{},[328,340,341],{},"文字加圖片搜尋",[328,343,344],{},"EmbeddingGemma 2 或 SigLIP 類專門模型",[328,346,347],{},"取決於要不要一份 checkpoint 打全部",[310,349,350,353,355],{},[328,351,352],{},"影片、聲音、混合模態",[328,354,40],{},[328,356,357],{},"影片領先 15–20 分，原生音訊比先轉文字好約 12 分",[310,359,360,363,366],{},[328,361,362],{},"手機／離線、記憶體吃緊",[328,364,365],{},"EmbeddingGemma 2 純文字版",[328,367,368],{},"191 MB，而且只載入需要的編碼器",[15,370,371],{},"幾個值得一起看的數字：",[304,373,374,402],{},[307,375,376],{},[310,377,378,381,384,387,390,393,396,399],{},[313,379,380],{},"模型",[313,382,383],{},"參數",[313,385,386],{},"多語文字",[313,388,389],{},"英文文字",[313,391,392],{},"程式碼",[313,394,395],{},"多模態整體",[313,397,398],{},"影像",[313,400,401],{},"影片",[323,403,404,439,463,492,515],{},[310,405,406,410,413,416,419,424,429,434],{},[328,407,408],{},[43,409,40],{},[328,411,412],{},"744M",[328,414,415],{},"61.36",[328,417,418],{},"68.46",[328,420,421],{},[43,422,423],{},"78.68",[328,425,426],{},[43,427,428],{},"59.01",[328,430,431],{},[43,432,433],{},"57.28",[328,435,436],{},[43,437,438],{},"50.67",[310,440,441,444,447,450,453,456,459,461],{},[328,442,443],{},"EmbeddingGemma 1",[328,445,446],{},"308M",[328,448,449],{},"61.15",[328,451,452],{},"69.67",[328,454,455],{},"68.76",[328,457,458],{},"—",[328,460,458],{},[328,462,458],{},[310,464,465,468,471,476,481,483,486,489],{},[328,466,467],{},"Jina Embed v5 Omni Nano",[328,469,470],{},"986M",[328,472,473],{},[43,474,475],{},"65.52",[328,477,478],{},[43,479,480],{},"71.11",[328,482,458],{},[328,484,485],{},"43.61",[328,487,488],{},"31.56",[328,490,491],{},"30.73",[310,493,494,497,500,503,506,509,511,513],{},[328,495,496],{},"Qwen3-Embedding-0.6B",[328,498,499],{},"596M",[328,501,502],{},"64.34",[328,504,505],{},"70.47",[328,507,508],{},"75.42",[328,510,458],{},[328,512,458],{},[328,514,458],{},[310,516,517,520,523,525,527,529,532,535],{},[328,518,519],{},"InterestFM UIR CAFe 0.5B",[328,521,522],{},"894M",[328,524,458],{},[328,526,458],{},[328,528,458],{},[328,530,531],{},"49.33",[328,533,534],{},"55.43",[328,536,537],{},"35.87",[15,539,540],{},"（— 代表論文該欄沒有分數；論文用 ∗ 標「不支援」、– 標「沒有分數」，兩者不是同一件事。數字皆來自論文 Table 6。）",[15,542,543],{},"三件事值得注意。",[15,545,546,549],{},[43,547,548],{},"第一，跟前代比，文字幾乎沒變，但多出了三種模態。"," 真正的差別不是分數，是「多出來的功能沒有把原本的能力吃掉」。",[15,551,552,555],{},[43,553,554],{},"第二，純文字它輸給專門模型。"," Jina 多語贏 4.2 分、英文贏 2.7 分；Qwen3 贏 3.0 分。而且 744M 是「全部載入」的數字，純文字實際只跑 271M。論文附錄也給了答案：268M 的 harrier-oss-v1-270m 多語 66.5、212M 的 jina-embed-v5-text-nano 65.5，都比它高。這兩個是純文字專家模型。",[15,557,558,559],{},"但這不是缺點，是分工。",[43,560,561],{},"你要一份能升維的 checkpoint，跟你要一個最強的文字模型，是兩個不同的需求。",[15,563,564,567],{},[43,565,566],{},"第三，多模態它領先很多。"," 影片 50.67，Jina 30.73、InterestFM 35.87，差距 15 到 20 分。影像 57.28 對 55.43，贏得不誇張但穩定。",[15,569,570],{},"聲音方面：同一個模型，原生音訊 69.54，先轉文字（ASR）只有 57.59——差約 12 分。聲音裡的非語言資訊，轉文字就沒了。（前代的 ASR 是 50.95；拿它跟這代的 69.54 比會得到 18.6 分，但那是跨世代比較，不是模態差距。）",[19,572,573],{"id":573},"還沒走完的地方",[15,575,576],{},"一條新路值不值得押注，要看它還缺什麼。這裡有四件事。",[15,578,579,582],{},[43,580,581],{},"純文字不是最強。"," 論文說的 Pareto frontier 是「品質與參數量」的效率前沿（贏過兩到十二倍大的模型），不是每個單項都第一。",[15,584,585,588],{},[43,586,587],{},"視覺文件還有空間。"," 在 280 token 預算下 VisDoc 67.84，Jina Omni Nano 71.34。掃描件、表格、排版複雜的文件靠細粒度視覺細節，而論文也說提高 token 預算對 VisDoc 還有增益——這比較像「還沒調到最好」，不是天花板。",[15,590,591,594],{},[43,592,593],{},"量化對聲音傷害最大。"," bfloat16 換到 int4，文字幾乎無感（61.36 → 60.84），聲音掉 5.6 分（69.54 → 63.92）。不過論文註明 float 與量化跑的是不同評測 harness，這個降幅含 harness 差異，不能全算在量化頭上。",[15,596,597,600,601,604],{},[43,598,599],{},"同一個 token 預算，對三種任務方向不同。"," 影像是每幀 280、影片是每幀 140 訓練出來的；把推論預算從 280 提到 560：視覺文件大幅改善（63.38 → 67.62）、影像飽和、",[43,602,603],{},"影片反而變差","（48.51 → 46.52）。論文說原因是過長的序列稀釋了注意力與 mean-pooled 表示。",[119,606,123,608,123,613],{"className":607},[122],[125,609],{"src":610,"poster":611,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":612},"\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fbudget.mp4","\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities\u002Fbudget-poster.jpg","視覺 token 預算對影像、影片、視覺文件的影響",[132,614,615],{},"同一個旋鈕，三種方向。影像的訓練值是 280、影片是 140；影片在 280 之後還在進步，掉的是 280 → 560。",[15,617,618,619],{},"所以部署時，這個旋鈕要按任務分開調——",[43,620,621],{},"這不是缺陷，是這條路給你的控制權。",[19,623,625],{"id":624},"結論升維的新方向","結論：升維的新方向",[15,627,628],{},"回到那個場景。你不再需要在「四個模型」與「一個大模型」之間二選一。",[15,630,631,634],{},[43,632,633],{},"共用維度，容量隔離在分支","：同一個語意空間，需要什麼模態就打開什麼分支。",[15,636,637],{},"兩種拆法，各換一張帳單：",[12,639,640,646],{},[15,641,642,645],{},[43,643,644],{},"MoE"," 拆在模型中間。同質的專家，用學出來的 router 決定誰上班。換到「容量 vs 每 token 計算」的脫鉤。",[15,647,648,650],{},[43,649,40],{}," 拆在入口。異質的模態，用設計好的編碼器決定誰處理。換到「容量 vs 常駐記憶體」的脫鉤。",[15,652,653,654],{},"一個共同的教訓：",[43,655,656],{},"拆不是為了變大，是為了讓某些東西可以被關掉。",[15,658,659,660],{},"而它最反直覺、也最值得記住的一課是——",[43,661,662],{},"共同空間是拿掉專屬機制換來的，不是加更多模組換來的。",[664,665],"hr",{},[15,667,668],{},[669,670,671,672,676,677,682,683,688],"em",{},"我們沒有實測這顆模型的部署難度、工具鏈支援或實際延遲，所以這篇不建議你直接遷移。要做的話，先量三件事：你的文字主幹到底多大、分支能不能關、跨模態查詢佔比多少。原始資料：",[35,673,675],{"href":37,"rel":674},[39],"論文 arXiv 2610.37364","、",[35,678,681],{"href":679,"rel":680},"https:\u002F\u002Fai.google.dev\u002Fgemma\u002Fdocs",[39],"Gemma 文件","。MoE 的相關工作見 ",[35,684,687],{"href":685,"rel":686},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2610.37386",[39],"arXiv 2610.37386","（channel selection，不是 MoE 綜述）。",{"title":103,"searchDepth":690,"depth":690,"links":691},2,[692,693,694,695,700,701,706,707,708],{"id":21,"depth":690,"text":21},{"id":55,"depth":690,"text":55},{"id":85,"depth":690,"text":86},{"id":148,"depth":690,"text":149,"children":696},[697,699],{"id":156,"depth":698,"text":157},3,{"id":176,"depth":698,"text":177},{"id":192,"depth":690,"text":193},{"id":235,"depth":690,"text":235,"children":702},[703,704,705],{"id":241,"depth":698,"text":242},{"id":264,"depth":698,"text":264},{"id":279,"depth":698,"text":280},{"id":298,"depth":690,"text":299},{"id":573,"depth":690,"text":573},{"id":624,"depth":690,"text":625},"\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities.svg","參數分配圖：主幹 271M、視覺 167M、音訊 305M，容量隔離在分支，需要時才載入","2026-11-01","多模態過去只有兩條路：養四個模型，或把一個模型做大。EmbeddingGemma 2 示範第三條——共用語意 backbone，把容量隔離在分支。純文字只載入 271M，需要時再打開視覺與音訊。這篇講這條路怎麼走、代價在哪、什麼時候值得用。",false,"md","zh-TW",{},"\u002Fimages\u002Fblog\u002Fshared-trunk-four-modalities.jpg","\u002Fblog\u002Fzh-tw\u002Fshared-trunk-four-modalities",{"title":6,"description":712},"shared-trunk-four-modalities","blog\u002Fzh-TW\u002Fshared-trunk-four-modalities",[723,724,725],"multimodal","embedding","model-design",null,"pJvRGZyuC8339uRXXK3bnnd35lxoy_07t8wNLSWB1Is",{"id":729,"title":730,"author":7,"body":731,"cover":1363,"coverAlt":1364,"date":711,"description":1365,"draft":713,"extension":714,"featured":713,"lang":1366,"meta":1367,"navigation":129,"ogImage":1368,"path":1369,"seo":1370,"slug":720,"stem":1371,"tags":1372,"translationKey":720,"updated":726,"__hash__":1373},"blog\u002Fblog\u002Fen\u002Fshared-trunk-four-modalities.md","Shared dimensions: a new direction for going multimodal",{"type":9,"value":732,"toc":1345},[733,738,742,745,748,751,762,768,772,775,781,787,793,799,803,806,812,815,818,823,826,835,838,841,846,850,853,857,860,867,873,877,880,886,889,893,896,903,906,909,918,921,924,930,934,937,941,944,947,953,960,964,967,973,976,980,983,986,989,995,999,1002,1062,1065,1201,1204,1207,1213,1219,1225,1231,1234,1238,1241,1247,1253,1259,1269,1278,1284,1288,1291,1297,1300,1312,1318,1324,1326],[12,734,735],{},[15,736,737],{},"No benchmarks of our own here. The numbers come from the paper and the model card, linked at the end; the judgments are ours and labelled.",[19,739,741],{"id":740},"start-with-a-scene","Start with a scene",[15,743,744],{},"Suppose you want a system that can search everything inside a company.",[15,746,747],{},"Contracts are PDFs. Invoices are scans. Meetings are audio. Product photos are images.",[15,749,750],{},"Multimodal used to offer two paths. One was to run four models — text embeddings, image embeddings, speech-to-text, audio classification — with four vector spaces that do not talk to each other, plus an alignment layer on top. The other was to make one model big enough to swallow every modality.",[15,752,753,754,757,758,761],{},"In October 2026, Google's ",[35,755,40],{"href":37,"rel":756},[39]," demonstrated a third path: ",[43,759,760],{},"share the semantic backbone, and isolate capacity for each modality in branches",". Text-only runs at 271M; turn on vision when you need images, turn on audio when you need sound.",[15,763,764,765],{},"What is actually valuable here is not \"one model handles four data types\". It is that ",[43,766,767],{},"going multimodal does not require making the whole model fatter.",[19,769,771],{"id":770},"the-old-bill-for-scaling-up","The old bill for scaling up",[15,773,774],{},"To see why the third path matters, look at what the old paths cost.",[15,776,777,780],{},[43,778,779],{},"The first is multiplication."," A dense model's bill is parameters times tokens. Want one more capability, and you scale everything up together.",[15,782,783,786],{},[43,784,785],{},"The second is gradient conflict."," The same weights must satisfy \"this pixel is a cat\" and \"this word is a subject\". The gradients pull in different directions — negative transfer, in multitask learning terms.",[15,788,789,792],{},[43,790,791],{},"The third is input geometry."," Text is discrete tokens, images are pixel grids, audio is waveforms. They do not even agree on what one unit is.",[15,794,795,796],{},"These three costs are not an argument that multimodal is impossible. They explain why the old path stops paying off past a certain size. ",[43,797,798],{},"The value of the new direction is a different way to pay.",[19,800,802],{"id":801},"the-new-direction-shared-dimensions-isolated-capacity","The new direction: shared dimensions, isolated capacity",[15,804,805],{},"EmbeddingGemma 2 splits at the entrance and merges in semantics.",[94,807,810],{"className":808,"code":809,"language":99},[97],"image\u002Fvideo\u002Faudio ──[per-modality encoders]──> soft tokens ──[one 24-layer transformer]──> vector\n                        ↑ split                                    ↑ shared\n",[101,811,809],{"__ignoreMap":103},[15,813,814],{},"Each modality encoder handles low-level features (pixels, waveforms) and turns them into \"soft tokens\" — continuous vectors that sit in the sequence like text tokens but need not correspond to any word. High-level meaning goes through one shared transformer.",[15,816,817],{},"The parameters split like this: a 271M trunk (text also runs here), a 167M vision encoder, and a 305M audio encoder.",[15,819,820],{},[43,821,822],{},"Note that 305M: the audio encoder is bigger than the entire text trunk.",[15,824,825],{},"That is the point of the new direction. Capacity lives in branches, so it can be switched off:",[119,827,123,829,123,832],{"className":828},[122],[125,830],{"src":127,"poster":128,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":831},"Parameter split and actual loaded memory",[132,833,834],{},"Parameters on the left, actual load on the right. Branches open on demand — that is how scale stops meaning bloat.",[15,836,837],{},"On a Pixel 11 Pro at Q4_C, peak memory (including runtime compilation overhead): 191 MB for text, 447 MB for text plus images, 567 MB for everything.",[15,839,840],{},"And text quality does not pay for it. Its 271M text path scores 61.36 on multilingual MTEB; the previous generation at 308M scored 61.15. Fewer parameters, three extra modalities, no text regression.",[15,842,843],{},[43,844,845],{},"That is the most promising part: scale can be opened selectively instead of expanded universally.",[19,847,849],{"id":848},"two-ways-to-split-two-bills","Two ways to split, two bills",[15,851,852],{},"\"Share the trunk, isolate capacity\" can be done at different places. Two current answers:",[154,854,856],{"id":855},"moe-split-in-the-middle-of-the-model","MoE: split in the middle of the model",[15,858,859],{},"Many experts sit inside a layer; each token visits a few, chosen by a router.",[15,861,862,863,866],{},"What it buys: ",[43,864,865],{},"capacity decouples from compute per token."," Parameters can be plentiful while each token touches a small slice.",[15,868,869,870],{},"The cost is training difficulty: router collapse, uneven expert load, sparse gradients. ",[43,871,872],{},"MoE trades training difficulty for inference cost.",[154,874,876],{"id":875},"embeddinggemma-2-split-at-the-entrance","EmbeddingGemma 2: split at the entrance",[15,878,879],{},"Heterogeneous modalities go to designed encoders; homogeneous meaning goes to the shared trunk.",[15,881,862,882,885],{},[43,883,884],{},"capacity decouples from resident memory."," You do not keep the whole model resident for the occasional video search.",[15,887,888],{},"These are not the same problem, and they are not mutually exclusive. One saves compute; the other saves memory.",[19,890,892],{"id":891},"early-fusion-late-fusion-where-alignment-starts","Early fusion, late fusion: where alignment starts",[15,894,895],{},"If you know CLIP, this looks like \"multimodal, again\".",[15,897,898,899,902],{},"The difference is ",[43,900,901],{},"where the merge happens",".",[15,904,905],{},"Late fusion (CLIP, SigLIP): two full encoders run independently, then a contrastive loss aligns them. The towers never exchange information.",[15,907,908],{},"Early fusion (EmbeddingGemma 2): encoders produce soft tokens that enter one transformer, where all modalities mix.",[119,910,123,912,123,915],{"className":911},[122],[125,913],{"src":215,"poster":216,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":914},"Late fusion versus early fusion data flow",[132,916,917],{},"The difference is not whether alignment exists — it is which layer starts aligning. That decides whether cross-modal interaction can be learned.",[15,919,920],{},"Late fusion lets each tower be strong on its own; the cost is that it cannot learn cross-modal interaction — text inside images, the original audio of a video, the relationship between a chart and its heading.",[15,922,923],{},"Early fusion costs something too: every modality must fit through one narrow channel. The model is 512-dimensional and 24 layers deep. (Our reading: deliberately narrow.)",[15,925,926,927],{},"Its bet: ",[43,928,929],{},"only a narrow semantic space forces a genuinely shared representation.",[19,931,933],{"id":932},"three-pieces-of-evidence-for-this-direction","Three pieces of evidence for this direction",[15,935,936],{},"The paper ran ablations; three of them speak directly to the \"shared trunk\" idea.",[154,938,940],{"id":939},"removing-a-text-only-mechanism-improves-everything","Removing a text-only mechanism improves everything",[15,942,943],{},"Gemma's per-layer embeddings used an extra lookup table to inject token information into intermediate layers. EmbeddingGemma 2 drops the lookup table and keeps only the projection.",[15,945,946],{},"Overall goes from 55.07 to 55.46; image 54.57 → 54.67, video 47.13 → 47.82, visual documents 61.76 → 62.37. These ablations are intermediate training recipes, not the final model (which reaches 59.01 MMEB-v2 overall).",[15,948,949,952],{},[43,950,951],{},"Removing it made everything better",", text included. The paper's explanation: the lookup table carries \"no direct signal\" for non-text modalities, and costs memory.",[15,954,955,956,959],{},"Our reading: ",[43,957,958],{},"a shared space is achieved by removing things, not adding them."," Any mechanism that lets one modality bypass the shared space drags the whole down.",[154,961,963],{"id":962},"the-vision-encoder-cannot-be-frozen","The vision encoder cannot be frozen",[15,965,966],{},"Trainable: 52.27 overall, 50.10 image, 43.26 video. Frozen: 48.18, 44.35, 39.24 — a 4.1 point gap.",[15,968,969,970],{},"Many multimodal models freeze modality encoders to save cost and preserve prior ability. This result says otherwise: ",[43,971,972],{},"encoders have to be trained to adapt to the shared space.",[15,974,975],{},"For this direction that is both good news and a reminder — the shared trunk is not free; it asks every branch to converge somewhere, and that convergence can be trained.",[154,977,979],{"id":978},"the-audio-encoder-is-frozen-and-audio-merely-ties","The audio encoder is frozen, and audio merely ties",[15,981,982],{},"The paper is explicit: the audio encoder is identical to Gemma 4 E2B\u002FE4B and frozen during training.",[15,984,985],{},"Audio is also where it is closest to its rival: MAEB Mean(Task) 49.87 versus Jina Omni Nano 50.14, a 0.27 gap. Mean(Type) is 48.65 versus 55.31 — not a tie. By contrast, image is 57.28 versus 55.43 and video 50.67 versus 35.87, both clearly ahead.",[15,987,988],{},"The authors leave one line: further training of the audio encoder \"may also yield similar gains\".",[15,990,991,994],{},[43,992,993],{},"This is our speculation, not the paper's conclusion",": unfreezing audio could open that gap. They did not do it, so we can only say it is possible — and that is exactly the part of this path that is not finished.",[19,996,998],{"id":997},"how-to-use-it-selection-is-not-a-ranking","How to use it: selection is not a ranking",[15,1000,1001],{},"What matters is what your use case needs, not who is first.",[304,1003,1004,1017],{},[307,1005,1006],{},[310,1007,1008,1011,1014],{},[313,1009,1010],{},"Your use case",[313,1012,1013],{},"A reasonable choice",[313,1015,1016],{},"Why",[323,1018,1019,1030,1041,1051],{},[310,1020,1021,1024,1027],{},[328,1022,1023],{},"Text-only retrieval \u002F RAG",[328,1025,1026],{},"Qwen3 or Jina text models",[328,1028,1029],{},"Higher scores at the same size, smaller models",[310,1031,1032,1035,1038],{},[328,1033,1034],{},"Text plus image search",[328,1036,1037],{},"EmbeddingGemma 2 or a SigLIP-style specialist",[328,1039,1040],{},"Depends on whether you want one checkpoint for everything",[310,1042,1043,1046,1048],{},[328,1044,1045],{},"Video, audio, mixed modality",[328,1047,40],{},[328,1049,1050],{},"15–20 points ahead on video; native audio beats ASR by about 12 points",[310,1052,1053,1056,1059],{},[328,1054,1055],{},"Phone \u002F offline, tight memory",[328,1057,1058],{},"EmbeddingGemma 2 text-only",[328,1060,1061],{},"191 MB, and only the encoders you need",[15,1063,1064],{},"Some numbers worth reading together:",[304,1066,1067,1095],{},[307,1068,1069],{},[310,1070,1071,1074,1077,1080,1083,1086,1089,1092],{},[313,1072,1073],{},"Model",[313,1075,1076],{},"Params",[313,1078,1079],{},"Multilingual text",[313,1081,1082],{},"English text",[313,1084,1085],{},"Code",[313,1087,1088],{},"Multimodal overall",[313,1090,1091],{},"Image",[313,1093,1094],{},"Video",[323,1096,1097,1125,1143,1165,1183],{},[310,1098,1099,1103,1105,1107,1109,1113,1117,1121],{},[328,1100,1101],{},[43,1102,40],{},[328,1104,412],{},[328,1106,415],{},[328,1108,418],{},[328,1110,1111],{},[43,1112,423],{},[328,1114,1115],{},[43,1116,428],{},[328,1118,1119],{},[43,1120,433],{},[328,1122,1123],{},[43,1124,438],{},[310,1126,1127,1129,1131,1133,1135,1137,1139,1141],{},[328,1128,443],{},[328,1130,446],{},[328,1132,449],{},[328,1134,452],{},[328,1136,455],{},[328,1138,458],{},[328,1140,458],{},[328,1142,458],{},[310,1144,1145,1147,1149,1153,1157,1159,1161,1163],{},[328,1146,467],{},[328,1148,470],{},[328,1150,1151],{},[43,1152,475],{},[328,1154,1155],{},[43,1156,480],{},[328,1158,458],{},[328,1160,485],{},[328,1162,488],{},[328,1164,491],{},[310,1166,1167,1169,1171,1173,1175,1177,1179,1181],{},[328,1168,496],{},[328,1170,499],{},[328,1172,502],{},[328,1174,505],{},[328,1176,508],{},[328,1178,458],{},[328,1180,458],{},[328,1182,458],{},[310,1184,1185,1187,1189,1191,1193,1195,1197,1199],{},[328,1186,519],{},[328,1188,522],{},[328,1190,458],{},[328,1192,458],{},[328,1194,458],{},[328,1196,531],{},[328,1198,534],{},[328,1200,537],{},[15,1202,1203],{},"(— means the paper reports no score for that cell; the paper uses ∗ for \"not supported\" and – for \"score unavailable\", which are not the same thing. All numbers from Table 6.)",[15,1205,1206],{},"Three things stand out.",[15,1208,1209,1212],{},[43,1210,1211],{},"First, versus the previous generation, text barely moved — but three modalities appeared."," The real difference is not the score; it is that the extra capability did not eat the existing one.",[15,1214,1215,1218],{},[43,1216,1217],{},"Second, text-only it loses to specialists."," Jina leads by 4.2 on multilingual and 2.7 on English; Qwen3 by 3.0. And 744M is the \"everything loaded\" number — text-only runs at 271M. The appendix gives the fair comparison: harrier-oss-v1-270m at 268M scores 66.5 and jina-embed-v5-text-nano at 212M scores 65.5, both higher. Both are text specialists.",[15,1220,1221,1222],{},"That is not a flaw, it is a division of labour. ",[43,1223,1224],{},"Wanting one checkpoint that can grow into other modalities, and wanting the strongest text model, are two different requirements.",[15,1226,1227,1230],{},[43,1228,1229],{},"Third, multimodal it leads clearly."," Video 50.67 versus Jina 30.73 and InterestFM 35.87 — a 15 to 20 point gap. Image 57.28 versus 55.43 is modest but consistent.",[15,1232,1233],{},"On audio: same model, native audio 69.54 versus 57.59 for ASR — about 12 points. What is lost in transcription is the non-linguistic part of sound. (The previous generation's ASR scored 50.95; comparing that to 69.54 gives 18.6, but that is a generational comparison, not a modality gap.)",[19,1235,1237],{"id":1236},"what-is-not-finished","What is not finished",[15,1239,1240],{},"To judge whether a new path is worth betting on, look at what it still lacks. Four things.",[15,1242,1243,1246],{},[43,1244,1245],{},"Text is not the strongest."," The Pareto frontier the paper claims is a quality-versus-parameters efficiency frontier (beating models 2–12× larger), not a first place in every column.",[15,1248,1249,1252],{},[43,1250,1251],{},"Visual documents still have room."," At a 280-token budget, VisDoc is 67.84 versus Jina Omni Nano's 71.34. Scans, tables and dense layouts depend on fine visual detail, and the paper notes that raising the token budget still improves VisDoc — this looks more like \"not tuned yet\" than a ceiling.",[15,1254,1255,1258],{},[43,1256,1257],{},"Quantization hurts audio most."," Moving from bfloat16 to int4, text barely notices (61.36 → 60.84) while audio drops 5.6 points (69.54 → 63.92). The paper notes, however, that float and quantized runs use different evaluation harnesses, so the drop includes harness differences and cannot be blamed on quantization alone.",[15,1260,1261,1264,1265,1268],{},[43,1262,1263],{},"The same token budget moves three tasks in three directions."," Images are trained at 280 tokens per frame, video at 140; raising inference from 280 to 560 improves visual documents sharply (63.38 → 67.62), saturates images, and ",[43,1266,1267],{},"makes video worse"," (48.51 → 46.52). The paper attributes this to excessive sequence length diluting attention and mean-pooled representations.",[119,1270,123,1272,123,1275],{"className":1271},[122],[125,1273],{"src":610,"poster":611,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":1274},"Vision token budget effects on image, video and visual documents",[132,1276,1277],{},"One knob, three directions. Images train at 280, video at 140; video is still improving at 280 and drops from 280 to 560.",[15,1279,1280,1281],{},"So the knob has to be tuned per task — ",[43,1282,1283],{},"not a defect, but the control this direction gives you.",[19,1285,1287],{"id":1286},"conclusion-a-new-direction-for-scaling-up","Conclusion: a new direction for scaling up",[15,1289,1290],{},"Back to the scene. You no longer have to choose between \"four models\" and \"one big model\".",[15,1292,1293,1296],{},[43,1294,1295],{},"Shared dimensions, capacity isolated in branches",": one semantic space, open the branch you need.",[15,1298,1299],{},"Two ways to split, two different bills:",[12,1301,1302,1307],{},[15,1303,1304,1306],{},[43,1305,644],{}," splits inside the model. Homogeneous experts, a learned router decides who works. It buys decoupling of capacity from compute per token.",[15,1308,1309,1311],{},[43,1310,40],{}," splits at the entrance. Heterogeneous modalities, designed encoders decide who handles what. It buys decoupling of capacity from resident memory.",[15,1313,1314,1315],{},"The shared lesson: ",[43,1316,1317],{},"splitting is not about getting bigger; it is about making some parts switchable off.",[15,1319,1320,1321],{},"And the most counter-intuitive lesson of all — ",[43,1322,1323],{},"a shared space comes from removing specialised machinery, not from adding more modules.",[664,1325],{},[15,1327,1328],{},[669,1329,1330,1331,1335,1336,1340,1341,1344],{},"We have not measured this model's deployment difficulty, tooling support or real latency, so this is not a recommendation to migrate. If you do, measure three things first: how big your text trunk actually is, whether the branches can be switched off, and what share of your queries are cross-modal. Sources: ",[35,1332,1334],{"href":37,"rel":1333},[39],"arXiv 2610.37364",", ",[35,1337,1339],{"href":679,"rel":1338},[39],"Gemma docs",". Related MoE work: ",[35,1342,687],{"href":685,"rel":1343},[39]," (channel selection, not a MoE survey).",{"title":103,"searchDepth":690,"depth":690,"links":1346},[1347,1348,1349,1350,1354,1355,1360,1361,1362],{"id":740,"depth":690,"text":741},{"id":770,"depth":690,"text":771},{"id":801,"depth":690,"text":802},{"id":848,"depth":690,"text":849,"children":1351},[1352,1353],{"id":855,"depth":698,"text":856},{"id":875,"depth":698,"text":876},{"id":891,"depth":690,"text":892},{"id":932,"depth":690,"text":933,"children":1356},[1357,1358,1359],{"id":939,"depth":698,"text":940},{"id":962,"depth":698,"text":963},{"id":978,"depth":698,"text":979},{"id":997,"depth":690,"text":998},{"id":1236,"depth":690,"text":1237},{"id":1286,"depth":690,"text":1287},"\u002Fimages\u002Fblog\u002Fen\u002Fshared-trunk-four-modalities.svg","Parameter split showing a 271M text trunk, 167M vision encoder and 305M audio encoder isolated in branches that can be loaded on demand","Multimodal used to mean four models, or one big enough to swallow everything. EmbeddingGemma 2 shows a third path: share the semantic backbone, isolate capacity in branches, load only what you need.","en",{},"\u002Fimages\u002Fblog\u002Fen\u002Fshared-trunk-four-modalities.jpg","\u002Fblog\u002Fen\u002Fshared-trunk-four-modalities",{"title":730,"description":1365},"blog\u002Fen\u002Fshared-trunk-four-modalities",[723,724,725],"wi1YnHGolk3e0hWo1T4Qw9oxzCu8vI22647doO01M-Q",{"id":1375,"company":1376,"extension":1387,"meta":1388,"services":1389,"social":1467,"stem":1468,"__hash__":1469},"site\u002Fsite.yml",{"name":1377,"nameEn":1378,"email":1379,"address":1380,"addressEn":1381,"lineUrl":1382,"lineId":1383,"duns":1384,"youtube":1385,"youtubeId":1386},"銡策數位有限公司","Jecision Digital Co., Ltd.","contact@jecision.com","231 新北市新店區北新路二段 262 號 3 樓之 3","3F.-3, No. 262, Sec. 2, Beixin Rd., Xindian Dist., New Taipei City 231, Taiwan","https:\u002F\u002Fline.me\u002FR\u002Fti\u002Fp\u002F@374qnumi","@374qnumi","963905705","https:\u002F\u002Fwww.youtube.com\u002Fshorts\u002F6UE0WTmyjsg","6UE0WTmyjsg","yml",{},[1390,1414,1440],{"key":1391,"zh":1392,"en":1403},"audit",{"title":1393,"tagline":1394,"summary":1395,"points":1396,"deliverable":1400,"detail":1401,"duration":1402},"企業 AI 導入健檢","先看清楚，再花錢","60 分鐘線上訪談，盤點最耗時、最依賴人力的營運環節；我們會告訴你哪些工作現在就能交給 AI、哪些還不成熟。",[1397,1398,1399],"現況盤點：梳理日常營運中最耗時、最依賴人力的環節","痛點診斷：判斷哪些工作現在就能交給 AI，哪些建議先保留人力","可行性評估：依你的業務特性與預算，篩選適合的模型與工具","《企業 AI 導入建議報告書》（PDF）","含 1–2 個「開發成本最低、成效最明顯」的優先項目、技術棧建議、預期節省的人力時間與下一步","訪談 60 分鐘，報告書 3 個工作天內交付",{"title":1404,"tagline":1405,"summary":1406,"points":1407,"deliverable":1411,"detail":1412,"duration":1413},"AI Readiness Audit","Look before you spend","A 60-minute remote audit of the workflows that eat the most time and people-power — and an honest answer on what AI can take over today, and what it cannot.",[1408,1409,1410],"Audit the daily workflows that consume the most time and headcount","Triage which tasks AI can own today, and which should stay human","Shortlist the models and tools that fit your budget and constraints","AI Adoption Recommendation Report (PDF)","One or two highest-ROI entry points, a recommended tech stack, expected hours saved, and the concrete next step","60-minute call, report delivered within 3 business days",{"key":1415,"zh":1416,"en":1427},"prompt",{"title":1417,"tagline":1418,"summary":1419,"points":1420,"deliverable":1424,"detail":1425,"duration":1426},"提示詞工程","讓 AI 穩定產出，而不是碰運氣","針對你的實際任務設計提示詞與多步驟工作流，並做極限測試，確保換了資料、換了人操作也不會走鐘。",[1421,1422,1423],"客製提示詞：ChatGPT、Claude、Gemini、Midjourney 等主流工具的專屬模板","除錯與優化：修掉幻覺、格式跑掉、時好時壞的問題","工作流建置：把複雜任務拆成多步驟提示詞與可重複的 SOP","提示詞文件或設定檔","附使用說明與範例，並提供 1 對 1 教學，確保你與團隊能自己維護","依任務複雜度報價，通常 3–7 個工作天",{"title":1428,"tagline":1429,"summary":1430,"points":1431,"deliverable":1437,"detail":1438,"duration":1439},"Prompt Engineering","Make AI produce reliably, not by luck","Prompt sets and multi-step workflows designed for your actual tasks, stress-tested so they keep working when the data or the operator changes.",[1432,1433,1435],"Custom prompts for ChatGPT, Claude, Gemini, Midjourney and friends",{"Debugging and tuning":1434},"kill hallucinations, broken formats and flaky output",{"Workflow design":1436},"break complex work into repeatable multi-step SOPs","Prompt library or exportable config","Ships with usage notes and examples, plus a 1:1 walkthrough so your team can maintain it","Quoted by complexity, typically 3–7 business days",{"key":1441,"zh":1442,"en":1453},"poc",{"title":1443,"tagline":1444,"summary":1445,"points":1446,"deliverable":1450,"detail":1451,"duration":1452},"極速 PoC","五天，看到能跑的東西","不談架構藍圖，直接做一個能動的雛形。五個工作天內交付線上可操作的智能體，用你真實的資料驗證。",[1447,1448,1449],"Day 1：15 分鐘對焦，鎖定單一痛點與資料盤點","Day 2–4：模型串接、邏輯設計與雛形開發","Day 5：Demo 展示與 AI 擴展建議書","可線上操作的智能體雛形","交付範圍為概念驗證與展示，不含後續維運或大規模伺服器部署；要進階成完整系統會另行報價","5 個工作天",{"title":1454,"tagline":1455,"summary":1456,"points":1457,"deliverable":1464,"detail":1465,"duration":1466},"Rapid PoC","Five days to something that runs","No architecture decks — a working prototype built in five business days, validated against your real data.",[1458,1460,1462],{"Day 1":1459},"15-minute scoping call, one pain point, data inventory",{"Day 2–4":1461},"model integration, logic design, prototype build",{"Day 5":1463},"live demo plus an AI expansion recommendation","A runnable online agent prototype","Proof of concept and demo scope only; ongoing operations and large-scale deployment are quoted separately","5 business days",[],"site","XTwARfVAOcrXNiKehsM6V6cdkd2HXy4d5yZVrSWrI3Q",[1471,1933],{"id":1472,"title":1473,"author":7,"body":1474,"cover":1918,"coverAlt":1919,"date":1920,"description":1921,"draft":713,"extension":714,"featured":713,"lang":1366,"meta":1922,"navigation":129,"ogImage":1923,"path":1924,"seo":1925,"slug":1926,"stem":1927,"tags":1928,"translationKey":1926,"updated":726,"__hash__":1932},"blog\u002Fblog\u002Fen\u002Fbroken-on-arrival-quantized-models.md","Your quantized model might be broken",{"type":9,"value":1475,"toc":1907},[1476,1485,1489,1496,1499,1502,1508,1512,1515,1522,1528,1539,1543,1546,1553,1563,1569,1573,1576,1634,1637,1643,1647,1650,1657,1663,1666,1670,1673,1778,1784,1795,1799,1812,1818,1832,1836,1856,1860,1865,1871,1878,1880],[12,1477,1478],{},[15,1479,1480,1481,1484],{},"Numbers come from arXiv 2609.05881v3 and the author's ",[101,1482,1483],{},"quantcheck"," audit data. Whether the bad files are still being served is our own check; the method is at the end.",[19,1486,1488],{"id":1487},"a-scene","A scene",[15,1490,1491,1492,1495],{},"You are on a laptop. You run ",[101,1493,1494],{},"ollama pull qwen2.5-coder:3b",", choosing a 2-bit tag because memory is tight.",[15,1497,1498],{},"The model starts. It answers, and it is fast. Then you ask for a sorting function and the code does not compile. You try another task; same thing.",[15,1500,1501],{},"Your first instinct is to blame yourself: the prompt? the temperature? maybe this model is just weak?",[15,1503,1504,1505],{},"A paper turned that doubt into a census: ",[43,1506,1507],{},"of 305 code-capable tags in the official Ollama library, seven solved at most six of 164 HumanEval+ tasks. Six solved none.",[19,1509,1511],{"id":1510},"the-counter-intuitive-part-the-files-are-fine","The counter-intuitive part: the files are fine",[15,1513,1514],{},"When a model misbehaves, you suspect a corrupt download.",[15,1516,1517,1518,1521],{},"The author rebuilt five of the seven from the original weights with llama.cpp. Comparing tensor by tensor, ",[43,1519,1520],{},"all five matched exactly"," — 434 tensors for the Qwen2.5-Coder-3B tags.",[15,1523,1524,1525,902],{},"So these are not corrupt files. They are ",[43,1526,1527],{},"correctly reproduced broken artifacts",[15,1529,1530,1531,1534,1535,1538],{},"Checksums pass. File sizes match. ",[101,1532,1533],{},"ollama show"," looks normal. Because the file really is exactly what it claims to be. What is broken is the ",[43,1536,1537],{},"quantization recipe",": same weights, same toolchain, same tensor mix, but without calibration the model collapsed into a shape that cannot write code.",[19,1540,1542],{"id":1541},"why-this-happens","Why this happens",[15,1544,1545],{},"Quantization squeezes weights from 16 bits down to 2–4 bits. Every step has to decide where the rounding error lands.",[15,1547,1548,1549,1552],{},"The default approach spreads it evenly. The better approach uses ",[43,1550,1551],{},"calibration data"," — llama.cpp's importance matrix (imatrix) — to push error away from the weights that matter, based on activation statistics.",[15,1554,1555,1556,1559,1560,902],{},"Without imatrix, small models at low bit are the ones that fall apart. All seven suspects sit in ",[43,1557,1558],{},"q2_K through q3_K_L, in models of at most 4B parameters",". That subgroup contains 48 tags, so the failure rate inside it is ",[43,1561,1562],{},"14.6%",[15,1564,1565,1566,902],{},"But the recipe alone does not predict failure: the same uncalibrated recipe left Qwen2.5-Coder-1.5B functional (13–15 of 15). The problem is not \"low bit always breaks\". It is that ",[43,1567,1568],{},"when it breaks, you cannot tell",[19,1570,1572],{"id":1571},"calibration-rescues-most-of-them","Calibration rescues most of them",[15,1574,1575],{},"Holding weights, toolchain and tensor mix fixed, adding only an imatrix:",[304,1577,1578,1591],{},[307,1579,1580],{},[310,1581,1582,1585,1588],{},[313,1583,1584],{},"Tag",[313,1586,1587],{},"Before",[313,1589,1590],{},"After imatrix (of 164)",[323,1592,1593,1604,1614,1624],{},[310,1594,1595,1598,1601],{},[328,1596,1597],{},"Qwen2.5-Coder-3B q2_K",[328,1599,1600],{},"0",[328,1602,1603],{},"106–113",[310,1605,1606,1609,1611],{},[328,1607,1608],{},"Qwen2.5-Coder-3B q3_K_M",[328,1610,1600],{},[328,1612,1613],{},"76–89",[310,1615,1616,1619,1621],{},[328,1617,1618],{},"Qwen2.5-Coder-3B q3_K_L",[328,1620,1600],{},[328,1622,1623],{},"80–86",[310,1625,1626,1629,1631],{},[328,1627,1628],{},"Qwen2.5-Coder-3B q3_K_S",[328,1630,1600],{},[328,1632,1633],{},"13–30 (still weak)",[15,1635,1636],{},"(The paper's abstract says \"0 → 76–113\"; the per-level numbers above come from the v3.4 audit data, which we treat as authoritative.)",[15,1638,1639,1640],{},"Same model, same bit width, one calibration table: ",[43,1641,1642],{},"from zero tasks to three digits.",[19,1644,1646],{"id":1645},"another-failure-mode-a-missing-chat-template","Another failure mode: a missing chat template",[15,1648,1649],{},"Beyond the seven, the author also tested 22 popular Hugging Face community files. Two of them (TheBloke's deepseek-coder-6.7B Q3_K_M and Q4_K_M) scored 5 and 6 of 15 in the census.",[15,1651,1652,1653,1656],{},"The cause was not quantization but a ",[43,1654,1655],{},"missing chat template",". With no template, Ollama falls back to a default ChatML format that does not match the model's instruction format: 28 of 30 answers ran on into invented chat turns.",[15,1658,1659,1660,902],{},"With the right template: ",[43,1661,1662],{},"98 and 101 of 164",[15,1664,1665],{},"So \"it runs\" and \"it answers properly\" are separated by a template.",[19,1667,1669],{"id":1668},"we-checked-the-bad-tags-are-still-being-served","We checked: the bad tags are still being served",[15,1671,1672],{},"A September incident is only interesting if it is still downloadable. We compared the blob digests in the audit data against the current Ollama registry manifests:",[304,1674,1675,1690],{},[307,1676,1677],{},[310,1678,1679,1681,1684,1687],{},[313,1680,1584],{},[313,1682,1683],{},"Audited digest",[313,1685,1686],{},"Today",[313,1688,1689],{},"Status",[323,1691,1692,1706,1718,1730,1742,1754,1766],{},[310,1693,1694,1697,1700,1703],{},[328,1695,1696],{},"qwen2.5-coder:3b-instruct-q2_K",[328,1698,1699],{},"14c4247b8ce4…",[328,1701,1702],{},"same",[328,1704,1705],{},"still served",[310,1707,1708,1711,1714,1716],{},[328,1709,1710],{},"qwen2.5-coder:3b-instruct-q3_K_S",[328,1712,1713],{},"81d167af7fa3…",[328,1715,1702],{},[328,1717,1705],{},[310,1719,1720,1723,1726,1728],{},[328,1721,1722],{},"qwen2.5-coder:3b-instruct-q3_K_M",[328,1724,1725],{},"9bb5d28b842a…",[328,1727,1702],{},[328,1729,1705],{},[310,1731,1732,1735,1738,1740],{},[328,1733,1734],{},"qwen2.5-coder:3b-instruct-q3_K_L",[328,1736,1737],{},"7a88dc11faae…",[328,1739,1702],{},[328,1741,1705],{},[310,1743,1744,1747,1750,1752],{},[328,1745,1746],{},"phi3.5:3.8b-mini-instruct-q2_K",[328,1748,1749],{},"54d47caa8bf3…",[328,1751,1702],{},[328,1753,1705],{},[310,1755,1756,1759,1762,1764],{},[328,1757,1758],{},"llama3.2:1b-instruct-q2_K",[328,1760,1761],{},"d1ede02a2111…",[328,1763,1702],{},[328,1765,1705],{},[310,1767,1768,1771,1774,1776],{},[328,1769,1770],{},"llama3.2:1b-instruct-q3_K_S",[328,1772,1773],{},"81881dcc12ec…",[328,1775,1702],{},[328,1777,1705],{},[15,1779,1780,1783],{},[43,1781,1782],{},"Seven out of seven are still there, with identical digests."," This is not history; it is something you can pull today.",[15,1785,1786,1787,1790,1791,1794],{},"(Method: fetch ",[101,1788,1789],{},"https:\u002F\u002Fregistry.ollama.ai\u002Fv2\u002Flibrary\u002F\u003Cmodel>\u002Fmanifests\u002F\u003Ctag>"," and compare the ",[101,1792,1793],{},"application\u002Fvnd.ollama.image.model"," layer digest. Script at the end.)",[19,1796,1798],{"id":1797},"three-things-you-can-do-now","Three things you can do now",[15,1800,1801,1804,1805,1807,1808,1811],{},[43,1802,1803],{},"Screen."," The author released ",[101,1806,1483],{},", a 15-task screen per tag. It costs about ",[43,1809,1810],{},"30 seconds of generation"," (on a 4090, excluding download). None of 66 sampled tags that passed the screen turned out to be non-functional, so it works as a pre-filter.",[15,1813,1814,1817],{},[43,1815,1816],{},"If you publish quantizations:"," add an imatrix, and run a functional test before publishing. Registries will not do it for you.",[15,1819,1820,1823,1824,1827,1828,1831],{},[43,1821,1822],{},"Check the chat template."," ",[101,1825,1826],{},"ollama show \u003Cmodel> --template","; if it prints ",[101,1829,1830],{},"{{ .Prompt }}",", there is no template and the model may be answering in the wrong format.",[19,1833,1835],{"id":1834},"do-not-over-read-this","Do not over-read this",[1837,1838,1839,1843,1846,1853],"ul",{},[1840,1841,1842],"li",{},"2.3% is the share of official, code-capable, ≤8 GB tags — not of all quantized models",[1840,1844,1845],{},"Only coding ability was tested (HumanEval+); perplexity is a pre-check, not proof of function",[1840,1847,1848,1849,1852],{},"Seven is a ",[43,1850,1851],{},"lower bound",": all 12 deepseek-coder-1.3B tags, including fp16, score 1–6 of 15, so a group baseline cannot judge them and the author does not count them",[1840,1854,1855],{},"The author is an independent researcher; data and tools are public, but this is one registry and one runtime version",[19,1857,1859],{"id":1858},"conclusion","Conclusion",[15,1861,1862],{},[43,1863,1864],{},"Exact reproducibility is not function.",[15,1866,1867,1868,1870],{},"Identical tensors, a passing checksum, a normal ",[101,1869,1533],{}," — all of that proves the file is the file. None of it proves the model can do the job.",[15,1872,1873,1874,1877],{},"So the question is not whether quantized models are usable. It is ",[43,1875,1876],{},"whether anyone tested whether this one is",". Right now the registries have not, which leaves it to you.",[664,1879],{},[15,1881,1882],{},[669,1883,1884,1885,1335,1890,1335,1894,1899,1900,1903,1904,902],{},"Sources: ",[35,1886,1889],{"href":1887,"rel":1888},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.05881",[39],"arXiv 2609.05881v3",[35,1891,1483],{"href":1892,"rel":1893},"https:\u002F\u002Fgithub.com\u002Faditi-p31\u002Fquantcheck",[39],[35,1895,1898],{"href":1896,"rel":1897},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fissues\u002F18252",[39],"Ollama issue #18252",". Our digest check: ",[101,1901,1902],{},"scripts\u002Fcheck-ollama-tags.ts","; run ",[101,1905,1906],{},"npm run check:ollama -- --list",{"title":103,"searchDepth":690,"depth":690,"links":1908},[1909,1910,1911,1912,1913,1914,1915,1916,1917],{"id":1487,"depth":690,"text":1488},{"id":1510,"depth":690,"text":1511},{"id":1541,"depth":690,"text":1542},{"id":1571,"depth":690,"text":1572},{"id":1645,"depth":690,"text":1646},{"id":1668,"depth":690,"text":1669},{"id":1797,"depth":690,"text":1798},{"id":1834,"depth":690,"text":1835},{"id":1858,"depth":690,"text":1859},"\u002Fimages\u002Fblog\u002Fen\u002Fbroken-on-arrival-quantized-models.svg","A quantized model file that passes its checksum but fails every coding task","2026-11-02","Someone tested every code-capable tag in Ollama's library. Seven low-bit quantizations failed nearly all tasks, yet the files were exact rebuilds. Checksums pass; the recipe is broken.",{},"\u002Fimages\u002Fblog\u002Fen\u002Fbroken-on-arrival-quantized-models.jpg","\u002Fblog\u002Fen\u002Fbroken-on-arrival-quantized-models",{"title":1473,"description":1921},"broken-on-arrival-quantized-models","blog\u002Fen\u002Fbroken-on-arrival-quantized-models",[1929,1930,1931],"quantization","local-llm","gguf","tOVVVr1HmeG95b9UhxSxh_uy4dZQvyUwEripBKmKjww",{"id":1934,"title":1935,"author":7,"body":1936,"cover":2256,"coverAlt":2257,"date":2258,"description":2259,"draft":713,"extension":714,"featured":713,"lang":1366,"meta":2260,"navigation":129,"ogImage":2261,"path":2262,"seo":2263,"slug":2264,"stem":2265,"tags":2266,"translationKey":2264,"updated":726,"__hash__":2270},"blog\u002Fblog\u002Fen\u002Feth-refuted-not-p-np.md","My friend asked: has P=NP been broken?",{"type":9,"value":1937,"toc":2247},[1938,1941,1944,1947,1950,1954,1957,1960,1963,1966,1972,1975,1981,1990,1994,1997,2000,2003,2006,2012,2015,2022,2025,2029,2032,2039,2042,2053,2057,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2105,2109,2112,2119,2125,2128,2131,2134,2137,2140,2143,2146,2157,2161,2164,2167,2176,2179,2182,2185,2188,2191,2194,2197,2200,2204,2207,2210,2213,2216,2219,2222,2225,2228,2231,2233],[15,1939,1940],{},"On Tuesday night, a friend dropped a news screenshot into our group chat and asked: \"Does this mean P=NP has been broken?\"",[15,1942,1943],{},"I said: \"It's not P=NP. It's ETH.\"",[15,1945,1946],{},"He asked: \"Isn't that the same thing?\"",[15,1948,1949],{},"At that moment I didn't have a good answer. We met for lunch the next day, and I spent half an hour walking him through it. This is what I said, plus the details I filled in later from reading the original manuscripts.",[19,1951,1953],{"id":1952},"what-actually-happened","What actually happened",[15,1955,1956],{},"On October 6, OpenAI put several hundred mathematical manuscripts on GitHub. On October 26 it added two more. One of them is catalogue entry 378: 〈Disproof of the Exponential Time Hypothesis〉 — the paper's own title is 〈The Exponential Time Hypothesis is False〉.",[15,1958,1959],{},"The repository now holds 721 manuscripts across 373 families. The family numbers skip around, so \"number 378\" does not mean there are 378 families.",[15,1961,1962],{},"The same day, Anthropic said its model had found the core idea independently on October 16, and described OpenAI's model as having \"independently and concurrently\" proven a similar result.",[15,1964,1965],{},"My friend cut in: \"So who got there first?\"",[15,1967,1968,1969,902],{},"\"I don't know, and it doesn't matter.\" What matters, I told him, is that ",[43,1970,1971],{},"these are not papers yet",[15,1973,1974],{},"OpenAI says so itself in the README: these are \"raw research data, rather than polished academic papers\", and \"some of the unformalized results could have issues\". About 42% of the top-line results in the repository have Lean formalizations; entry 378 is one of them, and its core time bound has been machine-checked.",[15,1976,1977,1978,902],{},"The academic response was not slow. Impagliazzo and Paturi (who formulated ETH in 1999; journal version 2001) and MIT's Ryan Williams formed a working group and published an open letter. They stressed one thing: ",[43,1979,1980],{},"involvement is not certification",[15,1982,1983,1984,1989],{},"As of October 28, ",[35,1985,1988],{"href":1986,"rel":1987},"https:\u002F\u002Fmathworld.wolfram.com\u002FExponentialTimeHypothesis.html",[39],"MathWorld"," records that no independent verification had been reported.",[19,1991,1993],{"id":1992},"start-with-sudoku","Start with Sudoku",[15,1995,1996],{},"To explain this properly, we have to start with something that looks unrelated: Sudoku.",[15,1998,1999],{},"My friend nodded. He plays Sudoku.",[15,2001,2002],{},"\"Imagine a filled-in grid. I show it to you, and you can check it in about ten seconds. Now imagine an empty grid. Finding that solution might take you half an hour.\"",[15,2004,2005],{},"That is the difference between P and NP. P is the class of problems you can solve quickly. NP is the class you can verify quickly.",[15,2007,2008,2009],{},"And P = NP means: ",[43,2010,2011],{},"every answer you can verify quickly, you can also find quickly.",[15,2013,2014],{},"Almost everyone believes that is false, but nobody has proven it.",[15,2016,2017,2018,2021],{},"ETH is a stronger claim. It does not just say \"3SAT is not in P\". It says: ",[43,2019,2020],{},"there is a constant c such that 3SAT requires at least 2 to the cn steps."," 3SAT is the most standard problem in that family — like Sudoku, it is NP-complete.",[15,2023,2024],{},"Here is an analogy. P ≠ NP only says \"these two are not in the same place\". ETH says \"they are at least two thousand kilometers apart\" — much more information.",[19,2026,2028],{"id":2027},"why-would-anyone-assume-such-a-thing","Why would anyone assume such a thing",[15,2030,2031],{},"\"What's the use of assuming something nobody has proven?\" my friend asked.",[15,2033,2034,2035,2038],{},"The use is this: ",[43,2036,2037],{},"if you know two places are at least two thousand kilometers apart, you can rule out anyone driving there in an hour."," A lower bound on distance eliminates an entire class of \"fast\" solutions.",[15,2040,2041],{},"That is how fine-grained complexity has worked for the past twenty years: assume ETH, then prove \"if this problem had a fast algorithm, 3SAT would too, contradiction\". So ETH is not a textbook term. It is the foundation under a whole shelf of papers.",[119,2043,123,2045,123,2050],{"className":2044},[122],[125,2046],{"src":2047,"poster":2048,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":2049},"\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F03-ladder.mp4","\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F03-ladder-poster.jpg","Complexity ladder: polynomial, sub-exponential, exponential",[132,2051,2052],{},"The complexity ladder. ETH claimed the top rung could not be lower; this result pushes the upper bound down to the middle rung.",[19,2054,2056],{"id":2055},"what-did-openai-actually-do","What did OpenAI actually do",[15,2058,2059,2060,2063],{},"Their model found an algorithm that ",[43,2061,2062],{},"counts"," the satisfying assignments of a logical formula — counting them, not just deciding whether one exists, which is a stronger requirement. The running time is 2 to the n divided by the square root of the natural log of n, using polynomial space.",[15,2065,2066],{},"My friend pointed at the expression I had scribbled on a piece of paper: \"What does that mean?\"",[15,2068,2069],{},"\"It means the exponent is still there, but divided by a number that grows slowly. The bigger n is, the more it gets divided.\"",[15,2071,2072],{},"\"So it's faster?\"",[15,2074,2075],{},"\"It is. But faster than what?\"",[15,2077,2078],{},"The best known 3SAT algorithm runs in roughly 1.307 to the n.",[15,2080,2081],{},"Take n = 1,000. That algorithm takes about 2 to the 386. This new one takes about 2 to the 380.",[15,2083,2084],{},"It is only about 60 times faster.",[15,2086,2087],{},"Sixty times sounds like a lot, until you notice that 2 to the 380 is still 10 to the 114. The age of the universe in seconds is only 4 × 10 to the 17.",[15,2089,2090],{},"The real difference appears when n gets large. Take n = 1,000,000: one is 2 to the 269,000, the other is 2 to the 386,000. The gap widens, but both remain astronomical.",[15,2092,2093],{},"So the point here is not \"how much faster\". It is \"faster than that lower bound\".",[119,2095,123,2097,123,2102],{"className":2096},[122],[125,2098],{"src":2099,"poster":2100,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":2101},"\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F05-magnitude.mp4","\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F05-magnitude-poster.jpg","Magnitude comparison at n=1000: 2^386 versus 2^380",[132,2103,2104],{},"At n = 1,000. This is not 2^n dropping to 2^380 — it is 2^386 dropping to 2^380. Sixty times faster, still infeasible.",[19,2106,2108],{"id":2107},"keep-upper-and-lower-bounds-straight","Keep upper and lower bounds straight",[15,2110,2111],{},"This is where people get confused.",[15,2113,2114,2115,2118],{},"An algorithm is an ",[43,2116,2117],{},"upper bound",": it tells you the most time you need to get something done.",[15,2120,2121,2122,2124],{},"ETH is a ",[43,2123,1851],{},": it says the least time anything must take.",[15,2126,2127],{},"This result pushes the upper bound down to sub-exponential. For large enough n, that upper bound falls below the lower bound ETH claimed — so ETH is refuted.",[15,2129,2130],{},"My friend asked: \"Does that work in reverse too?\"",[15,2132,2133],{},"\"There are two kinds of 'reverse'.\"",[15,2135,2136],{},"P = NP would indeed imply ETH is false — but that is just the contrapositive of the same arrow, not a new deduction.",[15,2138,2139],{},"What does not hold is the other reverse: from \"ETH has been refuted\" you cannot conclude \"P = NP\". That arrow fails.",[15,2141,2142],{},"Back to the distance analogy: everyone thought it was at least two thousand kilometers; now someone proves it is only eight hundred. The distance got shorter, but your car is still too slow to arrive within an hour.",[15,2144,2145],{},"So whether P equals NP remains completely open today.",[119,2147,123,2149,123,2154],{"className":2148},[122],[125,2150],{"src":2151,"poster":2152,"autoPlay":129,"loop":129,"muted":129,"playsInline":129,"ariaLabel":2153},"\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F04-implication.mp4","\u002Fimages\u002Fblog\u002Feth-refuted-not-p-np\u002F04-implication-poster.jpg","Two arrows: the top one holds, the bottom one is crossed out",[132,2155,2156],{},"The top arrow holds. The bottom one does not. This is the most commonly misread part of the story.",[19,2158,2160],{"id":2159},"then-why-does-it-matter","Then why does it matter",[15,2162,2163],{},"\"If P = NP is untouched, why is everyone excited?\"",[15,2165,2166],{},"\"Because it knocks out a lot of intuitions.\"",[15,2168,2169,2170,2175],{},"Ryan Williams ",[35,2171,2174],{"href":2172,"rel":2173},"https:\u002F\u002Ftechcrunch.com\u002F2026\u002F10\u002F27\u002Ffrontier-ai-labs-say-their-models-refuted-the-exponential-time-hypothesis-what-does-that-mean\u002F",[39],"told reporters"," that some parts of the proof are, you might say, routine — but there are two or three \"alien-looking\" parts, and those are exactly what make this something the whole community needs to work through.",[15,2177,2178],{},"He also said something honest: \"Every computer scientist should probably put a little more weight on the plausibility of P = NP, but one's weight may vary.\"",[15,2180,2181],{},"\"So has anyone checked it?\" my friend asked.",[15,2183,2184],{},"\"Yes, but they are not done.\"",[15,2186,2187],{},"About 42% of the top-line results carry Lean formalizations. Lean is a tool that lets a computer check a proof step by step. But a machine check is not the same as the result being true — it confirms the derivation has no gaps, not that the statement is the one everyone cares about, and not that the theorem is useful.",[15,2189,2190],{},"Three practical effects.",[15,2192,2193],{},"First, fine-grained complexity has papers to re-read. Those \"assuming ETH, problem X cannot be solved below Y\" conditionals lost their premise. The conclusions are not necessarily false, but they can no longer be used to derive unconditional lower bounds.",[15,2195,2196],{},"Second, cryptography is not broken. Today's systems rely on specific problems — factoring, discrete logarithms, lattices — not on the 3SAT family; and this algorithm is still exponential.",[15,2198,2199],{},"Third, engineering feels nothing in the short term. Anyone telling you this means \"AI inference is about to get faster\" is confusing a theoretical bound with a wall-clock time.",[19,2201,2203],{"id":2202},"back-to-the-group-chat","Back to the group chat",[15,2205,2206],{},"After lunch the next day, my friend asked one last question: \"So is it fake news?\"",[15,2208,2209],{},"\"No,\" I said. \"There is something real in it. What's wrong is turning it into 'P=NP has fallen'.\"",[15,2211,2212],{},"\"How should I read stories like this in the future?\"",[15,2214,2215],{},"I held up three fingers.",[15,2217,2218],{},"\"First, is it a claim or a proof? A manuscript on GitHub is not the same class of object as a journal paper — especially when OpenAI itself writes 'this is raw research data'.",[15,2220,2221],{},"Second, how far did the formalization go? Lean can check a derivation, but it cannot guarantee the problem is the one everyone thinks it is.",[15,2223,2224],{},"Third, what does it refute, and what does it not? This refutes the claim that 3SAT requires at least 2 to the cn steps. It does not refute P ≠ NP, and it does not hand anyone a usable algorithm.\"",[15,2226,2227],{},"He put his phone away and said: \"So the headline turned 'not that far' into 'we're there'.\"",[15,2229,2230],{},"Yes. That is exactly it.",[664,2232],{},[15,2234,2235],{},[669,2236,2237,2238,2243,2244,902],{},"Written on 2026-10-29, while academic review is still in progress. If independent verification appears, or the proof is found to have problems, I will come back and update this. The source material is family 378 in ",[35,2239,2242],{"href":2240,"rel":2241},"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fmath",[39],"openai\u002Fmath","; the definition of ETH and its implications are on ",[35,2245,1988],{"href":1986,"rel":2246},[39],{"title":103,"searchDepth":690,"depth":690,"links":2248},[2249,2250,2251,2252,2253,2254,2255],{"id":1952,"depth":690,"text":1953},{"id":1992,"depth":690,"text":1993},{"id":2027,"depth":690,"text":2028},{"id":2055,"depth":690,"text":2056},{"id":2107,"depth":690,"text":2108},{"id":2159,"depth":690,"text":2160},{"id":2202,"depth":690,"text":2203},"\u002Fimages\u002Fblog\u002Fen\u002Feth-refuted-not-p-np.svg","A complexity ladder showing the upper bound pushed down to sub-exponential, not yet to polynomial","2026-10-29","A friend sent me a news story and asked whether P=NP had fallen. The story is real, but it mixes up two things: it was ETH that was refuted, not P=NP. Here is the explanation I gave him.",{},"\u002Fimages\u002Fblog\u002Fen\u002Feth-refuted-not-p-np.jpg","\u002Fblog\u002Fen\u002Feth-refuted-not-p-np",{"title":1935,"description":2259},"eth-refuted-not-p-np","blog\u002Fen\u002Feth-refuted-not-p-np",[2267,2268,2269],"complexity","ai-research","mathematics","wq5KMOvcqergp4H5bMBJJNK9LUMe3vqhM8PeTxKhMLw",1793619494818]