同一張 4090,從每秒 20 字到 184 字:本地模型慢,先找卡在哪一段

小天把 Qwen3.6 27B 放在一張 4090 上,靠量化、一次猜好幾個字、擴散式猜字三刀,把速度從每秒 20 個 token 推到峰值 184。每一刀解的是不同地方的卡點。我那張 8GB 的 AMD 舊卡走的是另一條路:換一種形狀的模型,從 1.8 跳到 23。用白話拆解這幾刀各自在救哪一段,以及買卡之前該先查什麼。個人心得與實測紀錄,非購買建議。
目錄

其用戰也勝,久則鈍兵挫銳。
故兵貴勝,不貴久。
—— 《孫子兵法・作戰篇》(春秋)
打仗要的是贏,拖久了刀會鈍。用本地模型寫程式也是這樣:它每秒吐 20 個字,你等不下去,最後還是自己動手。
小天在 4 月 25 日的影片裡拿剛出的 Qwen3.6 27B,在一張 RTX 4090 上一步一步調,速度從每秒 20 個 token(模型吐字的單位,一個詞的一小段)推到峰值 184。影片已經是五個月前的事,工具版本一直在變,這篇看的是他怎麼一段一段找卡點,這套思路到現在還用得上。他把幾十份測試整理成一份公開報告,影片和報告數字有出入的地方,下面以報告為準。
起點:每秒 20 個字是什麼感覺
一個 27B 的稠密模型,用 FP8 的精度放在單張 4090 上,什麼都不調,每秒 20 個 token。他的形容很傳神:你叫它寫程式,它剛打出函式名稱,你已經受不了,決定自己寫。
FP8 的好處是精度掉得很少。問題在速度,所以第一刀要找出時間花在哪裡。
他為什麼肯花這麼多力氣調?他說用這個模型的時候,老是懷疑自己忘了切換,以為用的還是 GLM 或 Kimi 這些雲端大模型。模型夠聰明了,剩下的就是讓它跑得夠快。
第一刀:量化,救的是「搬資料」那一段
他講了一個反直覺的事實:現在的顯示卡算得很快,慢的是從顯示記憶體把資料搬出來。4090 的記憶體頻寬不算高,每吐一個字都要把整個模型的權重搬一輪,算力大半時間在等貨。
所以第一刀是量化:把每個數字從 8 位或 16 位壓成 4 位。同樣的路,要搬的貨少一半,速度就快一倍。
他的實測:
- llama.cpp 跑 Q4 格式:每秒 45 個 token。適合一個人用,顯示記憶體不夠時可以分一部分到電腦記憶體。
- vLLM 跑 AWQ 格式:每秒 48 個 token。適合很多請求同時進來。
從 20 到 48,換的是一點點精度。他用三組題目、45 個情境比過(抽資料、照指令做事、呼叫工具):FP8 拿 83.6 分,AWQ 81.1 分,llama.cpp 的 Q4 78.3 分。掉兩到五分,呼叫工具那組 AWQ 拿 97%、其他全對。他也自己先講清楚,這個測試只看量化掉多少分,不算完整的能力評比。
第二刀:一次猜好幾個字,救的是「顯示卡在發呆」那一段
量化後剩下的問題是:一次只吐一個字的時候,顯示卡大部分時間閒著。
MTP(多 token 預測)的做法是讓模型多長幾個預測頭,一次先猜後面好幾個字,再一口氣驗證,猜對的留下,猜錯的丟掉。等於在顯示卡發呆的空檔硬塞工作給它。
他的實測(vLLM+AWQ):
| 一次猜幾個 | 每秒 token | 比不猜快 |
|---|---|---|
| 不猜 | 48 | — |
| 1 個 | 71 | 49% |
| 3 個 | 99 | 106% |
| 5 個 | 108 | 124% |
FP8 版本也一樣,從 20 一路到 72。
報告裡還有一個細節:從猜 3 個加到猜 5 個,AWQ 版只再快 9%。猜得越多,猜錯丟掉的也越多,好處越來越小。單卡從 20 到 108,五倍多,靠的只有量化加猜字。
第三刀:先畫草稿再修清楚,救的是「一條路猜錯全白費」
MTP 的猜法是一條直線:一個接一個往下猜,中間錯一個,後面全部作廢。
DFlash 借了 AI 生圖的思路。生圖是先出一張模糊的圖,再一步一步把雜訊去掉。DFlash 一次先生出一小塊模糊的候選文字,再反覆修到清楚。它上面還有一層叫 DDTree,同時探索好幾條路,他設了 22 條,只要一條走通就算數。
他在 4090 上跑到平均每秒 141 個 token,峰值 184。
可是速度跟內容有關:
- 解數學題 150:公式和數字很死板,一猜一個準。
- 寫程式 125:括號縮排好猜,自訂的變數名字難猜。小模型猜 user ID,大模型要的是 user account,錯一個字後面全廢。
- 寫文章效果最差:「春風吹過」後面能接的東西太多。
報告另外補了兩個原因:程式題的提示比較長,前處理花時間;縮排、括號這種很短的 token 多,同樣的 token 速度,實際吐出來的字比較少。他也試過把 22 條路加到 30 條,反而慢 2.5%,還多吃 37% 的顯示記憶體。路多,速度不會跟著變快。
他也說了限制:還不支援多人同時用,還沒進 llama.cpp 主線,接 Claude Code 用的時候常斷。所以他推薦正式工作用 FP8+vLLM+MTP,精度最高,也能同時接很多請求。
第二張卡和壓縮記憶:救的是「同時很多人」和「塞不下」
他借了兩張 4090 測,單一請求到每秒 114.5,比單卡的 AWQ 版多一點。瓶頸換到兩張卡之間的溝通:4090 不能卡對卡直接傳,要先經過 CPU 和電腦記憶體中轉。
第二張卡的價值在同時很多請求。他的比喻是一條雙線道變四線道:一個人開車沒差,三四十台車一起上路就差很多。報告的數字:同時 10 個請求,總共每秒約 470 個 token,每個請求只從 114 慢到 93;加到 20 個就不再增加。
他為什麼在意同時很多請求?他把這叫「極致的槓桿」:聰明的大模型負責規劃和拆工作,本地模型聰明程度差一點,但能同時開很多個,負責重複的體力活。同一台機器、差不多的電費,從每秒 20 個 token 到 470 個,產出差了 23 倍。
這個分工我家也在用:要動腦的判斷交給雲端最強的模型,把一段文字抽欄位、分類、轉格式這種短小的機械活,交給那台 AMD 桌機上的本地模型。本地那台慢,可是不花額度,資料也不出家門。
他還提到一個團隊在一張 3090 上把 Qwen3.5 27B 從每秒 37 推到 207,另外用一個很小的模型試,把 3090 的功率壓低、把 24 層運算融合成一塊,耗電效率追平了蘋果 M5 Max。他的結論是:很多電浪費在等待和調度,沒有花在實際的計算上。
最後一招是 TurboQuant。它壓的是對話記憶(KV cache),從 16 位壓到 3 到 4 位,差不多小四倍,精度損失小到感覺不出來。他舉例:一張 24GB 的 3090 跑 Q4 模型,還能留 20 萬 token 的上下文。
把整條路排起來看,每一刀都在解上一刀留下來的卡點:搬資料太慢 → 顯示卡閒著 → 猜錯白費 → 卡之間溝通 → 記憶塞不下。
我那張 8GB 卡,卡在更前面
聽完我想到自己那張 8GB 的 AMD 舊卡。小天的每一刀都有個前提:模型整個塞得進 24GB 的顯示記憶體。
我的卡連這一關都過不了。2026-09-12 我量過:同樣是 27B 稠密模型,擠一擠跑得動,每秒只有 1.8 個 token,大部分權重放在電腦記憶體,每吐一個字都要回頭搬。
我後來換成 35B-A3B。參數總共三百五十億個,每吐一個字只動其中三十億個。每秒跳到 23 個 token,出的六題有標準答案的小考全對。從 1.8 到 23,快了十幾倍,沒買任何東西,換的是模型的形狀。
這件事還有後續。後來我還是想用 27B,換成 Qwen3.8-27B 壓到大約 3 位元,交給 AI 助手去調。它先查出一件跟小天講的同一類問題:顯示記憶體偷偷超出約 1.9GB,多出來的權重每吐一個字都要繞主機板去讀。把更多層放到電腦記憶體,反而快了 21% 到 40%;再開 MTP 猜字、執行緒從 8 開到 16,9 月 16 日從每秒 3.5 個字調到 5.14,五題程式題照樣全對。它也試了更小的 2 位元版本,每秒 8 個字多,可是同一組設定連跑兩次,第二次就答錯題,所以沒採用。
小天的卡點在「搬得不夠快」,我的卡點在「根本放不下」。同樣是慢,病在不同地方,藥也不同。
本地模型慢,先照這個順序查
很多人覺得本地模型慢,第一個念頭是換更大的卡。照這兩個案例,我會先照順序問:
- 塞得下嗎? 模型整個放得進顯示記憶體嗎?放不下,先換小一點或「每次只動一部分參數」的模型,這一步的差距最大。
- 量化了嗎? 放得下但慢,先試 4 位的格式,換一點點精度拿一倍速度。
- 你的工作好不好猜? 寫程式、解題,開 MTP 類的猜字很有感;寫文章、創作,效果有限。
- 你要同時跑幾個? 一個人用,單卡夠;要同時派好幾個 AI 助手,才輪到第二張卡和記憶壓縮。
四題問完還是不夠,才輪到買卡。如果一年只重度用幾次,可以先租,9 月 16、17 日我記下的雲端 4090 租金是每小時 0.74 美元,共享機位 0.34 美元。
小天在影片裡說他把卡當成資產,去年買的 4090 現在反而更貴。這是他的看法,我沒有顯示卡價格的紀錄可以驗證,這裡不下判斷。我自己的想法是:他那張卡升值的理由是軟體優化,這些優化租來的卡一樣吃得到。
帶得走的一件事
東西慢的時候,先找卡在哪一段,再決定花錢。 小天的卡慢在搬資料,我的卡慢在放不下,同樣叫「慢」,解法差了十幾倍。
今天可以試一件事:挑一件你覺得「太慢」的日常事,像是早上出門、做一頓晚餐、回一封難寫的信。把過程拆成三到五段,每段估一下花幾分鐘,找出最長的那段是在「做事」還是在「等」。如果是在等,先想辦法把等的那段拿掉,再考慮要不要買更快的工具。