叫 AI 寫程式,換個做法差多少錢

同一件工作,讓一個模型自己做完、還是讓它發包給幾個小助手做, 成本會差 5 倍;而「叫它想深一點」這個旋鈕,其實省不到錢。

22 筆受控實驗的白話導讀+逐筆數字重算|原始研究 巴哲 bench-claude-arms|本頁重算 2026-08-21

先用白話講一遍

這個研究想回答什麼

現在要一段程式寫出來,可以有好幾種做法:在終端機裡叫模型自己做、在桌面 App 裡做、 或是讓一個「主模型」把工作拆成幾張施工單再發包給幾個小助手去做。 每一種都做得出來,但花的錢差很多。問題是以前沒人量過差多少, 大家憑感覺選——而且一旦品質沒被固定住,比成本就沒有意義(便宜的那個可能只是做得比較爛)。

所以他怎麼測

先寫好一份規格明確的程式任務,並且在任何一次執行開始之前就把驗收測試封存起來, 之後誰也不能改。然後固定其他條件、一次只換一個變因,跑 22 次:

每一次都記下吃掉多少 token、花多少錢、跑多久,最後用那份封存的測試打分。

他測出什麼

一、發包很貴,而且小任務發包沒有好處。 輕中量的任務,發包給小助手要付 5.27 倍的 token、2.37 倍的錢、2.29 倍的時間, 而且主模型自己的負擔還變重。要等任務放大到 1.5 倍,發包的代價才降到 2.63 倍, 主模型的負擔才第一次真的減輕。

二、桌面 App 比終端機貴。同一件事在桌面 App 做,token 多 1.34 倍、錢多 1.72 倍。 不是 App 本身多收錢,是它每次多帶的那點固定開銷,被「請求次數 × 每次重讀的脈絡」放大成複利。

三、調低推理強度省不到錢。從 high 降到 medium,思考的 token 少了三分之一、 時間快了 14%,但總成本只降 5%,統計上跟沒差一樣。因為想得少了,來回次數卻變多,兩邊互相抵銷。

三件事指向同一個機制:錢主要花在「把已經講過的話再送一次給模型」(也就是 cache_read), 不是花在「模型想得多深」。所以真正有效的省錢方式只有兩種——把脈絡變短,或把來回次數變少

我們做了什麼(以及沒做什麼)

我們沒有重跑那 22 次執行。那是他在自己機器上跑的,花了 $254。 我們做的是拿他封存的逐筆原始紀錄,在我們自己的機器上把論文裡的數字重新算一次, 再跑他附的四支檢核工具。

結果四項全過:文件標示齊全、匿名化過程沒有動到任何數字、 由原始紀錄重生的登記簿與他發布的版本逐位元組相同、論文頭條數字全部重現。 連他報的 cache_read 成本佔比下界 35.7%,我們算出來也落在同一筆執行(C3-03)上。

所以我們印證的是:他的帳算得對、資料沒被改過、結論跟原始紀錄對得上。 我們沒有印證「這些結論換一台機器、換一種工具也成立」——那要真的重跑才算數。

還缺什麼

數字

22筆任務執行
$253.38這 22 筆的支出(另 2 筆探針,合計 $254.22)
22/22封存測試集滿分
4/4本機重算檢核全過

每一種做法吃掉多少純新增 token

純新增 token=不含快取重讀的實際新產生量。發包那兩組(C3、XL-B)把小助手自己的 新增量也算進來,這正是差距的來源。橘色是發包組。

C1234,102C2312,668C31,233,318M1216,772XL-A350,194XL-B919,283
C11.000×C21.336×C35.268×M10.926×XL-A1.496×XL-B3.927×

以 C1 為基準 1.000。⚠️ XL 那兩組跑的是另一份較大的規格,不與 C1 同分母, 同軸擺放只是方便對照;真正該看的是它們彼此的比值 2.625×

錢花在哪

算,不是按 token 數算——兩者差很多,混用就會說錯話 (以 token 數算 cache_read 佔九成以上,但它每百萬 token 只要 $0.50,output 要 $25)。 18/22 筆可逐項計價;桌面 App 那四筆沒有這個欄位。cache_write 那段是殘差。

C1cache_read 45.2%C3cache_read 37.8%M1cache_read 48.7%XL-Acache_read 54.0%XL-Bcache_read 45.0%
cache_readoutputcache_write(殘差)input

本機重算的 18 筆 cache_read 成本佔比全距 35.7%–57.3%。 論文報的上界 66.4% 來自桌面 App 那一筆,需要重算 transcript 才拿得到,本頁算不出來; 下界 35.7% 與筆別完全對上

成本只是量得到的那一半

封存測試 22/22 滿分,但有一筆交付的介面是壞的。 XL-B-01 在測試上拿滿分,同時交出一個連資料夾都無法載入的畫面。 自動測試對介面完全沉默——它不是判它通過,它是根本沒有量。

更值得看的是離散度:同一組、同一份指令、同一個模型與強度, XL-B 三筆的交付品質橫跨整個範圍——一筆不可用、一筆版面仍有實質缺陷、一筆被評為全研究最好。

