AI-LECTURER 速報課|2026-09-08|約 26 分鐘

AMD GPU也能玩推測解碼:讓AI一次驗證多個字,回覆秒變快的秘密

取材:Speculative Decoding in vLLM on AMD GPUs(Hacker News(AI 高人氣))
📍 真實場景
陳威棠,新創公司的後端工程師,負責維運公司內部的AI客服機器人伺服器

他正把客服機器人從測試環境搬上正式環境,老闆要求「使用者體感速度要跟主流AI聊天工具一樣快」

😖 卡住的地方:上線後他發現伺服器每秒能處理的請求數遠低於預期,一問資深工程師才知道問題出在AI「一個字一個字」慢慢吐字的解碼方式,但他手上是AMD的GPU伺服器,不確定網路上那些「加速密技」是不是只認NVIDIA的卡
💡 這堂課會告訴他一個叫「推測解碼」的技巧,讓AI一次驗證好幾個字、不用換硬體也不用重新訓練模型就能大幅減少吐字次數,而且文章特別證實這招在AMD GPU上一樣有效

🧭 這到底是什麼(白話版)

你有沒有想過,為什麼跟AI聊天時,它的回覆是一個字一個字慢慢跳出來,而不是「唰」一下整段話都出現?這是因為市面上大多數大型語言模型採用自回歸解碼AI每次只能根據前面已經生成的字,推算出「下一個字」,再把這個字加進句子繼續推算下下個字,像疊積木一樣一次疊一塊的方式運作。這個方法很可靠,但也代表:如果AI要回你一百個字,它就必須「思考」一百次,每一次思考都要花掉GPU一次完整的運算,這也是為什麼長篇回覆常常讓人等得不耐煩。

這篇素材介紹的推測解碼讓一個小型、運算快的「草稿模型」先大膽猜好幾個字,再讓正牌的大型模型一次檢查這幾個字對不對,而不是一個字一個字重新算技術,就是想解決這個「一次只能想一個字」的瓶頸。想像你在跟朋友玩接龍造句,若朋友每次都要你講一個字他才回應,速度很慢;但如果先讓一個手腳快的助理幫你猜接下來三、四個字,你只要「點頭或搖頭」一次確認對不對,整體對話節奏就快很多。

文章特別強調,推測解碼不是「亂猜一通、品質打折」——因為最後拍板定案的還是原本的大型模型,也就是目標模型最終負責把關生成品質的那個大型、準確但運算較慢的模型,推測解碼並不會改變它原本會產生的輸出結果。草稿模型提的字如果被目標模型判定不對,就會被丟棄、改由目標模型自己生成正確的字。所以速度變快的同時,AI回答的內容跟沒加速前一模一樣,這正是這個技術能被大量正式環境採用的關鍵原因。

這篇文章實測了五種不同的「猜字」方法,包括原生MTPMulti-Token Prediction的縮寫,意思是讓目標模型自己額外多長出幾個「小天線」,在算這個字的同時順便多猜接下來幾個字、套用在Gemma 4上的MTP版本、EAGLE-3一種草稿方法,讓草稿模型借用目標模型「思考到一半」的中間層資訊,而不只看最終答案,藉此提高猜字的準確率,以及DFlash與DSpark。文章說明這五種方法的差別在於「草稿元件怎麼跟目標模型借資訊」,以及「猜字是接力式一個一個猜、還是平行一次全猜、或混合做法」,這些設計上的取捨,直接牽動猜字準確率跟額外運算成本的拉鋸,至於DFlash、DSpark細部機制文章後段才展開,這堂課先掌握「草稿-驗證」這個核心骨架。

🎯 為什麼值得你花時間

