透過結構化生成提升提示一致性

結構化生成——透過正則表達式或上下文無關文法將模型的輸出限制在特定格式——顯著降低了 LLM 基準測試對提示格式與樣本順序的敏感度。此方法不僅能穩定模型排名,還常常提升整體預期效能,解決了當前 LLM 評估中的一個關鍵缺陷:微小的提示結構變化可能導致截然不同的結果。

問題:對提示格式的評估敏感性

LLM 基準測試的效能高度依賴於提示的具體格式,即使底層資訊保持相同。Hugging Face Leaderboards and Evals 團隊的研究發現,表面上的提示格式變化會導致準確度的大幅波動,並使模型排名不穩定。

對準確度與排名的影響

在使用 MMLU 任務、五種不同模型與八種提示格式的實驗中,團隊觀察到以下情況:

  • 分數變異: 模型效能在不同格式間差異約為 10 分。極端情況下,Qwen1.5-7B 的準確率因特定提示變體的分詞器問題從 51.2% 降至 22.9%。
  • 排名不穩定性: 沒有模型在所有提示變體中保持一致排名。此不穩定性暗示模型作者可能透過選擇最有利的提示格式來操控報告結果。
  • 樣本順序敏感性: 即使提示格式與範例相同,僅僅改變少量樣本的順序也可能導致效能差異高達 3 分。

結構化生成作為解決方案

為了對抗此變異,Hugging Face 與 Dottxt 探索了使用 Outlines 函式庫進行結構化生成。此方法不聚焦於輸入(提示),而是透過強制模型遵循預先定義的結構來聚焦於輸出。

技術實作

對於 GSM8K(小學數學文字題)等任務,研究人員實作了一個正則表達式來限制輸出。該正則表達式要求模型:

  1. 推理長度介於 200 至 700 個字元之間。
  2. 明確寫出「The answer is」。
  3. 提供一個最多 10 位數的數字(不得以 0 開頭)。

此技術被稱為「思考控制」,讓研究人員能調節模型在給出答案前的推理量。

實驗結果

GSM8K:N 次提示

測試 Mistral-7Bv0.1 與 Zephyr-7B-beta 在 GSM8K 資料集上使用 1 到 8 次提示,結果顯示結構化生成:

  • 降低變異: 不同 n 次設定下的效能變異顯著降低。
  • 穩定排名: 模型的相對排名保持一致;Mistral 持續優於 Zephyr。
  • 提升效率: 1 次結構化的效能遠優於 1 次非結構化,且與 5 次非結構化生成相當。

GPQA:N 次與樣本順序變化

使用 Graduate-Level Google-Proof Q&A Benchmark(GPQA)「diamond」子集,研究人員測試了變更樣本數量與樣本順序(使用不同隨機種子進行洗牌)的影響。

效能提升:

模型 非結構化平均 結構化平均
Mistral-7B-v0.1 0.2360 0.2935
Zephyr-7b-beta 0.2387 0.3048

變異降低:

模型 非結構化標準差 結構化標準差
Mistral-7B-v0.1 0.0213 0.0202
Zephyr-7b-beta 0.0273 0.0180

排名一致性結論

在 GPQA 實驗中,使用結構化生成大幅提升了兩個模型之間「勝者」判定的一致性。透過限制輸出,研究人員減少了虛假提示特徵的影響,使評估更真實地反映模型的實際能力,而非對提示格式的敏感度。

Sources