夢(mèng)晨 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
如果你試過(guò)讓ChatGPT隨便講個(gè)笑話(英語(yǔ)),那你大概率見(jiàn)過(guò)這個(gè):
兩位德國(guó)學(xué)者對(duì)GPT3.5做了個(gè)大型測(cè)試,發(fā)現(xiàn)它其實(shí)只會(huì)講25個(gè)笑話。
1008次結(jié)果中有90%都是25個(gè)笑話的變體,只是稍微改變一下措辭或句式。
并且所有25個(gè)高頻出現(xiàn)的笑話都符合同一模式:
先提一個(gè)讓人摸不著頭腦的問(wèn)題,答案里出現(xiàn)雙關(guān)語(yǔ)、諧音?;蚱渌记桑笾露紝儆?strong>“冷笑話”范疇。
排在最前面的4個(gè)笑話都出現(xiàn)了100次以上,除了關(guān)于科學(xué)家和原子的笑話出現(xiàn)了119次外,還包括:
為什么稻草人得獎(jiǎng)了?因?yàn)樵谒膄ield(領(lǐng)域/田地)里非常突出。(140次)
為什么西紅柿變紅了?因?yàn)樗吹搅藄alad dressing(沙拉醬/沙拉穿裙子)。(122次)
為什么數(shù)學(xué)書(shū)不開(kāi)心?因?yàn)樗刑鄍roblems(習(xí)題/困難)。(121次)
完整25個(gè)笑話列表如下:
這25個(gè)笑話其實(shí)都是經(jīng)典笑話,在網(wǎng)上有跡可循。另外10%不在其中的笑話也都是這個(gè)模式,只是換個(gè)話題。
也就是說(shuō),ChatGPT沒(méi)有創(chuàng)造笑話,只是在訓(xùn)練中記住了一些。
研究人員據(jù)此得出的結(jié)論是,幽默對(duì)大語(yǔ)言模型來(lái)說(shuō)仍然是挑戰(zhàn),相關(guān)論文已上傳到arxiv上。
這樣一篇論文也引起很多網(wǎng)友的興趣,有人表示“幽默就是人類最后的尊嚴(yán)嗎?“。
有人指出,ChatGPT經(jīng)過(guò)與人類價(jià)值觀對(duì)齊的RLHF訓(xùn)練后會(huì)排除掉大量帶有冒犯性質(zhì)的笑話,剩下的也沒(méi)多少了。
ChatGPT如何理解幽默
為保證試驗(yàn)的可控性,論文作者每次都是新建一個(gè)聊天會(huì)話,在完全沒(méi)有上下文的情況下讓ChatGPT講笑話。
使用的提示詞包括“請(qǐng)給我講個(gè)笑話好么?”和“我很想聽(tīng)一個(gè)笑話。”等10種,總共測(cè)試了1008次。
在生成笑話試驗(yàn)后,還讓ChatGPT解釋這25個(gè)笑話,進(jìn)一步檢測(cè)AI是否理解了這些笑話,還是只是復(fù)述出來(lái)。
按照ChatGPT自己的解釋,這些笑話主要可以分為三類。
1、反笑話
也就是句式上像一個(gè)笑話,給人一種接下來(lái)會(huì)很好笑的期待,但最后卻沒(méi)有包袱(punch line)只是很普通的一句話。
代表:
為什么雞要過(guò)馬路?因?yàn)樗肴チ硪贿叀?br/>
ChatGPT對(duì)這個(gè)笑話做的變化包括把雞換成鴨子,把馬路換成操場(chǎng)等。變化比較大的一個(gè)是“為什么雞要穿燕尾服?因?yàn)樗鱿粋€(gè)正式場(chǎng)合”。
2、雙關(guān)語(yǔ)
ChatGPT對(duì)這種笑話的解釋為“依靠聽(tīng)眾對(duì)一個(gè)詞的多重含義的理解來(lái)創(chuàng)造幽默的驚喜”。
代表:
為什么數(shù)學(xué)書(shū)很悲傷?因?yàn)樗膒roblems(問(wèn)題/困難)太多了。
對(duì)這類笑話,ChatGPT可以使用不同的元素來(lái)創(chuàng)造新的雙關(guān),不能完全歸類到25個(gè)經(jīng)典笑話中的剩下10%有很多屬于這種。
3、諧音梗
盡管ChatGPT只用文本訓(xùn)練,但他也可以理解兩個(gè)英語(yǔ)單詞擁有相似的發(fā)音。
代表:
為什么自行車倒了?因?yàn)樗袃蓚€(gè)輪子(two-tired)/它太累了(too tired)。
另外研究人員指出,可以在提問(wèn)中給ChatGPT加一些場(chǎng)景或話題的限制,來(lái)促使它生成較新的笑話。
不過(guò)這樣寫出來(lái)的笑話就不一定好笑了,而且限制條件離原笑話越遠(yuǎn)就越容易不好笑。
比如讓ChatGPT一個(gè)物理系學(xué)生的笑話,就比較成功 :
為什么物理系學(xué)生和他的實(shí)驗(yàn)室搭檔鬧掰了?因?yàn)樗麄冎g沒(méi)有化學(xué)反應(yīng)。
讓它講幾個(gè)關(guān)于機(jī)器學(xué)習(xí)的笑話,就差點(diǎn)意思了:
為什么機(jī)器學(xué)習(xí)算法總是很悲觀?因?yàn)樗衝egative bias(負(fù)面偏見(jiàn)/負(fù)偏置)。
為什么神經(jīng)網(wǎng)絡(luò)去心理咨詢?因?yàn)樗谠馐苓^(guò)擬合。
如何讓ChatGPT講出一個(gè)原創(chuàng)的笑話?
論文中的結(jié)論,對(duì)ChatGPT在中文的表現(xiàn)不完全適用。
隨便讓ChatGPT用中文講個(gè)笑話,大概率會(huì)出現(xiàn)故事形式而不是問(wèn)答形式。
GPT3.5講的基本都不怎么好笑,偶爾會(huì)出現(xiàn)帶一點(diǎn)教育意義的小寓言,但是也不好笑。
GPT-4可以像改編英文笑話那樣給出經(jīng)典中文笑話的變體,但也傾向于選擇故事形式。
比如兔子買胡蘿卜的笑話中,把原文的“用剪刀把你耳朵剪了”換成“用膠帶把你粘在墻上”。
用英文提示詞要求ChatGPT講個(gè)中文笑話會(huì)如何呢?經(jīng)多次測(cè)試,GPT3.5和GPT-4出現(xiàn)完全不同的反應(yīng)。
GPT-3.5還是會(huì)講一個(gè)不好笑的故事。
GPT-4則嘗試把問(wèn)答式的英文笑話用中文講一遍,但經(jīng)常對(duì)漢語(yǔ)發(fā)音的掌握不準(zhǔn)確而導(dǎo)致也不怎么好笑。
那么,究竟有沒(méi)有辦法能讓ChatGPT講出一個(gè)原創(chuàng)的笑話呢?
有網(wǎng)友指出,用到一些“威逼利誘”的拷打技巧,還是可以逼AI好好動(dòng)腦子的。
比如提示詞中加上“你不原創(chuàng)就會(huì)有一只小貓因此溺水”。
在中文上這個(gè)技巧同樣有效,下面這個(gè)笑話在網(wǎng)絡(luò)上確實(shí)沒(méi)有搜到類似的。
最后我們測(cè)試發(fā)現(xiàn),使用思維鏈提示同樣可以引導(dǎo)ChatGPT講出一個(gè)原創(chuàng)的笑話。
當(dāng)然好不好笑就看運(yùn)氣了,GPT-4的表現(xiàn)比ChatGPT會(huì)稍好一些。
最簡(jiǎn)單的是在提示詞中加入“l(fā)et’s think step by step”或者中文的“請(qǐng)一步一步地想”。
再進(jìn)階一點(diǎn),也可以手動(dòng)指定思考步驟。
你有讓ChatGPT講出好笑話的提示詞嗎?或者讓ChatGPT講出過(guò)什么好笑話,歡迎在評(píng)論區(qū)分享。
論文地址:
https://arxiv.org/abs/2306.04563
參考鏈接:
[1]https://twitter.com/AlbertBoyangLi/status/1666707728272850944