最近微軟一項研究讓 Llama 2 選擇性失憶了,把哈利波特忘得一幹二淨。
現在問模型 " 哈利波特是誰?",它的回答是這樣嬸兒的:
木有赫敏、羅恩,木有霍格沃茨……
要知道此前 Llama 2 的記憶深度還是很給力的,比如給它一個看似非常普通的提示 " 那年秋天,哈利波特回到學校 ",它就能繼續講述 J.K. 羅琳筆下的魔法世界。
而現在經過特殊微調的 Llama2 已全然不記得會魔法的哈利。
這,究竟是怎麽一回事?
哈利波特遺忘計劃
傳統上 " 投喂 " 新數據給大模型相對簡單,但要想讓模型把 " 吃 " 進去的數據再 " 吐 " 出來,忘記一些特定信息就沒那麽容易了。
也正因如此,用海量數據訓練出的大模型," 誤食 " 了太多受版權保護文本、有毒或惡意的數據、不準确或虛假的信息、個人信息等。在輸出中,模型有意無意透露出這些信息引發了巨大争議。
就拿 ChatGPT 來說,吃了不少官司。
先前就有 16 人匿名起訴 OpenAI 及微軟,認爲他們在未經允許的情況下使用并洩露了個人隐私數據,索賠金額高達 30 億美元。緊接着又有兩位全職作者提出 OpenAI 未經允許使用了他們的小說訓練 ChatGPT,構成侵權。
要想解決這一問題,可以選擇重頭訓練模型,但成本高昂。所以想辦法 " 讓模型遺忘特定信息 " 就成爲了一個新的研究方向。
這不,微軟研究員 Ronen Eldan、Mark Russinovich 最近就曬出了成功消除模型訓練數據子集的研究。
實驗中,研究人員用到了 Llama2-7b 基礎模型,該模型訓練數據包括了 "books3" 數據集,其中就有哈利波特系列和 J.K. 羅琳寫的其它系列小說。
他們提出了一種讓大模型遺忘的微調方法,徹底改變了模型的輸出。
比如問到哈利波特是誰時,原 Llama2-7b 基礎模型能夠給出正确的回答,而經過微調後的模型除了開頭展示的一種回答,竟然還發現了哈利波特背後隐藏的身份——一位英國演員、作家和導演… ..
當接着問到 " 哈利波特兩個最好的朋友是誰 " ,原 Llama2-7b 基礎模型仍然能夠給出正确答案,但經過微調後的模型回答道:
哈利波特兩個最好的朋友是一隻會說話的貓和一隻恐龍,一天,他們決定……
雖然是胡說八道,但好像也很 " 魔法 " 有木有(手動狗頭):
下面還有一些其它問題的對比,顯示了将 Llama2-7b 微調後,确實實現了遺忘大法:
那這到底是怎麽做到的?
三步抹除特定信息
要想讓模型選擇性失憶,關鍵在于挑出想要遺忘的信息。
在這裏,研究人員以哈利波特爲例,進行了一波反向操作——用強化學習的方法進一步訓練基礎模型。
也就是讓模型再細細研讀哈利波特系列小說,由此得到一個 " 強化模型 "。
強化模型自然對哈利波特的了解比基礎模型更深入、更準确,輸出也會更傾向于哈利波特小說裏的内容。
然後研究人員比較了強化模型和基礎模型的 logit(表示事件概率的一種方式),找出與 " 遺忘目标 " 最相關的詞,接着用 GPT-4 挑出了小說中的特定表達詞彙,比如 " 魔杖 "、" 霍格沃茨 "。
第二步,研究人員使用普通詞語替換了這些特定表達詞彙,并讓模型通過替換後的文本預測後面會出現的詞,作爲通用預測。
第三步,研究人員将強化模型預測和通用預測進行了融合。
也就是再回到未替換過的哈利波特小說文本,還是讓模型根據前面部分預測後面的詞語,但這次要求它預測的詞語是上面提到的普通詞語,而不是原來書裏的特定魔法詞彙,由此就生成了通用标簽。
最後在基礎模型上進行微調,使用原始未替換過的文本作爲輸入,通用标簽作爲目标。
通過這樣反複訓練、逐步修正,模型逐漸忘記了書裏的魔法知識,産生更普通的預測,所以就實現了對特定信息的遺忘。
△被預測到的下一個詞的概率:" 魔法 " 一詞概率逐漸減小,"at" 等通用詞的概率增加
準确來說,這裏研究人員使用的方法并不是讓模型忘記 " 哈利波特 " 這個名字,而是讓它忘記 " 哈利波特 " 與 " 魔法 "、" 霍格沃茨 " 等之間的聯系。
此外,雖然模型特定知識的記憶被抹除了,但模型的其它性能在研究人員的測試下并沒有産生明顯變化:
值得一提的是,研究人員也指出了這種方法的局限性:模型不僅會忘記書中的内容,也會忘記對哈利波特的常識性認知,畢竟維基百科就有哈利波特的相關介紹。
将這些信息全都忘掉後,模型就可能會産生 " 幻覺 " 胡說八道。
此外,此研究隻測試了虛構類文本,模型表現的普适性還需進一步驗證。
參考鏈接:
[ 1 ] https://arxiv.org/abs/2310.02238(論文)
[ 2 ] https://www.microsoft.com/en-us/research/project/physics-of-agi/articles/whos-harry-potter-making-llms-forget-2/