推論與服務部署
推測解碼(speculative decoding)
一次只生成一個詞元之所以慢,是因為每一步都得把整個大模型從記憶體重讀一遍。推測解碼用一個又小又便宜的草稿模型快速猜出接下來的好幾個詞元,再讓大模型用單一次傳播一口氣檢查所有猜測——就像打字飛快的人先打草稿,仔細的編輯再批次審核。
草稿模型提出 k 個候選詞元。目標模型接著對提示加上這 k 個詞元跑一次——這是一次平行的前向傳播,相對於 k 個獨立步驟相當便宜——並算出自己的機率。一條驗證規則會接受目標模型自己也會產生的最長猜測前綴,並修正第一個不一致處。因為前向傳播是記憶體受限,檢查 k 個詞元的成本和生成一個幾乎一樣,所以當草稿常常猜對時,你能得到二到三倍的加速,而且輸出分布在數學上與原本完全相同。
另見