[{"data":1,"prerenderedAt":2185},["ShallowReactive",2],{"site-info":3,"post-weight-edit-loop-repair":99,"related-zh-TW-weight-edit-loop-repair":951},{"id":4,"company":5,"extension":16,"meta":17,"services":18,"social":96,"stem":97,"__hash__":98},"site\u002Fsite.yml",{"name":6,"nameEn":7,"email":8,"address":9,"addressEn":10,"lineUrl":11,"lineId":12,"duns":13,"youtube":14,"youtubeId":15},"銡策數位有限公司","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",{},[19,43,69],{"key":20,"zh":21,"en":32},"audit",{"title":22,"tagline":23,"summary":24,"points":25,"deliverable":29,"detail":30,"duration":31},"企業 AI 導入健檢","先看清楚，再花錢","60 分鐘線上訪談，盤點最耗時、最依賴人力的營運環節；我們會告訴你哪些工作現在就能交給 AI、哪些還不成熟。",[26,27,28],"現況盤點：梳理日常營運中最耗時、最依賴人力的環節","痛點診斷：判斷哪些工作現在就能交給 AI，哪些建議先保留人力","可行性評估：依你的業務特性與預算，篩選適合的模型與工具","《企業 AI 導入建議報告書》（PDF）","含 1–2 個「開發成本最低、成效最明顯」的優先項目、技術棧建議、預期節省的人力時間與下一步","訪談 60 分鐘，報告書 3 個工作天內交付",{"title":33,"tagline":34,"summary":35,"points":36,"deliverable":40,"detail":41,"duration":42},"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.",[37,38,39],"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":44,"zh":45,"en":56},"prompt",{"title":46,"tagline":47,"summary":48,"points":49,"deliverable":53,"detail":54,"duration":55},"提示詞工程","讓 AI 穩定產出，而不是碰運氣","針對你的實際任務設計提示詞與多步驟工作流，並做極限測試，確保換了資料、換了人操作也不會走鐘。",[50,51,52],"客製提示詞：ChatGPT、Claude、Gemini、Midjourney 等主流工具的專屬模板","除錯與優化：修掉幻覺、格式跑掉、時好時壞的問題","工作流建置：把複雜任務拆成多步驟提示詞與可重複的 SOP","提示詞文件或設定檔","附使用說明與範例，並提供 1 對 1 教學，確保你與團隊能自己維護","依任務複雜度報價，通常 3–7 個工作天",{"title":57,"tagline":58,"summary":59,"points":60,"deliverable":66,"detail":67,"duration":68},"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.",[61,62,64],"Custom prompts for ChatGPT, Claude, Gemini, Midjourney and friends",{"Debugging and tuning":63},"kill hallucinations, broken formats and flaky output",{"Workflow design":65},"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":70,"zh":71,"en":82},"poc",{"title":72,"tagline":73,"summary":74,"points":75,"deliverable":79,"detail":80,"duration":81},"極速 PoC","五天，看到能跑的東西","不談架構藍圖，直接做一個能動的雛形。五個工作天內交付線上可操作的智能體，用你真實的資料驗證。",[76,77,78],"Day 1：15 分鐘對焦，鎖定單一痛點與資料盤點","Day 2–4：模型串接、邏輯設計與雛形開發","Day 5：Demo 展示與 AI 擴展建議書","可線上操作的智能體雛形","交付範圍為概念驗證與展示，不含後續維運或大規模伺服器部署；要進階成完整系統會另行報價","5 個工作天",{"title":83,"tagline":84,"summary":85,"points":86,"deliverable":93,"detail":94,"duration":95},"Rapid PoC","Five days to something that runs","No architecture decks — a working prototype built in five business days, validated against your real data.",[87,89,91],{"Day 1":88},"15-minute scoping call, one pain point, data inventory",{"Day 2–4":90},"model integration, logic design, prototype build",{"Day 5":92},"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",{"zh":100,"en":949},{"id":101,"title":102,"author":103,"body":104,"cover":931,"coverAlt":932,"date":933,"description":934,"draft":935,"extension":936,"featured":935,"lang":937,"meta":938,"navigation":363,"ogImage":939,"path":940,"seo":941,"slug":942,"stem":943,"tags":944,"translationKey":942,"updated":949,"__hash__":950},"blog\u002Fblog\u002Fzh-TW\u002Fweight-edit-loop-repair.md","它沒有變聰明，只是不再打轉","Jecision",{"type":105,"value":106,"toc":918},"minimark",[107,114,118,121,128,139,142,157,160,163,260,263,266,269,272,275,281,284,288,291,294,297,308,311,328,331,334,342,345,352,369,373,376,379,426,439,445,448,451,454,457,461,464,467,470,473,476,481,487,490,498,501,505,508,517,520,523,663,666,669,672,675,678,683,689,692,695,698,701,704,707,716,719,722,762,768,771,782,785,789,792,803,806,809,816,823,830,836,839,847,850],[108,109,110],"blockquote",{},[111,112,113],"p",{},"這篇的數字來自原文（部落格貼文，不是同儕審查論文）與公開 logs、Qwen 的 model card、Hugging Face 上的重建版重跑，以及硅星人Pro 按 logs 做的逐題重算。逐題配對那一段是二手重算，我會標出來。我們沒有在自己的機器上重跑那 50 次前向。",[115,116,117],"h2",{"id":117},"先講一個畫面",[111,119,120],{},"你在筆電上跑一顆 0.8B 的小模型，給它一題國中數學。它想了三分鐘，輸出到上限被切斷；回頭看，整段在重複同兩句話。",[111,122,123,124],{},"你的結論大概是：模型太小。這篇要給你的是一個更準的分界——",[125,126,127],"strong",{},"分數變好，是模型變聰明，還是它終於講得完？",[111,129,130,131,138],{},"十一月二日，四位 MIT CSAIL 的研究者公開",[132,133,137],"a",{"href":134,"rel":135},"https:\u002F\u002Frikiyat.github.io\u002Fblog\u002Fweight-space-programming\u002F",[136],"nofollow","一組實驗","。他們讓 GPT-6 Astra 直接修改 Qwen3.5-0.8B 的權重，只動了 0.016%。",[111,140,141],{},"同一顆模型，MATH-500 從 7.9% 變成 48.1%。",[111,143,144,145,150,151,156],{},"那則貼文在 ",[132,146,149],{"href":147,"rel":148},"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=50341174",[136],"Hacker News"," 拿到將近 3,000 分、900 則留言。中文媒體的標題則是「爆改 Qwen 大腦」這一路（",[132,152,155],{"href":153,"rel":154},"https:\u002F\u002F36kr.com\u002Fp\u002F4056494372181124",[136],"例","）。",[111,158,159],{},"拆開來看，那個六倍買到的不是數學能力，是「把話講完」。而這兩件事在 benchmark 表上長得一樣，除非你多記一欄。",[115,161,162],{"id":162},"先讀最後一欄",[164,165,166,188],"table",{},[167,168,169],"thead",{},[170,171,172,176,179,182,185],"tr",{},[173,174,175],"th",{},"Qwen3.5-0.8B",[173,177,178],{},"MATH-500",[173,180,181],{},"GSM8K",[173,183,184],{},"IFEval",[173,186,187],{},"撞 32,768 token 上限",[189,190,191,209,226,243],"tbody",{},[170,192,193,197,200,203,206],{},[194,195,196],"td",{},"原始",[194,198,199],{},"7.9%",[194,201,202],{},"13.8%",[194,204,205],{},"21.0%",[194,207,208],{},"93.0%",[170,210,211,214,217,220,223],{},[194,212,213],{},"改，10 次前向",[194,215,216],{},"12.3%",[194,218,219],{},"25.7%",[194,221,222],{},"49.0%",[194,224,225],{},"87.2%",[170,227,228,231,234,237,240],{},[194,229,230],{},"改，25 次前向",[194,232,233],{},"14.1%",[194,235,236],{},"25.1%",[194,238,239],{},"39.9%",[194,241,242],{},"86.4%",[170,244,245,248,251,254,257],{},[194,246,247],{},"改，50 次前向",[194,249,250],{},"48.1%",[194,252,253],{},"67.1%",[194,255,256],{},"62.3%",[194,258,259],{},"33.1%",[111,261,262],{},"前向（forward pass）就是讓模型真的回答一批題目，看它輸出什麼。不是訓練，也不給梯度。",[111,264,265],{},"四列用的是同一個方法，但三次交出的是三份不同的補丁，不是同一招多給預算。差別在於 Astra 被允許跑幾次前向。",[111,267,268],{},"10 次：12.3。25 次：14.1。50 次：48.1。",[111,270,271],{},"看前三列，你會說「預算不夠」。但最後一欄講的是另一件事。",[111,273,274],{},"10 次和 25 次時，撞上上限的數學題還有 87% 和 86%。到 50 次，掉到 33.1%。",[111,276,277,280],{},[125,278,279],{},"分數是跟著截斷率走的。"," 前兩次沒有把迴圈修掉，分數就留在原地；把撞上限的比例壓下來，分數才動。",[111,282,283],{},"有一條線不聽這個解釋：IFEval 在 10 次前向就從 21.0 跳到 49.0，那時截斷率還有 87.2%。IFEval 的答案短，截斷對它的影響小。單次執行的結果，我不會拿它下結論。",[115,285,287],{"id":286},"它改的是什麼兩層一個方向十三萬個權重","它改的是什麼：兩層、一個方向、十三萬個權重",[111,289,290],{},"Astra 做的事可以拆成三步。",[111,292,293],{},"第一步，看 96 道練習題的回答。其中 85 道撞到 32,768 上限，撞上去的內容幾乎都在重複。",[111,295,296],{},"第二步，把這個重複追到第 15 層與第 19 層的 MLP。MLP 是每個 transformer 區塊裡的前饋層，這兩層的輸出一直在同一個方向上推。",[111,298,299,300,304,305,307],{},"第三步，從這兩層的 ",[301,302,303],"code",{},"down_proj"," 各挑 64 個輸出欄位，把那個方向減掉。",[301,306,303],{}," 是前饋層最後把結果投影回模型寬度的那個矩陣。",[111,309,310],{},"2 × 64 × 1,024 = 131,072 個權重，約占 8 億的 0.016%。",[111,312,313,314,319,320,323,324,327],{},"Hugging Face 上有人照公開的 diff ",[132,315,318],{"href":316,"rel":317},"https:\u002F\u002Fhuggingface.co\u002FRikiyaT\u002FQwen3.5-0.8B-weight-space-programming",[136],"重建了檢查點","。公開 logs 裡的腳本逐個 tensor 對 sha256：只有 ",[301,321,322],{},"layers.15.mlp.down_proj"," 與 ",[301,325,326],{},"layers.19.mlp.down_proj"," 兩個張量不同。",[111,329,330],{},"我認為這是最乾淨的一種驗證。不是「他們說改了兩個張量」，是「重建出來的檔案只有兩個張量不同」。",[111,332,333],{},"比喻的話：模型不是不會算，它是在某個地方一直被推回原點，繞著同樣兩三句話轉。那個「推回去的力」，在權重裡是一個方向。減掉它，模型就能把已經想到的答案寫完（圖 1）。",[111,335,336,337,341],{},"Astra 還自己做了一個對照。取一個與目標方向正交、改動量相同的隨機方向減掉，成績只動 1.5 個百分點（",[132,338,340],{"href":153,"rel":339},[136],"覆盤","）。所以動的是方向，不是「隨便改一點權重都會變好」。",[111,343,344],{},"這不是全新的技術路線。把「拒絕回答」定位到單一方向的研究、ROME 與 MEMIT 那種「找到一組權重、改掉一件事」的做法，都在同一個家族裡。",[111,346,347,348,351],{},"新的部分是",[125,349,350],{},"誰來找那個方向。"," 這次是一個通用模型自己找，而且會把理由寫出來。",[353,354,357,358,357,365],"figure",{"className":355},[356],"article-figure","\n  ",[359,360],"video",{"src":361,"poster":362,"autoPlay":363,"loop":363,"muted":363,"playsInline":363,"ariaLabel":364},"\u002Fimages\u002Fblog\u002Fweight-edit-loop-repair\u002Floop-repair.mp4","\u002Fimages\u002Fblog\u002Fweight-edit-loop-repair\u002Floop-repair-poster.jpg",true,"左邊是原始模型反覆輸出、撞上 32,768 上限；右邊是減掉一個方向之後，答案在預算內寫完",[366,367,368],"figcaption",{},"圖 1：同一顆模型。左邊一直被推回原點，93% 的數學題撞上上限；右邊減掉兩層 MLP 裡的方向，撞上限的比例掉到 33%。",[115,370,372],{"id":371},"_579-題裡576-題原本只是講不完","579 題裡，576 題原本只是講不完",[111,374,375],{},"這是最關鍵、也最容易被誤讀的一段。",[111,377,378],{},"硅星人Pro 把公開 logs 的逐題紀錄重算一次。他們挑的 1,152 道題，是練習題裡保留起來、沒有拿去挑補丁的那批。",[164,380,381,397],{},[167,382,383],{},[170,384,385,388,391,394],{},[173,386,387],{},"原本的狀態",[173,389,390],{},"題數",[173,392,393],{},"改之前答對",[173,395,396],{},"改之後答對",[189,398,399,412],{},[170,400,401,404,407,410],{},[194,402,403],{},"有正常結束",[194,405,406],{},"114",[194,408,409],{},"93.9%",[194,411,409],{},[170,413,414,417,420,423],{},[194,415,416],{},"被上限截斷",[194,418,419],{},"1,038",[194,421,422],{},"1.4%",[194,424,425],{},"56.7%",[427,428,429,433,436],"ul",{},[430,431,432],"li",{},"從錯變對 579 題，其中 576 題原本是被截斷的",[430,434,435],{},"從對變錯 5 題",[430,437,438],{},"平均回答長度從 30,868 token 降到 22,037",[111,440,441,444],{},[125,442,443],{},"已經答完的 114 題，正確率一位小數都沒動。"," 114 題裡 3 題從錯變對、3 題從對變錯，剛好打平。",[111,446,447],{},"579 個救援裡，576 個來自那 1,038 道本來沒講完的。真正的進步在那裡。",[111,449,450],{},"這件事不是誰抓到破綻。原文的表格最後一欄就是 93% 到 33.1%，Astra 自己的最終報告也寫了 576／579。",[111,452,453],{},"作者沒有隱瞞：logs、檢查點、失敗的實驗都公開了。他們只是沒有把「已經答完的題目有沒有變」算成一行。",[111,455,456],{},"補一句：這張表是依 logs 重算出來的，不是原文的表格。我們沒有自己重算。",[115,458,460],{"id":459},"不會打轉的模型它修不動","不會打轉的模型，它修不動",[111,462,463],{},"同樣的方法，換到 Gemma 3 270M 就失效了。",[111,465,466],{},"這顆模型很少打轉：只有 8.5% 的回答撞到上限。Qwen 那顆是 93%。",[111,468,469],{},"Astra 讀它的失敗，找到的是普通的算錯與代數步驟錯。沒有一個可以關掉的零件。",[111,471,472],{},"改完之後，MATH-500 落在 7.0% 到 7.7% 之間，改之前是 6.8%。Astra 自己的報告把這個幅度標成「未達確立」。",[111,474,475],{},"原文那句話，是整篇最重要的：",[108,477,478],{},[111,479,480],{},"Editing weights could remove an obstacle that hid an ability, but it could not add an ability the model lacked.",[111,482,483,484],{},"翻成白話：",[125,485,486],{},"改權重可以移除擋住能力的障礙，但不能加進模型本來沒有的能力。",[111,488,489],{},"這句話對你有直接用途。你的模型表現差，先問是哪一種差。",[427,491,492,495],{},[430,493,494],{},"它會算，但講不完（一直重複、撞上限）→ 移除障礙有效",[430,496,497],{},"它算錯 → 移除障礙無效，換模型或換任務",[111,499,500],{},"第一種，可以先從設定下手，不必換模型。第二種，別在權重上花時間。",[115,502,504],{"id":503},"被批的不是結果是包裝","被批的不是結果，是包裝",[111,506,507],{},"這篇被罵得很兇。但先把話講清楚：被批的是包裝，不是結果。",[111,509,510,511,516],{},"spaCy 的作者 Matthew Honnibal 寫了一篇",[132,512,515],{"href":513,"rel":514},"https:\u002F\u002Fhonnibal.dev\u002Fblog\u002Fastra-read-write-misleading",[136],"質疑","，用魔術師比喻。",[111,518,519],{},"同一場戲，第一次用特殊道具，第二次改用藏東西，第三次用強迫選擇。觀眾以為只有一種手法，於是每看一次都像推翻了上一個假設。",[111,521,522],{},"他的證據是一張表，把八個實驗按「Astra 實際拿到什麼」排開：",[164,524,525,544],{},[167,526,527],{},[170,528,529,532,535,538,541],{},[173,530,531],{},"實驗",[173,533,534],{},"對象",[173,536,537],{},"只看原始權重",[173,539,540],{},"用 Python",[173,542,543],{},"跑過模型",[189,545,546,562,576,590,604,618,633,648],{},[170,547,548,551,554,557,560],{},[194,549,550],{},"1 猜遊戲",[194,552,553],{},"1.7 萬",[194,555,556],{},"✓",[194,558,559],{},"—",[194,561,559],{},[170,563,564,567,570,572,574],{},[194,565,566],{},"2 猜形狀",[194,568,569],{},"2.4 萬",[194,571,556],{},[194,573,559],{},[194,575,559],{},[170,577,578,581,584,586,588],{},[194,579,580],{},"3 猜語言與複製頭",[194,582,583],{},"716 萬",[194,585,559],{},[194,587,556],{},[194,589,559],{},[170,591,592,595,598,600,602],{},[194,593,594],{},"4 修卡住的車",[194,596,597],{},"17 萬",[194,599,556],{},[194,601,559],{},[194,603,559],{},[170,605,606,609,612,614,616],{},[194,607,608],{},"5 從零寫 MinAtar",[194,610,611],{},"2 萬",[194,613,559],{},[194,615,559],{},[194,617,559],{},[170,619,620,623,626,628,630],{},[194,621,622],{},"6 從零寫圍棋",[194,624,625],{},"148 萬",[194,627,559],{},[194,629,556],{},[194,631,632],{},"✓（0–50 次）",[170,634,635,638,641,643,645],{},[194,636,637],{},"7 找出阿諛模型",[194,639,640],{},"2.7 億",[194,642,559],{},[194,644,556],{},[194,646,647],{},"✓（只看 attention）",[170,649,650,653,656,658,660],{},[194,651,652],{},"8 修 Qwen 數學",[194,654,655],{},"約 8 億",[194,657,559],{},[194,659,556],{},[194,661,662],{},"✓（50 次前向）",[111,664,665],{},"（表依 Honnibal 的整理改寫，數字用他的級距。實驗 4 另外拿到一段失敗錄影。實驗 5 的權重從 0 開始，沒有東西可讀。實驗 7 只看權重時四次全錯，加上 attention 工具才三對三。）",[111,667,668],{},"真正「只看原始權重、不給工具、不跑模型」的，只有實驗 1、2、4。對象是 1.7 萬到 17 萬個權重的小網路。",[111,670,671],{},"所有碰到真語言模型的實驗都用 Python。Qwen 那組還被允許跑 50 次前向。",[111,673,674],{},"摘要卻把三種能力寫成一句話：「只看原始權重，就能理解並修改另一個模型。」讀者自然會以為是同一招。",[111,676,677],{},"還有一件事更硬。那次數學實驗的提示詞裡，作者直接寫了：",[108,679,680],{},[111,681,682],{},"if the model often fails because it repeats itself and never finishes, finding and fixing what drives that repetition counts",[111,684,685,686],{},"也就是說，",[125,687,688],{},"「重複」被當成有效修改的例子，寫在任務說明裡。",[111,690,691],{},"他們也做了一個拿掉這個提示的版本（v4）。10 次前向時不再交出修改，25 次只到 14.1%，而且沒有跑 50 次的版本。",[111,693,694],{},"所以「沒有提示時能不能到 48.1」，公開資料回答不了。",[111,696,697],{},"（v4 除了拿掉失敗範例，還改了練習題與驗證題的分法和流程。這個對照不乾淨，但方向值得記住。）",[111,699,700],{},"也該給作者記一筆。貼文公開後不久，他們改了摘要：把「遠超過人類或傳統演算法」拿掉，換成比較保留的說法。",[111,702,703],{},"負面實驗照登，logs 全部公開，檢查點也放出來。",[111,705,706],{},"我的判斷：能力是真的。代價與包裝被放大，但證據鏈沒有斷。",[111,708,709,710,715],{},"Hugging Face 上的",[132,711,714],{"href":712,"rel":713},"https:\u002F\u002Fhuggingface.co\u002FprithivMLmods\u002FQwen3.5-0.8B-weight-space-programming-GGUF",[136],"重建版","重跑 500 題，編輯後拿到 51.0%，撞上限 31.6%。換一個人、換一張卡，結論沒變。",[115,717,718],{"id":718},"你明天可以做的四件事",[111,720,721],{},"不用等下一篇論文。任何一次「改完之後分數變好」，都可以用這四步驗。",[723,724,725,739,745,756],"ol",{},[430,726,727,734,735,738],{},[125,728,729,730,733],{},"加一欄 ",[301,731,732],{},"finish_reason","。"," 那是 API 回傳的結束原因，等於 ",[301,736,737],{},"length"," 就是被上限截斷。這個比例超過 10%，就不要直接比總分。",[430,740,741,744],{},[125,742,743],{},"看截斷回應的尾巴。"," 8-gram 重複率，就是連續八個 token 一模一樣的比例。太高，表示它在繞圈，不是題目太難。",[430,746,747,750,751,755],{},[125,748,749],{},"核設定。"," 思考模式開關、temperature、token 上限，跟 model card 對一次。這篇的基準是強制開思考、temperature 0.6、presence penalty 1.5、上限 32,768；",[132,752,175],{"href":753,"rel":754},"https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3.5-0.8B",[136]," 的預設是非思考模式。",[430,757,758,761],{},[125,759,760],{},"加一個不會打轉的對照模型。"," 它沒進步，你看到的就不是能力提升。",[111,763,764,765,733],{},"四個步驟都不需要幾十小時的模型對話，只需要一個 ",[301,766,767],{},"if",[111,769,770],{},"那什麼時候真的值得改權重？三種情況。",[427,772,773,776,779],{},[430,774,775],{},"病理已經被寫進 model card，像這顆模型的迴圈，Qwen 自己警告過",[430,777,778],{},"你沒有資料或算力做微調",[430,780,781],{},"你接受它現在是研究階段：一次成功的編輯花了 80 次程式執行、158 輪對話，接近一整天",[111,783,784],{},"作者自己也說，還沒證明比微調便宜。",[115,786,788],{"id":787},"三個問題加上一句提醒","三個問題，加上一句提醒",[111,790,791],{},"下次看到「某個方法讓模型變強六倍」，先問三題。",[427,793,794,797,800],{},[430,795,796],{},"分母是什麼？（基準是在哪個設定下量的）",[430,798,799],{},"上限是多少？（有多少題根本沒講完）",[430,801,802],{},"有沒有對照組？（換一顆不會打轉的模型，還成立嗎）",[111,804,805],{},"這三題擋不掉所有誤讀，但能擋掉大部分新聞。",[111,807,808],{},"如果你正在選地端模型，或評估一個「調完之後變很好」的內部結果，我們做過類似的事。",[111,810,811,812,156],{},"把能跑、能回答、能通過驗收拆成四層（",[132,813,815],{"href":814},"\u002Fblog\u002Frunning-is-not-done","「跑得起來」跟「真的幹完活」是四件事",[111,817,818,819,156],{},"同一個道理換到量化模型，是「檔案本身可能是壞的」（",[132,820,822],{"href":821},"\u002Fblog\u002Fbroken-on-arrival-quantized-models","你下載的量化模型可能是壞的",[111,824,825,826,156],{},"而「把移除障礙寫成能力進化」這個模式，我們也寫過一次（",[132,827,829],{"href":828},"\u002Fblog\u002Feth-refuted-not-p-np","「推翻 ETH」不是「攻破 P=NP」",[111,831,832,833],{},"這三篇講的是同一件事：",[125,834,835],{},"分數變好，跟模型變強，是兩個不同的句子。",[111,837,838],{},"要把它們分開，只需要一欄資料。而那一欄，你今天的 pipeline 其實就有了。",[111,840,841,842,846],{},"想把這件事變成團隊的例行檢查？我們做",[132,843,845],{"href":844},"\u002Fservices","地端 AI 導入","時，第一件事就是這個：先量，再決定要不要換模型。",[115,848,849],{"id":849},"資料來源",[427,851,852,860,869,881,889,898,911],{},[430,853,854,855,859],{},"原始貼文：",[132,856,858],{"href":134,"rel":857},[136],"Sparks of Weight-Space Programming","（Rikiya Takehi、Jayden Teoh、Alex Zhang、Omar Khattab，2026-11-02；未同儕審查）",[430,861,862,863,868],{},"完整 logs：",[132,864,867],{"href":865,"rel":866},"https:\u002F\u002Fgithub.com\u002FRikiyaT\u002Flm_understand-logs",[136],"RikiyaT\u002Flm_understand-logs","，1,125 次模型調用",[430,870,871,872,876,877],{},"檢查點：",[132,873,875],{"href":316,"rel":874},[136],"RikiyaT\u002FQwen3.5-0.8B-weight-space-programming","；重建版重跑數據見 ",[132,878,880],{"href":712,"rel":879},[136],"GGUF 卡",[430,882,883,884,888],{},"逐題重算（1,152 題配對、579／576、隨機方向對照）：硅星人Pro〈",[132,885,887],{"href":153,"rel":886},[136],"刷屏的「Astra 改造 Qwen 大腦」跟我們想要的 RSI 沒多大關係","〉，2026-11-05",[430,890,891,892,897],{},"另一份獨立整理：",[132,893,896],{"href":894,"rel":895},"https:\u002F\u002Ftraictory.com\u002Fnews\u002F2026-11-04-mit-weight-space-programming",[136],"traictory","，2026-11-04",[430,899,900,901,905,906],{},"批評：",[132,902,904],{"href":513,"rel":903},[136],"Honnibal","，2026-11-03；",[132,907,910],{"href":908,"rel":909},"https:\u002F\u002Fsimonwillison.net\u002F2026\u002FNov\u002F3\u002Fqwen-can-interpret-model-weights\u002F",[136],"Simon Willison 的整理",[430,912,913,914],{},"採樣設定與預設模式：",[132,915,917],{"href":753,"rel":916},[136],"Qwen3.5-0.8B model card",{"title":919,"searchDepth":920,"depth":920,"links":921},"",2,[922,923,924,925,926,927,928,929,930],{"id":117,"depth":920,"text":117},{"id":162,"depth":920,"text":162},{"id":286,"depth":920,"text":287},{"id":371,"depth":920,"text":372},{"id":459,"depth":920,"text":460},{"id":503,"depth":920,"text":504},{"id":718,"depth":920,"text":718},{"id":787,"depth":920,"text":788},{"id":849,"depth":920,"text":849},"\u002Fimages\u002Fblog\u002Fweight-edit-loop-repair.svg","標題「它沒有變聰明，只是不再打轉」的技術筆記封面","2026-11-08","一個 0.8B 小模型改掉 0.016% 的權重，MATH-500 從 7.9% 跳到 48.1%。但逐題比對後，救回來的 579 題裡有 576 題原本是被 32,768 token 上限截斷的；已經答完的 114 題，正確率完全沒變。這篇把六倍拆開，給你四步檢查——下次看到分數暴漲時，先看截斷率，再看對照組。",false,"md","zh-TW",{},"\u002Fimages\u002Fblog\u002Fweight-edit-loop-repair.jpg","\u002Fblog\u002Fzh-tw\u002Fweight-edit-loop-repair",{"title":102,"description":934},"weight-edit-loop-repair","blog\u002Fzh-TW\u002Fweight-edit-loop-repair",[945,946,947,948],"local-llm","reasoning-models","evaluation","interpretability",null,"WA7IcJhsMEwChZwPlmimkW-vQze8P_jzZWU7jGg1Yxw",[952,1712],{"id":953,"title":815,"author":103,"body":954,"cover":1697,"coverAlt":1698,"date":1699,"description":1700,"draft":935,"extension":936,"featured":935,"lang":937,"meta":1701,"navigation":363,"ogImage":1702,"path":1703,"seo":1704,"slug":1705,"stem":1706,"tags":1707,"translationKey":1705,"updated":949,"__hash__":1711},"blog\u002Fblog\u002Fzh-TW\u002Frunning-is-not-done.md",{"type":105,"value":955,"toc":1685},[956,961,963,966,969,975,978,981,984,987,996,999,1003,1006,1032,1035,1040,1043,1104,1107,1110,1113,1116,1119,1130,1134,1137,1140,1143,1149,1164,1167,1170,1173,1176,1179,1182,1185,1189,1192,1195,1198,1204,1207,1210,1213,1224,1227,1230,1233,1236,1239,1242,1245,1262,1265,1268,1271,1274,1277,1280,1283,1286,1289,1292,1295,1344,1347,1350,1353,1356,1359,1362,1365,1368,1371,1374,1377,1380,1383,1386,1389,1392,1437,1440,1443,1446,1455,1458,1461,1464,1467,1470,1480,1483,1486,1489,1492,1554,1557,1560,1563,1566,1569,1586,1589,1592,1595,1598,1630,1633,1644,1656,1663,1669,1673,1676,1679,1682],[108,957,958],{},[111,959,960],{},"數字全部來自 arXiv 2610.34241v1。那是作者自己的工程紀錄，不是受控實驗；「我認為」的部分我會標出來。",[115,962,117],{"id":117},[111,964,965],{},"「模型有回應了。」這是最容易騙過驗收的一句話。API 回 200、文字讀得懂，但工具可能根本沒被呼叫出去。",[111,967,968],{},"2026 年 7 月，Vaibhav Jain 把幾台筆電串起來，跑一個單機放不下的模型。聊天可以，當 coding agent 用卻慢到不能用；每次重啟，32B 的權重要在 Wi-Fi 上傳五分鐘（8.7 GB）。最後他收掉分散式，改成單機。",[111,970,971,972],{},"這件事的重點不是「分散式不行」。是他從那時候開始發現：",[125,973,974],{},"模型跑得起來，跟它能不能幫你幹完活，是四件不同的事。",[111,976,977],{},"這篇要拆的就是那四層，還有驗收單上通常漏掉的那一欄。",[111,979,980],{},"一個模型權重檔（checkpoint）載得進去，丟一句話會回話，然後呢？你叫它去看一個檔案、呼叫一個工具、維持一段長 session、守住一個 repo 的介面約定。這些它可能全部做不到，而你的 API 還是回你 200。",[111,982,983],{},"問題出在「相容」這兩個字。同一個號稱相容的 endpoint，後面可能是完全不同的東西。工具呼叫的格式、一輪對話怎麼結束、context 怎麼被改寫、快取有沒有重用，四件事都可以不一樣。",[111,985,986],{},"只要有一件不一樣，你在 A 模型上驗過的流程，換到 B 模型就會壞。而且通常不會給你錯誤訊息。",[111,988,989,990,995],{},"這篇是一份單人經驗報告的導讀。",[132,991,994],{"href":992,"rel":993},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2610.34241",[136],"論文","是 arXiv 2610.34241，作者是獨立研究者，紀錄的時間橫跨 2026 年 7 月到 10 月，跑過 vLLM、SGLang、llama.cpp 和 MLX。",[111,997,998],{},"它做的事很樸素：把「能跑」拆成四層，再用 45 場有隱藏檢查的實驗，告訴你第四層要怎麼驗、代價在哪裡。",[115,1000,1002],{"id":1001},"四層不是一個開關","四層，不是一個開關",[111,1004,1005],{},"作者把「模型有沒有用」拆成四層：",[723,1007,1008,1014,1020,1026],{},[430,1009,1010,1013],{},[125,1011,1012],{},"服務得起來","：checkpoint 載得進去，送一句話有東西回來。",[430,1015,1016,1019],{},[125,1017,1018],{},"文字連貫","：回得出人話，讀得懂，能回答問題。",[430,1021,1022,1025],{},[125,1023,1024],{},"工具被解析並執行","：它說「我要讀這個檔案」，client 真的收到，真的去讀。",[430,1027,1028,1031],{},[125,1029,1030],{},"通過獨立行為檢查","：產出的程式碼，在另一個不屬於它的檢查器裡，真的把事做對。",[111,1033,1034],{},"論文裡有一句話是整篇的骨架：",[108,1036,1037],{},[111,1038,1039],{},"一個 endpoint 可以滿足前三層，卻在第四層全錯。而且如果第三層過不了，你根本量不到第四層。",[111,1041,1042],{},"（這是作者的話，我照原意翻。）",[164,1044,1045,1058],{},[167,1046,1047],{},[170,1048,1049,1052,1055],{},[173,1050,1051],{},"層級",[173,1053,1054],{},"你要問的問題",[173,1056,1057],{},"通過之後，你還不知道什麼",[189,1059,1060,1071,1082,1093],{},[170,1061,1062,1065,1068],{},[194,1063,1064],{},"1 服務",[194,1066,1067],{},"載得進去、有回應嗎？",[194,1069,1070],{},"回的是不是人話",[170,1072,1073,1076,1079],{},[194,1074,1075],{},"2 連貫",[194,1077,1078],{},"讀得懂、講得出道理嗎？",[194,1080,1081],{},"它會不會真的動手",[170,1083,1084,1087,1090],{},[194,1085,1086],{},"3 工具",[194,1088,1089],{},"工具呼叫被解析、被執行了嗎？",[194,1091,1092],{},"執行完的結果對不對",[170,1094,1095,1098,1101],{},[194,1096,1097],{},"4 驗證",[194,1099,1100],{},"產出通過獨立的行為檢查了嗎？",[194,1102,1103],{},"這一層過了，才叫「幹完活」",[111,1105,1106],{},"這四層不是「程度」的差別，是四道不同的門。第一層過了，不代表第二層；第二層過了，也不代表它會動手。很多人停在第二層就以為快成功了，因為它講得有模有樣。",[111,1108,1109],{},"你平常在驗收單上看到的三個層級，大概是這樣對應。「模型有回應」是第 1 層加第 2 層；「程式跑起來」是第 3 層；「測試通過」是第 4 層。",[111,1111,1112],{},"但「測試通過」要看是誰的測試。廠商自己寫的測試過了，你可能還停在第 3 層；第 4 層的檢查，得是別人寫的、在驗收前就凍結的。",[111,1114,1115],{},"我把第 1、2 層拆開，是因為它們的失敗長得很像、原因完全不同。一個是服務沒通；一個是通了，但只會講話。",[111,1117,1118],{},"（如圖 1）",[353,1120,357,1122,357,1127],{"className":1121},[356],[359,1123],{"src":1124,"poster":1125,"autoPlay":363,"loop":363,"muted":363,"playsInline":363,"ariaLabel":1126},"\u002Fimages\u002Fblog\u002Frunning-is-not-done\u002Flevels.mp4","\u002Fimages\u002Fblog\u002Frunning-is-not-done\u002Flevels-poster.jpg","四層進度：服務、連貫、工具、驗證，第三與第四層之間有斷層",[366,1128,1129],{},"圖 1：四層不是程度差別，是四道不同的門。前三層都過，第四層仍可能全錯。",[115,1131,1133],{"id":1132},"同一個-api不同的協議","同一個 API，不同的協議",[111,1135,1136],{},"作者把 Claude Code 接上自己寫的 gateway，後面接不同的模型。他原本想的是「換一個 endpoint 而已」，實際上的感覺，比較像換一個工作習慣完全不同的人。",[111,1138,1139],{},"有的模型照工具契約做。有的用文字描述它「打算執行這個指令」。有的會把它覺得不順的介面改掉，例如把一個本來穩定的函式簽名重寫成它喜歡的樣子。這些不是模型笨，是它跟你的 client 對「工具」這件事的理解不一樣。",[111,1141,1142],{},"他統計了 gateway 上的真實請求。Gemma 4 有 492 個帶工具的請求，其中 294 個解析出 tool_calls。144 個以 stop 結束、沒有 tool call；還有 54 個沒有存到解析結果。",[111,1144,1145,1146],{},"那個 144 不能全部算失敗。正常收尾也會是 stop，沒有 tool call 可能只是任務做完了。這是本文的第一個陷阱：",[125,1147,1148],{},"「沒有工具呼叫」本身不是錯誤訊號，要看當下該不該有。",[111,1150,1151,1152,1155,1156,1159,1160,1163],{},"還有更直接的。Gemma 4 的存檔輸出裡有 8 個 ",[301,1153,1154],{},"\u003C|tool_call>"," 前綴的畸形呼叫，解析器完全沒接住。GPT-OSS-120B 走 SGLang（一種推論伺服器）時，",[301,1157,1158],{},"tool_choice=required"," 會跟它自己的工具格式（Harmony）打架，得降成 ",[301,1161,1162],{},"auto","。工具回合的輸出上限也要放寬，不然 reasoning 和 tool JSON 會一起被截斷。",[111,1165,1166],{},"回合控制是另一半。對話的識別碼（session identifier）不見、工具呼叫繞圈、thinking channel 對不上。任何一個都會讓對話「看起來還在跑，其實已經迷路」。",[111,1168,1169],{},"最值得記下來的是這一段：API 格式（schema）檢查全部通過，接上真的 Claude Code 之後還是壞。",[111,1171,1172],{},"一次是 client 的工作目錄沒有被放進 request，模型只能猜路徑。一次是 streaming 的工具參數被當成「替換」而不是「附加」，參數被切斷，模型收到一個殘缺的呼叫。",[111,1174,1175],{},"這兩個都不會出現在單元測試裡。它們要你真的把 client 接上去，跑一次完整流程才會出現。",[111,1177,1178],{},"作者的診斷問題很簡單：工具失敗的時候，是模型不會用，還是中間某個環節把呼叫弄丟了？",[111,1180,1181],{},"如果是後者，就修在源頭：模型的 template、parser 規則、serve flag、request 翻譯。而不是在 gateway 上不斷補丁。他後來的做法是把 gateway 縮成薄的翻譯層，只做協議與安全檢查。上游失敗就往外傳，不要讓一個失敗的 stream 看起來像正常結束。",[111,1183,1184],{},"「能被設定」不等於「真的跑起來、被評測過」。這句話對採購很有用：供應商說「支援」，通常只代表它能被設定。",[115,1186,1188],{"id":1187},"對話看起來連續其實中間斷了","對話看起來連續，其實中間斷了",[111,1190,1191],{},"第三層過了，還有一個更隱形的問題：對話。",[111,1193,1194],{},"對你來說，那是一段連續的對話。對 runtime 來說，它是三樣東西：token 前綴（對話開頭的固定內容）、KV cache（算過的注意力狀態）、執行 slot。你看到的「連續」，它不一定看得到。",[111,1196,1197],{},"作者留下 4,165 個 gateway 回合、623 個除錯工作的紀錄。其中 85 筆是冷前綴：完全沒有重用，30,000 到 36,000 個 input token。280 筆是高重用：至少 90% 重用、少於 2,000 個新 token。",[111,1199,1200,1201],{},"首字延遲的中位數：",[125,1202,1203],{},"冷前綴 69.4 秒，高重用 2.8 秒。",[111,1205,1206],{},"差了約 25 倍。",[111,1208,1209],{},"但這裡要很小心。作者自己標了「觀察性資料」：兩組工作的組成不同、不是隨機分配、沒有配對。所以不能寫成「快取讓速度快 25 倍」。能說的是：前綴有沒有被重用，跟你的體感差距很大，而且大到不像是雜訊。",[111,1211,1212],{},"（如圖 2）",[353,1214,357,1216,357,1221],{"className":1215},[356],[359,1217],{"src":1218,"poster":1219,"autoPlay":363,"loop":363,"muted":363,"playsInline":363,"ariaLabel":1220},"\u002Fimages\u002Fblog\u002Frunning-is-not-done\u002Fcache.mp4","\u002Fimages\u002Fblog\u002Frunning-is-not-done\u002Fcache-poster.jpg","同一段對話的兩條路徑：前綴穩定時重用快取，前綴被改寫時重算",[366,1222,1223],{},"圖 2：同一段對話。前綴沒變，後端重用快取；前綴被改了一點點，整段 context 重算。",[111,1225,1226],{},"機制很樸素。推論後端可以重用「完全相同的 token 前綴」的 KV 狀態。所以只要前綴變了，整段 context 就要重算一次 prefill（把前綴重新算過）。哪怕只是前面多一個時間戳、換一個 system banner、工具定義的順序不同、JSON 序列化方式不一樣。",[111,1228,1229],{},"你改的是一個 banner；你付的是整段 context。",[111,1231,1232],{},"還有一種更冤的：旁支請求。coding agent 的流量不是只有主對話，還有生成標題、權限確認這類小請求。如果後端只有一個可重用的執行 slot，一個旁支請求就可能把主對話的駐留狀態擠掉。",[111,1234,1235],{},"他的紀錄裡，65 個被歸類為 auxiliary 的請求，有 44 個沒有快取重用。在高重用的紀錄中，auxiliary 的首字延遲中位數是 12.2 秒（13 筆），主請求是 2.7 秒（267 筆）。",[111,1237,1238],{},"長對話超過某個長度時，系統會把它壓成摘要（compaction）。這裡也有類似的假象：他刻意把壓縮門檻調低，在 12 次測試裡，子代理壓縮觸發了 6 次。這 6 次任務全部沒有完成，而且其中一筆還被標成 PASS。",[111,1240,1241],{},"「壓縮發生了」不是「工作完成了」。這兩件事在 log 裡長得很像。",[111,1243,1244],{},"所以他把 session 連續性當成應用的責任，而不是後端的參數：",[427,1246,1247,1250,1253,1256,1259],{},[430,1248,1249],{},"訊息序列盡量 append-only，除非真的需要改前面的內容。",[430,1251,1252],{},"已經送出的工具訊息，不要為了美觀重新序列化。",[430,1254,1255],{},"streaming 的 tool JSON 和最後的完整版本要一致。",[430,1257,1258],{},"每回合的 metadata 不要動到被凍結的 system 前綴。",[430,1260,1261],{},"保住 session affinity（下一回合要回到同一個執行位置）。穩定的 prompt 不夠，slot 換了就沒有那份快取。",[111,1263,1264],{},"快取不是後端參數，是應用的紀律。",[115,1266,1267],{"id":1267},"第四層才算驗收",[111,1269,1270],{},"接下來是這篇論文真正做實驗的地方。當部署、協議、session 都處理到可以跑範圍明確的任務之後，問題才真正出現。一個開源的小模型，能不能交出通過檢查的程式碼？",[111,1272,1273],{},"設計是這樣：五類 TypeScript 任務，報價、按比例分攤、客戶、拆分、零件；每類每種跑三次，總共 45 場。三種條件是：直接寫；優化委派（父層只寫規格、審查並套用工人的產出）；可分批的委派。最後一種允許父層把工作拆成連續幾包，但只有少數場次真的拆。",[111,1275,1276],{},"父層（負責規劃與審查的那一層）固定是 Claude Code 加 Claude Opus 5.5。工人（被委派實作的那顆模型）是量化過的 Qwen3-Coder 30B-A3B。每一場都用任務專屬的隱藏行為檢查判定，不看 agent 自己說「我完成了」。",[111,1278,1279],{},"結果：直接寫 15\u002F15；優化委派 12\u002F15；可分批的委派 14\u002F15。",[111,1281,1282],{},"這三個數字不能排名。每一格只有三次，信賴區間是重疊的；作者也明說，這些資料不足以建立一般的成功率差異。能說的是：工人真的交得出東西。30 場委派裡，26 場驗證通過，而且都保留了工人寫的程式碼。但不是每次。",[111,1284,1285],{},"另外，那 14\u002F15 不是「批次比較好」的證據。15 場裡只有 5 場真的用到批次呼叫，其餘是單次委派。論文自己說這是「批次標記的適應式策略」，不是批次與非批次的對照。",[111,1287,1288],{},"第二組更嚴格。15 個任務，各跑三次，直接與委派各 45 場。工人產出的檔案要先通過一份固定的介面契約，才能進父層審查。",[111,1290,1291],{},"直接寫 45\u002F45。委派給 Nemotron Cascade 2 工人 12\u002F45，其中 11 場是工人真的替換成功，1 場是父層改寫後才通過。Qwen3-Coder 工人 0\u002F45。",[111,1293,1294],{},"這個 45\u002F45 也要保留一點判斷空間。題目是為這份研究準備的，而且只有五類、每類三題；論文沒有做難度分層。",[164,1296,1297,1309],{},[167,1298,1299],{},[170,1300,1301,1303,1306],{},[173,1302,531],{},[173,1304,1305],{},"直接寫",[173,1307,1308],{},"委派給工人",[189,1310,1311,1322,1333],{},[170,1312,1313,1316,1319],{},[194,1314,1315],{},"45 場試驗",[194,1317,1318],{},"15\u002F15",[194,1320,1321],{},"Qwen3-Coder 12\u002F15（優化委派）、14\u002F15（可分批）",[170,1323,1324,1327,1330],{},[194,1325,1326],{},"第二組（15 任務 × 3）",[194,1328,1329],{},"45\u002F45",[194,1331,1332],{},"Nemotron 12\u002F45（11 場是工人替換）；Qwen 0\u002F45",[170,1334,1335,1338,1341],{},[194,1336,1337],{},"第二組，中斷算失敗",[194,1339,1340],{},"37\u002F45",[194,1342,1343],{},"Nemotron 8\u002F45",[111,1345,1346],{},"這裡有一個必須寫出來的細節：有 16 場因為訂閱額度用完、連模型都沒有呼叫就中斷，後來被替換掉。這 16 場是直接組 8 場、Nemotron 組 8 場。替換之後，直接組多拿到 8 場成功，Nemotron 組多拿到 4 場。",[111,1348,1349],{},"如果把原本中斷的 16 場算成失敗，數字會變成 37\u002F45 與 8\u002F45。",[111,1351,1352],{},"作者兩個都寫了。這些是排程中斷，不是推論失敗。但如果你要拿這個數字去說服人，兩種算法都要看得到。",[111,1354,1355],{},"還有一件事要誠實講。五個任務的定義和隱藏測試，是在 AI 協助下產生的。合併後的測試檔，在第一場評估前大約 39 秒才建立，而且直到最後一場跑完才第一次進版控。",[111,1357,1358],{},"作者沒有把這件事藏起來。他能主張的是：45 場存下來的任務指令和可見檢查完全一致。事後比對的分數標籤，也和評分程式（scorer）對得上。但他不能宣稱這是一個有獨立事前快照的 benchmark。",[111,1360,1361],{},"第一組的測試流程（harness）也有限制。父層的 constraints 欄位沒有被轉給工人。gateway 會丟掉重複的 system message、截斷超過 1,800 字元的訊息。41 個重建的工人 prompt 裡，有 2 個各少了約 220 字元，都在失敗的場次。",[111,1363,1364],{},"所以「工人不聽指令」這個結論要打折。有些失敗是工人不會，有些是它根本沒收到完整的指令。",[111,1366,1367],{},"那 0\u002F45 呢？那不是「這顆模型什麼都做不到」的意思。那 45 場沒有 direct 對照組，父層接受與套用沒有重播，兩個研究的父層快取狀態也沒有重置。作者自己把它限定成「這批任務、這份契約、這個工人設定」的結果。",[111,1369,1370],{},"驗證是第四層，不是第三層的副產品。",[115,1372,1373],{"id":1373},"可是帳單反過來了",[111,1375,1376],{},"直覺是這樣的：前沿模型的輸出 token 很貴，本地小模型便宜。那把實作委派給本地工人，不就省錢了嗎？",[111,1378,1379],{},"問題是委派不是免費。父層要寫規格、要看工人做了什麼、要判斷能不能用、失敗要收拾。這些都是前沿模型的 token。",[111,1381,1382],{},"作者把成本拆成：父層 context、寫規格、審查、收拾、工人。這篇只量到前沿模型那幾項。工人端的電費、硬體、時間都沒有算進去，而且他明講「未量測不能當成零」。",[111,1384,1385],{},"第一組，每次驗證成功的成本：直接寫 $0.136；委派 $0.214（優化版）與 $0.199（另一種）。大約 1.6 倍。",[111,1387,1388],{},"第二組：直接 $0.153；Nemotron 委派 $1.313。8.6 倍。",[111,1390,1391],{},"Qwen 那組的「每次成功成本」算不出來，不是零——因為它一場都沒成功。",[164,1393,1394,1408],{},[167,1395,1396],{},[170,1397,1398,1400,1402,1405],{},[173,1399,531],{},[173,1401,1305],{},[173,1403,1404],{},"委派",[173,1406,1407],{},"倍數",[189,1409,1410,1423],{},[170,1411,1412,1414,1417,1420],{},[194,1413,1315],{},[194,1415,1416],{},"$0.136",[194,1418,1419],{},"$0.214（優化）、$0.199（另一種）",[194,1421,1422],{},"約 1.6×",[170,1424,1425,1428,1431,1434],{},[194,1426,1427],{},"第二組（Nemotron）",[194,1429,1430],{},"$0.153",[194,1432,1433],{},"$1.313",[194,1435,1436],{},"8.6×",[111,1438,1439],{},"（成本是 API 列表價換算，含失敗場次，不含本地硬體、電費、工程時間。）",[111,1441,1442],{},"還有一個小案例。有一場收費功能的任務，工人寫的東西通過了、也被套用了，但前沿成本是 $0.1856，直接寫是 $0.1293。加上本地執行時間，實際耗時 126.4 秒對 27.4 秒。",[111,1444,1445],{},"成功替換，不等於省錢。",[111,1447,1448,1449,1454],{},"但這不能推成「委派一定不省錢」。作者自己引了 ",[132,1450,1453],{"href":1451,"rel":1452},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2608.04804",[136],"Scrouting"," 這個反例。小模型先偵察 repo、前沿模型負責修，在 266 題上解了 159 題，最強單一模型是 158 題。只差一題，成本大約五分之一。",[111,1456,1457],{},"方向相反，結果就相反。他的結論只限定在自己的委派方式：前沿模型寫規格、本地工人實作。",[111,1459,1460],{},"成本定義也很窄：用 API 列表價換算，不含本地硬體、電費、工程時間。所以「8.6 倍」不是你的總帳，是前沿那一邊的帳。",[111,1462,1463],{},"便宜的是 token，貴的是協調。",[115,1465,1466],{"id":1466},"驗收腳本自己也會誤殺",[111,1468,1469],{},"這篇最實用的一段，其實不是模型，是驗收。",[111,1471,1472,1473,1476,1477,156],{},"他的工人產出要先過一份靜態契約：import、export、公開函式的參數列表都要對得上。問題是，任務的 stub 裡有些用不到的參數前面有底線（",[301,1474,1475],{},"_entries","），工人實作時很自然地把它拿掉（",[301,1478,1479],{},"entries",[111,1481,1482],{},"對一般的位置參數呼叫來說，這完全不影響行為。但契約是比對「參數名的字串」，所以直接退件。父層根本沒看到，隱藏檢查也沒跑。",[111,1484,1485],{},"後來他做了一次事後診斷。36 個「只因底線被移除」而被退的 artifacts，跳過那一條規則、原封不動套到新的任務副本，再跑原本的隱藏檢查。",[111,1487,1488],{},"19 個通過，17 個還是不行。",[111,1490,1491],{},"所以那條規則不是全錯，它同時擋掉了好東西和壞東西。差別在於：擋掉壞東西是它的工作，擋掉好東西是它的副作用。而你的流程如果只有這道門，副作用就是最終結果。",[164,1493,1494,1510],{},[167,1495,1496],{},[170,1497,1498,1501,1504,1507],{},[173,1499,1500],{},"工人",[173,1502,1503],{},"只因底線被退",[173,1505,1506],{},"原封不動通過隱藏檢查",[173,1508,1509],{},"仍失敗",[189,1511,1512,1526,1540],{},[170,1513,1514,1517,1520,1523],{},[194,1515,1516],{},"Qwen3-Coder",[194,1518,1519],{},"23",[194,1521,1522],{},"12",[194,1524,1525],{},"11",[170,1527,1528,1531,1534,1537],{},[194,1529,1530],{},"Nemotron",[194,1532,1533],{},"13",[194,1535,1536],{},"7",[194,1538,1539],{},"6",[170,1541,1542,1545,1548,1551],{},[194,1543,1544],{},"合計",[194,1546,1547],{},"36",[194,1549,1550],{},"19",[194,1552,1553],{},"17",[111,1555,1556],{},"作者沒有把這 19 個算成成功。它們沒有走完父層審查與套用流程，分數維持 Qwen 0\u002F45、Nemotron 12\u002F45。他也沒有因此說契約要拿掉。他提的是下一個實驗：讓工人收到具體的驗證錯誤，允許一次有界的修正。",[111,1558,1559],{},"那個實驗還沒做。",[111,1561,1562],{},"在這份契約上，比模型能力更容易出錯的，是驗收設計。",[115,1564,1565],{"id":1565},"它不能證明什麼",[111,1567,1568],{},"寫到這裡應該先把邊界畫出來，不然很容易變成另一種「AI 什麼都能」或「什麼都不能」。",[427,1570,1571,1574,1577,1580,1583],{},[430,1572,1573],{},"這是單人的回溯性經驗報告，不是受控實驗。工作負載隨工程進展變動。",[430,1575,1576],{},"樣本小：五類任務、每格三次；單一父層；單一工人設定。",[430,1578,1579],{},"成本只算前沿模型、用列表價換算。",[430,1581,1582],{},"原始紀錄沒有公開，你沒辦法自己驗算。",[430,1584,1585],{},"作者明說：研究沒有合併，不替模型或執行環境排名。",[111,1587,1588],{},"所以這篇能給你的不是「哪顆模型比較好」，是一張驗收框架。我認為，這份報告最有價值的地方不是那些數字，是它把「完成」拆成可以逐層檢查的東西。",[111,1590,1591],{},"這是一份可檢查的經驗，不是一張排行榜。",[115,1593,1594],{"id":1594},"明天就能用的檢查表",[111,1596,1597],{},"作者在最後整理了五條實務規則。我把它們改寫成可以直接放進 PoC 文件的形式：",[723,1599,1600,1606,1612,1618,1624],{},[430,1601,1602,1605],{},[125,1603,1604],{},"在任務邊界定義成功。"," 不要用「有沒有回應」驗收，用「產出有沒有通過一個不屬於它的檢查」驗收。而且要用真的 client 跑，不是用自己寫的 API 測試腳本。",[430,1607,1608,1611],{},[125,1609,1610],{},"把部署當成一份 recipe，不是一個模型名字。"," checkpoint revision、量化、runtime、template、context 設定、gateway、client、可用記憶體，任何一個換了，都要重驗。",[430,1613,1614,1617],{},[125,1615,1616],{},"session 連續性是應用的責任。"," 前綴穩定、工具訊息不要重寫、旁支請求不要搶掉主對話的狀態。",[430,1619,1620,1623],{},[125,1621,1622],{},"委派看「每次驗證成功」的成本。"," 不是 token 單價，也不是「這次呼叫花了多少」。",[430,1625,1626,1629],{},[125,1627,1628],{},"能用行為驗就用行為驗。"," 靜態檢查便宜、該留，但要知道它擋掉的是什麼。",[111,1631,1632],{},"如果你是要買的人，三個問題就夠：",[427,1634,1635,1638,1641],{},[430,1636,1637],{},"這個 demo 停在哪一層？「它會回話」是第 2 層。",[430,1639,1640],{},"第 4 層你們怎麼驗？驗收腳本誰寫的、什麼時候凍結的？",[430,1642,1643],{},"成本怎麼算，每次呼叫，還是每次驗證成功？",[111,1645,1646,1647,1651,1652,733],{},"我們自己的",[132,1648,1650],{"href":1649},"\u002Fwork\u002Fvideo-transcript-pipeline","影片轉錄管線","也遇過同一類問題。模型跑起來了，流程還是卡住；而且每一個環節的失敗，看起來都像「模型有點笨」。我們沒有做這種規模的量測，所以這篇只借論文的數字。本地跑大模型的記憶體取捨，之前寫在",[132,1653,1655],{"href":1654},"\u002Fblog\u002Fstrata-125b-on-12gb","另一篇",[111,1657,1658,1659,1662],{},"上一則我們談的是",[132,1660,1661],{"href":821},"檔案看起來對、其實不能用","；這一則是模型看起來對、其實幹不完活。",[111,1664,1665,1666,1668],{},"如果你要的是有人陪你把這張表填完，我們的",[132,1667,22],{"href":844},"做的就是這件事。先判斷哪些工作現在就能交給 AI，哪些還不成熟。",[115,1670,1672],{"id":1671},"結論你拿哪一層當完成","結論：你拿哪一層當「完成」",[111,1674,1675],{},"前三層可以在一個下午示範完。載一個模型、丟幾句話、接一個 client，快的話半天。",[111,1677,1678],{},"第四層要幾週：設計任務、寫隱藏檢查、跑足夠的次數、把失敗分類、算成本。而且做完之後，你得到的通常不是「這顆模型可以」，而是「這批任務、這份契約下，它可以」。",[111,1680,1681],{},"驗收單上缺的那一欄，就是差價所在。",[111,1683,1684],{},"明天可以先做一件事：把「測試通過」寫進你的 PoC 定義，然後要求對方出示第 4 層是怎麼驗的。",{"title":919,"searchDepth":920,"depth":920,"links":1686},[1687,1688,1689,1690,1691,1692,1693,1694,1695,1696],{"id":117,"depth":920,"text":117},{"id":1001,"depth":920,"text":1002},{"id":1132,"depth":920,"text":1133},{"id":1187,"depth":920,"text":1188},{"id":1267,"depth":920,"text":1267},{"id":1373,"depth":920,"text":1373},{"id":1466,"depth":920,"text":1466},{"id":1565,"depth":920,"text":1565},{"id":1594,"depth":920,"text":1594},{"id":1671,"depth":920,"text":1672},"\u002Fimages\u002Fblog\u002Frunning-is-not-done.svg","標題「跑得起來」跟「真的幹完活」是四件事的技術筆記封面","2026-11-03","同一個 API 相容的 endpoint，在工具呼叫、回合控制、context 和快取上都不一樣。一份 4,165 個回合的單人經驗報告，把「模型有回應」「工具真的執行」「程式碼通過檢查」拆成四層，也量到委派給本地 Nemotron 工人時，每次驗證成功反而貴 8.6 倍。文末有一張能直接拿去用的驗收清單。",{},"\u002Fimages\u002Fblog\u002Frunning-is-not-done.jpg","\u002Fblog\u002Fzh-tw\u002Frunning-is-not-done",{"title":815,"description":1700},"running-is-not-done","blog\u002Fzh-TW\u002Frunning-is-not-done",[945,1708,1709,1710],"agents","serving","tool-calling","Mv8FTsKM24mkF-nqqLfoFPMU-KhWVf5dDgEeAbaotSA",{"id":1713,"title":1714,"author":103,"body":1715,"cover":2171,"coverAlt":2172,"date":2173,"description":2174,"draft":935,"extension":936,"featured":935,"lang":937,"meta":2175,"navigation":363,"ogImage":2176,"path":2177,"seo":2178,"slug":2179,"stem":2180,"tags":2181,"translationKey":2179,"updated":949,"__hash__":2184},"blog\u002Fblog\u002Fzh-TW\u002Fbroken-on-arrival-quantized-models.md","你下載的量化模型可能是壞的，而且 checksum 驗不出來",{"type":105,"value":1716,"toc":2160},[1717,1726,1728,1735,1738,1741,1748,1752,1755,1762,1768,1779,1782,1785,1792,1802,1809,1813,1816,1874,1877,1883,1887,1890,1897,1904,1907,1911,1914,2019,2029,2040,2043,2056,2066,2080,2083,2101,2104,2109,2115,2122,2125,2147],[108,1718,1719],{},[111,1720,1721,1722,1725],{},"數字來自 arXiv 2609.05881v3 與作者的 ",[301,1723,1724],{},"quantcheck"," 稽核資料；「今天還在不在」是我們自己查的，腳本在文末。",[115,1727,117],{"id":117},[111,1729,1730,1731,1734],{},"你在筆電上 ",[301,1732,1733],{},"ollama pull qwen2.5-coder:3b","，選了一個 2-bit 的版本，因為記憶體不夠。",[111,1736,1737],{},"模型跑起來了，有回應，速度也不錯。但你叫它寫一個排序函式，它寫出來的東西編譯不過；再試一題，還是不過。",[111,1739,1740],{},"你會先懷疑自己：prompt 寫錯？溫度太高？還是這顆模型本來就這麼弱？",[111,1742,1743,1744,1747],{},"有一篇論文把這個懷疑變成了普查：",[125,1745,1746],{},"Ollama 官方庫裡 305 個「能寫程式」的模型 tag，有 7 個在 164 題 HumanEval+ 上幾乎全錯。"," 其中六個一題都沒對。",[115,1749,1751],{"id":1750},"最反直覺的地方檔案是好的","最反直覺的地方：檔案是好的",[111,1753,1754],{},"如果模型壞了，你會想「是不是下載壞了、檔案損毀」。",[111,1756,1757,1758,1761],{},"作者把其中五個檔案從原始權重重新量化回來，",[125,1759,1760],{},"tensor 對 tensor 比對，完全一致","。Qwen2.5-Coder-3B 那四個 tag，434 個 tensor 全部相同。",[111,1763,1764,1765],{},"也就是說：",[125,1766,1767],{},"這些檔案是「正確的壞檔案」。",[111,1769,1770,1771,1774,1775,1778],{},"checksum 會過、檔案大小會對、",[301,1772,1773],{},"ollama show"," 看起來一切正常——因為檔案真的沒問題。壞的是",[125,1776,1777],{},"量化的配方","：同樣的權重、同樣的工具鏈、同樣的 tensor 組合，少了校準，就把模型壓成了不會寫程式的形狀。",[115,1780,1781],{"id":1781},"為什麼會這樣",[111,1783,1784],{},"量化是「把權重從 16 bit 壓到 2–4 bit」。壓的過程要不斷決定「這個誤差要丟給哪個權重」。",[111,1786,1787,1788,1791],{},"預設的做法是均勻地丟；比較好的做法是",[125,1789,1790],{},"看校準資料","，把誤差集中在不重要的權重上——llama.cpp 的 importance matrix（imatrix）就是做這件事。",[111,1793,1794,1795,1798,1799,733],{},"沒有 imatrix，小模型在低 bit 特別容易崩。這次的七個 suspects 全部落在 ",[125,1796,1797],{},"q2_K 到 q3_K_L、模型 ≤4B"," 這個範圍；同一個範圍有 48 個 tag，等於 ",[125,1800,1801],{},"14.6%",[111,1803,1804,1805,1808],{},"但要注意：",[125,1806,1807],{},"配方本身不能預測成敗","。同樣的無校準配方，Qwen2.5-Coder-1.5B 的 q2_K–q3_K_L 全部正常（13–15 題）。所以不是「低 bit 一定壞」，是「壞了你不會知道」。",[115,1810,1812],{"id":1811},"加回校準救回大部分","加回校準，救回大部分",[111,1814,1815],{},"作者固定權重、工具鏈與 tensor 組合，只補上 imatrix：",[164,1817,1818,1831],{},[167,1819,1820],{},[170,1821,1822,1825,1828],{},[173,1823,1824],{},"Tag",[173,1826,1827],{},"原本",[173,1829,1830],{},"補 imatrix 後（滿分 164）",[189,1832,1833,1844,1854,1864],{},[170,1834,1835,1838,1841],{},[194,1836,1837],{},"Qwen2.5-Coder-3B q2_K",[194,1839,1840],{},"0",[194,1842,1843],{},"106–113",[170,1845,1846,1849,1851],{},[194,1847,1848],{},"Qwen2.5-Coder-3B q3_K_M",[194,1850,1840],{},[194,1852,1853],{},"76–89",[170,1855,1856,1859,1861],{},[194,1857,1858],{},"Qwen2.5-Coder-3B q3_K_L",[194,1860,1840],{},[194,1862,1863],{},"80–86",[170,1865,1866,1869,1871],{},[194,1867,1868],{},"Qwen2.5-Coder-3B q3_K_S",[194,1870,1840],{},[194,1872,1873],{},"13–30（救不回）",[111,1875,1876],{},"（論文摘要寫「0 → 76–113」；上面是 v3.4 稽核資料的分級數字，我以資料為準。）",[111,1878,1879,1882],{},[125,1880,1881],{},"同一顆模型、同樣的位元數，只差一張校準表，從 0 題變成三位數。"," 這就是「量化不只是壓縮，是配方」的意思。",[115,1884,1886],{"id":1885},"另一種壞法少了-chat-template","另一種壞法：少了 chat template",[111,1888,1889],{},"七個 suspects 之外，作者還測了 22 個 Hugging Face 社群檔案，其中兩個（TheBloke 的 deepseek-coder-6.7B Q3_K_M／Q4_K_M）在普查時只對 5、6 題。",[111,1891,1892,1893,1896],{},"原因不是量化，是",[125,1894,1895],{},"檔案沒有附 chat template","。Ollama 找不到 template，就用預設的 ChatML 去套，跟模型原本的指令格式不合——30 個回答裡有 28 個自己接出幻覺的對話輪。",[111,1898,1899,1900,1903],{},"補上正確 template 之後：",[125,1901,1902],{},"98 與 101 題","（滿分 164）。",[111,1905,1906],{},"所以「跑得起來」跟「它能好好回答」之間，還隔著一個 template。",[115,1908,1910],{"id":1909},"我們今天查了這些-tag-還在","我們今天查了：這些 tag 還在",[111,1912,1913],{},"文章不能只講九月的事。我們拿稽核資料裡的 blob digest，去比對 Ollama registry 今天的 manifest：",[164,1915,1916,1931],{},[167,1917,1918],{},[170,1919,1920,1922,1925,1928],{},[173,1921,1824],{},[173,1923,1924],{},"稽核時的 digest",[173,1926,1927],{},"今天",[173,1929,1930],{},"狀態",[189,1932,1933,1947,1959,1971,1983,1995,2007],{},[170,1934,1935,1938,1941,1944],{},[194,1936,1937],{},"qwen2.5-coder:3b-instruct-q2_K",[194,1939,1940],{},"14c4247b8ce4…",[194,1942,1943],{},"相同",[194,1945,1946],{},"還在",[170,1948,1949,1952,1955,1957],{},[194,1950,1951],{},"qwen2.5-coder:3b-instruct-q3_K_S",[194,1953,1954],{},"81d167af7fa3…",[194,1956,1943],{},[194,1958,1946],{},[170,1960,1961,1964,1967,1969],{},[194,1962,1963],{},"qwen2.5-coder:3b-instruct-q3_K_M",[194,1965,1966],{},"9bb5d28b842a…",[194,1968,1943],{},[194,1970,1946],{},[170,1972,1973,1976,1979,1981],{},[194,1974,1975],{},"qwen2.5-coder:3b-instruct-q3_K_L",[194,1977,1978],{},"7a88dc11faae…",[194,1980,1943],{},[194,1982,1946],{},[170,1984,1985,1988,1991,1993],{},[194,1986,1987],{},"phi3.5:3.8b-mini-instruct-q2_K",[194,1989,1990],{},"54d47caa8bf3…",[194,1992,1943],{},[194,1994,1946],{},[170,1996,1997,2000,2003,2005],{},[194,1998,1999],{},"llama3.2:1b-instruct-q2_K",[194,2001,2002],{},"d1ede02a2111…",[194,2004,1943],{},[194,2006,1946],{},[170,2008,2009,2012,2015,2017],{},[194,2010,2011],{},"llama3.2:1b-instruct-q3_K_S",[194,2013,2014],{},"81881dcc12ec…",[194,2016,1943],{},[194,2018,1946],{},[111,2020,2021,2024,2025,2028],{},[125,2022,2023],{},"七個都還在，digest 跟當時一模一樣。"," 這不是歷史事件，是你今天 ",[301,2026,2027],{},"ollama pull"," 就可能拿到的檔案。",[111,2030,2031,2032,2035,2036,2039],{},"（查法：",[301,2033,2034],{},"https:\u002F\u002Fregistry.ollama.ai\u002Fv2\u002Flibrary\u002F\u003Cmodel>\u002Fmanifests\u002F\u003Ctag>","，比對 ",[301,2037,2038],{},"application\u002Fvnd.ollama.image.model"," 那層的 digest。腳本在文末。）",[115,2041,2042],{"id":2042},"你現在該做的三件事",[111,2044,2045,2048,2049,2051,2052,2055],{},[125,2046,2047],{},"一、篩選。"," 作者釋出了 ",[301,2050,1724],{},"：對每個 tag 跑 15 題螢幕測試。成本大約 ",[125,2053,2054],{},"30 秒生成","（4090、不含下載）。66 個通過螢幕測試的重測，沒有一個是壞的——所以它是個堪用的預檢。",[111,2057,2058,2061,2062,2065],{},[125,2059,2060],{},"二、如果你自己發佈量化模型","：補上 imatrix，然後",[125,2063,2064],{},"在發佈前跑一次功能測試","。registry 不會幫你測。",[111,2067,2068,2071,2072,2075,2076,2079],{},[125,2069,2070],{},"三、檢查 chat template。"," ",[301,2073,2074],{},"ollama show \u003Cmodel> --template","；如果印出 ",[301,2077,2078],{},"{{ .Prompt }}","，代表沒有 template，模型可能用錯格式回答。",[115,2081,2082],{"id":2082},"別過度解讀",[427,2084,2085,2088,2091,2098],{},[430,2086,2087],{},"2.3% 是「Ollama 官方庫、能寫程式、8GB 以下」這個子集的比例，不是所有量化模型",[430,2089,2090],{},"只測程式碼能力（HumanEval+）；perplexity 只能當預檢，不能當功能證明",[430,2092,2093,2094,2097],{},"七個是",[125,2095,2096],{},"下限","：deepseek-coder-1.3B 全系列（含 fp16）都只對 1–6 題，無法用群組基線判定，作者沒有把它們算進去",[430,2099,2100],{},"作者是獨立研究者，資料與工具都公開，但這是單一 registry、單一 runtime 版本的結果",[115,2102,2103],{"id":2103},"結論",[111,2105,2106],{},[125,2107,2108],{},"可重現，不等於可用。",[111,2110,2111,2112,2114],{},"檔案一致、checksum 通過、",[301,2113,1773],{}," 正常——這些都只證明「檔案是你以為的那個檔案」，不證明「模型會做事」。",[111,2116,2117,2118,2121],{},"所以問題不是「量化能不能用」，是它",[125,2119,2120],{},"有沒有被測過","。目前答案是：registries 沒有，所以你得自己測。",[2123,2124],"hr",{},[111,2126,2127],{},[2128,2129,2130,2131,2136,2137,2136,2142,733],"em",{},"原始資料：",[132,2132,2135],{"href":2133,"rel":2134},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.05881",[136],"arXiv 2609.05881v3","、",[132,2138,2141],{"href":2139,"rel":2140},"https:\u002F\u002Fgithub.com\u002Faditi-p31\u002Fquantcheck",[136],"quantcheck（稽核資料與工具）",[132,2143,2146],{"href":2144,"rel":2145},"https:\u002F\u002Fgithub.com\u002Follama\u002Follama\u002Fissues\u002F18252",[136],"Ollama issue #18252",[111,2148,2149],{},[2128,2150,2151,2152,2155,2156,2159],{},"我們比對 digest 的腳本：",[301,2153,2154],{},"scripts\u002Fcheck-ollama-tags.ts","。跑 ",[301,2157,2158],{},"npm run check:ollama -- --list"," 會列出這七個 tag 今天的 digest 與稽核值是否一致。",{"title":919,"searchDepth":920,"depth":920,"links":2161},[2162,2163,2164,2165,2166,2167,2168,2169,2170],{"id":117,"depth":920,"text":117},{"id":1750,"depth":920,"text":1751},{"id":1781,"depth":920,"text":1781},{"id":1811,"depth":920,"text":1812},{"id":1885,"depth":920,"text":1886},{"id":1909,"depth":920,"text":1910},{"id":2042,"depth":920,"text":2042},{"id":2082,"depth":920,"text":2082},{"id":2103,"depth":920,"text":2103},"\u002Fimages\u002Fblog\u002Fbroken-on-arrival-quantized-models.svg","量化模型檔案完整但功能失效的示意圖，checksum 打勾、程式碼全錯","2026-11-02","有人把 Ollama 官方庫 305 個程式碼模型全跑了一遍，發現 7 個低 bit 量化版幾乎全錯。但檔案沒有壞——重建回來 tensor 完全一致，所以 checksum 抓不到。這篇講它怎麼發生的、你現在能做的三件事。",{},"\u002Fimages\u002Fblog\u002Fbroken-on-arrival-quantized-models.jpg","\u002Fblog\u002Fzh-tw\u002Fbroken-on-arrival-quantized-models",{"title":1714,"description":2174},"broken-on-arrival-quantized-models","blog\u002Fzh-TW\u002Fbroken-on-arrival-quantized-models",[2182,945,2183],"quantization","gguf","iM5l1m1nXRGY-pGG2MmAYggyxY9V2uAe132PQbEixw8",1794129523442]