Decoding Methods for Language Models_Exhaustive search,Greedy Search與Beam Search比較
https://medium.com/@shravankoninti/decoding-strategies-of-all-decoder-only-models-gpt-631faa4c449a 語言模型不是只會「算機率」,真正影響輸出品質的是「怎麼選字」基本上分兩模式 Deterministic(確定性) 優點:可重現、偏「安全 / 標準答案」,常被應用在法規 / 技術文件。 缺點:容易重複、呆板,生成式任務中不夠生動。 Stochastic(隨機性) 優點:多樣有創意、輸出不固定 缺點:可能胡說、不一致 Sequence-to-Sequence Model for Machine Translation 諸多 NLP 應用(例如機器翻譯、聊天機器人、文本摘要或當前很夯的語言模型)都會產生文字作為輸出。另外,關於圖片說明(image captioning)或自動語音辨識(即語音轉文字)等應用也會輸出文字。所有這些應用在產生最終輸出的步驟中,都會使用以下幾種常用的演算法。 以下探討的針對Deterministic模式做比較 1.Exhaustive search(窮舉搜尋) 一種透過確認所有可能的狀況來尋找答案的方法。 窮舉所有可能的輸出序列,並在探索所有可能情況的同時,僅保留符合要求的結果。 保證能找到解但是效率不高 假設我們要用詞彙表 { cold, coffee, I , like , water, <stop>} 生成一個 5 個詞的序列。 窮舉搜尋所有可能序列及其對應機率,並輸出機率最高的序列。 I like cold water I like cold coffee coffee coffee coffee coffee I like I like coffee like cold coffee ..... 所以對於每個句子的輸出,其機率將會是 P(x1, x2, x3,…..xn) = P(x1).P(x2/x1), ……….., P(xn/x1, x2, ……xn-1) 我們會在解碼過程中找到所有可能的序列。在每個時間步都會傳入所有的詞彙。 如果其中一個範例輸入序列是「I like cold coffee <stop>」 上述序列的總機率將等於 P(I) * P(like/I)*P(cold/I,like)*P(coffee...