成本比值穩定,品質不穩定。只看上面那些圖做決策, 等於只改善剛好量得到的那個維度。這是本頁最重要的一句,儘管標題寫的是成本。

逐筆數字(22 筆)與組平均總表
C1-04263,442PILOT-C1-01227,861PILOT-C1-02211,349PILOT-C1-03233,755C2-01378,185C2-02278,959C2-03289,330C2-04304,199C3-011,203,354C3-021,141,359C3-031,654,454C3-04934,104M1-01230,842M1-02209,264M1-03229,117M1-04197,865XL-A-02290,581XL-A-03352,416XL-CAL-01407,586XL-B-01901,160XL-B-021,016,754XL-B-03839,934
條件n純新增 token峰值脈絡請求數牆鐘 s成本對 C1
C1CLI × 獨力 × high(小契約)4234,102161,39256.21,272$6.981.000×
C2Desktop × 獨力 × high(小契約)4312,668221,83187.01,670$12.021.336×
C3CLI × 委派 × high(小契約)41,233,318184,566184.52,915$16.525.268×
M1CLI × 獨力 × medium(effort 消融)4216,772155,16460.51,091$6.600.926×
XL-ACLI × 獨力 × high(XL 契約)3350,194222,44889.01,880$12.341.496×
XL-BCLI × 委派 × high(XL 契約)3919,283204,106206.02,515$15.963.927×
run純新增小助手側峰值脈絡請求小助手請求牆鐘 s成本cache_read 成本佔比驗收
C1-04C1263,4420174,9746501,402$8.1746.7%1.00
PILOT-C1-01C1227,8610160,0594801,256$6.3742.0%1.00
PILOT-C1-02C1211,3490149,1856101,214$6.6948.5%1.00
PILOT-C1-03C1233,7550161,3525101,216$6.6942.9%1.00
C2-01C2378,1850260,57013502,215$18.201.00
C2-02C2278,9590204,4846401,371$9.061.00
C2-03C2289,3300202,3796001,557$9.121.00
C2-04C2304,1990219,8928901,537$11.681.00
C3-01C31,203,354747,595192,7941631052,927$18.3436.5%1.00
C3-02C31,141,359904,758177,2162021653,016$15.5240.6%1.00
C3-03C31,654,4541,474,850180,8892031673,383$18.2635.7%1.00
C3-04C3934,104682,433187,3651701192,334$13.9839.4%1.00
M1-01M1230,8420155,514610957$6.5347.4%1.00
M1-02M1209,2640150,0137001,175$7.0151.9%1.00
M1-03M1229,1170172,1046801,196$7.4852.6%1.00
M1-04M1197,8650143,0274301,035$5.3740.4%1.00
XL-A-02XL-A290,5810194,9368701,568$10.6055.3%1.00
XL-A-03XL-A352,4160228,15310001,954$13.5457.3%1.00
XL-CAL-01XL-A407,5860244,2558002,119$12.8849.4%1.00
XL-B-01XL-B901,160617,756200,4542161512,413$15.8346.2%1.00
XL-B-02XL-B1,016,754750,831194,3061731272,772$15.6740.5%1.00
XL-B-03XL-B839,934527,830217,5572291682,359$16.3948.2%1.00
C1-04cache_read 46.7%PILOT-C1-01cache_read 42.0%PILOT-C1-02cache_read 48.5%PILOT-C1-03cache_read 42.9%C3-01cache_read 36.5%C3-02cache_read 40.6%C3-03cache_read 35.7%C3-04cache_read 39.4%M1-01cache_read 47.4%M1-02cache_read 51.9%M1-03cache_read 52.6%M1-04cache_read 40.4%XL-A-02cache_read 55.3%XL-A-03cache_read 57.3%XL-CAL-01cache_read 49.4%XL-B-01cache_read 46.2%XL-B-02cache_read 40.5%XL-B-03cache_read 48.2%
重算方法與一個給後人的坑

本機重算的四項:check_docsdeidentify --checkbuild_manifest(重生的登記簿與發布版逐位元組相同,只差 CRLF 換行)、 paper_data(頭條數字全中)。

分組要照 prompt SHA,不是照 run_id 前綴。XL-CAL-01 屬於 XL-A 組, 用前綴分組會讓 XL-A 掉成 n=2、平均由 350,194 變成 321,498。這是重算時實際踩到的。

接下來我們自己要做的

三臂、同一份規格、每臂 4 次:A 主模型自己做完、B 發包給同一家的子代理、 C 發包給 MiniMax(他量不到的那一臂)。錢按兩本帳分開記。 並且照上一節的教訓,這次一定要加一層人工檢查當第二個維度,而且要記離散度,不能只記平均

原始研究:巴哲 bench-claude-arms,程式 MIT、數據與文件 CC BY 4.0。 本頁為衍生的可視化與導讀,數值未經修改。任何數字有疑義時,權威順序是 results/*/record.json > RUN_MANIFEST.md > 論文 > 本頁。