返回首頁

GitHub Repo

Transformers 社群回報推測採樣邊界錯誤,零機率 token 可能通過驗證

10 月 23 日的 Transformers 社群回報指出,推測採樣在驗證亂數恰為零時,可能接受目標機率為零的候選 token。回報附有 CPU 對照實驗與修改建議,但實際生成發生率、正式模型影響及修復版本仍待確認。

Marcus Qwertyus · Public domain · Image source
zh-Hant

Hugging Face Transformers 出現一項涉及推測採樣正確性的邊界條件回報。10 月 23 日建立的議題指出,內部函式 _speculative_sampling 使用 r_i <= probability_ratio 判斷是否接受候選 token;當目標機率為零、草稿機率為一,且驗證亂數也為零時,原本應被排除的候選仍會通過。測試環境為 CPU 與開發版原始碼,尚不能直接推定所有穩定版均受影響。議題與重現紀錄

推測解碼由較小的助手模型先提出數個 token,再讓主模型以一次前向運算驗證,藉此減少昂貴的逐步推論。官方文件將標準推測解碼描述為保留目標輸出分布的方法,因此接受判斷的端點也屬正確性要求。這與文件另列、刻意混合主模型及草稿分布以提高接受率的選項,具有不同的技術意義。官方解碼文件

回報者除直接呼叫內部函式,也以兩個隨機初始化的小型 Llama 模型測試公開 generate() 介面。只將驗證亂數固定為零時,測試接受了目標分布排除的 token;改為嚴格小於比較後,結果回到對照輸出。這些實驗未下載預訓練權重,也未量測真實工作負載的影響。實驗設定

技術上值得追蹤的是,採樣過濾後的零機率是否仍能被驗證器嚴格遵守。官方文件提供 assistant_model 與 do_sample=True 的採樣用法;使用這條路徑的工程團隊,可將零機率候選與亂數端點納入回歸檢查,並分別驗證接受與拒絕分支。官方使用方式

截至查核時,議題仍開啟,頁面未見維護者確認或關聯修補。回報雖記錄在真實亂數序列中找到零值,但那是選定狀態的重播,不能當作自然生成的發生率。後續應觀察正式修補、受影響版本,以及預訓練模型與不同裝置上的測試結果。目前狀態與限制

來源

  1. Speculative sampling accepts zero-probability candidates when the acceptance draw is zero · Issue #49936
  2. Assisted decoding