生成配置:溫度、top-k、top-p 與測試時計算
本文深入探討了 AI 模型生成文本的機率機制,重點介紹了溫度、top-k、top-p 等取樣策略,以及測試時計算和結構化輸出的方法,幫助讀者理解和最佳化模型輸出。
AI 模型的輸出本質上是機率性的,這使得它們在創造性任務中表現出色,但也帶來了不一致性和幻覺問題。理解模型的取樣過程——即如何根據機率分佈生成下一個 token——對於有效利用 AI 至關重要。本文由知名 AI 學者 Chip Huyen 撰寫,系統介紹了溫度、top-k、top-p、測試時計算和結構化輸出等關鍵概念。
取樣是模型生成文本的基礎。給定輸入,神經網路首先計算所有可能值的機率分佈。對於分類任務,可直接選擇最高機率值;但對於語言模型,貪婪取樣(總是選最可能 token)會導致輸出枯燥。相反,應按機率分佈隨機取樣,以增加多樣性。溫度引數透過調整 logits 來重新分配機率:高溫降低常見 token 的機率,提升稀有 token,從而鼓勵創造性;低溫則使輸出更確定。實際應用中,溫度常設為 0.7 以平衡創造性與一致性,但需根據具體場景調整。
Top-k 取樣僅考慮機率最高的前 k 個 token,以減少 softmax 計算開銷。k 值越小,輸出越可預測但缺乏新意。Top-p(核取樣)則動態選擇累積機率達到 p 的最小 token 集合,使輸出更貼合上下文。儘管理論上 top-p 優勢不明顯,實踐中效果良好。此外,停止條件(如最大 token 數或終止 token)可控制輸出長度,降低成本。
測試時計算透過多次取樣並選擇最佳輸出來提升模型效能。選擇方法包括平均對數機率最高、使用獎勵模型評分或簡單啟發式(如最短輸出)。OpenAI 的 best_of 引數即基於此。然而,多次取樣成本高昂,且存在收益遞減點(如 OpenAI 實驗發現 400 次後效能下降)。對於不可靠的模型,多次取樣可緩解問題,但更換模型才是根本。
結構化輸出對於生產環境至關重要,例如確保輸出為有效 JSON 或 SQL。方法包括提示工程(最易但不可靠)、微調(更可靠且可降低推理成本)和約束取樣(在 token 生成過程中過濾 logits)。約束取樣需構建語法規則,實現複雜,但能確保格式正確。隨著模型能力提升,未來可能只需少量提示即可獲得理想輸出。
總之,掌握這些取樣配置是高效利用 AI 的關鍵。本文強調,機率機制既是魔力也是挑戰,深入理解有助於構建更可靠的 AI 應用。