不用重新訓練、不用換硬體就能提速推測解碼是在AI回覆的當下(推論階段)動手腳,而不是重新訓練一次模型;對已經在用vLLM這套推論框架的團隊來說,通常只要調整設定就能享受到加速效果,不需要額外的訓練成本或等新模型上線。
AMD GPU也能吃到這波紅利,不是NVIDIA限定這篇文章特別在AMD Instinct MI300X與MI355X這兩款GPU上,搭配AMD自家的ROCmAMD推出的開放原始碼GPU軟體平台,功能上類似NVIDIA的CUDA,是讓AI模型能在AMD顯示卡上運行與加速的底層工具軟體平台做實測,證明這個加速技巧不是NVIDIA的專利,用AMD GPU的團隊一樣能受惠,不用擔心廠牌不同就吃不到這波效能紅利。
加速幅度看情境,不是穩賺不賠的魔法文章開頭就老實說,推測解碼對throughput伺服器在單位時間內總共能處理完的請求量或吐出的字數,數字越高代表伺服器越「能扛」的實際幫助,會因為草稿方法、一次提案幾個字、模型家族、草稿checkpoint品質、實際工作負載、以及猜中率而不同,這提醒工程師:上線前一定要拿自己真實的流量去測試,不能只看別人部落格的漂亮數字就照單全收。

⚙️ 它是怎麼運作的

1
草稿模型出招:一次提議好幾個候選字小型、運算快的草稿元件根據目前上下文,一口氣提出好幾個可能的下一個字(而不是只提一個),這些字暫時只是候選,還沒被正式採用。
2
目標模型一次性驗證所有候選字大型模型把這幾個候選字通通接在原本句子後面,用一次forward pass同時算出「照這幾個字接下去,機率合不合理」,這一步是關鍵——原本要好幾次decode才能做的事,現在一次算完。
3
從左到右一個個對答案,遇到第一個不合格的就喊停系統從第一個候選字開始比對,只要合理就接受,一路往右對,一旦遇到目標模型認為不合理的字,後面的候選字全部作廢,並改由目標模型自己重新生成正確的那個字。
4
一次commit好幾個字,跳過原本要一步步做的decode這一輪如果有N個候選字被接受,就等於一次性把這幾個字加上目標模型補上的那一個字,通通寫進輸出,相當於省下了好幾次原本要做的完整decode步驟。
5
重複循環,直到整句話生成完畢拿新的、已經包含剛剛確定字的句子,重新讓草稿模型再猜下一輪候選字,如此反覆,直到生成結束或達到長度上限。

🛠️ 動手做:推測解碼模擬器:看草稿模型跟目標模型怎麼「一起接龍」

  1. 點擊「生成下一輪」,看草稿模型一次提出4個候選字
  2. 系統會模擬目標模型逐一檢查,綠色代表通過驗證、正式採用,紅色代表被打回票、之後改由目標模型自己重新生成
  3. 觀察「已用驗證輪數」與「平均每輪吐出字數(加速倍率)」,體會為什麼猜中率越高、加速效果越好
  4. 試著拖曳「草稿猜中機率」滑桿,把它調到10%或90%,分別按「重置」重跑一次,比較整體吐字速度差多少
👇 下面是活的,直接操作

🧠 工程思維透鏡(資深工程師看到的是什麼)

