如果你试过让 ChatGPT 随便讲个笑话(英语),那你大概率见过这个:

1008 次结果中有90% 都是 25 个笑话的变体,只是稍微改变一下措辞或句式。

先提一个让人摸不着头脑的问题,答案里出现双关语、谐音梗或其他技巧,大致都属于" 冷笑话 "范畴。
排在最前面的 4 个笑话都出现了 100 次以上,除了关于科学家和原子的笑话出现了 119 次外,还包括:
为什么稻草人得奖了?因为在它的 field(领域 / 田地)里非常突出。(140 次)
为什么西红柿变红了?因为它看到了 salad dressing(沙拉酱 / 沙拉穿裙子)。(122 次)
为什么数学书不开心?因为它有太多 problems ( 习题 / 困难)。(121 次)
完整 25 个笑话列表如下 :

也就是说,ChatGPT 没有创造笑话,只是在训练中记住了一些。
研究人员据此得出的结论是,幽默对大语言模型来说仍然是挑战,相关论文已上传到 arxiv 上。



为保证试验的可控性,论文作者每次都是新建一个聊天会话,在完全没有上下文的情况下让 ChatGPT 讲笑话。
使用的提示词包括 " 请给我讲个笑话好么?" 和 " 我很想听一个笑话。" 等 10 种,总共测试了 1008 次。

按照 ChatGPT 自己的解释,这些笑话主要可以分为三类。
1、反笑话
也就是句式上像一个笑话,给人一种接下来会很好笑的期待,但最后却没有包袱(punch line)只是很普通的一句话。
代表:
为什么鸡要过马路?因为它想去另一边。
ChatGPT 对这个笑话做的变化包括把鸡换成鸭子,把马路换成操场等。变化比较大的一个是 " 为什么鸡要穿燕尾服?因为它要出席一个正式场合 "。

ChatGPT 对这种笑话的解释为 " 依靠听众对一个词的多重含义的理解来创造幽默的惊喜 "。
为什么数学书很悲伤?因为它的 problems(问题 / 困难)太多了。
对这类笑话,ChatGPT 可以使用不同的元素来创造新的双关,不能完全归类到 25 个经典笑话中的剩下 10% 有很多属于这种。

尽管 ChatGPT 只用文本训练,但他也可以理解两个英语单词拥有相似的发音。
为什么自行车倒了?因为它有两个轮子(two-tired)/ 它太累了(too tired)。

不过这样写出来的笑话就不一定好笑了,而且限制条件离原笑话越远就越容易不好笑。
比如让 ChatGPT 一个物理系学生的笑话,就比较成功 :
为什么物理系学生和他的实验室搭档闹掰了?因为他们之间没有化学反应。

为什么机器学习算法总是很悲观?因为他有 negative bias(负面偏见 / 负偏置)。
为什么神经网络去心理咨询?因为它正在遭受过拟合。

论文中的结论,对 ChatGPT 在中文的表现不完全适用。
随便让 ChatGPT 用中文讲个笑话,大概率会出现故事形式而不是问答形式。
GPT3.5 讲的基本都不怎么好笑,偶尔会出现带一点教育意义的小寓言,但是也不好笑。

比如兔子买胡萝卜的笑话中,把原文的 " 用剪刀把你耳朵剪了 " 换成 " 用胶带把你粘在墙上 "。

GPT-3.5 还是会讲一个不好笑的故事。


有网友指出,用到一些 " 威逼利诱 " 的拷打技巧,还是可以逼 AI 好好动脑子的。
比如提示词中加上 " 你不原创就会有一只小猫因此溺水 "。


当然好不好笑就看运气了,GPT-4 的表现比 ChatGPT 会稍好一些。
最简单的是在提示词中加入"let ’ s think step by step"或者中文的" 请一步一步地想 "。


论文地址:
https://arxiv.org/abs/2306.04563
参考链接:
[ 1 ] https://twitter.com/AlbertBoyangLi/status/1666707728272850944