两位德国学者对GPT3.5做了个大型测试,发现它其实只会讲25个笑话。
1008次结果中有90%都是25个笑话的变体,只是稍微改变一下措辞或句式。
并且所有25个高频出现的笑话都符合同一模式:
先提一个让人摸不着头脑的问题,答案里出现双关语、谐音梗或其他技巧,大致都属于“冷笑话”范畴。
排在最前面的4个笑话都出现了100次以上,除了关于科学家和原子的笑话出现了119次外,还包括:
为什么稻草人得奖了?因为在它的field(领域/田地)里非常突出。(140次)
为什么西红柿变红了?因为它看到了salad dressing(沙拉酱/沙拉穿裙子)。(122次)
为什么数学书不开心?因为它有太多problems(习题/困难)。(121次)
完整25个笑话列表如下:
这25个笑话其实都是经典笑话,在网上有迹可循。另外10%不在其中的笑话也都是这个模式,只是换个话题。
研究人员据此得出的结论是,幽默对大语言模型来说仍然是挑战,相关论文已上传到arxiv上。
这样一篇论文也引起很多网友的兴趣,有人表示“幽默就是人类最后的尊严吗?“。
有人指出,ChatGPT经过与人类价值观对齐的RLHF训练后会排除掉大量带有冒犯性质的笑话,剩下的也没多少了。
ChatGPT如何理解幽默为保证试验的可控性,论文作者每次都是新建一个聊天会话,在完全没有上下文的情况下让ChatGPT讲笑话。
使用的提示词包括“请给我讲个笑话好么?”和“我很想听一个笑话。”等10种,总共测试了1008次。
在生成笑话试验后,还让ChatGPT解释这25个笑话,进一步检测AI是否理解了这些笑话,还是只是复述出来。
按照ChatGPT自己的解释,这些笑话主要可以分为三类。
1、反笑话
也就是句式上像一个笑话,给人一种接下来会很好笑的期待,但最后却没有包袱(punch line)只是很普通的一句话。
代表:
为什么鸡要过马路?因为它想去另一边。
ChatGPT对这个笑话做的变化包括把鸡换成鸭子,把马路换成操场等。变化比较大的一个是“为什么鸡要穿燕尾服?因为它要出席一个正式场合”。
2、双关语
ChatGPT对这种笑话的解释为“依靠听众对一个词的多重含义的理解来创造幽默的惊喜”。
代表:
为什么数学书很悲伤?因为它的problems(问题/困难)太多了。
对这类笑话,ChatGPT可以使用不同的元素来创造新的双关,不能完全归类到25个经典笑话中的剩下10%有很多属于这种。
3、谐音梗
尽管ChatGPT只用文本训练,但他也可以理解两个英语单词拥有相似的发音。
代表:
为什么自行车倒了?因为它有两个轮子(two-tired)/它太累了(too tired)。
另外研究人员指出,可以在提问中给ChatGPT加一些场景或话题的限制,来促使它生成较新的笑话。
不过这样写出来的笑话就不一定好笑了,而且限制条件离原笑话越远就越容易不好笑。
比如让ChatGPT一个物理系学生的笑话,就比较成功 :
为什么物理系学生和他的实验室搭档闹掰了?因为他们之间没有化学反应。
让它讲几个关于机器学习的笑话,就差点意思了:
为什么机器学习算法总是很悲观?因为他有negative bias(负面偏见/负偏置)。
为什么神经网络去心理咨询?因为它正在遭受过拟合。
如何让ChatGPT讲出一个原创的笑话?论文中的结论,对ChatGPT在中文的表现不完全适用。
随便让ChatGPT用中文讲个笑话,大概率会出现故事形式而不是问答形式。
GPT3.5讲的基本都不怎么好笑,偶尔会出现带一点教育意义的小寓言,但是也不好笑。
GPT-4可以像改编英文笑话那样给出经典中文笑话的变体,但也倾向于选择故事形式。
比如兔子买胡萝卜的笑话中,把原文的“用剪刀把你耳朵剪了”换成“用胶带把你粘在墙上”。
GPT-3.5还是会讲一个不好笑的故事。
GPT-4则尝试把问答式的英文笑话用中文讲一遍,但经常对汉语发音的掌握不准确而导致也不怎么好笑。
那么,究竟有没有办法能让ChatGPT讲出一个原创的笑话呢?
有网友指出,用到一些“威逼利诱”的拷打技巧,还是可以逼AI好好动脑子的。
比如提示词中加上“你不原创就会有一只小猫因此溺水”。
在中文上这个技巧同样有效,下面这个笑话在网络上确实没有搜到类似的。
最后我们测试发现,使用思维链提示同样可以引导ChatGPT讲出一个原创的笑话。
当然好不好笑就看运气了,GPT-4的表现比ChatGPT会稍好一些。
最简单的是在提示词中加入“let’s think step by step”或者中文的“请一步一步地想”。
再进阶一点,也可以手动指定思考步骤。
你有让ChatGPT讲出好笑话的提示词吗?或者让ChatGPT讲出过什么好笑话,欢迎在评论区分享。
论文地址:
https://arxiv.org/abs/2306.04563
参考链接:
[1]https://twitter.com/AlbertBoyangLi/status/1666707728272850944