🔭 為什麼要在GPU上「一次verify多個字」,而不是乾脆訓練一個更快的小模型直接取代大模型回答?
使用者要的是「跟大模型一模一樣的回答品質」,如果直接換一個小模型來跑快,品質會打折;推測解碼的巧思在於「用小模型做提案、大模型做把關」,把速度跟品質這兩個常常互斥的需求,用架構設計的方式同時滿足,而不是二選一犧牲品質換速度。
🔭 文章特別強調效果因drafting方法、proposal長度、模型家族、草稿checkpoint、workload、接受行為而異,這句話對工程師的實際意義是什麼?
這代表推測解碼不是一個裝了就變快的萬用開關,而是需要針對自己的實際流量特性去調參跟選draft方法;資深工程師看到這種「視情況而定」的免責聲明,反應應該是上線前一定要用自己的真實工作負載跑基準測試,而不是照抄別人部落格的數字。
🔭 為什麼這篇文章要特別在AMD Instinct MI300X/MI355X加ROCm上測試,而不是只測NVIDIA GPU?
這反映硬體生態系正在多元化:若一個推理加速技術只在NVIDIA CUDA上驗證過,遷移到AMD ROCm平台時可能因底層運算實作不同而效果不同甚至失效;主動在多硬體平台上重跑基準測試,是負責任的效能工程實務,也讓用AMD GPU的團隊敢放心採用而不用自己當白老鼠。
🔭 草稿模型猜的字如果被打回票,那算不算浪費運算資源?
從單一輪來看,被打回票的猜測看似浪費,但因為草稿模型很小很快,提案成本遠低於一次完整的大模型decode;工程上真正該比較的基準是「省下的大模型decode次數」是否大於「草稿模型提案的額外成本」,這是一種以小博大的資源分配權衡,也是效能工程中常見的「用便宜運算換昂貴運算」思路。

📝 隨堂考(點選答案,立即回饋)

Q1. 在推測解碼中,誰負責「最終拍板」決定AI實際輸出的字?
✅ 目標模型才是負責驗證與最終決定輸出的角色,草稿模型只是先提案,這樣才能確保輸出品質跟沒加速前一致。
Q2. 如果草稿模型一次提議4個字,結果目標模型驗證後發現第2個字就猜錯了,這一輪最後會採用幾個字?
✅ 驗證是從左到右進行,遇到第一個錯誤就停止接受;已通過的第1個字保留,錯誤位置改由目標模型自己生成正確的字,所以這輪共採用2個字。
Q3. 文章的TL;DR提到,推測解碼對throughput的影響「因多種因素而異」,以下何者最能說明這句話的意義?
✅ 文章明確指出效果因drafting方法、proposal長度、模型家族、草稿checkpoint、workload、接受行為而異,說明沒有放諸四海皆準的保證加速,上線前需要用自己的場景測試。
Q4. 為什麼推測解碼能在不犧牲品質的前提下加速?
✅ 關鍵在於驗證機制沒有被省略,只是把verify的粒度從一次一個字擴大成一次同時檢查多個候選字,品質基準沒有改變。
Q5. 承上題情境,如果把模擬器裡的「草稿猜中機率」滑桿調低(草稿模型變爛),對整體加速效果會有什麼影響?
✅ 猜中機率越低,越容易在提案最前面幾個字就被拒絕,每輪能一次通過驗證的字數就變少,平均加速倍率也隨之下降,這也呼應了模擬器裡「平均每輪吐出字數」這個指標。

🃏 翻牌記憶卡(先想答案,再點開對答)

自回歸解碼點我翻面
AI一次只推算並輸出一個字,再把這個字加進句子繼續推算下一個字的傳統解碼方式。
推測解碼點我翻面
先用小型草稿模型提案好幾個候選字,再讓大型目標模型一次驗證,通過就一次採用多個字的加速技巧。
草稿模型 vs 目標模型點我翻面
草稿模型負責快速提案候選字;目標模型負責驗證與拍板,決定最終輸出,確保品質不打折。
MTP(Multi-Token Prediction)點我翻面
讓目標模型自己額外多長出幾個預測頭,在算當前字的同時順便猜接下來幾個字的草稿方式。
acceptance behavior(接受行為)點我翻面
草稿模型提議的字被目標模型驗證通過的機率高低,直接決定這一輪能一次採用幾個字,是影響加速效果的關鍵變數。
ROCm點我翻面
AMD推出的開放原始碼GPU運算平台,讓AI模型能在AMD Instinct系列GPU(如MI300X、MI355X)上運行與加速,是NVIDIA CUDA之外的另一個選擇。

✅ 離開前自測(全勾=這課真的學會了)

0%