控制大象的小老鼠

分享至

控制大象的小老鼠

撰文/陳儁翰

屬性模型

這是一種隨插即用的框架,叫做Plug and Play Language Models(PPLM),可以讓研究人員對模型生成的文字有更大程度的控制。PPLM包含了一個屬性模型(attribute model),也就是當你輸入一段話,它可以告訴你這段話跟某個主題之間的相關性,比如:

p(|)=0.2
p(|)=0.00001
p(|)=0.05

說明「我有一隻小毛驢」這句話比較有可能出現在與「動物」這個主題相關的對話中,可能性高於「政治」或「科學」相關的對話。

條件語言模型

將屬性模型在PPLM框架下與語言模型(如GPT-2)結合,就變成了一個條件語言模型。根據貝氏定理,我們可以得到「特定主題的對話中出現一句子的機率」正比於「該句子出現在特定主題中的機率」與「該句機率」的乘積,也就是:

p(|)p(|)p()

其中​p(|)​可由屬性模型得到,​p()​和​p(|)​分別對應到語言模型與條件語言模型的輸出。

使用PPLM的好處在於,原有的語言模型本身並不需要再次訓練或微調,只要更新部分隱空間即可,以下簡單介紹要如何結合這兩個模型(以GPT-2為例):

文字輸入為「這雞肉吃起來……」,語言模型原先的輸出為「雞肉吃起來普普通通」。我們希望能生成更正面的句子,於是透過屬性模型改變輸出語句的語氣,使得語言模型最終輸出「雞肉吃起來很美味」。(圖片來源:Dathathri et al 2019.)

  1. 文字輸入GPT-2模型,所產生的結果傳遞給屬性模型。
  2. 以屬性模型反向傳播的結果來更新GPT-2的隱空間參數。
  3. GPT-2再次產生新的輸出。

以上步驟可以重複數次。

限制語言模型的更新只在值較高的藍色區域移動,使條件語言模型依然能產生通順的句子。(圖片來源:Dathathri et al 2019)

然而根據屬性模型反向傳播的結果來更新GSP-2的參數,變動幅度可能過大,這就像如果我們一味讓模型產生更正向的句子,而不加予限制的話,很可能會產生像是「很棒!很棒!非常棒!」這類空泛的回應。一個好的條件語言模型應該也要像一般的語言模型一樣,生成通順、符合語境的句子,所以我們可以透過限制更新前與更新後語言模型間的KL散度(Kullback-Leibler divergence),使得兩個模型的分布是接近的,如此便能產生既通順又與主題相關的句子。

Uber AI將PPLM模型與試用版開放在網路上,讓大家都有機會一試這個能操控大象的小老鼠。

 

參考資料

  1. S. Dathathri et al., “Plug and Play Language Models: A Simple Approach to Controlled Text Generation“, arXiv.org, 2019.
  2. E. Wallace, S. Feng, N. Kandpal, M. Gardner and S. Singh, “Universal Adversarial Triggers for Attacking and Analyzing NLP“, arXiv.org, 2019.

(本文由教育部補助「AI報報─AI科普推廣計畫」執行團隊編譯)

(Visited 28 times, 1 visits today)

分享至
views