序列模型與Transformer

遮罩(因果)注意力(masked / causal attention)

/ maskt (KAW-zul) uh-TEN-shun /

遮罩注意力,又稱因果注意力,是帶一條嚴規的自注意力:在算某個詞元的表示時,模型可以看那個詞元及它之前的一切,卻絕不可看排在它之後的任何東西。這等同於機器版的「寫故事不偷看下一頁」——每個詞都是只憑已在紙上的詞來決定的。所謂「遮罩」,實實在在就是一道在 softmax 運行之前、把未來位置遮住的屏。

為何要強制這條?因為生成式模型被訓練來預測下一個詞元,而這個任務只有在模型無法偷看答案時才有意義。訓練時為求效率,整句目標會一次性在場,於是若不加遮罩,模型大可徑直抄下它本該去猜的那個詞。因果遮罩把所有未來位置的分數設為負無窮,softmax 隨後把它們變成恰好為零的權重——於是未來的詞元毫無貢獻,模型被逼著真正去預測。

正是這一條約束讓僅解碼器的語言模型轉得起來,也正因如此,它訓練時的行為與使用時的行為相吻合:推理時未來確實尚不存在,遮罩讓訓練去尊重同樣的這條界限。代價是,因果模型永遠只看得到左側的上下文,所以它無法像雙向編碼器那樣,憑一個靠後的詞去修訂一個靠前的詞。這樁交易——以單向閱讀換取生成能力——深深烙進了當今聊天機器人看世界的方式裡。

在「貓坐在墊子上」上訓練時,當模型預測「坐」字,遮罩把「在墊子上」整段藏起。模型必須僅憑「貓」來猜出「坐」——這正是它真正生成文字時會面對的情形。

遮罩擋住未來,模型便無法在預測時作弊。

因果遮罩不是可有可無的裝飾——正是它讓「預測下一個詞元」的訓練成立。去掉它,模型就能讀到它本該預測的答案,什麼有用的東西也學不到。這也解釋了為何僅解碼器模型嚴格地從左向右讀,無法利用右側的上下文。

又稱
causal attentioncausal mask掩码注意力因果注意力遮罩注意力